| | |
| | | import org.springblade.mdm.flow.entity.FlowProgramFile; |
| | | import org.springblade.mdm.flow.service.ApproveRecordService; |
| | | import org.springblade.mdm.flow.service.FlowProgramFileService; |
| | | import org.springblade.mdm.flow.service.ReplaceFlowService; |
| | | import org.springblade.mdm.program.entity.NcNode; |
| | | import org.springblade.mdm.program.entity.NcProgramApproved; |
| | | import org.springblade.mdm.program.service.NcNodeService; |
| | |
| | | @Autowired |
| | | private RuntimeService runtimeService; |
| | | @Autowired |
| | | private NcProgramApprovedService approvedService; |
| | | @Autowired |
| | | private ApproveRecordService approveRecordService; |
| | | @Autowired |
| | | private FlowProgramFileService flowProgramFileService; |
| | |
| | | * @param execution 执行对象 |
| | | */ |
| | | public void handle(DelegateExecution execution) { |
| | | ReplaceFlowService a; |
| | | // 执行业务逻辑 |
| | | String instId = execution.getProcessInstanceId(); |
| | | Long nodeId = runtimeService.getVariable(execution.getId(),ReplaceFlowService.NODE_ID,Long.class); |
| | | log.info("事件名称{},instid={}" , execution.getEventName(),instId); |
| | | |
| | | |
| | | log.info("流程已完成in repalceFinishListener"); |
| | | List<FlowProgramFile> programFiles = flowProgramFileService.lambdaQuery().eq(FlowProgramFile::getProcessInstanceId, instId).list(); |
| | | replacePragram(nodeId,programFiles); |
| | | log.info("流程已完成 in replaceFinishListener"); |
| | | } |
| | | |
| | | void updateFlowProgramFile(String instId){ |
| | | List<FlowProgramFile> programFiles = flowProgramFileService.lambdaQuery().eq(FlowProgramFile::getProcessInstanceId, instId).list(); |
| | | if(!programFiles.isEmpty()) { |
| | | FlowProgramFile pf = programFiles.get(0); |
| | | NcProgramApproved approved = new NcProgramApproved(); |
| | | approved.setProgramName(pf.getProgramName()); |
| | | /** |
| | | * 替换原来程序的文件 |
| | | * @param programFiles 新的文件 |
| | | */ |
| | | void replacePragram(Long nodeId,List<FlowProgramFile> programFiles){ |
| | | NcNode packageNode = ncNodeService.getById(nodeId); |
| | | |
| | | NcNode pkgNode = ncNodeService.getProgramPackageByName(pf.getProgramName()); |
| | | if(pkgNode!=null) { |
| | | approved.setNcNodeId(pkgNode.getId());//程序包节点id |
| | | approvedService.save(approved); |
| | | }else{ |
| | | log.warn("未找到名为{}的程序包",pf.getProgramName()); |
| | | } |
| | | }else{ |
| | | log.warn("没有程序文件"); |
| | | List<NcNode> programFileNodes = ncNodeService.getProgramFilesByPackageId(nodeId); |
| | | for(NcNode fileNode: programFileNodes){ |
| | | fileNode.setIsLastEdition(0); |
| | | ncNodeService.updateById(fileNode); |
| | | } |
| | | |
| | | for(FlowProgramFile programFile: programFiles){ |
| | | NcNode node = new NcNode(); |
| | | node.setIsLastEdition(1); |
| | | node.setProcessEdition(packageNode.getProcessEdition()); |
| | | node.setName(programFile.getName()); |
| | | node.setParentIds(packageNode.getParentIds()+","+packageNode.getId()); |
| | | node.setParentId(packageNode.getId()); |
| | | node.setFlowProgramFileId(programFile.getId()); |
| | | node.setMachineCode(packageNode.getMachineCode()); |
| | | node.setProcessName(packageNode.getProcessName()); |
| | | node.setNodeType(NcNode.TYPE_PROGRAM_FILE); |
| | | node.setVersionNumber(1); |
| | | node.setCraftEdition(packageNode.getCraftEdition()); |
| | | node.setIsLocked(0); |
| | | |
| | | ncNodeService.save(node); |
| | | } |
| | | |
| | | } |
| | | |
| | | void updateApproveRecordNodeId(NcNode pkgNode){ |