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"; 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";//ä¸å¡è¡¨key 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); } blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/append/AppendFinishListener.java
ÎļþÃû´Ó blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/TempFinishDataHandler.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 æµç¨å±æ§ * 卿µç¨ç»ææ¶èªå¨è°ç¨,ï¼é ç½®å¨å®¡æ¹ç»æäºä»¶çexecutelistenerä¸äºï¼ * @param execution æ§è¡å¯¹è±¡ */ public void handleData(FlowProgramProperties props ) { public void handle(DelegateExecution execution) { // æ§è¡ä¸å¡é»è¾ String instId = execution.getProcessInstanceId(); log.info("äºä»¶åç§°{}ï¼instid={}" , 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("æµç¨å·²å®æin DispatchFinishListener"); } addApproveTable(tempPkgNode,props); log.info("ç¨åºè¡¥å æµç¨å·²å®æin AppendFinishListener"); } /** * ä¿å审æ¹å®æçè®°å½ @@ -97,5 +98,4 @@ approvedService.save(approved); } } 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; } } 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("æµç¨å·²å®æin DispatchFinishListener"); } 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,%'