yangys
2025-08-17 0ef4cc755bddd87799b8bfdd65c8123df6e149d0
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/task/cure/CureFinishOperateTask.java
@@ -3,7 +3,6 @@
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.IOUtils;
import org.checkerframework.checker.units.qual.N;
import org.flowable.engine.delegate.DelegateExecution;
import org.springblade.core.oss.OssTemplate;
import org.springblade.core.oss.model.BladeFile;
@@ -47,8 +46,6 @@
   private final ProgramAnnotationService programAnnotationService;
   private final MachineService machineService;
   public static final String GH = "GH";
   /**
    * 默认有效期间(月数),2年
@@ -77,13 +74,15 @@
      NcNode pkgNode =  nodeService.lambdaQuery().eq(NcNode::getProcessInstanceId, processInstanceId).one();
      if(pkgNode.isDeviationProgram()){
         //偏离的程序直接锁定
         pkgNode.setIsLocked(1);
         //pkgNode.setIsLocked(1);
         pkgNode.lock();
         nodeService.updateById(pkgNode);
      }else {
         //试切的
         pkgNode.setIsCured(1);
         pkgNode.setIsLocked(NcNode.UNLOCK);
         //设置过期日期
         pkgNode.upgradeVersionNUmber();
         pkgNode.upgradeVersionNumber();
         pkgNode.setExpireDate(calculateExpireDate());
         nodeService.updateById(pkgNode);
@@ -101,9 +100,13 @@
      //创建节点到机床级别.(固化树)
      NcNode machineNode = ncNodeAutoCreateService.createNodeTreeToMachine(programProperties);
      pkgNode.setParentId(machineNode.getParentId());
      pkgNode.setParentIds(machineNode.getParentIds());//更新上级节点,下面还要用应为在historyProgramPackageNodes中的和这个不是一个实例
      //机床下现在没有文件了,程序包名升级与机床同级了,改为找到机床同级程序包名更新了
      //TODO 这个parentIds是不是不够?,不够,一个机床下多个程序包的情况不行吧,但是按照树,多个程序包不太现实
      this.nodeService.lambdaUpdate().likeRight(NcNode::getParentIds, machineNode.getParentIds())
         .in(NcNode::getNodeType, Arrays.asList(NcNode.TYPE_PROGRAM_PACKAGE,NcNode.TYPE_PROGRAM_FILE))
         .ne(NcNode::getId,pkgNode.getId())//不要更新新固化的节点new
         .set(NcNode::getIsLastEdition,0).set(NcNode::getIsLocked,1).update();
      for(NcNode hisPackageNode : historyProgramPackageNodes){
@@ -113,7 +116,7 @@
         hisPackageNode.setParentId(machineNode.getParentId());
         hisPackageNode.setParentIds(machineNode.getParentIds());//程序包与机床节点同级
         //处理程序包下层的程序节点
         //处理程序包下层的程序节点111
         List<NcNode> programNodes = nodeService.lambdaQuery().eq(NcNode::getParentId,hisPackageNode.getId()).list();
         for(NcNode programNode : programNodes){
            programNode.setIsLastEdition(0);
@@ -132,6 +135,12 @@
         newProgNode.setName(flowProgramFile.getName());
         newProgNode.setNodeType(NcNode.TYPE_PROGRAM_FILE);
         newProgNode.setParentId(pkgNode.getId());
         newProgNode.setDrawingNo(pkgNode.getDrawingNo());
         newProgNode.setDrawingNoEdition(pkgNode.getDrawingNoEdition());
         newProgNode.setMachineCode(pkgNode.getMachineCode());
         newProgNode.setProcessEdition(pkgNode.getProcessEdition());
         newProgNode.setProcessName(pkgNode.getProcessName());
         newProgNode.setProcessNo(pkgNode.getProcessNo());
         newProgNode.setParentIds(pkgNode.getParentIds()+","+pkgNode.getId());
         newProgNode.setIsLastEdition(1);
         newProgNode.setVersionNumber(pkgNode.getVersionNumber());