From 291ef3947565e8a20889e04836c04a8b6e4369dd Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期一, 11 八月 2025 10:48:58 +0800
Subject: [PATCH] 批量处理参数改为payload方式
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/DispatchController.java | 9 +-
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/BatchDispatchService.java | 48 ++++++++++------
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramExportDNCService.java | 25 +++++---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/BatchDispatchVO.java | 21 +++++++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/utils/FileContentUtil.java | 20 ++++++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/test/MyTestController.java | 15 +++++
6 files changed, 106 insertions(+), 32 deletions(-)
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 4818d2a..b6095a3 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
@@ -30,6 +30,7 @@
import org.springblade.mdm.flow.service.execute.BatchDispatchService;
import org.springblade.mdm.flow.service.execute.DefaultFlowCompleteService;
import org.springblade.mdm.flow.service.execute.TryFlowCompleteService;
+import org.springblade.mdm.flow.vo.BatchDispatchVO;
import org.springblade.mdm.flow.vo.TaskAssignVO;
import org.springblade.mdm.program.entity.ProcessProgRef;
import org.springblade.mdm.program.service.NcNodeAutoCreateService;
@@ -109,9 +110,9 @@
@Operation(summary = "鎵嬪姩鎵归噺娲惧伐", description = "缁勯暱鎵嬪姩鎵归噺娲惧伐")
@PostMapping("batchDispatch")
- public R<Void> batchDispatch(String[] taskIds, String[] processInstanceIds, @Parameter(name = "comment", description = "澶囨敞")String comment,@Parameter(name = "assignee", description = "澶勭悊浜篿d") String assignee) {
+ public R<Void> batchDispatch(@RequestBody BatchDispatchVO batchDispatchVO) {
try {
- dispatchService.batchCompleteTask(taskIds, processInstanceIds, comment, assignee);
+ dispatchService.batchCompleteTask(batchDispatchVO);
return R.success("娴佺▼鎻愪氦鎴愬姛");
}catch(Exception e){
return R.fail(e.getMessage());
@@ -121,9 +122,9 @@
@Operation(summary = "鑷姩鎵归噺娲惧伐", description = "缁勯暱鎵归噺娲惧伐锛屽悗绔嚜鍔ㄦ煡鎵惧鐞嗕汉")
@PostMapping("batchDispatchAuto")
- public R<Void> batchDispatchAuto(String[] taskIds, String[] processInstanceIds, @Parameter(name = "comment", description = "澶囨敞")String comment) {
+ public R<Void> batchDispatchAuto(@RequestBody BatchDispatchVO batchDispatchVO) {
try {
- dispatchService.batchAutoCompleteTask(taskIds, processInstanceIds, comment);
+ dispatchService.batchAutoCompleteTask(batchDispatchVO);
return R.success("娴佺▼鎻愪氦鎴愬姛");
}catch(Exception e){
return R.fail(e.getMessage());
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 4a5d95d..b44505f 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
@@ -9,6 +9,7 @@
import org.springblade.mdm.flow.constants.FlowContants;
import org.springblade.mdm.flow.service.ApproveRecordService;
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;
@@ -27,29 +28,23 @@
@Autowired
private TaskService taskService;
@Transactional
- public void batchCompleteTask(String[] taskIds, String[] processInstanceIds, String comment,String assignee) {
- if(StringUtils.isBlank(assignee)){
+ public void batchCompleteTask(BatchDispatchVO batchDispatchVO) {
+ //String[] taskIds, String[] processInstanceIds, String comment, String assignee
+ if(StringUtils.isBlank(batchDispatchVO.getAssignee())){
throw new ServiceException("缂哄皯澶勭悊浜哄弬鏁�");
}
- if(taskIds == null || taskIds.length == 0){
- throw new ServiceException("浠诲姟id缁勪负绌�");
- }
-
- if(processInstanceIds == null || processInstanceIds.length == 0){
- throw new ServiceException("娴佺▼瀹炰緥id缁勪负绌�");
- }
- if(taskIds.length != processInstanceIds.length){
- throw new ServiceException("浠诲姟id涓庢祦绋嬪疄渚媔d鏁伴噺涓嶄竴鑷�");
- }
+ checkBatchParameter(batchDispatchVO);
Map<String, Object> variables = Kv.create();
- variables.put("assignee", assignee);
+ variables.put("assignee", batchDispatchVO.getAssignee());
variables.put("approve", FlowContants.Y);//榛樿灏辨槸閫氳繃
String taskId;
String processInstanceId;
+ String comment = batchDispatchVO.getComment();
+ String[] taskIds = batchDispatchVO.getTaskIds();
for(int i=0;i<taskIds.length;i++){
taskId = taskIds[i];
- processInstanceId = processInstanceIds[i];
+ processInstanceId = batchDispatchVO.getProcessInstanceIds()[i];
Task task = taskService.createTaskQuery()
.taskId(taskId)
@@ -66,11 +61,28 @@
/**
* 鑷姩鎵归噺娲惧伐
- * @param taskIds
- * @param processInstanceIds
- * @param comment
+ * @param batchDispatchVO 鎵归噺澶勭悊鍙傛暟
*/
- public void batchAutoCompleteTask(String[] taskIds, String[] processInstanceIds, String comment) {
+ public void batchAutoCompleteTask(BatchDispatchVO batchDispatchVO) {
//TODO 甯﹀疄鐜�
+ checkBatchParameter(batchDispatchVO);
+ }
+
+ /**
+ * 楠岃瘉鎵归噺澶勭悊鍙傛暟
+ * @param batchDispatchVO 鎵归噺澶勭悊鍙傛暟瀵硅薄
+ */
+ void checkBatchParameter(BatchDispatchVO batchDispatchVO){
+ String[] taskIds = batchDispatchVO.getTaskIds();
+ if(taskIds == null || taskIds.length == 0){
+ throw new ServiceException("浠诲姟id缁勪负绌�");
+ }
+ String[] processInstanceIds = batchDispatchVO.getProcessInstanceIds();
+ if(processInstanceIds == null || processInstanceIds.length == 0){
+ throw new ServiceException("娴佺▼瀹炰緥id缁勪负绌�");
+ }
+ if(taskIds.length != processInstanceIds.length){
+ throw new ServiceException("浠诲姟id涓庢祦绋嬪疄渚媔d鏁伴噺涓嶄竴鑷�");
+ }
}
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/BatchDispatchVO.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/BatchDispatchVO.java
new file mode 100644
index 0000000..a442b56
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/BatchDispatchVO.java
@@ -0,0 +1,21 @@
+package org.springblade.mdm.flow.vo;
+
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDate;
+
+@Data
+@Schema(description = "浠诲姟璁″垝")
+public class BatchDispatchVO {
+ @Schema(description = "浠诲姟id鏁扮粍")
+ private String[] taskIds;
+ @Schema(description = "娴佺▼瀹炰緥id鏁扮粍")
+ private String[] processInstanceIds;
+ @Schema(description = "澶囨敞")
+ private String comment;
+ @Schema(description = "澶勭悊浜篿d")
+ private String assignee;
+
+}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramExportDNCService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramExportDNCService.java
index a0a2e65..15b31f1 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramExportDNCService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramExportDNCService.java
@@ -89,7 +89,7 @@
addProgramPackageToZip(zipOut,approved);
}
- addDataJson(zipOut, programPackageNodeIdList);
+ //addDataJson(zipOut, programPackageNodeIdList);
}
os.close();
@@ -152,7 +152,11 @@
* @return
*/
InputStream addSendDirAnnotation(InputStream inputStream,Machine machine,List<Dict> annotationList) throws IOException {
- return FileContentUtil.insertLine(inputStream,1,generateAnnotation(machine.getProgSendDir()==null? StringUtil.EMPTY:machine.getProgSendDir(),machine.getMachineGroupCode(),annotationList));
+ //妫�娴嬬浜岃鏄惁鏄矾寰�
+ String annotationText = generateAnnotation(machine.getProgSendDir()==null? StringUtil.EMPTY:machine.getProgSendDir(),machine.getMachineGroupCode(),annotationList);
+
+ //TODO 鏀瑰垽鏂鍐呭
+ return FileContentUtil.insertLine(inputStream,1,annotationText);
}
/**
@@ -193,11 +197,12 @@
* 瀵煎叆鏁版嵁鏂囦欢
* @param zipOut
*/
+ /*
void addDataJson(ZipOutputStream zipOut, List<Long> programPackageNodeIdList) throws IOException {
addNodeDataJson(zipOut, programPackageNodeIdList);
addApproveRecordDataJson(zipOut, programPackageNodeIdList);
}
-
+ */
/**
* zip淇濋噸鍔犲叆鑺傜偣鐨勬暟鎹�
@@ -205,6 +210,7 @@
* @param pkgNodeIdList
* @throws IOException
*/
+ /*
void addNodeDataJson(ZipOutputStream zipOut,List<Long> pkgNodeIdList) throws IOException {
List<NcNode> pkgNodes = this.ncNodeService.lambdaQuery().in(NcNode::getId, pkgNodeIdList).list();
@@ -229,7 +235,8 @@
addInputStreamToZip(zipOut,new ByteArrayInputStream(jsonArray.toJSONString().getBytes(StandardCharsets.UTF_8)),NODE_JSON_FILE);
}
-
+ */
+ /*
@NotNull
private static JSONObject getNodeJsonObject(NcNode node) {
JSONObject recObj = new JSONObject();
@@ -253,17 +260,15 @@
recObj.put("processInstanceId", node.getProcessInstanceId());
return recObj;
}
-
+ */
/**
* 瀵煎叆瀹℃壒璁板綍
* @param zipOut
* @param programPackageNodeIdList 绋嬪簭鍖呭悕鐨刬d鍒楄〃
*/
+ /*
void addApproveRecordDataJson(ZipOutputStream zipOut, List<Long> programPackageNodeIdList) throws IOException {
- /*
- List<String> instanceIds = this.ncNodeService.lambdaQuery().in(NcNode::getId, programPackageNodeIdList)
- .list().stream().map(NcNode::getProcessInstanceId).toList();
-*/
+
//List<ApproveRecord> records = approveRecordService.lambdaQuery().in(ApproveRecord::getProcessInstanceId, instanceIds).list();
List<ApproveRecord> records = approveRecordService.lambdaQuery().in(ApproveRecord::getNcNodeId, programPackageNodeIdList).list();
@@ -285,7 +290,7 @@
}
addInputStreamToZip(zipOut,new ByteArrayInputStream(jsonArray.toJSONString().getBytes(StandardCharsets.UTF_8)),"exp_mdm_approve_record.json");
- }
+ }*/
void addSuperProperties(JSONObject recObj, BizEntity entity){
recObj.put("tenantId",entity.getTenantId());
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/test/MyTestController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/test/MyTestController.java
index 838f96f..47bae0d 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/test/MyTestController.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/test/MyTestController.java
@@ -6,11 +6,15 @@
import org.springblade.core.tool.api.R;
import org.springblade.mdm.program.entity.NcNode;
import org.springblade.mdm.program.service.NcNodeService;
+import org.springblade.mdm.utils.FileContentUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
import java.util.List;
@Slf4j
@@ -40,4 +44,15 @@
}
+ /**
+ * 鏂板
+ */
+ @GetMapping("/readline")
+ @Operation(summary = "like", description = "like")
+ public R<String> like(String file,int line) throws IOException {
+ FileInputStream fis = new FileInputStream(file);
+ return R.data(FileContentUtil.readLineAt(fis,line));
+
+ }
+
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/utils/FileContentUtil.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/utils/FileContentUtil.java
index 315080f..bff0c61 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/utils/FileContentUtil.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/utils/FileContentUtil.java
@@ -105,6 +105,26 @@
}
/**
+ * 璇诲彇鏂囦欢鏌愯
+ * @param inputStream
+ * @param lineIndex 琛岀储寮� 0based
+ * @return 琛屾枃鏈�
+ * @throws IOException
+ */
+ public static String readLineAt(InputStream inputStream,int lineIndex) throws IOException {
+ String lineText = "";
+ try (BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream))) {
+ // 璺宠繃绗竴琛�
+ int current = 0;
+ while(current<=lineIndex && lineText!=null) {
+ lineText = reader.readLine();
+ current++;
+ }
+ }
+ return lineText;
+ }
+
+ /**
* 浠庤緭鍏ユ祦鑾峰彇鏂囨湰
* @param ins 鏉熸祦
* @return 鏂囨湰瀛楃
--
Gitblit v1.9.3