| | |
| | | private FlowProgramFileService flowProgramFileService; |
| | | @Autowired |
| | | private NcNodeService nodeService; |
| | | @Autowired |
| | | private NcNodeAutoCreateService ncNodeAutoCreateService; |
| | | @Autowired |
| | | private MachineService machineService; |
| | | |
| | | /** |
| | | * cureFinishOperateTask调用,偏离单回传审批完成处理业务 |
| | |
| | | */ |
| | | public void handleData(FlowProgramProperties props) { |
| | | // 执行业务逻辑 |
| | | String instId = props.getProcessInstanceId(); |
| | | NcNode pkgNode = nodeService.lambdaQuery().eq(NcNode::getProcessInstanceId, props.getProcessInstanceId()).one(); |
| | | |
| | | pkgNode.lock(); |
| | |
| | | |
| | | nodeService.save(newPkgNode); |
| | | |
| | | //处理程序包下层的程序节点111 |
| | | List<NcNode> oriProgramNodes = nodeService.lambdaQuery().eq(NcNode::getParentId,pkgNode.getId()).list(); |
| | | copyNonProgramNodes(pkgNode,newPkgNode); |
| | | |
| | | addNewProgramNode(newPkgNode,props.getProcessInstanceId()); |
| | | |
| | | log.info("偏离回传Listener完成"); |
| | | } |
| | | |
| | | /** |
| | | * 从待固化节点复制非程序文件节点到固化节点下 |
| | | * @param oriPkgNode 待固化节点 |
| | | * @param cureNode 固化节点 |
| | | */ |
| | | void copyNonProgramNodes(NcNode oriPkgNode,NcNode cureNode){ |
| | | //处理程序包下层的程序节点1 |
| | | List<NcNode> oriProgramNodes = nodeService.lambdaQuery().eq(NcNode::getParentId,oriPkgNode.getId()).list(); |
| | | FlowProgramFile pfile; |
| | | for(NcNode oldProgramNode : oriProgramNodes){ |
| | | pfile = flowProgramFileService.getById(oldProgramNode.getFlowProgramFileId()); |
| | |
| | | NcNode newOtherFileNode = new NcNode(); |
| | | BeanUtils.copyProperties(oldProgramNode,newOtherFileNode); |
| | | EntityUtil.clearBaseProperties(newOtherFileNode); |
| | | newOtherFileNode.setParentId(newPkgNode.getId()); |
| | | newOtherFileNode.setParentIds(newPkgNode.getParentIds()+","+newPkgNode.getId()); |
| | | newOtherFileNode.setParentId(cureNode.getId()); |
| | | newOtherFileNode.setParentIds(cureNode.subNodeParentIds()); |
| | | newOtherFileNode.setIsLastEdition(1); |
| | | nodeService.save(newOtherFileNode); |
| | | } |
| | | |
| | | } |
| | | //nodeService.updateBatchById(oriProgramNodes); |
| | | } |
| | | |
| | | /** |
| | | * 加入新的程序文件节点 |
| | | * @param newPkgNode 新的节点(固化的) |
| | | * @param processInstanceId 流程实例id |
| | | */ |
| | | void addNewProgramNode(NcNode newPkgNode,String processInstanceId){ |
| | | //新的文件作为最新版本 |
| | | List<FlowProgramFile> files = flowProgramFileService.lambdaQuery().eq(FlowProgramFile::getProcessInstanceId,pkgNode.getProcessInstanceId()).list(); |
| | | List<FlowProgramFile> files = flowProgramFileService.lambdaQuery().eq(FlowProgramFile::getProcessInstanceId,processInstanceId).list(); |
| | | for(FlowProgramFile flowProgramFile : files){ |
| | | NcNode newProgNode = new NcNode(); |
| | | BeanUtils.copyProperties(newPkgNode, newProgNode); |
| | |
| | | newProgNode.setName(flowProgramFile.getName()); |
| | | newProgNode.setNodeType(NcNode.TYPE_PROGRAM_FILE); |
| | | newProgNode.setParentId(newPkgNode.getId()); |
| | | newProgNode.setParentIds(newPkgNode.getParentIds()+","+newPkgNode.getId()); |
| | | newProgNode.setParentIds(newPkgNode.subNodeParentIds()); |
| | | newProgNode.setIsLastEdition(1); |
| | | newProgNode.setVersionNumber(newPkgNode.getVersionNumber()); |
| | | newProgNode.setFlowProgramFileId(flowProgramFile.getId()); |
| | |
| | | nodeService.save(newProgNode); |
| | | |
| | | } |
| | | |
| | | log.info("偏离回传Listener完成"); |
| | | } |
| | | |
| | | } |