소스 검색

更新推送OA待办消息工具类

heyuan 2 달 전
부모
커밋
bd63766f9c
1개의 변경된 파일21개의 추가작업 그리고 2개의 파일을 삭제
  1. 21 2
      src/com/kingdee/eas/custom/integration/weaveroa/utils/WeaverOAMessageUtils.java

+ 21 - 2
src/com/kingdee/eas/custom/integration/weaveroa/utils/WeaverOAMessageUtils.java

@@ -91,6 +91,8 @@ public class WeaverOAMessageUtils {
                     WeaverOAApprovalInstanceTaskListInfo instanceTaskListInfo = taskList.get(i);
                     instanceTaskListInfo.setViewtype(ViewTypeEnum.READ);
                     instanceTaskListInfo.setIsremark(IsRemarkEnum.COMPLETED);
+                    //流程结束,需要将所有节点更新为归档
+                    instanceTaskListInfo.setNodename("归档");
                 }
                 //保存
                 iWeaverOAApprovalInstance.save(instanceInfo);
@@ -288,12 +290,14 @@ public class WeaverOAMessageUtils {
                     WeaverOAApprovalInstanceTaskListInfo instanceTaskListInfo = taskList.get(i);
                     //流程处理状态
                     IsRemarkEnum isremark = instanceTaskListInfo.getIsremark();
-                    if (IsRemarkEnum.TODO.equals(isremark)) {
+                    if (!IsRemarkEnum.COMPLETED.equals(isremark)) {
                         //流程任务处理状态设置为办结
                         instanceTaskListInfo.setIsremark(IsRemarkEnum.COMPLETED);
                         //流程查看状态 设置为已读
                         instanceTaskListInfo.setViewtype(ViewTypeEnum.READ);
                     }
+                    //流程结束,需要将所有节点更新为归档
+                    instanceTaskListInfo.setNodename("归档");
                 }
                 //流程状态更新为 审批人撤销
                 instanceInfo.setInstanceStatus(InstanceStatusEnum.CANCELED);
@@ -368,7 +372,7 @@ public class WeaverOAMessageUtils {
                     iWeaverOAApprovalInstance.save(instanceInfo);
                 } catch (SQLAccessException e) {
                     logger.error("addApproveMessage 保存审批实例报错: {}", e.getMessage(), e);
-                    if (!e.getMessage().contains("IX_CT_FEI_FeishuApprovalInstance")) {
+                    if (!e.getMessage().contains("IX_CT_WEA_WeaverOAAI")) {
                         throw e;
                     }
                     //并发场景下 实例id重复,说明已经存在实例数据.
@@ -386,8 +390,23 @@ public class WeaverOAMessageUtils {
                 //审批实例
                 instanceInfo = instanceCol.get(0);
             }
+            //当前节点
+            String actName = message.getActName();
             //保存任务列表
             IWeaverOAApprovalInstanceTaskList iWeaverOAApprovalInstanceTaskList = WeaverOAApprovalInstanceTaskListFactory.getLocalInstance(ctx);
+            WeaverOAApprovalInstanceTaskListCollection weaverOAApprovalInstanceTaskList = iWeaverOAApprovalInstanceTaskList.getWeaverOAApprovalInstanceTaskListCollection(
+                   "where parent.id='" + instanceInfo.getId() + "' and nodename <> '" + actName + "'"
+            );
+            if (!weaverOAApprovalInstanceTaskList.isEmpty()) {
+                SelectorItemCollection updateSic = new SelectorItemCollection();
+                updateSic.add("nodename");
+                for (int i = 0; i < weaverOAApprovalInstanceTaskList.size(); i++) {
+                    WeaverOAApprovalInstanceTaskListInfo weaverOAApprovalInstanceTaskListInfo = weaverOAApprovalInstanceTaskList.get(i);
+                    weaverOAApprovalInstanceTaskListInfo.setNodename(actName);
+                    //更新现有节点的节点名称
+                    iWeaverOAApprovalInstanceTaskList.updatePartial(weaverOAApprovalInstanceTaskListInfo, updateSic);
+                }
+            }
             WeaverOAApprovalInstanceTaskListInfo task = createTask(ctx, message, pcLink, mobileLink);
             task.setParent(instanceInfo);
             iWeaverOAApprovalInstanceTaskList.save(task);