yangys
2025-08-23 55e316d9f3ee4e3fd0ae21b193efa7b358a0ae00
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/cure/NormalCureFinishDataHandler.java
@@ -38,6 +38,7 @@
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Optional;
/**
 * 普通派工完成数据处理器,功能:插入审批表数据,DispatchFinishListener调用
@@ -78,8 +79,16 @@
      //试切的
      pkgNode.setIsCured(1);
      pkgNode.setIsLocked(NcNode.UNLOCK);
      Optional<NcNode> optOldCuredPackageNode = nodeService.lambdaQuery().eq(NcNode::getName,pkgNode.getName())
         .eq(NcNode::getProcessNo,pkgNode.getProcessNo())
         .eq(NcNode::getProcessEdition,pkgNode.getProcessEdition())
         .eq(NcNode::getIsLastEdition,1).eq(NcNode::getIsCured,1).oneOpt();
      //设置过期日期
      pkgNode.upgradeVersionNumber();
      if(optOldCuredPackageNode.isEmpty()){
         //之前 没有已固化的程序包名,则直接更新版本号,如果有,那就使用node现在的版本号,因为不可用转为试切,审批完成已经升级version
         pkgNode.upgradeVersionNumber();
      }
      pkgNode.setExpireDate(calculateExpireDate());
      nodeService.updateById(pkgNode);
@@ -121,20 +130,20 @@
         hisPackageNode.setParentIds(machineNode.getParentIds());//程序包与机床节点同级
         //处理程序包下层的程序节点111
         List<NcNode> programNodes = nodeService.lambdaQuery().eq(NcNode::getParentId,hisPackageNode.getId()).list();
         List<NcNode> oriProgramNodes = nodeService.lambdaQuery().eq(NcNode::getParentId,hisPackageNode.getId()).list();
         FlowProgramFile pfile;
         for(NcNode programNode : programNodes){
            programNode.setParentIds(hisPackageNode.getParentIds()+","+hisPackageNode.getId());
            programNode.setIsLastEdition(0);
         for(NcNode oldProgramNode : oriProgramNodes){
            oldProgramNode.setParentIds(hisPackageNode.getParentIds()+","+hisPackageNode.getId());
            oldProgramNode.setIsLastEdition(0);
            pfile = flowProgramFileService.getById(programNode.getFlowProgramFileId());
            if(programNode.getParentId().equals(pkgNode.getId()) && !pfile.isProgram()){
            pfile = flowProgramFileService.getById(oldProgramNode.getFlowProgramFileId());
            if(oldProgramNode.getParentId().equals(pkgNode.getId()) && !pfile.isProgram()){
               //当前固化程序包名下的“其他文件”非程序文件。不设置为老版本,直接挪到固化树下,两个网络之间只交换程序文件,其他文件只能保留
               programNode.setIsLastEdition(1);
               oldProgramNode.setIsLastEdition(1);
            }
         }
         nodeService.updateBatchById(programNodes);
         nodeService.updateBatchById(oriProgramNodes);
      }
      nodeService.updateBatchById(historyProgramPackageNodes);
@@ -144,7 +153,10 @@
      List<FlowProgramFile> files = flowProgramFileService.lambdaQuery().eq(FlowProgramFile::getProcessInstanceId,pkgNode.getProcessInstanceId()).list();
      for(FlowProgramFile flowProgramFile : files){
         NcNode newProgNode = new NcNode();
         BeanUtils.copyProperties(pkgNode,newProgNode);
         EntityUtil.clearBaseProperties(newProgNode);
         newProgNode.setName(flowProgramFile.getName());
         newProgNode.setNodeType(NcNode.TYPE_PROGRAM_FILE);
         newProgNode.setParentId(pkgNode.getId());
@@ -157,8 +169,6 @@
         //修改文件内容更新注释,并更新文件数据的地址
         ///替换注释后总是不行啊
         setGhAnnotation(flowProgramFile,machine.getMachineGroupCode(),annoDicts);
         //flowProgramFileService.updateById(flowProgramFile);
      }
   }