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