yangys
2025-09-10 dc01577b31204fd3c80645b45d81ff693f79a985
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/NormalFinishDataHandler.java
@@ -1,17 +1,21 @@
package org.springblade.mdm.flow.excution.dispatch;
import com.alibaba.excel.util.StringUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FilenameUtils;
import org.springblade.mdm.flow.constants.FlowContants;
import org.springblade.mdm.flow.entity.FlowProgramFile;
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.gkw.programnode.vo.ProgramNameVO;
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;
import org.springblade.mdm.utils.EntityUtil;
import org.springblade.mdm.utils.ProgramFileNameParser;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -52,7 +56,7 @@
            Integer newVersion = packageNode.genNewVersionNumber();
            packageNode = ncNodeAutoCreateService.createNodeTreeWithProgram(props,newVersion);
         }else{
            //可用,升版(修改其工序版本),原来的节点清除
            //可用,升版(修改其工序版次),原来的节点清除
            moveToNewProcessEdition(packageNode,props);
         }
      }else{
@@ -97,20 +101,31 @@
      packageNode.setProcessEdition(tempProps.getProcessEdition());
      packageNode.setParentId(machineNode.getParentId());
      packageNode.setParentIds(machineNode.getParentIds());
      packageNode.setName(tempProps.getDrawingNo()+"-"+tempProps.getProcessNo()+"-"+tempProps.getProcessEdition());
      this.ncNodeService.updateById(packageNode);
      //移动程序节点
      List<NcNode> programNodes = ncNodeService.getProgramFilesByPackageId(packageNode.getId());
      for(NcNode programNode : programNodes){
         programNode.setName(buildNewFilename(programNode.getName(),tempProps.getProcessEdition()));//名称修改,工序版次部分
         programNode.setParentIds(packageNode.getParentIds()+","+packageNode.getId());
         programNode.setProcessEdition(tempProps.getProcessEdition());//修改工序版次
         programNode.setVersionNumber(packageNode.getVersionNumber());
      }
      ncNodeService.updateBatchById(programNodes);
   }
   String buildNewFilename(String filename,String newProcessEdition){
      ProgramNameVO pnameVO = ProgramFileNameParser.parseProgramName(filename);
      String ext = FilenameUtils.getExtension(filename);
      String name= pnameVO.getDrawingNo()+"-"+pnameVO.getProcessNo()+"-"+newProcessEdition+"-"+pnameVO.getSegmentCount()+"-"+pnameVO.getSegmentNo();
      if(StringUtils.isNotBlank(ext)){
         name += "."+ext;
      }
      return name;
   }
   /**
    * 保存审批完成的记录