From 1911be8941e5fe2705c2c56e74e52bd426468793 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期三, 06 八月 2025 15:26:34 +0800
Subject: [PATCH] 固化流程,建立node;
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/constants/FlowContants.java | 4 ++++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/DispatchController.java | 21 ++++++---------------
blade-service/blade-mdm/src/main/resources/processesbpmn/program-cure.bpmn20.xml | 2 +-
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/DNCSendBackService.java | 16 ++++++++++++----
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/CureFlowService.java | 10 ++++++++--
5 files changed, 31 insertions(+), 22 deletions(-)
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/constants/FlowContants.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/constants/FlowContants.java
index ed9c975..0bae4a4 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/constants/FlowContants.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/constants/FlowContants.java
@@ -57,4 +57,8 @@
*/
public static final String PROCESS_NAME = "processName";
+ /**
+ * 涓婁竴姝ュ鎵圭敤鎴峰鍚�
+ */
+ public static final String LAST_STEP_USER_NICKNAME = "approveUserNickName";
}
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 d86cfcb..c3a583e 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
@@ -84,30 +84,21 @@
if (Func.isEmpty(variables)) {
variables = Kv.create();
}
- /*
- String programIds = null;
- if(variables.containsKey(FlowContants.PROGRAM_IDS_KEY)){
- programIds = variables.get("programIds").toString();
- runtimeService.setVariable(taskId, FlowContants.PROGRAM_IDS_KEY, programIds);
- }
- if(StringUtils.isNotEmpty(programIds)) {
- //杩欏凡缁忔病鐢ㄤ簡锛岀洿鎺ヤ娇鐢ㄤ复鏃舵枃浠�
- processProgRefService.addRelations(processInstanceId,Func.toLongList(programIds));
- }
- */
//鍔犲叆瀹℃壒鐢ㄦ埛
- variables.put("approveUserNickName",AuthUtil.getNickName());
+ variables.put(FlowContants.LAST_STEP_USER_NICKNAME,AuthUtil.getNickName());
if(variables.containsKey("assignee")){
addApproveRecord(taskId,processInstanceId,comment,variables);
- //鎸囧畾浜嗕笅涓�姝ユ墽琛屼汉
- taskService.complete(taskId, variables);
+
//鍦ㄧ紪鍒朵换鍔℃椂锛屽垱寤鸿妭鐐癸紙娌℃湁鑺傜偣鍒欏垱寤猴紝鏈夊氨鐩存帴浣跨敤
if(task.getTaskDefinitionKey().equals("programmingTask") && "Y".equals(operateResult)) {
-
ncNodeAutoCreateService.createNodeTreeWithProgram(flowCommonService.getProgramProperties(processInstanceId));
}
+
+ //鎸囧畾浜嗕笅涓�姝ユ墽琛屼汉
+ taskService.complete(taskId, variables);
+
return R.success("娴佺▼鎻愪氦鎴愬姛");
}else {
// 瀹屾垚浠诲姟,缁欓粯璁ょ敤鎴�
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/CureFlowService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/CureFlowService.java
index 28cf253..c7dc784 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/CureFlowService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/CureFlowService.java
@@ -5,12 +5,15 @@
import org.flowable.engine.HistoryService;
import org.flowable.engine.IdentityService;
import org.flowable.engine.RuntimeService;
+import org.flowable.engine.TaskService;
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.secure.utils.AuthUtil;
import org.springblade.mdm.basesetting.machine.MachineService;
import org.springblade.mdm.basesetting.machine.entity.Machine;
+import org.springblade.mdm.flow.constants.FlowContants;
import org.springblade.mdm.flow.entity.FlowProgramFile;
import org.springblade.mdm.flow.excution.AutoAssignUsersService;
import org.springblade.mdm.flow.vo.TaskAssignVO;
@@ -41,7 +44,7 @@
private final RuntimeService runtimeService;
private final HistoryService historyService;
-
+ private final TaskService taskService;
private final IdentityService identityService;
private final NcNodeService ncNodeService;
@@ -91,11 +94,14 @@
.list();
fillHistoryAssignees(vars, historicTasks);
-
String businessKey = "0";//涓氬姟琛╧ey
identityService.setAuthenticatedUserId(String.valueOf(AuthUtil.getUserId()));//璁剧疆娴佺▼鍙戣捣浜�
+
+ vars.put(FlowContants.LAST_STEP_USER_NICKNAME, AuthUtil.getNickName());
+ vars.put(FlowContants.TITLE,programPackage.getName()+"-鍥哄寲");//鑷姩澧炲姞鏍囬
ProcessInstance inst = runtimeService.startProcessInstanceByKey(PROCESS_KEY,businessKey,vars);
+
//鏇存柊绋嬪簭鍖呭悕鑺傜偣鐨勬祦绋嬪疄渚媔d
programPackage.setProcessInstanceId(inst.getProcessInstanceId());
ncNodeService.updateById(programPackage);
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/DNCSendBackService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/DNCSendBackService.java
index 18a6aa9..8923526 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/DNCSendBackService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/DNCSendBackService.java
@@ -88,8 +88,7 @@
List<DncSendBackData> parseDncZipFromByteArray(InputStream inputStream) throws IOException {
List<DncSendBackData> list = new ArrayList<>();
Path tempZipFile = createTempFile(inputStream);
- //Map<String,String> fileMd5Map = new HashMap<>();
- Map<String,DncSendBackData> fileDataMap = new HashMap<>();
+
try (ZipFile zipFile = new ZipFile(tempZipFile.toFile())) {
ZipEntry entry;
@@ -130,11 +129,13 @@
List<Long> idList = Func.toLongList(ids);
//
NcProgramExchange exchange;
- String pkgFileName = bladeRedis.get(getFileKey());
+ String filekey = getFileKey();
+ String pkgFileName = bladeRedis.get(filekey);
+ log.info("filekey={},鏂囦欢鍚�={}",filekey,pkgFileName);
Map<Long,List<NcNode>> programPackageSubMap = new HashMap<>();
List<NcNode> newProgramPckageList = updateNodeDataByDNCBackData(pkgFileName,idList,programPackageSubMap);
-
+ log.info("闇�瑕佸惎鍔ㄥ浐鍖栨祦绋嬬殑绋嬪簭鍖呭悕鏁伴噺:{}",newProgramPckageList.size());
for(NcNode pkgNode :newProgramPckageList){
exchange = new NcProgramExchange();
exchange.setName(pkgNode.getName());
@@ -143,6 +144,9 @@
this.save(exchange);
}
+ bladeRedis.del(filekey);
+ this.ossTemplate.removeFile(pkgFileName);
+ log.info("鍒犻櫎oss鏂囦欢:{}",pkgFileName);
cureFlowService.startCure(newProgramPckageList,programPackageSubMap);
}
@@ -172,6 +176,7 @@
List<String> dirList = entryNameList.stream().filter(s -> s.endsWith("/")).toList();
for(String dir : dirList){
String programPackageName = StringUtils.removeEnd(dir,"/");
+
NcNode oriProgramPkg = this.ncNodeService.getLastEditionProgramPackage(programPackageName);
if(oriProgramPkg == null){
log.warn("鏈彂鐜板尮閰嶇殑绋嬪簭鍖呭悕{}",programPackageName);
@@ -180,6 +185,7 @@
if(!programPackageIdList.contains(oriProgramPkg.getId())){
//涓嶅湪鍕鹃�夌殑鑼冨洿鍐�
+ log.info("{}涓嶅湪鍕鹃�夎寖鍥村唴",programPackageName);
continue;
}
NcNode newProgramPkg = new NcNode();
@@ -244,6 +250,8 @@
}
}
+
+
return newProgramPackageNodeList;
}
diff --git a/blade-service/blade-mdm/src/main/resources/processesbpmn/program-cure.bpmn20.xml b/blade-service/blade-mdm/src/main/resources/processesbpmn/program-cure.bpmn20.xml
index a89b227..4f2b2e2 100644
--- a/blade-service/blade-mdm/src/main/resources/processesbpmn/program-cure.bpmn20.xml
+++ b/blade-service/blade-mdm/src/main/resources/processesbpmn/program-cure.bpmn20.xml
@@ -3,7 +3,7 @@
<process id="program-cure" name="鍥哄寲娴佺▼" isExecutable="true">
<startEvent id="sid-abe970b9-1bee-49a1-91b4-1184c47c10b7"/>
<userTask id="cureProgramTask" name="鍥哄寲缂栧埗" flowable:assignee="${programmer}"/>
- <sequenceFlow id="sid-910649a5-8dac-48a2-b42d-9f1132d61b26" sourceRef="cureProgramTask" targetRef="cureProgramTask"/>
+
<sequenceFlow id="sid-09c7cf44-bb1a-40f4-b231-919afae5c02f" sourceRef="sid-abe970b9-1bee-49a1-91b4-1184c47c10b7" targetRef="cureProgramTask"/>
<endEvent id="end" name="鍥哄寲缁撴潫"/>
<userTask id="seniorApproveTask" name="楂樺笀瀹℃牳" flowable:assignee="${assignee}"/>
--
Gitblit v1.9.3