| | |
| | | package org.springblade.mdm.flow.excution.cure; |
| | | |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springblade.core.tool.utils.Func; |
| | | import org.springblade.mdm.basesetting.machine.MachineService; |
| | | import org.springblade.mdm.flow.constants.FlowContants; |
| | | import org.springblade.mdm.basesetting.machine.service.MachineService; |
| | | import org.springblade.mdm.flow.entity.ApproveRecord; |
| | | import org.springblade.mdm.flow.entity.FlowProgramFile; |
| | | import org.springblade.mdm.flow.excution.dispatch.FinishDataHandler; |
| | |
| | | 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; |
| | |
| | | private MachineService machineService; |
| | | |
| | | /** |
| | | * cureFinishOperateTask调用 |
| | | * cureFinishOperateTask调用,偏离单回传审批完成处理业务 |
| | | * @param props 属性 |
| | | */ |
| | | public void handleData(FlowProgramProperties props) { |
| | |
| | | List<NcNode> oriProgramNodes = nodeService.lambdaQuery().eq(NcNode::getParentId,pkgNode.getId()).list(); |
| | | FlowProgramFile pfile; |
| | | for(NcNode oldProgramNode : oriProgramNodes){ |
| | | oldProgramNode.setIsLastEdition(0); |
| | | oldProgramNode.setVersionNumber(pkgNode.getVersionNumber()); |
| | | pfile = flowProgramFileService.getById(oldProgramNode.getFlowProgramFileId()); |
| | | if(!pfile.isProgram()){ |
| | | //当前固化程序包名下的“其他文件”非程序文件。不设置为老版本,直接挪到固化树下,两个网络之间只交换程序文件,其他文件只能保留 |
| | | oldProgramNode.setIsLastEdition(1); |
| | | //当前固化程序包名下的“其他文件”非程序文件。不设置为老版本,复制到固化树下,两个网络之间只交换程序文件,其他文件只能保留 |
| | | //其他文件,需要复制到新建的固化节点下 |
| | | NcNode newOtherFileNode = new NcNode(); |
| | | BeanUtils.copyProperties(oldProgramNode,newOtherFileNode); |
| | | EntityUtil.clearBaseProperties(newOtherFileNode); |
| | | newOtherFileNode.setParentId(newPkgNode.getId()); |
| | | newOtherFileNode.setParentIds(newPkgNode.getParentIds()+","+newPkgNode.getId()); |
| | | newOtherFileNode.setIsLastEdition(1); |
| | | nodeService.save(newOtherFileNode); |
| | | } |
| | | |
| | | } |
| | | nodeService.updateBatchById(oriProgramNodes); |
| | | //nodeService.updateBatchById(oriProgramNodes); |
| | | |
| | | //新的文件作为最新版本 |
| | | List<FlowProgramFile> files = flowProgramFileService.lambdaQuery().eq(FlowProgramFile::getProcessInstanceId,pkgNode.getProcessInstanceId()).list(); |
| | |
| | | |
| | | } |
| | | |
| | | addApproveTable(pkgNode,props); |
| | | updateApproveRecordNodeId(instId, pkgNode.getId()); |
| | | log.info("偏离回传Listener完成"); |
| | | } |
| | | |
| | | /** |
| | | * 保存审批完成的记录 |
| | | * @param packageNode |
| | | * @param props |
| | | */ |
| | | void addApproveTable(NcNode packageNode,FlowProgramProperties props){ |
| | | NcProgramApproved approved = new NcProgramApproved(); |
| | | |
| | | approved.setProgramName(packageNode.getName()); |
| | | approved.setNcNodeId(packageNode.getId());//程序包节点id |
| | | approved.setTitle(props.getTitle()); |
| | | approved.setProgrammerId(props.getProgrammerId()); |
| | | approvedService.save(approved); |
| | | |
| | | } |
| | | |
| | | |
| | | void updateApproveRecordNodeId(String processInstanceId,Long nodeId){ |
| | | //更新审批记录的ncNodeId |