From 51054f0da5dd4718212064510fff045815388b90 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期三, 20 八月 2025 16:31:03 +0800
Subject: [PATCH] 增加临时流程处理
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/TryFlowCompleteService.java | 63 ++++++++++++++++++-------------
1 files changed, 36 insertions(+), 27 deletions(-)
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/TryFlowCompleteService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/TryFlowCompleteService.java
index 832a3c7..da3e7e0 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/TryFlowCompleteService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/TryFlowCompleteService.java
@@ -11,11 +11,13 @@
import org.springblade.mdm.flow.constants.FlowContants;
import org.springblade.mdm.flow.service.FlowCommonService;
import org.springblade.mdm.flow.service.FlowProgramFileService;
+import org.springblade.mdm.flow.service.FlowProgramProperties;
import org.springblade.mdm.program.entity.NcNode;
import org.springblade.mdm.program.service.NcNodeAutoCreateService;
import org.springblade.mdm.program.service.NcNodeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import java.util.Map;
@@ -33,13 +35,14 @@
@Autowired
private FlowCommonService flowCommonService;
+ @Transactional
@Override
public void completeTask(String taskId, String processInstanceId, String comment, Map<String, Object> variables) {
Task task = currentTask(taskId);
String operateResult = this.getApproveResult(variables);
if(task.getTaskDefinitionKey().equals("programmingTask")) {//缂栧埗鑺傜偣
- flowProgramFileService.checkProgramFiles(processInstanceId,"Y".equals(operateResult));
+ flowProgramFileService.checkProgramFiles(processInstanceId,FlowContants.Y.equals(operateResult));
}
if (StringUtil.isNoneBlank(processInstanceId, comment)) {
taskService.addComment(taskId, processInstanceId, comment);
@@ -56,35 +59,41 @@
addApproveRecord(taskId,comment,variables);
//鍦ㄧ紪鍒朵换鍔℃椂锛屽垱寤鸿妭鐐癸紙娌℃湁鑺傜偣鍒欏垱寤猴紝鏈夊氨鐩存帴浣跨敤
- if(task.getTaskDefinitionKey().equals("programmingTask") && "Y".equals(operateResult)) {
- ncNodeAutoCreateService.createNodeTreeWithProgram(flowCommonService.getProgramProperties(processInstanceId));
- }
- if(!"confirmIsUseableTask".equals(task.getTaskDefinitionKey())){
- variables.remove(FlowContants.PROCESS_EDITION);//TODO 涓存椂閿欒鏄紝缁勯暱鎻愪氦鐨勬椂鍊欎細鎻愪氦涓�涓┖涓诧紝娓呯┖浜嗗唴閮ㄦ暟鎹�
- }else{
- //宸ュ簭鐗堟涓嶄竴鑷达紝骞朵笖瀹℃牳閫氳繃锛堝彲鐢級鏄紝鎵嶆洿鏂颁负鏂扮殑宸ュ簭鐗堟鍙�
- Map<String, Object> currentVars = task.getProcessVariables();
- if(StringUtils.equals(String.valueOf(currentVars.getOrDefault(FlowContants.IS_PROCESS_EDITION_SAME, FlowContants.Y)),FlowContants.N) && operateResult.equals(FlowContants.Y)){
- //宸ュ簭鐗堟涓嶄竴鑷达紝骞朵笖瀹℃牳閫氳繃锛堝彲鐢級 鍗囩増,鏇存柊涓烘柊鐨勫伐搴忕増鏈紝鍚庣画杩涘叆 鏍″ 鑺傜偣
- Object objProcessEdition = variables.get(FlowContants.PROCESS_EDITION);
- if(objProcessEdition == null){
- //搴旇鍗囩増锛屼絾鍓嶇娌℃湁浼犻�掕鍙傛暟
- throw new ServiceException("璇峰綍鍏ユ柊鐨勫伐搴忕増鏈彿");
- }
- String newProcessEdition = String.valueOf(objProcessEdition);
- NcNode programPkgNode= ncNodeService.getByProcessInstanceId(processInstanceId);
- programPkgNode.setProcessEdition(newProcessEdition);
- ncNodeService.updateById(programPkgNode);
+ /*
+ if(task.getTaskDefinitionKey().equals("programmingTask") && FlowContants.Y.equals(operateResult)) {
+ FlowProgramProperties progProperties = flowCommonService.getProgramProperties(processInstanceId);
+ ncNodeAutoCreateService.createNodeTreeWithProgram(progProperties);
+ //鍘熸潵鐗堟鐨勭▼搴忥紝姝ゆ椂搴旇娓呴櫎锛屾槸涓嶆槸瑕佹尓杩囨潵鍛紵鐗堟宸茬粡涓嶅浜�
+ //TODO 鑰佽妭鐐规竻闄ゅ悧
- //鍒涘缓绋嬪簭鏍�
- //鑺傜偣鍦ㄨ瘯鍒囦笅杩樻槸鍥哄寲涓嬮潰锛熺‘璁や簡锛岃妭鐐瑰缓绔嬪湪璇曞垏涓嬶紝鏈�缁堣蛋鍥哄寲娴佺▼鍚庢墠杩涘叆鍥哄寲
- //纭绋嬪簭鍙敤浜嗭紝杩涘叆鏍″銆傝繖閲岀洿鎺ュ缓绔嬭妭鐐癸紝鍥犱负鍙兘涓嶈蛋缂栫▼鑺傜偣浜�
- this.ncNodeAutoCreateService.createNodeTreeWithProgram(flowCommonService.getProgramProperties(processInstanceId));
- }else{
- //宸ュ簭鐗堟涓�鑷达紝浣嗘槸鎷掔粷浜嗭紝鍚庣画浼氳繘鍏ョ紪鍒惰妭鐐�
- variables.remove(FlowContants.PROCESS_EDITION);
+ //璧板埌缂栧埗鑺傜偣锛屽鏋滄槸鏈夊浐鍖栫▼搴忎笖閫氳繃浜嗭紝璇存槑闇�瑕佸崌鐗堬紙閲嶆柊缂栧啓锛夛紝灏嗗浐鍖栫殑鍘熸潵鐨勭▼搴忚缃甽astEdition=0
+ if(FlowContants.Y.equals(progProperties.getHasCuredProgram())) {
+ NcNode curedProgramPackage = ncNodeService.getById(Func.toLong(progProperties.getCuredNodeId()));
+ curedProgramPackage.setIsLastEdition(0);
+ curedProgramPackage.setIsLocked(1);
+ ncNodeService.updateById(curedProgramPackage);
+ }
+
+ }*/
+ if(task.getTaskDefinitionKey().equals("approveTask") && FlowContants.Y.equals(operateResult)) {
+ //璇曞垏娴佺▼锛屾垨鑰� 鍋忕娴佺▼ 楂樺笀閫氳繃鐨勬椂鍊欏垱寤鸿妭鐐�
+ //createProgramNodes(processInstanceId);
+ }
+ variables.remove(FlowContants.PROCESS_EDITION);//涓嶈鍗囩増浜�
+ //if(!"confirmIsUseableTask".equals(task.getTaskDefinitionKey())){
+ if("confirmIsUseableTask".equals(task.getTaskDefinitionKey())){
+ //宸ュ簭鐗堟涓嶄竴鑷达紝骞朵笖瀹℃牳閫氳繃锛堝彲鐢級鏄紝鎵嶆洿鏂颁负鏂扮殑versionNumber
+ FlowProgramProperties progProperties = flowCommonService.getProgramProperties(processInstanceId);
+ variables.put(FlowContants.CURE_PROGRAM_USEABLE,operateResult);
+
+ if(FlowContants.Y.equals(operateResult) && FlowContants.N.equals(progProperties.getIsProcessEditionSame())) {
+ //纭绋嬪簭鍙敤 涓� 宸ュ簭鐗堟涓嶄竴鑷达紝杩涘叆鏍″銆傝繖閲岄渶瑕佸崌绾х▼搴忕殑鐗堟湰鍙�
+ Long curedNodeId = progProperties.getCuredNodeId();
+ ncNodeService.upgradeVersionNumber(curedNodeId);
}
}
taskService.complete(taskId, variables);
}
+
+
}
--
Gitblit v1.9.3