| | |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springblade.core.log.exception.ServiceException; |
| | | import org.springblade.core.tool.utils.Func; |
| | | import org.springblade.mdm.flow.constants.FlowContants; |
| | | import org.springblade.mdm.flow.constants.FlowConstant; |
| | | import org.springblade.mdm.flow.entity.FlowProgramFile; |
| | | import org.springblade.mdm.flow.service.FlowCommonService; |
| | | import org.springblade.mdm.flow.service.FlowProgramFileService; |
| | |
| | | * @param programProperties 程序属性 |
| | | */ |
| | | @Transactional |
| | | public NcNode createNodeTreeToMachine(FlowProgramProperties programProperties) { |
| | | public NcNode createNodeTreeToMachineGroup(FlowProgramProperties programProperties) { |
| | | NcNode root; |
| | | if(programProperties.getProcessDefinitionKey().equals(FlowContants.TRY_PROCESS_KEY)){ |
| | | if(programProperties.getProcessDefinitionKey().equals(FlowConstant.TRY_PROCESS_KEY)){ |
| | | if(Func.isEmpty(programProperties.getDeviation()) || |
| | | (FlowContants.Y.equals(programProperties.getHasCuredProgram()) && FlowContants.N.equals(programProperties.getCureProgramUseable()))){ |
| | | (FlowConstant.Y.equals(programProperties.getHasCuredProgram()) && FlowConstant.N.equals(programProperties.getCureProgramUseable()))){ |
| | | //普通试切,或者有固化不可用,建立试切节点 |
| | | //试切根节点 |
| | | root = rootNodeByName(TRY_NAME); |
| | |
| | | root = createDeviationNode(); |
| | | } |
| | | } |
| | | }else if(programProperties.getProcessDefinitionKey().equals(FlowContants.CURE_PROCESS_KEY)){ |
| | | }else if(programProperties.getProcessDefinitionKey().equals(FlowConstant.CURE_PROCESS_KEY)){ |
| | | root = rootNodeByName(CURE_NAME); |
| | | if(root == null){ |
| | | root = createCureNode(); |
| | |
| | | //工序版次节点 |
| | | NcNode processEditionNode = createNodeIfNotExists(programProperties.getProcessEdition(),NcNode.TYPE_PROCESS_EDITION, processNoNode,programProperties,null); |
| | | //加工机床节点 |
| | | return createNodeIfNotExists(programProperties.getMachineCode(),NcNode.TYPE_MACHINE_CODE, processEditionNode,programProperties,null); |
| | | return createNodeIfNotExists(programProperties.getMachineGroupCode(),NcNode.TYPE_MACHINE_GROUP, processEditionNode,programProperties,null); |
| | | } |
| | | |
| | | /* |
| | | @Transactional |
| | | public NcNode createNodeTreeToProcessEdition(FlowProgramProperties programProperties) { |
| | | NcNode root; |
| | |
| | | //加工机床节点 |
| | | return createNodeIfNotExists(programProperties.getMachineCode(),NcNode.TYPE_MACHINE_CODE, processEditionNode,programProperties,null); |
| | | } |
| | | */ |
| | | /** |
| | | * 根据流程信息,自动创建各个节点,包括程序节点 |
| | | * @param programProperties 程序属性 |
| | |
| | | */ |
| | | @Transactional |
| | | public NcNode createTreeToPackage(FlowProgramProperties programProperties,Integer versionNumber) { |
| | | NcNode machineCodeNode = createNodeTreeToMachine(programProperties); |
| | | NcNode processEditionNode = this.ncNodeService.getById(machineCodeNode.getParentId()); |
| | | NcNode machineGroupNode = createNodeTreeToMachineGroup(programProperties); |
| | | //NcNode processEditionNode = this.ncNodeService.getById(machineCodeNode.getParentId()); |
| | | //获取工序版次下其他机床名,存在则删除 |
| | | ncNodeService.lambdaUpdate().eq(NcNode::getNodeType,NcNode.TYPE_MACHINE_CODE) |
| | | /* |
| | | ncNodeService.lambdaUpdate().eq(NcNode::getNodeType,NcNode.TYPE_MACHINE_GROUP) |
| | | .eq(NcNode::getParentId,processEditionNode.getId()).eq(NcNode::getIsLastEdition,1) |
| | | .ne(NcNode::getName,machineCodeNode.getName()).remove(); |
| | | |
| | | */ |
| | | |
| | | //保持加工机床是最新下发任务的机床,不是新建一个机床节点,插叙工序版次下是否有其他的机床(零件号一致,工序号,工序版次一致) |
| | | //获取 |
| | | //加工机床和程序包名在同一级节点,同在工序版次下级 |
| | | String programPkgName = NcNodeService.genProgramName(programProperties.getDrawingNo(),programProperties.getProcessNo()); |
| | | return createNodeIfNotExists(programPkgName ,NcNode.TYPE_PROGRAM_PACKAGE, processEditionNode,programProperties,versionNumber); |
| | | //程序包名在机床组下级 20250913 |
| | | String programPkgName = NcNodeService.genProgramName(programProperties.getDrawingNo(),programProperties.getProcessNo(),programProperties.getProcessEdition()); |
| | | return createNodeIfNotExists(programPkgName ,NcNode.TYPE_PROGRAM_PACKAGE, machineGroupNode,programProperties,versionNumber); |
| | | |
| | | } |
| | | |
| | |
| | | ncNode.setProcessEdition(programProperties.getProcessEdition()); |
| | | ncNode.setProcessName(programProperties.getProcessName()); |
| | | ncNode.setMachineCode(programProperties.getMachineCode()); |
| | | ncNode.setMachineGroupCode(programProperties.getMachineGroupCode()); |
| | | ncNode.setProductModel(programProperties.getProductModel()); |
| | | |
| | | ncNode.setDeviation(programProperties.getDeviation()); |
| | | |
| | | if(NcNode.TYPE_PROGRAM_PACKAGE.equals(nodeType)) {//程序包节点,分配程序编号 |
| | | |
| | | ncNode.setProgramNo(programProperties.getProgramNo()); |
| | | } |
| | | } |