From 33e6270d2d3a40591e58d45fd8435d2f3eaf66b2 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期四, 14 八月 2025 11:02:56 +0800
Subject: [PATCH] 启动固化流程优化
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/task/cure/CureFinishOperateTask.java | 57 ++++++++++++++++++++++++++++++++++++++-------------------
1 files changed, 38 insertions(+), 19 deletions(-)
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/task/cure/CureFinishOperateTask.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/task/cure/CureFinishOperateTask.java
index cfb9dc0..1269842 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/task/cure/CureFinishOperateTask.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/task/cure/CureFinishOperateTask.java
@@ -5,7 +5,7 @@
import org.flowable.engine.delegate.DelegateExecution;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
-import org.springblade.mdm.commons.contants.ParamContants;
+import org.springblade.mdm.commons.contants.ParamConstants;
import org.springblade.mdm.flow.service.FlowCommonService;
import org.springblade.mdm.flow.service.FlowProgramProperties;
import org.springblade.mdm.program.entity.NcNode;
@@ -15,6 +15,7 @@
import org.springframework.stereotype.Component;
import java.time.LocalDate;
+import java.util.Arrays;
import java.util.Date;
import java.util.List;
@@ -49,40 +50,58 @@
//绋嬪簭鍖呰妭鐐瑰拰涓嬪睘绋嬪簭鑺傜偣(鍖呮嫭鍘嗗彶鑺傜偣闈炴渶鏂扮増鏈殑)浠庤瘯鍒囨尓鍒板浐鍖栦笅闈�
//绋嬪簭鍖呰妭鐐� 璁剧疆鏈凡鍥哄寲
NcNode pkgNode = nodeService.lambdaQuery().eq(NcNode::getProcessInstanceId, processInstanceId).one();
- pkgNode.setIsCured(1);
- //璁剧疆杩囨湡鏃ユ湡
- pkgNode.setExpireDate(calculateExpireDate());
- nodeService.updateById(pkgNode);
+ if(pkgNode.isDeviationProgram()){
+ //鍋忕鐨勭▼搴忕洿鎺ラ攣瀹�
+ pkgNode.setIsLocked(1);
+ nodeService.updateById(pkgNode);
+ }else {
+ pkgNode.setIsCured(1);
+ //璁剧疆杩囨湡鏃ユ湡
+ pkgNode.setExpireDate(calculateExpireDate());
+ nodeService.updateById(pkgNode);
- List<NcNode> historyNodes = nodeService.getNodeHistory(pkgNode);
- moveNodeToCuredTree(pkgNode,historyNodes,flowCommonService.getProgramProperties(processInstanceId));
+ List<NcNode> historyProgramPackageNodes = nodeService.getNodeHistory(pkgNode);
+ moveNodeToCuredTree(pkgNode, historyProgramPackageNodes, flowCommonService.getProgramProperties(processInstanceId));
+ }
}
/**
* 灏嗚妭鐐瑰拰鍘嗗彶鑺傜偣鎸姩鍒板浐鍖栫殑鍚岀骇鑺傜偣涓�
- * @param historyNodes
+ * @param historyProgramPackageNodes 绋嬪簭鍖呭悕 鍘嗗彶鑺傜偣
*/
- void moveNodeToCuredTree(NcNode pkgNode,List<NcNode> historyNodes, FlowProgramProperties programProperties) {
+ void moveNodeToCuredTree(NcNode pkgNode,List<NcNode> historyProgramPackageNodes, FlowProgramProperties programProperties) {
//鍒涘缓鑺傜偣鍒版満搴婄骇鍒�.(鍥哄寲鏍�)
NcNode machineNode = ncNodeAutoCreateService.createNodeTreeToMachine(programProperties);
//绉诲姩鍒板浐鍖栨爲涓嬬殑鏈哄簥鑺傜偣涓嬪眰
- String newParentIds = machineNode.getParentIds()+","+machineNode.getId();
- for(NcNode hisNode : historyNodes){
- if(!hisNode.getId().equals(pkgNode.getId())){
- hisNode.setIsLastEdition(0);
+ //String newParentIds = machineNode.getParentIds()+","+machineNode.getId();
+
+ //鏇存柊鏈哄簥 涓嬪睘鑺傜偣鐨勬暟鎹� 涓烘棫鐗堟湰锛岄攣瀹�(鏈�鏂扮増鏈�=0锛宭ock=1).
+ /*
+ this.nodeService.lambdaUpdate().likeRight(NcNode::getParentIds, newParentIds)
+ .in(NcNode::getNodeType, Arrays.asList(NcNode.TYPE_PROGRAM_PACKAGE,NcNode.TYPE_PROGRAM_FILE))
+ .set(NcNode::getIsLastEdition,0).set(NcNode::getIsLocked,1).update();
+ */
+ //鏈哄簥涓嬬幇鍦ㄦ病鏈夋枃浠朵簡锛岀▼搴忓寘鍚嶅崌绾т笌鏈哄簥鍚岀骇浜嗭紝鏀逛负鎵惧埌鏈哄簥鍚岀骇绋嬪簭鍖呭悕鏇存柊浜�
+ this.nodeService.lambdaUpdate().likeRight(NcNode::getParentIds, machineNode.getParentIds())
+ .in(NcNode::getNodeType, Arrays.asList(NcNode.TYPE_PROGRAM_PACKAGE,NcNode.TYPE_PROGRAM_FILE))
+ .set(NcNode::getIsLastEdition,0).set(NcNode::getIsLocked,1).update();
+
+ for(NcNode hisPackageNode : historyProgramPackageNodes){
+ if(!hisPackageNode.getId().equals(pkgNode.getId())){
+ hisPackageNode.setIsLastEdition(0);
}
- hisNode.setParentId(machineNode.getId());
- hisNode.setParentIds(newParentIds);
+ hisPackageNode.setParentId(machineNode.getId());
+ hisPackageNode.setParentIds(machineNode.getParentIds());//绋嬪簭鍖呬笌鏈哄簥鑺傜偣鍚岀骇
//澶勭悊绋嬪簭鍖呬笅灞傜殑绋嬪簭鑺傜偣
- List<NcNode> programNodes = nodeService.lambdaQuery().eq(NcNode::getParentId,hisNode.getId()).list();
+ List<NcNode> programNodes = nodeService.lambdaQuery().eq(NcNode::getParentId,hisPackageNode.getId()).list();
for(NcNode programNode : programNodes){
- programNode.setParentIds(hisNode.getParentIds()+","+hisNode.getId());
+ programNode.setParentIds(hisPackageNode.getParentIds()+","+hisPackageNode.getId());
}
nodeService.updateBatchById(programNodes);
}
- nodeService.updateBatchById(historyNodes);
+ nodeService.updateBatchById(historyProgramPackageNodes);
}
@@ -91,7 +110,7 @@
* @return
*/
private Date calculateExpireDate() {
- R<String> validMonResult = sysClient.getParamValue(ParamContants.CURE_VALID_MONTH_KEY);
+ R<String> validMonResult = sysClient.getParamValue(ParamConstants.CURE_VALID_MONTH_KEY);
int month = DEFAULT_VALID_MONTH;
if(validMonResult.isSuccess() && validMonResult.getData()!=null){
--
Gitblit v1.9.3