xiejun
2023-11-22 47482f386cefd756e1d1a745a5b13949fd709c77
Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/impl/VCIFlowserviceImpl.java
@@ -39,7 +39,6 @@
import org.flowable.engine.repository.ProcessDefinition;
import org.flowable.engine.runtime.ProcessInstance;
import org.flowable.task.api.Task;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
@@ -159,10 +158,17 @@
      String modelKey = processInstance.getProcessDefinitionKey();
      List<FlowTaskDTO> mis = flowEngineService.getNodeByFlowableKey(modelKey);
      Map<String,String> taskMap = new HashMap<>();
      mis.stream().forEach(e->{
         String taskId = e.getTaskId();
         String taskName = e.getTaskName();
         taskMap.put(taskId,taskName);
      });
      // 输出连线
      List<SequenceFlow> outFlows = flowNode.getOutgoingFlows();
      for (SequenceFlow sequenceFlow : outFlows) {
         String toname = sequenceFlow.getName()==null?"同意":sequenceFlow.getName();
         //当前审批节点
         if (NODE_NOW.equals(node)) {
            FlowElement sourceFlowElement = sequenceFlow.getSourceFlowElement();
@@ -174,9 +180,11 @@
               FlowTaskDTO flowTaskUserCi = new FlowTaskDTO();
               //flowTaskUserCi.setConditionKey(null);
               //flowTaskUserCi.setConditionValue(null);
               flowTaskUserCi.setToName("同意");
               flowTaskUserCi.setToName(toname);
               flowTaskUserCi.setToTaskId(targetFlow.getId());
               flowTaskUserCi.setToTaskName(targetFlow.getName());
               String taskName = taskMap.get(targetFlow.getId());
               flowTaskUserCi.setToTaskName(taskName);
               flowTaskUserCi.setTaskName(taskName);
               taskList.add(flowTaskUserCi);
            }
@@ -190,16 +198,21 @@
               flowTaskUserCi.setToTaskName(targetFlow.getName());
               taskList.add(flowTaskUserCi);
            }
            // 如果下个审批节点为排他网关
            if (targetFlow instanceof ExclusiveGateway) {
            // 如果下个审批节点为网关
            if (targetFlow instanceof Gateway) {
               ExclusiveGateway exclusiveGateway = (ExclusiveGateway) targetFlow;
               List<SequenceFlow> exclusiveGatewayOutgoingFlows = exclusiveGateway.getOutgoingFlows();
               for (SequenceFlow nexti:exclusiveGatewayOutgoingFlows){
                  String conditionExpression = nexti.getConditionExpression();//condition
                  String taskId = nexti.getTargetRef();//taskId
                  String name = nexti.getName();//toName,驳回、同意
                  String taskName = taskMap.get(taskId);
//ExclusiveGateway
                  if(StringUtils.isEmpty(conditionExpression)){//此时排他网关没有配置流转条件
                     continue;
                  }
                  for (FlowTaskDTO flowTaskUserCi:mis){
                     if(taskId.equals(flowTaskUserCi.getTaskId())){
                        flowTaskUserCi.setCondition(conditionExpression);
@@ -220,7 +233,8 @@
                        }
                        flowTaskUserCi.setToName(name);
                        flowTaskUserCi.setToTaskId(taskId);
                        flowTaskUserCi.setToTaskName(flowTaskUserCi.getTaskName());
                        flowTaskUserCi.setToTaskName(taskName);
                        flowTaskUserCi.setTaskName(taskName);
                        taskList.add(flowTaskUserCi);
                     }
                  }