yangys
2025-09-15 d4ca3871c18474768c924fcbfd6e8d3178040092
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/NormalFinishDataHandler.java
@@ -4,8 +4,6 @@
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FilenameUtils;
import org.springblade.mdm.flow.constants.FlowContants;
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.FlowProgramProperties;
import org.springblade.mdm.gkw.programnode.vo.ProgramNameVO;
@@ -14,12 +12,12 @@
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;
import org.springblade.mdm.utils.ProgramFileNameParser;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
import java.util.List;
/**
@@ -38,22 +36,25 @@
   private NcNodeAutoCreateService ncNodeAutoCreateService;
   /**
    * DispatchFinishListener中调用
    * @param props 执行对象
    * @param props 流程属性
    */
   public void handleData(FlowProgramProperties props) {
      // 执行业务逻辑
      LocalDateTime now = LocalDateTime.now();
      NcNode packageNode;
      if(FlowContants.Y.equals(props.getHasCuredProgram())){
         //有固化
         packageNode = ncNodeService.getById(props.getCuredNodeId());
         if(FlowContants.N.equals(props.getCureProgramUseable())) {
            //程序不可用
            //原来的固化节点锁定
            //程序不可用,原来的固化节点锁定
            packageNode.lock();
            ncNodeService.updateById(packageNode);
            Integer newVersion = packageNode.genNewVersionNumber();
            //版本号根据零组件号+工序号,工序版次,机床组 直接查询数量,+1获取
            Integer newVersion = ncNodeService.calculateVersionNumber(packageNode);
            //Integer newVersion = packageNode.genNewVersionNumber();
            packageNode = ncNodeAutoCreateService.createNodeTreeWithProgram(props,newVersion);
         }else{
            //可用,升版(修改其工序版次),原来的节点清除
@@ -62,10 +63,13 @@
      }else{
         //普通试切
         packageNode = ncNodeAutoCreateService.createNodeTreeWithProgram(props,1);
         long hisSerial = ncNodeService.calculateHistorySerial(packageNode);
         packageNode.setHisSerial(hisSerial);
         ncNodeService.updateById(packageNode);
      }
      addApproveTable(packageNode,props);
      //updateApproveRecordNodeId(instId, packageNode.getId());
      log.info("普通流程已完成in DispatchFinishListener");
   }
@@ -80,13 +84,13 @@
      FlowProgramProperties tempProps = new FlowProgramProperties();
      BeanUtils.copyProperties(props,tempProps);
      tempProps.setProcessDefinitionKey(FlowContants.CURE_PROCESS_KEY);//临时修改其为固化,在固化下创建节点
      NcNode machineNode = ncNodeAutoCreateService.createNodeTreeToMachine(tempProps);
      NcNode machineGroupNode = ncNodeAutoCreateService.createNodeTreeToMachineGroup(tempProps);
      //移动历史节点到新的版次节点下
      List<NcNode> packageHisNodes = ncNodeService.getNodeHistory(packageNode);//该包的历史节点列表
      List<NcNode> packageHisNodes = ncNodeService.getTryNodeHistory(packageNode);//该包的历史节点列表
      for(NcNode hisPackageNode : packageHisNodes){
         hisPackageNode.setParentId(machineNode.getParentId());
         hisPackageNode.setParentIds(machineNode.getParentIds());
         hisPackageNode.setParentId(machineGroupNode.getId());
         hisPackageNode.setParentIds(machineGroupNode.getParentIds()+","+machineGroupNode.getId());
         List<NcNode> oriProgramNodes = ncNodeService.lambdaQuery().eq(NcNode::getParentId,hisPackageNode.getId()).list();
@@ -99,8 +103,8 @@
      //移动程序包名节点
      packageNode.setProcessEdition(tempProps.getProcessEdition());
      packageNode.setParentId(machineNode.getParentId());
      packageNode.setParentIds(machineNode.getParentIds());
      packageNode.setParentId(machineGroupNode.getId());
      packageNode.setParentIds(machineGroupNode.getParentIds()+","+machineGroupNode.getId());
      packageNode.setName(tempProps.getDrawingNo()+"-"+tempProps.getProcessNo()+"-"+tempProps.getProcessEdition());
      this.ncNodeService.updateById(packageNode);