From 47482f386cefd756e1d1a745a5b13949fd709c77 Mon Sep 17 00:00:00 2001
From: xiejun <xj@2023>
Date: 星期三, 22 十一月 2023 18:19:05 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/impl/VCIFlowserviceImpl.java |   28 +++++++++++++++++++++-------
 1 files changed, 21 insertions(+), 7 deletions(-)

diff --git a/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/impl/VCIFlowserviceImpl.java b/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/impl/VCIFlowserviceImpl.java
index 731fb62..3e48538 100644
--- a/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/impl/VCIFlowserviceImpl.java
+++ b/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);
 							}
 						}

--
Gitblit v1.9.3