From ceb4fde6edb1f73bc45f54129432ec8068875b6d Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期二, 17 六月 2025 21:24:22 +0800
Subject: [PATCH] todo-list接口补充字段

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/FlowVO.java                      |    7 +++
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/vo/NcNodeVO.java                 |    7 ++-
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/TaskTraceVO.java                 |    5 +-
 blade-service/blade-mdm/src/main/resources/processesbpmn/dispatch.bpmn20.xml                       |   10 ++--
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowMgrController.java   |   27 ++++++++++++-
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcNodeController.java |   14 ++++--
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowBusinessService.java    |   15 ++++++-
 7 files changed, 65 insertions(+), 20 deletions(-)

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowMgrController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowMgrController.java
index f742e48..cb6f60d 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowMgrController.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowMgrController.java
@@ -7,7 +7,10 @@
 import io.swagger.v3.oas.annotations.tags.Tag;
 import jakarta.servlet.http.HttpServletResponse;
 import lombok.extern.slf4j.Slf4j;
+import org.flowable.engine.HistoryService;
 import org.flowable.engine.TaskService;
+import org.flowable.engine.task.Comment;
+import org.flowable.task.api.history.HistoricTaskInstance;
 import org.springblade.core.excel.util.ExcelUtil;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
@@ -37,6 +40,9 @@
 	@Autowired
 	private FlowBusinessService businessService;
 
+	@Autowired
+	private HistoryService historyService;
+
 	@GetMapping("overtime-list")
 	@ApiOperationSupport(order = 3)
 	@Operation(summary = "瓒呮椂鏌ヨ", description = "鏌ヨ鎵�鏈夎秴鏃朵换鍔�")
@@ -65,10 +71,25 @@
 	}
 
 
-
+	@Operation(summary = "娴佺▼杞ㄨ抗", description = "娴佺▼杞ㄨ抗")
 	@GetMapping("process-trace")
-	public R<List<TaskTraceVO>> processTrace(long processInstanceId){
-		return R.data(Collections.emptyList());
+	public R<List<TaskTraceVO>> processTrace(String processInstanceId){
+		List<TaskTraceVO> result = new ArrayList<>();
+		List<HistoricTaskInstance> hisTasks = historyService.createHistoricTaskInstanceQuery()
+			.processInstanceId(processInstanceId).orderByTaskCreateTime().desc().list();
+// 鎵规敞淇℃伅
+		List<Comment> comments;
+		for (HistoricTaskInstance hisTask : hisTasks) {
+			TaskTraceVO vo = new TaskTraceVO();
+			BeanUtils.copyProperties(hisTask, vo);
+			comments = taskService.getTaskComments(hisTask.getId());
+			if(!comments.isEmpty()) {
+				vo.setComment(comments.get(0).getFullMessage());
+			}
+			result.add(vo);
+		}
+
+		return R.data(result);
 	}
 
 
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 04904a4..33bcb27 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
@@ -9,12 +9,15 @@
 import org.flowable.task.api.Task;
 import org.flowable.task.api.TaskQuery;
 import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.*;
 
 import org.springblade.mdm.basesetting.machine.MachineService;
 import org.springblade.mdm.flow.entity.MdmFlowProcess;
 import org.springblade.mdm.flow.util.MdmFlowCache;
 import org.springblade.mdm.flow.vo.FlowVO;
+import org.springblade.system.feign.IUserClient;
+import org.springblade.system.pojo.entity.User;
 import org.springframework.stereotype.Service;
 
 import java.time.LocalDate;
@@ -33,7 +36,7 @@
 
 	private final TaskService taskService;
 	private final HistoryService historyService;
-	private final MachineService machineService;
+	private final IUserClient userClient;
 
 	public IPage<FlowVO> selectTodoPage(IPage<FlowVO> page, LocalDate createTimeBegin, LocalDate createTimeEnd, String keyword) {
 		//String taskUser = TaskUtil.getTaskUser();
@@ -263,12 +266,20 @@
 
 			flow.setProcessDefinitionId(task.getProcessDefinitionId());
 
-
 			//flow.setProcessDefinitionKey(processDefinition.getKey());
 			//flow.setProcessDefinitionVersion(processDefinition.getVersion());
 			flow.setProcessInstanceId(task.getProcessInstanceId());
 
+			// 鏌ヨ娴佺▼瀹炰緥鍒涘缓鏃堕棿
+			HistoricProcessInstance historicProcess = historyService.createHistoricProcessInstanceQuery()
+				.processInstanceId(task.getProcessInstanceId())
+				.singleResult();
+			flow.setProcessCreateTime(historicProcess.getStartTime());
 
+			R<User> ru = userClient.userInfoById(Long.valueOf(historicProcess.getStartUserId()));
+			if(ru.isSuccess()) {
+				flow.setStartUserName(ru.getData().getName());
+			}
 			MdmFlowProcess processDefinition = MdmFlowCache.getProcessDefinition(task.getProcessDefinitionId());
 
 			flow.setCategory(processDefinition.getCategory());
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 96e2887..3de7500 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
@@ -25,6 +25,7 @@
  */
 package org.springblade.mdm.flow.vo;
 
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import org.springblade.flow.core.constant.ProcessConstant;
 
@@ -74,11 +75,17 @@
 	/**
 	 * 鍒涘缓鏃堕棿
 	 */
+	@Schema(description = "浠诲姟鍒涘缓鏃堕棿")
 	private Date createTime;
 	/**
 	 * 缁撴潫鏃堕棿
 	 */
 	private Date endTime;
+
+	@Schema(description = "娴佺▼鍒涘缓鏃堕棿")
+	private Date processCreateTime;
+	@Schema(description = "娴佺▼鍚姩鐢ㄦ埛濮撳悕")
+	private String startUserName;
 	/**
 	 * 绛炬敹鏃堕棿
 	 */
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/TaskTraceVO.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/TaskTraceVO.java
index e34c147..d158767 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/TaskTraceVO.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/TaskTraceVO.java
@@ -5,6 +5,7 @@
 
 import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.util.Date;
 
 @Data
 @Schema(description = "娴佺▼杞ㄨ抗鏁版嵁")
@@ -15,8 +16,8 @@
 	@Schema(description = "鎵规敞")
 	private String comment;
 	@Schema(description = "寮�濮嬫椂闂�")
-	private LocalDateTime startTime;
+	private Date createTime;
 	@Schema(description = "瀹屾垚鏃堕棿")
-	private LocalDateTime completeTime;
+	private Date endTime;
 
 }
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcNodeController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcNodeController.java
index d636152..df7d3da 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcNodeController.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcNodeController.java
@@ -30,22 +30,26 @@
 	 * 鏂板
 	 */
 	@PostMapping("/save")
-	@Operation(summary = "鏂板", description = "鑺傜偣淇℃伅")
+	@Operation(summary = "鏂板鑺傜偣", description = "鑺傜偣淇℃伅")
 	public R<Boolean> save(@RequestBody NcNodeVO vo) {
 
 		ncNodeService.saveNcCode(vo);
 		return R.<Boolean>status(true);
 	}
 
-	/**
-	 * 鏂板
-	 */
+
 	@PostMapping("/update")
-	@Operation(summary = "淇敼", description = "鑺傜偣淇℃伅")
+	@Operation(summary = "淇敼鑺傜偣")
 	public R<Boolean> update(@RequestBody NcNodeVO vo) {
 
 		ncNodeService.updateNcCode(vo);
 		return R.<Boolean>status(true);
 	}
 
+	@PostMapping("/remove")
+	@Operation(summary = "鍒犻櫎鑺傜偣")
+	public R<Boolean> remove(Long id) {
+		ncNodeService.removeById(id);
+		return R.<Boolean>status(true);
+	}
 }
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/vo/NcNodeVO.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/vo/NcNodeVO.java
index 735dc89..deb120d 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/vo/NcNodeVO.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/vo/NcNodeVO.java
@@ -1,5 +1,6 @@
 package org.springblade.mdm.program.vo;
 
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Getter;
 import lombok.Setter;
 import org.springblade.mdm.commons.vo.BaseVO;
@@ -7,11 +8,11 @@
 @Setter
 @Getter
 public class NcNodeVO extends BaseVO {
+	@Schema(description = "鑺傜偣鍚嶇О")
 	private String name;
+	@Schema(description = "鐖禝D")
 	private Long parentId;
-	/**
-	 * 绋嬪簭鍖呭悕
- 	 */
+	@Schema(description = "鑺傜偣绫诲瀷锛屽瓧鍏�(绋嬪簭鑺傜偣绫诲瀷nc_node_type)")
 	private String nodeType;
 
 }
diff --git a/blade-service/blade-mdm/src/main/resources/processesbpmn/dispatch.bpmn20.xml b/blade-service/blade-mdm/src/main/resources/processesbpmn/dispatch.bpmn20.xml
index ac40b66..b2db141 100644
--- a/blade-service/blade-mdm/src/main/resources/processesbpmn/dispatch.bpmn20.xml
+++ b/blade-service/blade-mdm/src/main/resources/processesbpmn/dispatch.bpmn20.xml
@@ -24,15 +24,15 @@
       <conditionExpression xsi:type="tFormalExpression">${approve=='Y'}</conditionExpression>
     </sequenceFlow>
     <serviceTask id="cureCheckServiceTask" flowable:exclusive="true" name="鍥哄寲绋嬪簭妫�鏌ユ湇鍔′换鍔�" flowable:expression="cureProgramCheckTask.execute(execution)"/>
-    <userTask id="sid-015ac835-1083-489a-9496-97dbb9432d09" name="妫�鏌ョ▼搴忔槸鍚﹀彲鐢�" flowable:assignee="${assignee}"/>
+    <userTask id="confirmIsUseableTask" name="妫�鏌ョ▼搴忔槸鍚﹀彲鐢�" flowable:assignee="${assignee}"/>
     <sequenceFlow id="sid-46ccac64-2d48-4933-88a6-f2941ae131dd" sourceRef="teamLeaderTask" targetRef="programmingTask">
       <conditionExpression xsi:type="tFormalExpression">${approve=='Y' &amp;&amp; hasCuredProgram=='N'}</conditionExpression>
     </sequenceFlow>
     <sequenceFlow id="sid-af92e6ab-bc80-43ed-8b09-1d3ec54cc9e7" sourceRef="teamLeaderTask" targetRef="cureCheckServiceTask">
       <conditionExpression xsi:type="tFormalExpression">${approve=='Y' &amp;&amp; hasCuredProgram=='Y'}</conditionExpression>
     </sequenceFlow>
-    <sequenceFlow id="sid-353381d5-35c7-47b0-bf5b-2bafe865ab5e" sourceRef="cureCheckServiceTask" targetRef="sid-015ac835-1083-489a-9496-97dbb9432d09"/>
-    <sequenceFlow id="sid-d144dad0-dc94-4a2b-96d6-9d8451b05ec1" sourceRef="sid-015ac835-1083-489a-9496-97dbb9432d09" targetRef="sid-82237034-5cb2-45c7-9a74-e2d5abb3b398" name="鍥哄寲绋嬪簭鍙敤">
+    <sequenceFlow id="sid-353381d5-35c7-47b0-bf5b-2bafe865ab5e" sourceRef="cureCheckServiceTask" targetRef="confirmIsUseableTask"/>
+    <sequenceFlow id="sid-d144dad0-dc94-4a2b-96d6-9d8451b05ec1" sourceRef="confirmIsUseableTask" targetRef="sid-82237034-5cb2-45c7-9a74-e2d5abb3b398" name="鍥哄寲绋嬪簭鍙敤">
       <conditionExpression>${approve=='Y'}</conditionExpression>
     </sequenceFlow>
     <sequenceFlow id="sid-d4133565-1a45-4bb6-b603-9b9e4db1cdbb" sourceRef="approveTask" targetRef="check">
@@ -46,7 +46,7 @@
       <conditionExpression xsi:type="tFormalExpression">${processEditionEqual=='N'}</conditionExpression>
     </sequenceFlow>
     <sequenceFlow id="sid-598e1dbe-85b3-40d0-89c8-bd2580ecbfc5" sourceRef="emptyUpgradeProcessEdtionServiceTask" targetRef="check"/>
-    <sequenceFlow id="sid-80b50f96-7601-4ba2-8c32-968923170d25" sourceRef="sid-015ac835-1083-489a-9496-97dbb9432d09" targetRef="programmingTask">
+    <sequenceFlow id="sid-80b50f96-7601-4ba2-8c32-968923170d25" sourceRef="confirmIsUseableTask" targetRef="programmingTask">
       <conditionExpression>${approve=='N'}</conditionExpression>
     </sequenceFlow>
     <serviceTask id="emptyUpgradeProcessEdtionServiceTask" flowable:exclusive="true" name="绌哄崌鐗�" flowable:expression="programEmptyUpgradeProcessEdtionTask.execute(execution)"/>
@@ -98,7 +98,7 @@
       <bpmndi:BPMNShape id="shape-8455618d-c1b9-4e6a-bca4-de965cc81633" bpmnElement="cureCheckServiceTask">
         <omgdc:Bounds x="-275.0" y="37.500004" width="65.0" height="39.999996"/>
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="shape-8f7064fc-4838-44cc-bf6d-ca15932a1e2e" bpmnElement="sid-015ac835-1083-489a-9496-97dbb9432d09">
+      <bpmndi:BPMNShape id="shape-8f7064fc-4838-44cc-bf6d-ca15932a1e2e" bpmnElement="confirmIsUseableTask">
         <omgdc:Bounds x="-165.0" y="37.5" width="55.0" height="40.0"/>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="edge-0408fc3c-c133-40e3-9006-c315b12e9790" bpmnElement="sid-46ccac64-2d48-4933-88a6-f2941ae131dd">

--
Gitblit v1.9.3