yangys
2025-09-18 0d61b9bfca526e9c3da2209de8f9f367e76fd013
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/NormalFinishDataHandler.java
@@ -8,7 +8,7 @@
import org.springblade.core.oss.model.BladeFile;
import org.springblade.mdm.basesetting.machine.entity.Machine;
import org.springblade.mdm.basesetting.machine.service.MachineService;
import org.springblade.mdm.flow.constants.FlowContants;
import org.springblade.mdm.flow.constants.FlowConstant;
import org.springblade.mdm.flow.entity.FlowProgramFile;
import org.springblade.mdm.flow.excution.ListenerHelper;
import org.springblade.mdm.flow.service.FlowProgramFileService;
@@ -17,11 +17,8 @@
import org.springblade.mdm.program.entity.NcNode;
import org.springblade.mdm.program.service.NcNodeAutoCreateService;
import org.springblade.mdm.program.service.NcNodeService;
import org.springblade.mdm.program.service.NcProgramApprovedService;
import org.springblade.mdm.program.service.ProgramAnnotationService;
import org.springblade.mdm.program.service.programannotation.*;
import org.springblade.mdm.utils.ProgramFileNameParser;
import org.springblade.system.pojo.entity.DictBiz;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -29,7 +26,6 @@
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.time.LocalDateTime;
import java.util.List;
/**
@@ -49,8 +45,6 @@
   @Autowired
   private NcNodeAutoCreateService ncNodeAutoCreateService;
   @Autowired
   private ProgramAnnotationService programAnnotationService;
   @Autowired
   private ListenerHelper listenerHelper;
   @Autowired
   private OssTemplate ossTemplate;
@@ -61,24 +55,20 @@
    */
   public void handleData(FlowProgramProperties props) throws IOException {
      // 执行业务逻辑
      LocalDateTime now = LocalDateTime.now();
      NcNode packageNode;
      if(FlowContants.Y.equals(props.getHasCuredProgram())){
      if(FlowConstant.Y.equals(props.getHasCuredProgram())){
         //有固化
         packageNode = ncNodeService.getById(props.getCuredNodeId());
         if(FlowContants.N.equals(props.getCureProgramUseable())) {
         if(FlowConstant.N.equals(props.getCureProgramUseable())) {
            //程序不可用,原来的固化节点锁定
            packageNode.lock();
            ncNodeService.updateById(packageNode);
            //版本号根据零组件号+工序号,工序版次,机床组 直接查询数量,+1获取
            Integer newVersion = ncNodeService.calculateVersionNumber(packageNode);
            //Integer newVersion = packageNode.genNewVersionNumber();
            packageNode = ncNodeAutoCreateService.createNodeTreeWithProgram(props,newVersion);
         }else{
            //String oriProcessEdition = packageNode.getProcessEdition();
            //可用,空升版(修改其工序版次),原来的节点清除
            moveToNewProcessEdition(packageNode,props);
@@ -109,25 +99,9 @@
      FlowProgramProperties tempProps = new FlowProgramProperties();
      BeanUtils.copyProperties(props,tempProps);
      tempProps.setProcessDefinitionKey(FlowContants.CURE_PROCESS_KEY);//临时修改其为固化,在固化下创建节点
      tempProps.setProcessDefinitionKey(FlowConstant.CURE_PROCESS_KEY);//临时修改其为固化,在固化下创建节点
      NcNode machineGroupNode = ncNodeAutoCreateService.createNodeTreeToMachineGroup(tempProps);
      //移动历史节点到新的版次节点下
      /*
      List<NcNode> packageHisNodes = ncNodeService.getTryNodeHistory(packageNode);//该包的历史节点列表
      for(NcNode hisPackageNode : packageHisNodes){
         hisPackageNode.setParentId(machineGroupNode.getId());
         hisPackageNode.setParentIds(machineGroupNode.getParentIds()+","+machineGroupNode.getId());
         List<NcNode> oriProgramNodes = ncNodeService.lambdaQuery().eq(NcNode::getParentId,hisPackageNode.getId()).list();
         for(NcNode oldProgramNode : oriProgramNodes){
            oldProgramNode.setParentIds(hisPackageNode.getParentIds()+","+hisPackageNode.getId());
         }
         ncNodeService.updateBatchById(oriProgramNodes);
      }
      ncNodeService.updateBatchById(packageHisNodes);
      */
      //移动程序包名节点
      packageNode.setProcessEdition(tempProps.getProcessEdition());
      packageNode.setParentId(machineGroupNode.getId());
@@ -180,15 +154,10 @@
      try(InputStream ins = ossTemplate.statFileStream(flowProgramFile.getOssName());){
         ByteArrayInputStream byteInputStream =  new ByteArrayInputStream(IOUtils.toByteArray(ins));
         //List<DictBiz> annoDictList = programAnnotationService.getAnnotionDictList();
         AnnotationProcessor annoProcessor = ProcessorHelper.getProcessor(controlSystem,this.annotationConfig);
         /*
         AnnotationProperties annoProps = annotationConfig.getConfigMap().get(controlSystem);
         if(annoProps == null){
            annoProps = AnnotationProperties.getDefault();
         }*/
         InputStream finishedStream = annoProcessor.setFilenameAnnotation(filename,byteInputStream);
         InputStream finishedStream = annoProcessor.putFilenameAnnotation(filename,byteInputStream);
         //InputStream finishedStream = AnnotationUtil.setAnnotationAndGetInputStream(byteInputStream, "GH", annoProps.getStatusLineIndex(), controlSystem, annoDictList);
         try(finishedStream) {
            finishedStream.reset();