yangys
2025-09-03 a3a9933cf1b49006edf470615236f94ebdaa4cb9
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/cure/DeviationCureFinishDataHandler.java
@@ -1,9 +1,7 @@
package org.springblade.mdm.flow.excution.cure;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.tool.utils.Func;
import org.springblade.mdm.basesetting.machine.MachineService;
import org.springblade.mdm.flow.constants.FlowContants;
import org.springblade.mdm.basesetting.machine.service.MachineService;
import org.springblade.mdm.flow.entity.ApproveRecord;
import org.springblade.mdm.flow.entity.FlowProgramFile;
import org.springblade.mdm.flow.excution.dispatch.FinishDataHandler;
@@ -11,7 +9,6 @@
import org.springblade.mdm.flow.service.FlowProgramFileService;
import org.springblade.mdm.flow.service.FlowProgramProperties;
import org.springblade.mdm.program.entity.NcNode;
import org.springblade.mdm.program.entity.NcProgramApproved;
import org.springblade.mdm.program.service.NcNodeAutoCreateService;
import org.springblade.mdm.program.service.NcNodeService;
import org.springblade.mdm.program.service.NcProgramApprovedService;
@@ -42,7 +39,7 @@
   private MachineService machineService;
   /**
    * cureFinishOperateTask调用
    * cureFinishOperateTask调用,偏离单回传审批完成处理业务
    * @param props 属性
    */
   public void handleData(FlowProgramProperties props) {
@@ -66,16 +63,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 +98,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