From 0d61b9bfca526e9c3da2209de8f9f367e76fd013 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期四, 18 九月 2025 18:09:35 +0800
Subject: [PATCH] 修改constant类名

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/BatchDispatchService.java |  106 ++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 80 insertions(+), 26 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 c319676..399d7f7 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
@@ -6,15 +6,15 @@
 import org.flowable.engine.runtime.ProcessInstance;
 import org.flowable.task.api.Task;
 import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.support.Kv;
+import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.StringUtil;
-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.commons.service.UserCommonService;
+import org.springblade.mdm.flow.constants.FlowConstant;
+import org.springblade.mdm.flow.constants.FlowVariableConstant;
 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;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -26,15 +26,14 @@
  */
 @Service
 public class BatchDispatchService  {
-
-	@Autowired
-	private ApproveRecordService approveRecordService;
 	@Autowired
 	private TaskService taskService;
 	@Autowired
 	private RuntimeService runtimeService;
 	@Autowired
 	private FlowCommonService flowCommonService;
+	@Autowired
+	private UserCommonService userCommonService;
 	@Transactional
 	public void batchDispatchTask(BatchDispatchVO batchDispatchVO) {
 		//String[] taskIds, String[] processInstanceIds, String comment, String assignee
@@ -45,7 +44,7 @@
 
 		Map<String, Object> variables = Kv.create();
 		variables.put("assignee", batchDispatchVO.getAssignee());
-		variables.put("approve", FlowContants.Y);//榛樿灏辨槸閫氳繃
+		variables.put("approve", FlowConstant.Y);//榛樿灏辨槸閫氳繃
 		String taskId;
 		String processInstanceId;
 		String comment = batchDispatchVO.getComment();
@@ -54,12 +53,16 @@
 			taskId = taskIds[i];
 			processInstanceId = batchDispatchVO.getProcessInstanceIds()[i];
 
+			runtimeService.setVariable(processInstanceId, FlowConstant.PROGRAMMER_NAME,userCommonService.getUserNameById(Func.toLong(batchDispatchVO.getAssignee())));
+
 			Task task = getTask(taskId);
 
+			if(!task.getTaskDefinitionKey().equals("teamLeaderTask")){
+				throw new ServiceException("闈瀃浠诲姟鍒嗘淳]鑺傜偣鐨勪换鍔′笉鑳芥壒閲忔淳宸�");
+			}
 			if (StringUtil.isNoneBlank(processInstanceId, comment)) {
 				taskService.addComment(taskId, processInstanceId, comment);
 			}
-			approveRecordService.saveApproveRecords(task,FlowContants.Y,comment);
 
 			taskService.complete(taskId, variables);
 		}
@@ -79,22 +82,28 @@
 
 		Map<String, Object> variables = Kv.create();
 		//variables.put("assignee", batchDispatchVO.getAssignee());
-		variables.put("approve", FlowContants.Y);//鑷姩鍒嗘淳榛樿灏辨槸閫氳繃
-		variables.put(FlowVariableContants.COMMENT,batchDispatchVO.getComment());
+		variables.put("approve", FlowConstant.Y);//鑷姩鍒嗘淳榛樿灏辨槸閫氳繃
+		variables.put(FlowVariableConstant.COMMENT,batchDispatchVO.getComment());
 		ProcessInstance processInstance;
 		Object programmer;
 		for(int i=0;i<taskIds.length;i++) {
 			taskId = taskIds[i];
 			processInstanceId = batchDispatchVO.getProcessInstanceIds()[i];
 
-			variables.put("assignee", getAutoProgrammer(processInstanceId));
-
 			Task task = getTask(taskId);
+			if(!task.getTaskDefinitionKey().equals("teamLeaderTask")){
+				throw new ServiceException("闈瀃浠诲姟鍒嗘淳]鑺傜偣鐨勪换鍔′笉鑳芥壒閲忔淳宸�");
+			}
+
+			Object programmerId = getAutoProgrammer(processInstanceId);
+			variables.put("assignee", programmerId);
+
+			runtimeService.setVariable(processInstanceId, FlowConstant.PROGRAMMER_NAME,userCommonService.getUserNameById(Func.toLong(programmerId)));
+
 
 			if (StringUtil.isNoneBlank(processInstanceId, batchDispatchVO.getComment())) {
 				taskService.addComment(taskId, processInstanceId, batchDispatchVO.getComment());
 			}
-			approveRecordService.saveApproveRecords(task,FlowContants.Y,batchDispatchVO.getComment());
 
 			//鏈�鍚庝竴姝ュ畬鎴�
 			taskService.complete(taskId, variables);
@@ -107,7 +116,6 @@
 			.singleResult();
 	}
 
-
 	/**
 	 * 鑾峰彇缂栫▼鐨勫伐鑹哄憳id
 	 * @param processInstanceId
@@ -117,9 +125,9 @@
 		ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().includeProcessVariables()
 			.processInstanceId(processInstanceId)
 			.singleResult();
-		Object programmer = processInstance.getProcessVariables().get(FlowContants.PROGRAMMER);
+		Object programmer = processInstance.getProcessVariables().get(FlowVariableConstant.PROGRAMMER);
 		if(programmer == null){
-			throw new ServiceException(processInstance.getProcessVariables().get(FlowContants.TITLE)+":鏈壘鍒扮紪绋嬩汉鍛�");
+			throw new ServiceException(processInstance.getProcessVariables().get(FlowVariableConstant.TITLE)+":鏈壘鍒扮紪绋嬩汉鍛�");
 		}
 		return programmer;
 	}
@@ -130,7 +138,6 @@
 	 */
 	@Transactional
 	public void batchApprove(BatchDispatchVO batchDispatchVO) {
-		//TODO 寰呭疄鐜�
 		checkBatchParameter(batchDispatchVO);
 		String[] taskIds = batchDispatchVO.getTaskIds();
 		String taskId;
@@ -138,8 +145,8 @@
 
 		//瀹℃壒缁撴灉鍜屽鐞嗕汉閮戒竴鏍风殑
 		Map<String, Object> variables = Kv.create();
-		variables.put(FlowVariableContants.APPROVE, batchDispatchVO.getApprove());
-		variables.put(FlowVariableContants.COMMENT, batchDispatchVO.getComment());
+		variables.put(FlowVariableConstant.APPROVE, batchDispatchVO.getApprove());
+		variables.put(FlowVariableConstant.COMMENT, batchDispatchVO.getComment());
 
 		for(int i=0;i<taskIds.length;i++) {
 			taskId = taskIds[i];
@@ -150,15 +157,29 @@
 			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);
+			if(FlowConstant.N.equals(batchDispatchVO.getApprove())) {
+				//椹冲洖锛屾煡璇㈠疄闄呯紪绋嬩汉鍛� 椹冲洖
+				variables.put(FlowVariableConstant.ASSIGNEE, getActualProgrammer(processInstanceId));
 			}
-			approveRecordService.saveApproveRecords(task,FlowContants.Y,batchDispatchVO.getComment());
 
 			taskService.complete(taskId, variables);
 		}
+	}
+
+	/**
+	 * 鑾峰彇娴佺▼鎵ц涓疄闄呯殑缂栫▼浜哄憳锛堟墽琛屼笂浼犳枃浠剁殑浜猴級
+	 * @param processInstanceId 娴佺▼瀹炰緥id
+	 * @return 缂栫▼浜哄憳id
+	 */
+	Object getActualProgrammer(String processInstanceId){
+		ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().includeProcessVariables()
+			.processInstanceId(processInstanceId)
+			.singleResult();
+		Object actProgrammer = processInstance.getProcessVariables().get(FlowVariableConstant.ACT_PROGRAMMER);
+		if(actProgrammer == null){
+			throw new ServiceException(processInstance.getProcessVariables().get(FlowVariableConstant.TITLE)+":鏈壘鍒扮紪绋嬩汉鍛�");
+		}
+		return actProgrammer;
 	}
 	/**
 	 * 楠岃瘉鎵归噺澶勭悊鍙傛暟
@@ -177,4 +198,37 @@
 			throw new ServiceException("浠诲姟id涓庢祦绋嬪疄渚媔d鏁伴噺涓嶄竴鑷�");
 		}
 	}
+
+	/**
+	 * 鎺掔粌閫氳繃鐜板満缂栧埗
+	 * @param batchDispatchVO
+	 */
+    public void batchProgramOnMachine(BatchDispatchVO batchDispatchVO) {
+		checkBatchParameter(batchDispatchVO);
+		String[] taskIds = batchDispatchVO.getTaskIds();
+		String taskId;
+		String processInstanceId;
+
+		//瀹℃壒缁撴灉鍜屽鐞嗕汉閮戒竴鏍风殑
+		Map<String, Object> variables = Kv.create();
+		variables.put(FlowVariableConstant.APPROVE, FlowConstant.Y);
+		variables.put(FlowVariableConstant.COMMENT, batchDispatchVO.getComment());
+		variables.put(FlowVariableConstant.PROGRAM_ON_MACHINE, FlowConstant.Y);//鐜板満缂栧埗:鏄�
+		variables.put(FlowVariableConstant.ACT_PROGRAMMER, AuthUtil.getUserId()+"");//瀹為檯缂栧埗
+		variables.put(FlowVariableConstant.ASSIGNEE,batchDispatchVO.getAssignee());
+		for(int i=0;i<taskIds.length;i++) {
+			taskId = taskIds[i];
+			processInstanceId = batchDispatchVO.getProcessInstanceIds()[i];
+
+			Task task = getTask(taskId);
+			if(!task.getTaskDefinitionKey().equals("programmingTask")){
+				throw new ServiceException("闈炵紪鍒朵换鍔★紝涓嶈兘鎸囧畾鐜板満缂栧埗");
+			}
+			if (StringUtil.isNoneBlank(processInstanceId, batchDispatchVO.getComment())) {
+				taskService.addComment(taskId, processInstanceId, batchDispatchVO.getComment());
+			}
+
+			taskService.complete(taskId, variables);
+		}
+    }
 }

--
Gitblit v1.9.3