yangys
2025-08-26 a0e37c52980249847ac896d320ef097fda49ad3a
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/cure/DeviationCureFinishDataHandler.java
@@ -42,7 +42,7 @@
   private MachineService machineService;
   /**
    * cureFinishOperateTask调用
    * cureFinishOperateTask调用,偏离单回传审批完成处理业务
    * @param props 属性
    */
   public void handleData(FlowProgramProperties props) {
@@ -66,16 +66,21 @@
      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();
@@ -96,27 +101,9 @@
      }
      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