From ddafa0375398053baaafdee8612f68c1b75ff7cb Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期五, 22 八月 2025 13:37:54 +0800
Subject: [PATCH] 机床导入1

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/BatchDispatchService.java |   44 +++++++++++++++++++++++++++-----------------
 1 files changed, 27 insertions(+), 17 deletions(-)

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/BatchDispatchService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/BatchDispatchService.java
index b4c89a1..c319676 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/BatchDispatchService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/BatchDispatchService.java
@@ -11,6 +11,7 @@
 import org.springblade.mdm.flow.constants.FlowContants;
 import org.springblade.mdm.flow.constants.FlowVariableContants;
 import org.springblade.mdm.flow.service.ApproveRecordService;
+import org.springblade.mdm.flow.service.FlowCommonService;
 import org.springblade.mdm.flow.service.FlowProgramFileService;
 import org.springblade.mdm.flow.vo.BatchDispatchVO;
 import org.springblade.mdm.program.service.NcNodeAutoCreateService;
@@ -32,6 +33,8 @@
 	private TaskService taskService;
 	@Autowired
 	private RuntimeService runtimeService;
+	@Autowired
+	private FlowCommonService flowCommonService;
 	@Transactional
 	public void batchDispatchTask(BatchDispatchVO batchDispatchVO) {
 		//String[] taskIds, String[] processInstanceIds, String comment, String assignee
@@ -51,16 +54,14 @@
 			taskId = taskIds[i];
 			processInstanceId = batchDispatchVO.getProcessInstanceIds()[i];
 
-			Task task = taskService.createTaskQuery()
-				.taskId(taskId)
-				.singleResult();
-			taskService.complete(taskId, variables);
+			Task task = getTask(taskId);
 
 			if (StringUtil.isNoneBlank(processInstanceId, comment)) {
 				taskService.addComment(taskId, processInstanceId, comment);
 			}
-
 			approveRecordService.saveApproveRecords(task,FlowContants.Y,comment);
+
+			taskService.complete(taskId, variables);
 		}
 	}
 
@@ -88,18 +89,24 @@
 
 			variables.put("assignee", getAutoProgrammer(processInstanceId));
 
-			Task task = taskService.createTaskQuery()
-				.taskId(taskId)
-				.singleResult();
-			taskService.complete(taskId, variables);
+			Task task = getTask(taskId);
 
 			if (StringUtil.isNoneBlank(processInstanceId, batchDispatchVO.getComment())) {
 				taskService.addComment(taskId, processInstanceId, batchDispatchVO.getComment());
 			}
-
 			approveRecordService.saveApproveRecords(task,FlowContants.Y,batchDispatchVO.getComment());
+
+			//鏈�鍚庝竴姝ュ畬鎴�
+			taskService.complete(taskId, variables);
 		}
 	}
+
+	private Task getTask(String taskId) {
+		return taskService.createTaskQuery()
+			.taskId(taskId)
+			.singleResult();
+	}
+
 
 	/**
 	 * 鑾峰彇缂栫▼鐨勫伐鑹哄憳id
@@ -107,7 +114,7 @@
 	 * @return
 	 */
 	Object getAutoProgrammer(String processInstanceId){
-		ProcessInstance processInstance = runtimeService.createProcessInstanceQuery()
+		ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().includeProcessVariables()
 			.processInstanceId(processInstanceId)
 			.singleResult();
 		Object programmer = processInstance.getProcessVariables().get(FlowContants.PROGRAMMER);
@@ -132,22 +139,25 @@
 		//瀹℃壒缁撴灉鍜屽鐞嗕汉閮戒竴鏍风殑
 		Map<String, Object> variables = Kv.create();
 		variables.put(FlowVariableContants.APPROVE, batchDispatchVO.getApprove());
-		variables.put(FlowVariableContants.ASSIGNEE, batchDispatchVO.getAssignee());
 		variables.put(FlowVariableContants.COMMENT, batchDispatchVO.getComment());
+
 		for(int i=0;i<taskIds.length;i++) {
 			taskId = taskIds[i];
 			processInstanceId = batchDispatchVO.getProcessInstanceIds()[i];
 
-			Task task = taskService.createTaskQuery()
-				.taskId(taskId)
-				.singleResult();
-			taskService.complete(taskId, variables);
+			Task task = getTask(taskId);
 
 			if (StringUtil.isNoneBlank(processInstanceId, batchDispatchVO.getComment())) {
 				taskService.addComment(taskId, processInstanceId, batchDispatchVO.getComment());
 			}
-
+			if(FlowContants.N.equals(batchDispatchVO.getApprove())) {
+				//椹冲洖锛屾煡璇笂涓�姝ュ鐞嗕汉鍘熻矾椹冲洖
+				String assignee = flowCommonService.previusAssignee(processInstanceId);
+				variables.put(FlowVariableContants.ASSIGNEE, assignee);
+			}
 			approveRecordService.saveApproveRecords(task,FlowContants.Y,batchDispatchVO.getComment());
+
+			taskService.complete(taskId, variables);
 		}
 	}
 	/**

--
Gitblit v1.9.3