From c4574637d156f8ac2c00d9da5cb07e2e7646ac20 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期日, 10 八月 2025 01:40:30 +0800
Subject: [PATCH] 增加个人已办列表

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/constants/FlowContants.java        |    5 +++++
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/TaskAssignVO.java               |    2 ++
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowProgramProperties.java |    3 +++
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowCommonService.java     |    4 +++-
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java      |    3 +++
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/MyFlowController.java   |    9 +++++++++
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowBusinessService.java   |   34 +++++++++++++++++++++-------------
 7 files changed, 46 insertions(+), 14 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
index 3845ae9..2da26f7 100644
--- 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
@@ -105,4 +105,9 @@
 	 * 浠诲姟杞﹂棿
 	 */
 	public static final String WORK_SHOP = "workShop";
+
+	/**
+	 * 鍋忕鍗曞彿
+	 */
+	public static final String DEVIATION = "deviation";
 }
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/MyFlowController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/MyFlowController.java
index 0b83eff..3654549 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/MyFlowController.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/MyFlowController.java
@@ -51,6 +51,15 @@
 
 		return R.data(pages);
 	}
+	@GetMapping("done-list")
+	@ApiOperationSupport(order = 3)
+	@Operation(summary = "褰撳墠鐢ㄦ埛宸插姙浠诲姟鍒嗛〉", description = "浼犲叆娴佺▼淇℃伅")
+	public R<IPage<FlowVO>> doneList(@Parameter(description = "鍏抽敭瀛�") String keyword, @Parameter(description = "鍒涘缓鏃堕棿寮�濮�") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime createTimeBegin, @Parameter(description = "鍒涘缓鏃堕棿鎴")  @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime createTimeEnd, Query query) {
+		IPage<FlowVO> pages = businessService.selectDonePage(Condition.getPage(query),"" ,createTimeBegin,createTimeEnd,keyword);
+
+		return R.data(pages);
+	}
+
 
 	/**
 	 * 寰呭姙浠诲姟鍒楄〃椤�
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java
index 0d6b29f..c0cbb4d 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java
@@ -65,6 +65,9 @@
 		vars.put("planLockDays",startVO.getPlanLockDays());
 		vars.put(FlowContants.PRODUCT_MODEL,startVO.getProductModel());
 
+		if(StringUtils.isNotBlank(startVO.getDeviation())) {
+			vars.put(FlowContants.DEVIATION, startVO.getDeviation());//鍋忕鍗�
+		}
 		String programPkgName = NcNodeService.genProgramName(startVO.getDrawingNo(),startVO.getProcessNo());
 		vars.put(FlowContants.PROGRAM_PACKAGE_NAME,programPkgName);
 		NcNode curedProgramPackage = ncNodeService.getLastEditionCuredProgramPackage(programPkgName);
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 590d1c2..35394e9 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
@@ -594,29 +594,37 @@
 			.listPage((int)firstResult, (int)page.getSize());
 
 		List<FlowVO> records = new LinkedList<>();
-		Map<String,String> processDefKeyMap = new HashMap<>();
-
+		//Map<String,String> processDefKeyMap = new HashMap<>();//浣跨敤TaskDefinitionKey缂撳瓨ProcessDefinitionKey
+		//Map<String,String> processDefNameMap = new HashMap<>();//浣跨敤TaskDefinitionKey缂撳瓨ProcessDefinitionName
+		Map<String,String> startUserMap = new HashMap<>();//浣跨敤userId缂撳瓨鍏跺鍚�
 		for(HistoricTaskInstance hisTask : processes) {
 			FlowVO vo = new FlowVO();
+
+
 			HistoricProcessInstance processInstance = historyService
 				.createHistoricProcessInstanceQuery()
 				.processInstanceId(hisTask.getProcessInstanceId())
 				.singleResult();
-			vo.setProcessDefinitionKey(processInstance.getProcessDefinitionKey());
+
+			if(startUserMap.containsKey(processInstance.getStartUserId())) {
+				vo.setStartUserName(startUserMap.get(processInstance.getStartUserId()));
+			}else {
+				R<User> ru = userClient.userInfoById(Long.valueOf(processInstance.getStartUserId()));
+				if (ru.isSuccess()) {
+					vo.setStartUserName(ru.getData().getName());
+					startUserMap.put(processInstance.getStartUserId(),ru.getData().getName());
+				}
+			}
+			vo.setProcessCreateTime(processInstance.getStartTime());
+
 			vo.setProcessInstanceId(hisTask.getProcessInstanceId());
-			//vo.setProcessDefinitionName(processInstance.getProcessDefinitionName());
-
-
+			vo.setTaskName(hisTask.getName());
+			vo.setCreateTime(hisTask.getCreateTime());
+			vo.setEndTime(hisTask.getEndTime());
 			vo.setVariables(hisTask.getProcessVariables());
 
-			//vo.setTaskDefinitionKey();
-			//hisTask.getCreateTime()
-			Date processStartTime = historyService.createHistoricProcessInstanceQuery()
-				.processInstanceId(hisTask.getProcessInstanceId())
-				.singleResult()
-				.getStartTime();
 
-			vo.setProcessCreateTime(processStartTime);
+			vo.setProcessCreateTime(processInstance.getStartTime());
 			vo.setHistoryTaskEndTime(hisTask.getEndTime());
 
 			vo.setFile(getFileString(hisTask.getProcessInstanceId()));
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowCommonService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowCommonService.java
index 22d8e28..32556d7 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowCommonService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowCommonService.java
@@ -63,7 +63,9 @@
 		programProperties.setCraftEdition(String.valueOf(vars.get(FlowContants.CRAFT_EDITION)));
 		programProperties.setHasCuredProgram(String.valueOf(vars.get(FlowContants.HAS_CURED_PROGRAM)));
 		programProperties.setIsProcessEditionSame(String.valueOf(vars.get(FlowContants.IS_PROCESS_EDITION_SAME)));
-
+		if(vars.containsKey(FlowContants.DEVIATION)) {
+			programProperties.setDeviation(String.valueOf(vars.get(FlowContants.DEVIATION)));
+		}
 		if(vars.containsKey(FlowContants.CURED_NODE_ID)){
 			programProperties.setCuredNodeId(Func.toLong(vars.get(FlowContants.CURED_NODE_ID)));
 		}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowProgramProperties.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowProgramProperties.java
index f6aa2b7..a39ca58 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowProgramProperties.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowProgramProperties.java
@@ -53,4 +53,7 @@
 	private String processDefinitionKey;
 	@Schema(description = "宸ュ簭鐗堟鏄惁涓�鑷�")
 	private String isProcessEditionSame;
+
+	@Schema(description = "鍋忕鍗曞彿")
+	private String deviation;
 }
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/TaskAssignVO.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/TaskAssignVO.java
index 2410fc9..9050a5e 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/TaskAssignVO.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/TaskAssignVO.java
@@ -39,5 +39,7 @@
 	@Schema(description = "璁″垝寮�宸ユ椂闂�")
 	private LocalDate planStartTime;
 
+	@Schema(description = "鍋忕鍗曞彿")
+	private String deviation;
 
 }

--
Gitblit v1.9.3