|
|
@@ -0,0 +1,280 @@
|
|
|
+# 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` |
|