From 14f02f7b3c95c0287dec7a4175cd18247c4e78d8 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期一, 18 八月 2025 23:57:58 +0800
Subject: [PATCH] 固化下发流程,文件错误的问题
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java | 42 ++++++++------------
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/DispatchFinishListener.java | 19 +++++----
2 files changed, 27 insertions(+), 34 deletions(-)
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/DispatchFinishListener.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/DispatchFinishListener.java
index 98d88a7..52efbbf 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/DispatchFinishListener.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/DispatchFinishListener.java
@@ -82,26 +82,27 @@
//鍥哄寲绋嬪簭涓嶅彲鐢紝闇�瑕侀噸鏂板缓绔嬬▼搴忓寘鍚嶅拰鏂囦欢鑺傜偣;鍙敤鎯呭喌鍦ㄦ祦绋嬪鎵逛腑宸茬粡鍗囩骇杩囪妭鐐逛簡
NcNode curedProgramPackage = ncNodeService.getById(Func.toLong(progProperties.getCuredNodeId()));
- NcNode newCuredNode = new NcNode();
- BeanUtils.copyProperties(curedProgramPackage, newCuredNode);
- EntityUtil.clearBaseProperties(newCuredNode);
- newCuredNode.setIsLastEdition(1);
- newCuredNode.setIsLocked(0);
- ncNodeService.save(newCuredNode);
+ NcNode newCuredPkgNode = new NcNode();
+ BeanUtils.copyProperties(curedProgramPackage, newCuredPkgNode);
+ EntityUtil.clearBaseProperties(newCuredPkgNode);
+ newCuredPkgNode.setIsLastEdition(1);
+ newCuredPkgNode.setIsLocked(0);
+ newCuredPkgNode.upgradeVersionNumber();
+ ncNodeService.save(newCuredPkgNode);
//鏂扮殑娴佺▼瀵瑰簲鐨勬枃浠舵洿鏂板埌鏂拌妭鐐逛笅
List<FlowProgramFile> newFlowFileList = flowProgramFileService.listByProcessInstanceId(progProperties.getProcessInstanceId());
for (FlowProgramFile newFlowFile : newFlowFileList) {
NcNode newProgramNode = new NcNode();
- BeanUtils.copyProperties(curedProgramPackage, newProgramNode);
+ BeanUtils.copyProperties(newCuredPkgNode, newProgramNode);
EntityUtil.clearBaseProperties(newProgramNode);
newProgramNode.setName(newFlowFile.getName());
newProgramNode.setNodeType(NcNode.TYPE_PROGRAM_FILE);
- newProgramNode.setParentId(newCuredNode.getId());
+ newProgramNode.setParentId(newCuredPkgNode.getId());
newProgramNode.setIsLastEdition(1);
newProgramNode.setIsLocked(0);
- newProgramNode.setParentIds(newCuredNode.getParentIds() + "," + newCuredNode.getId());
+ newProgramNode.setParentIds(newCuredPkgNode.getParentIds() + "," + newCuredPkgNode.getId());
newProgramNode.setFlowProgramFileId(newFlowFile.getId());
ncNodeService.save(newProgramNode);
}
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 ac61907..c059ac3 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
@@ -103,44 +103,36 @@
identityService.setAuthenticatedUserId(String.valueOf(AuthUtil.getUserId()));//璁剧疆娴佺▼鍙戣捣浜�
ProcessInstance inst = runtimeService.startProcessInstanceByKey(FlowContants.TRY_PROCESS_KEY,businessKey,vars);
- if(curedProgramPackage != null) {//瀛樺湪宸插浐鍖栫▼搴忥紝澶嶅埗鍘熸潵鐨勭▼搴忔枃浠躲�傚垱寤鸿妭鐐逛粛鐒跺湪缂栫▼浜哄憳鎻愪氦浠ュ悗
- copyFlowProgramFiles(curedProgramPackage.getProcessInstanceId(),inst.getProcessInstanceId());
+ if(curedProgramPackage != null) {//瀛樺湪宸插浐鍖栫▼搴忥紝澶嶅埗鍘熸潵鐨勭▼搴忔枃浠躲��
+ copyFlowProgramFiles(curedProgramPackage.getId(),inst.getProcessInstanceId());
+
+ curedProgramPackage.setProcessInstanceId(inst.getProcessInstanceId());
+ ncNodeService.updateById(curedProgramPackage);
}
+
return inst.getProcessInstanceId();
}
- /**
- * 灏嗛粯璁ゅ鎵圭敤鎴锋斁鍏ap涓�
- * @param vars 鍚姩娴佺▼鐨勫彉閲弇ap
- * @param drawingNo 闆剁粍浠跺彿
- */
- void putDefaultAssignees(Map<String, Object> vars,String drawingNo){
- ProduceDivision div = produceDivisionService.getByDrawingNoWithQinzhe(drawingNo);
- vars.put(FlowContants.TEAM_LEADER,div.getTeamLeaderId());
- vars.put(FlowContants.PROGRAMMER,div.getProgrammerId());
- vars.put(FlowContants.CHECKER,div.getCheckerId());
- vars.put(FlowContants.SENIOR,div.getSeniorId());
-
- vars.put(FlowContants.ASSIGNEE,div.getTeamLeaderId());//绗竴涓鎵圭敤鎴凤細缁勯暱
- }
/**
* 澶嶅埗娴佺▼绋嬪簭鏂囦欢
* @param processInstanceId 鏂板惎鍔ㄧ殑娴佺▼id
*/
- private void copyFlowProgramFiles(String oldProcessInstanceId,String processInstanceId) {
- List<FlowProgramFile> fileList = flowProgramFileService.lambdaQuery()
- .eq(FlowProgramFile::getProcessInstanceId,oldProcessInstanceId).list();
+ private void copyFlowProgramFiles(long packageNameNodeId,String processInstanceId) {
+ List<Long> fileIds = ncNodeService.getProgramFilesByPackageId(packageNameNodeId).stream().map(NcNode::getFlowProgramFileId).toList();
+ if(!fileIds.isEmpty()) {
+ List<FlowProgramFile> fileList = flowProgramFileService.lambdaQuery().in(FlowProgramFile::getId, fileIds).list();
- for (FlowProgramFile file : fileList) {
- FlowProgramFile newFile = new FlowProgramFile();
- BeanUtils.copyProperties(file, newFile);
- EntityUtil.clearBaseProperties(newFile);
+ for (FlowProgramFile file : fileList) {
+ FlowProgramFile newFile = new FlowProgramFile();
+ BeanUtils.copyProperties(file, newFile);
+ EntityUtil.clearBaseProperties(newFile);
- newFile.setProcessInstanceId(processInstanceId);
+ newFile.setProcessInstanceId(processInstanceId);
- this.flowProgramFileService.save(newFile);
+ this.flowProgramFileService.save(newFile);
+ }
}
}
--
Gitblit v1.9.3