From 95e63522959ff8c21381ee2a5dc85b9d44cf2949 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期五, 22 八月 2025 22:34:00 +0800
Subject: [PATCH] 补充流程fix
---
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/program/mapper/NcNodeMapper.xml | 3 +
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java | 13 ++++--
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/append/AppendFinishListener.java | 48 ++++++++++++------------
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/DataHandlerHelper.java | 9 +---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/DispatchFinishListener.java | 39 -------------------
6 files changed, 41 insertions(+), 75 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 26847e2..9dd325e 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
@@ -11,6 +11,10 @@
public static final String TRY_PROCESS_KEY = "dispatch";
/**
+ * 绋嬪簭琛ュ厖娴佺▼KEY
+ */
+ public static final String APPEND_PROCESS_KEY = "program-append";
+ /**
* 鍥哄寲娴佺▼KEY
*/
public static final String CURE_PROCESS_KEY = "program-cure";
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 f9bda0e..55b0648 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
@@ -56,7 +56,7 @@
Map<String, Object> vars = new HashMap<>();
ProduceDivision div = flowCommonService.putDefaultAssignees(vars,startVO.getDrawingNo(),null);
- vars.put(FlowContants.ASSIGNEE,div.getTeamLeaderId());//绗竴涓敤鎴风粍闀�
+
vars.put(FlowContants.TITLE,startVO.getTitle());
//鏈哄簥缂栧彿
@@ -116,11 +116,16 @@
String businessKey = "0";//涓氬姟琛╧ey
identityService.setAuthenticatedUserId(String.valueOf(AuthUtil.getUserId()));//璁剧疆娴佺▼鍙戣捣浜�
- ProcessInstance inst = runtimeService.startProcessInstanceByKey(FlowContants.TRY_PROCESS_KEY,businessKey,vars);
-
+ ProcessInstance inst;
+ if(startVO.isTemporaryFlow()){
+ vars.put(FlowContants.ASSIGNEE,div.getProgrammerId());//绗竴涓敤鎴风紪鍒朵笂浼犳枃浠�
+ inst = runtimeService.startProcessInstanceByKey(FlowContants.APPEND_PROCESS_KEY,businessKey,vars);
+ }else{
+ vars.put(FlowContants.ASSIGNEE,div.getTeamLeaderId());//绗竴涓敤鎴风粍闀�
+ inst = runtimeService.startProcessInstanceByKey(FlowContants.TRY_PROCESS_KEY,businessKey,vars);
+ }
if(curedProgramPackage != null) {//瀛樺湪宸插浐鍖栫▼搴忥紝澶嶅埗鍘熸潵鐨勭▼搴忔枃浠躲��
copyFlowProgramFiles(curedProgramPackage.getId(),inst.getProcessInstanceId());
-
curedProgramPackage.setProcessInstanceId(inst.getProcessInstanceId());
ncNodeService.updateById(curedProgramPackage);
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/TempFinishDataHandler.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/append/AppendFinishListener.java
similarity index 72%
rename from blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/TempFinishDataHandler.java
rename to blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/append/AppendFinishListener.java
index 18cf2b9..d28cc02 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/TempFinishDataHandler.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/append/AppendFinishListener.java
@@ -1,19 +1,14 @@
-package org.springblade.mdm.flow.excution.dispatch;
+package org.springblade.mdm.flow.excution.append;
import lombok.extern.slf4j.Slf4j;
import org.flowable.engine.RuntimeService;
import org.flowable.engine.delegate.DelegateExecution;
-import org.springblade.core.tool.utils.Func;
-import org.springblade.mdm.flow.constants.FlowContants;
-import org.springblade.mdm.flow.entity.ApproveRecord;
import org.springblade.mdm.flow.entity.FlowProgramFile;
-import org.springblade.mdm.flow.service.ApproveRecordService;
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.entity.NcProgramApproved;
-import org.springblade.mdm.program.service.NcNodeAutoCreateService;
import org.springblade.mdm.program.service.NcNodeService;
import org.springblade.mdm.program.service.NcProgramApprovedService;
import org.springblade.mdm.utils.EntityUtil;
@@ -24,40 +19,47 @@
import java.util.List;
/**
- * 涓存椂娲惧伐瀹℃壒閫氳繃鎵ц鐨勪簨浠讹紝鍔熻兘锛氬缓绔嬩复鏃惰妭鐐癸紝鎻掑叆瀹℃壒瀹屾垚璁板綍
+ * 绋嬪簭琛ュ厖娴佺▼(涓存椂娴佺▼) 瀹℃壒閫氳繃鎵ц鐨勪簨浠�
*/
@Slf4j
-@Component("tempDispatchFinishDataHandler")
-public class TempFinishDataHandler implements FinishDataHandler{
- @Autowired
- private NcProgramApprovedService approvedService;
+@Component("appendFinishListener")
+public class AppendFinishListener {
@Autowired
private FlowProgramFileService flowProgramFileService;
@Autowired
+ private NcProgramApprovedService approvedService;
+ @Autowired
+ private FlowCommonService flowCommonService;
+ @Autowired
private NcNodeService ncNodeService;
+
/**
- * 鍦ㄦ祦绋嬬粨鏉熸椂鑷姩璋冪敤锛岀敱
- * @param props 娴佺▼灞炴��
+ * 鍦ㄦ祦绋嬬粨鏉熸椂鑷姩璋冪敤,锛堥厤缃湪瀹℃壒缁撴潫浜嬩欢鐨別xecutelistener涓簡锛�
+ * @param execution 鎵ц瀵硅薄
*/
- public void handleData(FlowProgramProperties props ) {
+ public void handle(DelegateExecution execution) {
// 鎵ц涓氬姟閫昏緫
+ String instId = execution.getProcessInstanceId();
+ log.info("浜嬩欢鍚嶇О{}锛宨nstid={}" , execution.getEventName(),instId);
+
+ FlowProgramProperties props = flowCommonService.getProgramProperties(instId);
String programName = NcNodeService.genProgramName(props.getDrawingNo(),props.getProcessNo());
-
- //涓存椂娴佺▼锛屼笉澶勭悊鏍戯紝鍙鐞嗘枃浠�.鐢变簬瀵煎嚭鏄熀浜庤妭鐐圭殑锛岃繖閲屽垱寤轰复鏃惰妭鐐癸紝涓嶅湪鏍戠珛灞曠ず
+ //涓存椂娴佺▼锛屼笉澶勭悊鏍戯紝鍙鐞嗘枃浠�
NcNode tempPkgNode = new NcNode();
tempPkgNode.setNodeType(NcNode.TYPE_PROGRAM_PACKAGE);
- tempPkgNode.setIsLastEdition(0);
+ tempPkgNode.setIsLastEdition(1);
tempPkgNode.setProcessNo(props.getProcessNo());
tempPkgNode.setMachineCode(props.getMachineCode());
tempPkgNode.setProcessName(props.getProcessName());
tempPkgNode.setProcessEdition(props.getProcessEdition());
+ tempPkgNode.setDrawingNoEdition(props.getDrawingNoEdition());
tempPkgNode.setName(programName);
tempPkgNode.setParentIds("0,4");
tempPkgNode.setIsLocked(0);
tempPkgNode.setCraftEdition(props.getCraftEdition());
tempPkgNode.setDrawingNo(props.getDrawingNo());
- tempPkgNode.setProcessInstanceId(props.getProcessInstanceId());
+ tempPkgNode.setProcessInstanceId(instId);
ncNodeService.save(tempPkgNode);
List<FlowProgramFile> newFlowFileList = flowProgramFileService.listByProcessInstanceId(props.getProcessInstanceId());
@@ -68,19 +70,18 @@
tempProgramNode.setNodeType(NcNode.TYPE_PROGRAM_FILE);
tempProgramNode.setName(newFlowFile.getName());
- BeanUtils.copyProperties(tempPkgNode,tempProgramNode);
+
tempProgramNode.setParentId(tempPkgNode.getId());
- tempProgramNode.setIsLastEdition(1);//瀵煎嚭鏃堕渶瑕佷娇鐢ㄦ渶鏂拌妭鐐�
tempProgramNode.setParentIds(tempPkgNode.getParentIds()+","+tempPkgNode.getId());
tempProgramNode.setProcessInstanceId(props.getProcessInstanceId());
tempProgramNode.setFlowProgramFileId(newFlowFile.getId());
ncNodeService.save(tempProgramNode);
}
- addApproveTable(tempPkgNode,props);
- log.info("娴佺▼宸插畬鎴恑n DispatchFinishListener");
- }
+ addApproveTable(tempPkgNode,props);
+ log.info("绋嬪簭琛ュ厖娴佺▼宸插畬鎴恑n AppendFinishListener");
+ }
/**
* 淇濆瓨瀹℃壒瀹屾垚鐨勮褰�
@@ -97,5 +98,4 @@
approvedService.save(approved);
}
-
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/DataHandlerHelper.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/DataHandlerHelper.java
index f5d8473..25a4103 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/DataHandlerHelper.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/DataHandlerHelper.java
@@ -9,8 +9,7 @@
public class DataHandlerHelper {
@Autowired
private NormalFinishDataHandler normalFinishDataHandler;
- @Autowired
- private TempFinishDataHandler tempFinishDataHandler;
+
/**
* 鏍规嵁娴佺▼灞炴�э紝鑾峰彇鏁版嵁澶勭悊鍣�
@@ -18,10 +17,6 @@
* @return
*/
public FinishDataHandler getDataHandler(FlowProgramProperties props){
- if(FlowContants.Y.equals(props.getIsTempFlow())){
- return normalFinishDataHandler;
- }else {
- return normalFinishDataHandler;
- }
+ return normalFinishDataHandler;
}
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/DispatchFinishListener.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/DispatchFinishListener.java
index bf21bce..aa2ac1d 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/DispatchFinishListener.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/DispatchFinishListener.java
@@ -59,46 +59,7 @@
FinishDataHandler dataHandler = dataHandlerHelper.getDataHandler(props);
dataHandler.handleData(props);
- /*
- String programName = NcNodeService.genProgramName(props.getDrawingNo(),props.getProcessNo());
- if(FlowContants.N.equals(props.getIsTempFlow())) {
- createProgramNodes(props);
- //TODO 鍋忕鍗曪紝鍜屽凡缁忓浐鍖栫殑绋嬪簭锛屾病鏈夊鐞�
- NcNode packageNode = ncNodeService.getProgramPackageByName(programName);
-
- addApproveTable(packageNode,props);
- updateApproveRecordNodeId(instId, packageNode.getId());
- }else{
- //涓存椂娴佺▼锛屼笉澶勭悊鏍戯紝鍙鐞嗘枃浠�
- NcNode tempPkgNode = new NcNode();
- tempPkgNode.setNodeType(NcNode.TYPE_PROGRAM_PACKAGE);
- tempPkgNode.setIsLastEdition(0);
- tempPkgNode.setProcessNo(props.getProcessNo());
- tempPkgNode.setMachineCode(props.getMachineCode());
- tempPkgNode.setProcessName(props.getProcessName());
- tempPkgNode.setProcessEdition(props.getProcessEdition());
- tempPkgNode.setName(programName);
- tempPkgNode.setParentIds("0,4");
- tempPkgNode.setIsLocked(0);
- tempPkgNode.setCraftEdition(props.getCraftEdition());
- tempPkgNode.setDrawingNo(props.getDrawingNo());
- ncNodeService.save(tempPkgNode);
-
- List<FlowProgramFile> newFlowFileList = flowProgramFileService.listByProcessInstanceId(props.getProcessInstanceId());
- for(FlowProgramFile newFlowFile : newFlowFileList) {
- NcNode tempProgramNode = new NcNode();
- tempProgramNode.setNodeType(NcNode.TYPE_PROGRAM_FILE);
- tempProgramNode.setName(newFlowFile.getName());
- BeanUtils.copyProperties(tempPkgNode,tempProgramNode);
- tempProgramNode.setParentId(tempPkgNode.getId());
- tempProgramNode.setParentIds(tempPkgNode.getParentIds()+","+tempPkgNode.getId());
- tempProgramNode.setProcessInstanceId(props.getProcessInstanceId());
- tempProgramNode.setFlowProgramFileId(newFlowFile.getId());
- }
- }
-
- */
log.info("娴佺▼宸插畬鎴恑n DispatchFinishListener");
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcNodeMapper.xml b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcNodeMapper.xml
index e399a18..f9e2d29 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcNodeMapper.xml
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcNodeMapper.xml
@@ -120,8 +120,9 @@
<if test="status != null and status != ''">
and
(
+ 1=1
<if test='status.contains("1")'>
- n.parent_ids LIKE '0,1,%'
+ or n.parent_ids LIKE '0,1,%'
</if>
<if test='status.contains("2")'>
or n.parent_ids LIKE '0,2,%'
--
Gitblit v1.9.3