From bdc870fab7c09b420079257fb05e3e08a5436ff9 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期三, 01 九月 2021 08:25:02 +0800
Subject: [PATCH] Merge branch 'master' of http://git.homecommunity.cn/supervip/MicroCommunity

---
 service-common/src/main/java/com/java110/common/smo/impl/OaWorkflowUserInnerServiceSMOImpl.java |   40 ++++++++++++++++++++++++++++++++++------
 1 files changed, 34 insertions(+), 6 deletions(-)

diff --git a/service-common/src/main/java/com/java110/common/smo/impl/OaWorkflowUserInnerServiceSMOImpl.java b/service-common/src/main/java/com/java110/common/smo/impl/OaWorkflowUserInnerServiceSMOImpl.java
index d9753e2..13c1c7f 100644
--- a/service-common/src/main/java/com/java110/common/smo/impl/OaWorkflowUserInnerServiceSMOImpl.java
+++ b/service-common/src/main/java/com/java110/common/smo/impl/OaWorkflowUserInnerServiceSMOImpl.java
@@ -19,6 +19,7 @@
 import com.java110.utils.util.DateUtil;
 import com.java110.utils.util.StringUtil;
 import org.activiti.bpmn.model.BpmnModel;
+import org.activiti.bpmn.model.EndEvent;
 import org.activiti.bpmn.model.FlowElement;
 import org.activiti.bpmn.model.FlowNode;
 import org.activiti.bpmn.model.SequenceFlow;
@@ -90,7 +91,7 @@
         variables.put("startUserId", reqJson.getString("createUserId"));
         variables.put("nextUserId", reqJson.getString("createUserId"));
         UserDto userDto = new UserDto();
-        userDto.setUserId(reqJson.getString("nextUserId"));
+        userDto.setUserId(reqJson.getString("createUserId"));
         List<UserDto> users = userInnerServiceSMOImpl.getUsers(userDto);
 
         Assert.listOnlyOne(users, "鐢ㄦ埛涓嶅瓨鍦�");
@@ -111,7 +112,7 @@
         oaWorkflowDataPo.setDataId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_dataId));
         oaWorkflowDataPo.setEvent(OaWorkflowDataDto.EVENT_COMMIT);
         oaWorkflowDataPo.setPreDataId("-1");
-        oaWorkflowDataPo.setStaffId(reqJson.getString("nextUserId"));
+        oaWorkflowDataPo.setStaffId(reqJson.getString("createUserId"));
         oaWorkflowDataPo.setStaffName(users.get(0).getName());
         oaWorkflowDataPo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
         oaWorkflowDataPo.setStoreId(reqJson.getString("storeId"));
@@ -314,7 +315,7 @@
             oaWorkflowDataPo = new OaWorkflowDataPo();
             oaWorkflowDataPo.setBusinessKey(reqJson.getString("id"));
             oaWorkflowDataPo.setFlowId(reqJson.getString("flowId"));
-            oaWorkflowDataPo.setContext(reqJson.getString("auditMessage"));
+            oaWorkflowDataPo.setContext("");
             oaWorkflowDataPo.setDataId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_dataId));
             oaWorkflowDataPo.setEvent(OaWorkflowDataDto.EVENT_COMMIT);
             oaWorkflowDataPo.setPreDataId(preDataId);
@@ -329,12 +330,18 @@
         oaWorkflowDataPo = new OaWorkflowDataPo();
         oaWorkflowDataPo.setDataId(oaWorkflowDataDtos.get(0).getDataId());
         oaWorkflowDataPo.setEndTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+        oaWorkflowDataPo.setContext(reqJson.getString("auditMessage"));
         oaWorkflowDataInnerServiceSMOImpl.updateOaWorkflowData(oaWorkflowDataPo);
+
+        //濡傛灉涓�-1 涓嶆彃鍏ヤ换鍔�
+        if ("-1".equals(reqJson.getString("nextUserId"))) {
+            return;
+        }
 
         oaWorkflowDataPo = new OaWorkflowDataPo();
         oaWorkflowDataPo.setBusinessKey(reqJson.getString("id"));
         oaWorkflowDataPo.setFlowId(reqJson.getString("flowId"));
-        oaWorkflowDataPo.setContext(reqJson.getString("auditMessage"));
+        oaWorkflowDataPo.setContext("");
         oaWorkflowDataPo.setDataId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_dataId));
         oaWorkflowDataPo.setEvent(OaWorkflowDataDto.EVENT_COMMIT);
         oaWorkflowDataPo.setPreDataId(oaWorkflowDataDtos.get(0).getDataId());
@@ -381,12 +388,13 @@
         oaWorkflowDataPo = new OaWorkflowDataPo();
         oaWorkflowDataPo.setDataId(oaWorkflowDataDtos.get(0).getDataId());
         oaWorkflowDataPo.setEndTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+        oaWorkflowDataPo.setContext(reqJson.getString("auditMessage"));
         oaWorkflowDataInnerServiceSMOImpl.updateOaWorkflowData(oaWorkflowDataPo);
 
         oaWorkflowDataPo = new OaWorkflowDataPo();
         oaWorkflowDataPo.setBusinessKey(reqJson.getString("id"));
         oaWorkflowDataPo.setFlowId(reqJson.getString("flowId"));
-        oaWorkflowDataPo.setContext(reqJson.getString("auditMessage"));
+        oaWorkflowDataPo.setContext("");
         oaWorkflowDataPo.setDataId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_dataId));
         oaWorkflowDataPo.setEvent(OaWorkflowDataDto.EVENT_TRANSFER);
         oaWorkflowDataPo.setPreDataId(oaWorkflowDataDtos.get(0).getDataId());
@@ -451,6 +459,7 @@
         OaWorkflowDataPo oaWorkflowDataPo = new OaWorkflowDataPo();
         oaWorkflowDataPo.setDataId(oaWorkflowDataDtos.get(0).getDataId());
         oaWorkflowDataPo.setEndTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+        oaWorkflowDataPo.setContext(reqJson.getString("auditMessage"));
         oaWorkflowDataInnerServiceSMOImpl.updateOaWorkflowData(oaWorkflowDataPo);
 
         reqJson.put("nextUserId", preOaWorkflowDataDtos.get(0).getStaffId());
@@ -460,7 +469,7 @@
         oaWorkflowDataPo = new OaWorkflowDataPo();
         oaWorkflowDataPo.setBusinessKey(preOaWorkflowDataDtos.get(0).getBusinessKey());
         oaWorkflowDataPo.setFlowId(preOaWorkflowDataDtos.get(0).getFlowId());
-        oaWorkflowDataPo.setContext(reqJson.getString("auditMessage"));
+        oaWorkflowDataPo.setContext("");
         oaWorkflowDataPo.setDataId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_dataId));
         oaWorkflowDataPo.setEvent(preOaWorkflowDataDtos.get(0).getEvent());
         oaWorkflowDataPo.setPreDataId(oaWorkflowDataDtos.get(0).getPreDataId());
@@ -553,10 +562,12 @@
         List<SequenceFlow> outgoingFlows = flowNode.getOutgoingFlows();
         JSONObject taskObj = null;
         taskObj = new JSONObject();
+        boolean isReturn = false;
         //閬嶅巻杈撳嚭杩炵嚎
         for (SequenceFlow outgoingFlow : outgoingFlows) {
             //鑾峰彇杈撳嚭鑺傜偣鍏冪礌
             FlowElement targetFlowElement = outgoingFlow.getTargetFlowElement();
+            isReturn = false;
             //鎺掗櫎闈炵敤鎴蜂换鍔℃帴鐐�
             if (targetFlowElement instanceof UserTask) {
                 //鍒ゆ柇杈撳嚭鑺傜偣鐨別l琛ㄨ揪寮�
@@ -565,11 +576,28 @@
                 if (isCondition(outgoingFlow.getConditionExpression(), vars)) {
                     //true 鑾峰彇杈撳嚭鑺傜偣鍚嶇О
                     taskObj.put("back", outgoingFlow.getTargetFlowElement().getName());
+                    isReturn = true;
                 }
                 vars.put("auditCode", "1400");
                 if (isCondition(outgoingFlow.getConditionExpression(), vars)) {
                     //true 鑾峰彇杈撳嚭鑺傜偣鍚嶇О
                     taskObj.put("backIndex", outgoingFlow.getTargetFlowElement().getName());
+                    isReturn = true;
+                }
+                if (!isReturn) {
+                    String assignee = ((UserTask) targetFlowElement).getAssignee();
+                    if (!StringUtil.isEmpty(assignee) && assignee.indexOf("${") < 0) {
+                        taskObj.put("assignee", assignee); // 涓嬩竴鑺傜偣澶勭悊浜�
+                    }
+                }
+            }
+
+            //濡傛灉涓嬩竴涓负 缁撴潫鑺傜偣
+            if (targetFlowElement instanceof EndEvent) {
+                Map vars = new HashMap();
+                vars.put("auditCode", "1100");
+                if (isCondition(outgoingFlow.getConditionExpression(), vars)) {
+                    taskObj.put("assignee", "-1"); // 娌℃湁涓嬩竴澶勭悊浜轰簡
                 }
             }
         }

--
Gitblit v1.8.0