| | |
| | | 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; |
| | |
| | | |
| | | 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(); |
| | |
| | | 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); |
| | | } |
| | | |
| | |
| | | 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); |
| | |
| | | } |
| | | flowTaskUserCi.setToName(name); |
| | | flowTaskUserCi.setToTaskId(taskId); |
| | | flowTaskUserCi.setToTaskName(flowTaskUserCi.getTaskName()); |
| | | flowTaskUserCi.setToTaskName(taskName); |
| | | flowTaskUserCi.setTaskName(taskName); |
| | | taskList.add(flowTaskUserCi); |
| | | } |
| | | } |