# YHPro ���� / ��������ҵ���ֲ� �����YH��SHR �� �Ż� ESB��PORTAL-*�����͡�ʧ��ʱ�ȶ��ձ��ġ���־�ؼ��� �� ֧�� �� ԭ�򡹣��ٲ� `OAMsgCallLog`�� ��ش��룺 | ��ɫ | �� | |------|-----| | SPI ��� | `OAMessageWebServiceDao` | | ���Ĵ��� | `BMCMessageControllerBeanEx` | | �����߼� | `TodoMessageServer` | | �����߼� | `ToBeReadMessageServer` | | ���� | `MessageCommonUtil` / `MessageConfig` | | ���� | `{EAS_HOME}/server/properties/yuhu/receiveOAConfig.properties` | �ӿ��ֶμ�ͬĿ¼ `portal-api-map.md`�� --- ## 1. ������������������ ``` ƽ̨��Ϣ���� �� ���������� A �� ���������졿MessageWebServiceDao��ƽ̨ SPI�� �� OAMessageWebServiceDao �� ���� addMessage �� �������� PORTAL-002 �� ���� addCompletedMessage �� �Ѱ�/��� PORTAL-006 / 003 �� ���� removeMessage �� ɾ������ PORTAL-007 �� ���������� B �� BMC ֪ͨ���ġ�BMCMessage ��⹳�� BMCMessageControllerBeanEx._addnew / _addnewBatchData �� OAMessageWebServiceDao.updateMessages �� ToBeReadMessageServer ���� �� URL �� ������/���飨�����Ż����ģ� ���� UNREADED �� PORTAL-011 �������� ���� READED �� PORTAL-012 ����ת���� ``` - **����**��������������Assign���ߣ��� `assignId` / `procInstId` / `billId`�� - **����**���� BMC ֪ͨ��Ϣ�ߣ���Ϣ bosType ������ `41C9B39B`�� - ��������**��ͬʱ����**�������ύ�������������� + ���ʹ��ļ���ͬ�룩�����ʹ���ƴ���������� `assignReadRecord`���ñ���**���������ɹ���**д�� �� ���ھ�̬������ 5 �ڣ��� --- ## 2. ���� A������ �� ʲô��Ϣ���������� | ƽ̨��ʱ���� | Dao ���� | ҵ���� | �Ż��ӿ� | |--------------|----------|----------|----------| | �����´������� | `addMessage(WSMessage)` | ��������+���� | **PORTAL-002** `addFlow` op=1 | | �������/����/���ϵ� | `addCompletedMessage(WfrAssignMessage)` | �ȿ���ת�Ѱ죬�ٿ��ܸ������� | **006** �� **003** | | ����ɾ��/�ջ� | `removeMessage(assignId, ctx)` | ɾ�Ż����� | **PORTAL-007** op=3 | ### 2.1 �������� `addMessage`��PORTAL-002�� **��־������** `�����ƶ���ʼ` �� `*********�����������Ϳ�ʼ��msgID=...��**********` �� `����id...` �� `��������ؼ�����...` **���裺** 1. sleep **8 ��**���ȹ�����״̬�ȶ��� 2. `getAssignIdByMsgId(msgID)` �� �� AssignRead������ `assignId=null`���� warn���� NPE�� 3. ȡ `billId`��`procInstId`������ WSMessage�� 4. ����־��`��������ؼ�����` / ���п��� `����������ڿղ���` 5. ��� `addFlow`��`instanceId=procInstId`��`taskList[].taskId=assignId` 6. ���Ż������۳ɰ�����д�� `assignReadRecord`��`addMsgId`�� 7. д `OAMsgCallLog`�������Ƿ� `returnStatus=S` **�ղ��Ի������**��������Ĭ�� URL�������Ż�����������ֶξ��ա� ### 2.2 ���/״̬���� `addCompletedMessage`��006 + 003�� **��־������** `*********����״̬���¿�ʼ��assignId=...��**********` **˫״̬��** | ��Դ | ���� | ��; | |------|------|------| | ����ʵ�� `ProcInstInfo.state` | `wfStateStr` | �Ƿ�� **PORTAL-003** �������� | | ���� `WfrAssignMessage.state` �� `WfAssignmentState` | `taskStatus` | �Ƿ��ȵ� **PORTAL-006** ����ת�Ѱ� | **״̬ӳ�䣨���룩��** | SHR | �Ż� flowStatus / taskStatus | |-----|------------------------------| | COMPLETED | complete | | REJECTED / ROLLBACKED | refuse | | CANCELED / TERMINATED | cancel | | ABORTED | revoke | | ���� | approving | **�ս�״̬��** `complete` / `cancel` / `refuse` / `revoke` **֧�ߣ�** ``` procInstId �գ� �� ֱ��ʧ�ܣ��򡸴���ת�Ѱ�ʧ�ܣ�procInstIdΪ�ա��� �� ���� sleep 8s �� ������״̬ �� wfStateStr ���� ��������״̬ �� taskStatus������ʧ���� return�� �� ���� taskStatus ���ս᣿ �� �� �� PORTAL-006 updateAgency������ת�Ѱ죩 �� ʧ�������� return false�����ٵ� 003�� �� ���� wfStateStr ���ս᣿ �� �� PORTAL-003 updateFlow�����̰��/���ϵȣ� �� �� ���� 003���������ܷ��� false��isOk Ĭ�� false�� ``` ע�⣺�����սᵫ����δ�ս�ʱ��ֻ�� 006�������ս���� 003�� ### 2.3 ɾ������ `removeMessage`��PORTAL-007�� **��־������** `*********ɾ���������Ϳ�ʼ��assignId=...��**********` 1. sleep **9 ��** 2. �� `assignId` ���� `msgId`��`procInstId`���� `assignReadRecord`�� 3. �� `deleteAgency`��`taskIdList=assignId` `assignId` �� `context` �� �� ֱ�� warn ���أ������Ż��� --- ## 3. ���� B������ �� ʲô��Ϣ������֧�� ### 3.1 ˭���� | ��� | ʱ�� | ����״̬ | |------|------|----------| | `BMCMessageControllerBeanEx._addnew` / `_addnewBatchData` | BMC ֪ͨ**�½�** | �̶� `MsgStatus.UNREADED` | | ��ƽ̨����·������ `updateMessages`�� | �Ѷ��� | `READED` �� | **��־������** `���������������` / `���������������` / `����֪ͨ��ʼ` / `*********֪ͨ����Ϣ������ʼ*********` ### 3.2 ��բ�� ``` bosType == 41C9B39B�� �� �� ����֪ͨ����Ϣ������������ �� �� ������������� ``` ### 3.3 ������֧�ߣ��� URL / �� URL�� ����Ĭ�� `pcUrl`��`mobileUrl`���� `/qy/auth/V2/sso`���� #### ֧�� B1�����Ͳ�������ѡ�� ����ͬʱ���㣺 - `bizType` ֵ = **0 �� 80** - `category` �� - `bizCustomizedFlag` �� **��־��** `����������Ϣ,��URL,����URL` + `֪ͨ����ϢbosType��WFATINST|WFPCINST` | source ���� | ��Ϊ | |-------------|------| | **WFATINST** | �ʵ�� �� `procInstId` �� �� `assignReadRecord` �� �� assignID/billId ƴ�������� | | **WFPCINST** | ����ʵ�� �� �� Assign ���� �� �� assign/bizObj ƴ�� | | ���� / �鲻�� | ����Ĭ�ϴ��� URL�����ж� | ��־��`����WFATINSTƴ������` / `����WFPCINSTƴ������`���� `assignID=null` �ȣ��� #### ֧�� B2�������� URL `msgInfo.url` �Կգ� - ״̬���� **READED** �� ֱ�� false�����ƣ� - ���� �� **ֻ�ƶ��� + ����**������ PORTAL-011 ��־��`��URL�����Ͷ���` #### ֧�� B3���� URL �� �Ż����� | msgStatus | ��Ϊ | �ӿ� | |-----------|------|------| | **UNREADED** | �������ģ��� `bizCustomizedFlag=PERFWEB` ��������ƶ��˼�Ч���� | **PORTAL-011** | | **READED** | ����ת���� | **PORTAL-012** | | ���� | ����֧�ֵ���Ϣ״̬�� | �� | ��Ч PERFWEB �ӷ�֧�� - ���⺬����Ч���Һ������ȷ�ϡ������ߡ��� ���ȷ��ҳ - ������Ч �� ��Ч go ҳ --- ## 4. ��Ա�������������������ã� | �� | ���� | |----|------| | �Ż���Ա | `cfidmusercode`��`getPersonCode`�����鲻�� **�״�**����Ա��ϢΪ�ա� | | PC ������ assignId | `/shr/api/oAToSHR?redirect=...transferApprove.jsp?AssignmentId&billID` | | PC �� assignId | Ĭ�Ϲ�������ͼ `shr.workflow.view`����־��`getPcUrlCore ��assignId����Ĭ��URL`�� | | �ƶ��� assignId | MBOS ���� URL �� `/qy/auth/V2/sso` | | �ƶ��� assignId | MBOS �����б� �� SSO����־��`getAppUrlCoreV2 ��assignId`�� | --- ## 5. ���뾺̬ ### assignReadRecord | �ֶ� | ���� | |------|------| | MsgId | ������Ϣ ID | | assignID | ���� ID���Ż� taskId�� | | billId | ���� ID | | procInstId | ����ʵ�� ID | | workflowname | ������ | - **д�룺** �������� `addMessage` ĩβ `addMsgId` - **��ȡ��** ���ʹ��� WFATINST��ɾ��/���ʱ���� **��̬��** ���ʹ��������ڴ���д������־����� `assignID=null` / `getDataByProcInstId �޼�¼`��������Ĭ�ϣ������Կ����Ƴɹ������ȥ���ǵ���ҳ�� ### OAMsgCallLog ��ÿ���Ż����õ�����/��Ӧ/״̬��ʧ���Ȳ�˱��� --- ## 6. ʧ���Ų��ٲ�� ����־�ؼ��ֶ�λ֧�ߣ��ٶ�ԭ�� | ��־�ؼ��� | ����֧�� | ����ԭ�� | |------------|----------|----------| | `�����ƶ���ʼ` + `������������ʧ��` | A �� 002 | �����������쳣�����Ż� returnStatus��S | | `����������ڿղ���` / `procInstId=null` | A �� 002 | WSMessage δ������ʵ����AssignRead �� assignId | | `��msgId��ȡassignIdΪ��` | A �� 002 ȡ���� | AssignRead δ������sleep ��������ǹ�������Ϣ | | `��Ա��ϢΪ��` / getPersonCode | A/B ��� | �û�δ�� `cfidmusercode` | | `����״̬���¿�ʼ` | A �� 006/003 | �� | | `����ת�Ѱ�ʧ�ܣ�procInstIdΪ��` | A �� ��� | WfrAssignMessage ������ ID | | `����״̬�޷�����` | A �� ��� | state ö�ٶԲ��� | | `����ת�Ѱ�ʧ��`��006�� | A �� 006 | �Ż����� / ��Ӧ�� | | `ɾ���������Ϊ��` | A �� 007 | assignId �� ctx �� | | `������������` / `����֪ͨ��ʼ` | B | �� | | `��֪ͨ����Ϣ������` | B բ�� | bosType �� 41C9B39B | | `����������Ϣ` + `WFATINST` | B1 ���� | �� | | `���͡�ƴ������` �� `=null` | B1 | ��̬���� assignReadRecord | | `��URL�����Ͷ���` | B2 | ֻ�� IM���Ż��޴��� | | `֪ͨ����Ϣ����ʧ��` | B ���� | ����ջ���ֶ�Ϊҵ��/���ö��� assign toString | | `getPcUrlCore ��assignId` | ���� | Ԥ����Ĭ��ҳ����һ��ʧ�� | | OAMsgCallLog Status�ٳɹ� | �Ż��� | �� request/response �� portal-api-map | ### �Ƽ��Ų�˳�� 1. ��־������ `��������` ���� `֪ͨ����Ϣ` / `��������` �� ������ A �� B 2. �� `paramDesc` �����־��`xxx=null` / `xxx=""` �� �����ֶ� 3. �� `OAMsgCallLog` �Ƿ��ѵ��Ż��������� 4. ���ʹ������Ӳ��� �� ��ͬ���Ƿ��д��졢`assignReadRecord` �Ƿ��и� `procInstId` 5. ��Ա���� �� �������/������ IDM ���� --- ## 7. ��ʱ������ֵ�� | ���� | sleep | |------|-------| | �������� | 8s | | ���/���̸��� | 8s | | ɾ������ | 9s | Ŀ�ģ��� SHR ������������ȡ AssignRead / ����״̬�������׳��� `assignId`/`procInstId` �ա� --- ## 8. һ�仰���� | ����ȷ�ϡ� | ����־ / �� | |-----------|-------------| | �Dz����´������Ż��� | `�����������Ϳ�ʼ` + PORTAL-002 | | �Dz��ǰ�᣿ | `����״̬����` + �Ƿ��� 006 �� 003 | | �Dz���ɾ���죿 | `ɾ���������Ϳ�ʼ` | | �Dz����´��ģ� | `�����������` + `֪ͨ����Ϣ` + bosType 41C9B39B | | �Dz��dz��Ͳ����� | `����������Ϣ` + WFATINST/WFPCINST | | �Dz���ֻ�ƶ���û�Ż��� | `��URL�����Ͷ���` | | �ĸ������գ� | `��������ؼ�����` / `paramDesc` / `=null` | | �Ż����׻���ɶ�� | `OAMsgCallLog` |