yangys
2025-09-13 a0f3e98fdd9472af3c78b42423a7e3fa6fb92eba
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/cure/DeviationCureFinishDataHandler.java
@@ -1,17 +1,13 @@
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;
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.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;
@@ -28,10 +24,7 @@
@Slf4j
@Component("deviationCureFinishDataHandler")
public class DeviationCureFinishDataHandler implements FinishDataHandler {
   @Autowired
   private NcProgramApprovedService approvedService;
   @Autowired
   private ApproveRecordService approveRecordService;
   @Autowired
   private FlowProgramFileService flowProgramFileService;
   @Autowired
@@ -66,12 +59,9 @@
      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);
@@ -83,7 +73,7 @@
         }
      }
      nodeService.updateBatchById(oriProgramNodes);
      //nodeService.updateBatchById(oriProgramNodes);
      //新的文件作为最新版本
      List<FlowProgramFile> files = flowProgramFileService.lambdaQuery().eq(FlowProgramFile::getProcessInstanceId,pkgNode.getProcessInstanceId()).list();
@@ -104,32 +94,7 @@
      }
      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
      approveRecordService.lambdaUpdate()
         .eq(ApproveRecord::getProcessInstanceId, processInstanceId)
         .set(ApproveRecord::getNcNodeId,nodeId).update();
   }
}