From 7f62f1ebb6fbea285a79bcfe7a83a8a94181a8ee Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期二, 12 八月 2025 14:34:59 +0800
Subject: [PATCH] 批量审核接口改进
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/BatchDispatchService.java | 42 +++++++++++++--------
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowCommonService.java | 20 ++++++++++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/MyFlowController.java | 16 +------
3 files changed, 49 insertions(+), 29 deletions(-)
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 e1fa5b8..c744236 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
@@ -42,6 +42,8 @@
@Autowired
private FlowTransferService flowTransferService;
+ @Autowired
+ private FlowCommonService flowCommonService;
/**
* 寰呭姙浠诲姟鍒楄〃椤�
*/
@@ -106,18 +108,6 @@
@ApiOperationSupport(order = 3)
@Operation(summary = "涓婁竴姝ュ鎵逛汉鏌ヨ", description = "涓婁竴姝ュ鎵逛汉鏌ヨ锛岃繑鍥炲鎵逛汉id")
public R<String> previusApproveUserId(@Parameter(description = "閮ㄩ棬ID") String processInstanceId) {
- // 鑾峰彇鍘嗗彶浠诲姟瀹炰緥
- List<HistoricTaskInstance> historicTasks = historyService.createHistoricTaskInstanceQuery()
- .processInstanceId(processInstanceId)
- .orderByHistoricTaskInstanceEndTime().asc()
- .list();
-
- // 鑾峰彇涓婁竴涓凡瀹屾垚鐨勪换鍔�
- String assignee = "";
- if(!historicTasks.isEmpty()) {
- assignee = historicTasks.get(historicTasks.size() - 1).getAssignee();
- }
- return R.data(assignee);
-
+ return R.data(this.flowCommonService.previusAssignee(processInstanceId));
}
}
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 32556d7..ef6edea 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
@@ -7,6 +7,7 @@
import org.flowable.engine.history.HistoricProcessInstance;
import org.flowable.engine.runtime.ProcessInstance;
import org.flowable.task.api.Task;
+import org.flowable.task.api.history.HistoricTaskInstance;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.StringUtil;
@@ -15,6 +16,7 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestBody;
+import java.util.List;
import java.util.Map;
@AllArgsConstructor
@@ -103,7 +105,25 @@
return historicInstance != null && historicInstance.getEndTime() == null;
}
+ /**
+ * 涓婁竴姝ュ鐞嗕汉
+ * @param processInstanceId 娴佺▼瀹炰緥id
+ * @return assignee
+ */
+ public String previusAssignee(String processInstanceId) {
+ // 鑾峰彇鍘嗗彶浠诲姟瀹炰緥
+ List<HistoricTaskInstance> historicTasks = historyService.createHistoricTaskInstanceQuery()
+ .processInstanceId(processInstanceId)
+ .orderByHistoricTaskInstanceEndTime().asc()
+ .list();
+ // 鑾峰彇涓婁竴涓凡瀹屾垚鐨勪换鍔�
+ String assignee = "";
+ if(!historicTasks.isEmpty()) {
+ assignee = historicTasks.get(historicTasks.size() - 1).getAssignee();
+ }
+ return assignee;
+ }
}
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..0963e59 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
@@ -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