From 71a55d8d0d886eb6e489a7b581eb799f3a8ad054 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期三, 23 七月 2025 22:46:00 +0800
Subject: [PATCH] 增加流程列表中 “文件”列的显示方式

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/constants/FlowContants.java        |    6 ++
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/DispatchController.java |    5 +
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/FlowVO.java                     |   66 +++++++++------------
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/CureFlowService.java       |   43 ++++++++------
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowBusinessService.java   |   20 +++++-
 5 files changed, 80 insertions(+), 60 deletions(-)

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/constants/FlowContants.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/constants/FlowContants.java
new file mode 100644
index 0000000..1101ab4
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/constants/FlowContants.java
@@ -0,0 +1,6 @@
+package org.springblade.mdm.flow.constants;
+
+public class FlowContants {
+	public static final String PROGRAM_IDS_KEY = "programids";
+
+}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/DispatchController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/DispatchController.java
index b4edb76..c07110f 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/DispatchController.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/DispatchController.java
@@ -16,6 +16,7 @@
 import org.springblade.core.tool.utils.DateUtil;
 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.entity.ApproveRecord;
 import org.springblade.mdm.flow.excution.StartDispatcher;
 import org.springblade.mdm.flow.service.ApproveRecordService;
@@ -70,9 +71,9 @@
 			variables = Kv.create();
 		}
 		String programIds = null;
-		if(variables.containsKey("programIds")){
+		if(variables.containsKey(FlowContants.PROGRAM_IDS_KEY)){
 			programIds = variables.get("programIds").toString();
-			runtimeService.setVariable(taskId, "programIds", programIds);
+			runtimeService.setVariable(taskId, FlowContants.PROGRAM_IDS_KEY, programIds);
 		}
 		if(StringUtils.isNotEmpty(programIds)) {
 			processProgRefService.addRelations(processInstanceId,Func.toLongList(programIds));
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/CureFlowService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/CureFlowService.java
index 78da526..6acabc6 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/CureFlowService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/CureFlowService.java
@@ -4,6 +4,7 @@
 import org.flowable.engine.HistoryService;
 import org.flowable.engine.IdentityService;
 import org.flowable.engine.RuntimeService;
+import org.flowable.engine.history.HistoricProcessInstance;
 import org.flowable.engine.runtime.ProcessInstance;
 import org.flowable.task.api.history.HistoricTaskInstance;
 import org.springblade.core.secure.utils.AuthUtil;
@@ -67,22 +68,29 @@
 	 * @param prog 鏁版帶绋嬪簭瀹炰綋
 	 */
 	public void startOne(NcProgram prog){
-		Map<String, Object> vars = new HashMap<>();
 
-		//NcProgram prog = programs.get(0);
-		Machine machine = machineService.getByCode(prog.getMachineCode());
-		vars.put("machineCode",prog.getMachineCode());
-		vars.put("machineMode",machine.getName());
-		vars.put("processEdition",prog.getProcessEdition());
-
-		//璇ョ▼搴忓湪璁″垝浠诲姟鏃� 鑾峰彇缂栧埗锛屾牎瀵癸紝瀹℃壒鐨勪汉鍛橈紝浣滀负榛樿鐢ㄦ埛锛屽叾涓紪鍒舵椂绗竴涓浐瀹氱殑鐢ㄦ埛
+		Map<String, Object> vars = null;
+			//璇ョ▼搴忓湪璁″垝浠诲姟鏃� 鑾峰彇缂栧埗锛屾牎瀵癸紝瀹℃壒鐨勪汉鍛橈紝浣滀负榛樿鐢ㄦ埛锛屽叾涓紪鍒舵椂绗竴涓浐瀹氱殑鐢ㄦ埛
 		ProcessProgRef preRef = processProgRefService.lastDispatchDataByNcProgramId(prog.getId());
-		//鑾峰彇瀹℃壒鐢ㄦ埛
-		List<HistoricTaskInstance> historicTasks = historyService.createHistoricTaskInstanceQuery()
-			.processInstanceId(preRef.getProcessInstanceId())
-			.orderByHistoricTaskInstanceEndTime().desc()
-			.list();
+		if(preRef != null) {
+			//鑾峰彇瀹℃壒鐢ㄦ埛
+			/*
+			List<HistoricTaskInstance> historicTasks = historyService.createHistoricTaskInstanceQuery().includeProcessVariables()
+				.processInstanceId(preRef.getProcessInstanceId())
+				.orderByHistoricTaskInstanceEndTime().desc()
+				.list();*/
+			HistoricProcessInstance instance = historyService.createHistoricProcessInstanceQuery()
+				.processInstanceId(preRef.getProcessInstanceId()).includeProcessVariables()
+				.singleResult();
+			if(instance != null) {//浣跨敤浠诲姟娲惧伐娴佺▼鐨勫彉閲�
+				vars = new HashMap<>(instance.getProcessVariables());
+			}
 
+		}
+		if(vars == null){
+			vars = new HashMap<>();
+		}
+		/*
 		String programmer = null;
 		String checker = null;
 		String senior = null;
@@ -100,10 +108,10 @@
 				senior = task.getAssignee();
 			}
 
-		}
-		vars.put("programmer",programmer);
-		vars.put("checker",checker);
-		vars.put("senior",senior);
+		}*/
+		//vars.put("programmer",programmer);
+		//vars.put("checker",checker);
+		//vars.put("senior",senior);
 
 		String businessKey = "0";//涓氬姟琛╧ey
 
@@ -115,7 +123,6 @@
 		ref.setNcProgramId(prog.getId());
 
 		processProgRefService.save(ref);
-
 	}
 
 	/**
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowBusinessService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowBusinessService.java
index edbf158..a2291e7 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowBusinessService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowBusinessService.java
@@ -17,10 +17,13 @@
 import org.springblade.core.tool.utils.*;
 
 import org.springblade.mdm.basesetting.machine.MachineService;
+import org.springblade.mdm.flow.constants.FlowContants;
 import org.springblade.mdm.flow.entity.MdmFlowProcess;
 import org.springblade.mdm.flow.util.MdmFlowCache;
 import org.springblade.mdm.flow.vo.FlowVO;
+import org.springblade.mdm.program.entity.NcProgram;
 import org.springblade.mdm.program.entity.ProcessProgRef;
+import org.springblade.mdm.program.service.NcProgramService;
 import org.springblade.mdm.program.service.ProcessProgRefService;
 import org.springblade.system.feign.IUserClient;
 import org.springblade.system.pojo.entity.User;
@@ -48,7 +51,7 @@
 	private final IUserClient userClient;
 	private final ProcessProgRefService processProgRefService;
 	private final ApproveRecordService approveRecordService;
-
+	private final NcProgramService ncProgramService;
 	/**
 	 * 鏌ヨ鎴戠殑娴佺▼(涓汉寰呭姙鍒楄〃)
 	 * @param page 鍒嗛〉淇℃伅
@@ -290,6 +293,7 @@
 
 			flow.setProcessDefinitionId(task.getProcessDefinitionId());
 
+			flow.setFile(getNcFileString(String.valueOf(task.getProcessVariables().get("programIds"))));
 			//flow.setProcessDefinitionKey(processDefinition.getKey());
 			//flow.setProcessDefinitionVersion(processDefinition.getVersion());
 			flow.setProcessInstanceId(task.getProcessInstanceId());
@@ -474,10 +478,10 @@
 
 	/**
 	 * 宸插畬缁撶殑娴佺▼鍒嗛〉鍒楄〃
-	 * @param page
+	 * @param page 鍒嗛〉淇℃伅
 	 * @param createTimeBegin
 	 * @param createTimeEnd
-	 * @param keyword
+	 * @param keyword 鍏抽敭瀛�
 	 * @return
 	 */
 	public IPage<FlowVO> selectFinishedPage(IPage<FlowVO> page, String processDefinitionKey,LocalDate createTimeBegin, LocalDate createTimeEnd, String keyword) {
@@ -511,6 +515,7 @@
 			vo.setProcessCreateTime(processInstance.getStartTime());
 			vo.setHistoryTaskEndTime(processInstance.getEndTime());
 
+			vo.setFile(getNcFileString(String.valueOf(processInstance.getProcessVariables().get(FlowContants.PROGRAM_IDS_KEY))));
 			records.add(vo);
 		}
 
@@ -518,4 +523,13 @@
 
 		return page;
 	}
+
+	String getNcFileString(String programIds){
+		String result = "";
+		if(Func.isNotEmpty(programIds)) {
+			List<NcProgram> progList= ncProgramService.listByIds(Func.toLongList(programIds));
+			result = String.join(",",progList.stream().map(NcProgram::getName).toList());
+		}
+		return result;
+	}
 }
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/FlowVO.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/FlowVO.java
index 3de7500..ada241f 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/FlowVO.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/FlowVO.java
@@ -51,68 +51,57 @@
 	/**
 	 * 浠诲姟鍚嶇О
 	 */
+	@Schema(description = "浠诲姟鍚嶇О/褰撳墠鑺傜偣鍚嶇О")
 	private String taskName;
-	/**
-	 * 浠诲姟瀹氫箟Key
-	 */
+
+	@Schema(description = "浠诲姟瀹氫箟Key")
 	private String taskDefinitionKey;
-	/**
-	 * 浠诲姟鎵ц浜虹紪鍙�
-	 */
+
+	@Schema(description = "浠诲姟鎵ц浜虹紪鍙�")
 	private String assignee;
-	/**
-	 * 浠诲姟鎵ц浜哄悕绉�
-	 */
+
+	@Schema(description = "浠诲姟鎵ц浜哄悕绉�")
 	private String assigneeName;
-	/**
-	 * 娴佺▼鍒嗙被
-	 */
+
+	@Schema(description = "娴佺▼鍒嗙被")
 	private String category;
-	/**
-	 * 娴佺▼鍒嗙被鍚�
-	 */
+
+	@Schema(description = "娴佺▼鍒嗙被鍚�")
 	private String categoryName;
 	/**
 	 * 鍒涘缓鏃堕棿
 	 */
-	@Schema(description = "浠诲姟鍒涘缓鏃堕棿")
+	@Schema(description = "褰撳墠鑺傜偣/浠诲姟鍒涘缓鏃堕棿")
 	private Date createTime;
-	/**
-	 * 缁撴潫鏃堕棿
-	 */
+
+	@Schema(description = "缁撴潫鏃堕棿")
 	private Date endTime;
 
 	@Schema(description = "娴佺▼鍒涘缓鏃堕棿")
 	private Date processCreateTime;
 	@Schema(description = "娴佺▼鍚姩鐢ㄦ埛濮撳悕")
 	private String startUserName;
-	/**
-	 * 绛炬敹鏃堕棿
-	 */
+
+	@Schema(description = "绛炬敹鏃堕棿")
 	private Date claimTime;
 	/**
 	 * 鍘嗗彶浠诲姟缁撴潫鏃堕棿
 	 */
 	private Date historyTaskEndTime;
-	/**
-	 * 鎵цID
-	 */
+
+	@Schema(description = "鎵цID")
 	private String executionId;
-	/**
-	 * 娴佺▼瀹炰緥ID
-	 */
+
+	@Schema(description = "娴佺▼瀹炰緥ID")
 	private String processInstanceId;
-	/**
-	 * 娴佺▼ID
-	 */
+
+	@Schema(description = "娴佺▼ID")
 	private String processDefinitionId;
-	/**
-	 * 娴佺▼鏍囪瘑
-	 */
+
+	@Schema(description = "娴佺▼鏍囪瘑")
 	private String processDefinitionKey;
-	/**
-	 * 娴佺▼鍚�
-	 */
+
+	@Schema(description = "娴佺▼鍚�")
 	private String processDefinitionName;
 	/**
 	 * 娴佺▼鐗堟湰
@@ -162,6 +151,9 @@
 	 * 浠诲姟鐘舵��
 	 */
 	private String status;
+
+	@Schema(description = "鏂囦欢(鏁版帶绋嬪簭鏂囦欢)")
+	private String file;
 	/**
 	 * 浠诲姟鎰忚
 	 */

--
Gitblit v1.9.3