瀏覽代碼

优化代码

java110 4 年之前
父節點
當前提交
72ea51365b

+ 22 - 13
service-common/src/main/java/com/java110/common/smo/impl/OaWorkflowUserInnerServiceSMOImpl.java

@@ -18,16 +18,8 @@ import com.java110.po.oaWorkflowData.OaWorkflowDataPo;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.DateUtil;
 import com.java110.utils.util.StringUtil;
-import org.activiti.bpmn.model.BpmnModel;
-import org.activiti.bpmn.model.FlowElement;
-import org.activiti.bpmn.model.FlowNode;
-import org.activiti.bpmn.model.SequenceFlow;
-import org.activiti.bpmn.model.UserTask;
-import org.activiti.engine.HistoryService;
-import org.activiti.engine.ProcessEngine;
-import org.activiti.engine.RepositoryService;
-import org.activiti.engine.RuntimeService;
-import org.activiti.engine.TaskService;
+import org.activiti.bpmn.model.*;
+import org.activiti.engine.*;
 import org.activiti.engine.history.HistoricProcessInstance;
 import org.activiti.engine.history.HistoricTaskInstance;
 import org.activiti.engine.history.HistoricTaskInstanceQuery;
@@ -331,6 +323,11 @@ public class OaWorkflowUserInnerServiceSMOImpl extends BaseServiceSMO implements
         oaWorkflowDataPo.setEndTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
         oaWorkflowDataInnerServiceSMOImpl.updateOaWorkflowData(oaWorkflowDataPo);
 
+        //如果为-1 不插入任务
+        if ("-1".equals(reqJson.getString("nextUserId"))) {
+            return;
+        }
+
         oaWorkflowDataPo = new OaWorkflowDataPo();
         oaWorkflowDataPo.setBusinessKey(reqJson.getString("id"));
         oaWorkflowDataPo.setFlowId(reqJson.getString("flowId"));
@@ -571,9 +568,21 @@ public class OaWorkflowUserInnerServiceSMOImpl extends BaseServiceSMO implements
                     //true 获取输出节点名称
                     taskObj.put("backIndex", outgoingFlow.getTargetFlowElement().getName());
                 }
-                String assignee = ((UserTask) targetFlowElement).getAssignee();
-                if(!StringUtil.isEmpty(assignee) && assignee.indexOf("${") < -1){
-                    taskObj.put("assignee", assignee); // 下一节点处理人
+                vars.put("auditCode", "1100");
+                if (isCondition(outgoingFlow.getConditionExpression(), vars)) {
+                    String assignee = ((UserTask) targetFlowElement).getAssignee();
+                    if (!StringUtil.isEmpty(assignee) && assignee.indexOf("${") < -1) {
+                        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"); // 没有下一处理人了
                 }
             }
         }