yangys
2025-08-22 538857185263f29b325de9a34ae066c21b7cd371
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/NormalFinishDataHandler.java
@@ -46,17 +46,24 @@
      String programPkgName = NcNodeService.genProgramName(props.getDrawingNo(),props.getProcessNo());
      createProgramNodes(props);
      //TODO 偏离单,和已经固化的程序,没有处理,:已经处理没有验证
      NcNode packageNode;
      if(FlowContants.Y.equals(props.getHasCuredProgram()) && FlowContants.Y.equals(props.getCureProgramUseable())){
         //有固化,且程序可用,从固化树查询节点
         packageNode = ncNodeService.getLastEditionCuredProgramPackage(programPkgName);
      if(FlowContants.Y.equals(props.getHasCuredProgram())){
         //有固化,且程序可用,从固化树查询节点.使用流程中保存的节点
         //packageNode = ncNodeService.getLastEditionCuredProgramPackage(programPkgName,props.getProcessEdition());
         if(FlowContants.Y.equals(props.getCureProgramUseable())) {
            packageNode = ncNodeService.getById(props.getCuredNodeId());
         }else{
            //不可用,去固化找最新节点
            packageNode = ncNodeService.getLastEditionCuredProgramPackage(programPkgName,props.getProcessEdition());
         }
      }else if(Func.isNotBlank(props.getDeviation())){
         //有偏离单
         packageNode = ncNodeService.getLastEditionDeviationProgramPackage(programPkgName);
         packageNode = ncNodeService.getLastEditionDeviationProgramPackage(programPkgName,props.getProcessEdition());
      }else{
         //普通试切,或者有固化不可用
         packageNode = ncNodeService.getLastEditionTryingProgramPackage(programPkgName);
         packageNode = ncNodeService.getLastEditionTryingProgramPackage(programPkgName,props.getProcessEdition());
      }
      addApproveTable(packageNode,props);
@@ -70,13 +77,13 @@
    */
   void createProgramNodes(FlowProgramProperties progProperties){
      if(FlowContants.N.equals(progProperties.getHasCuredProgram())) {
         //无固化(试切或者偏离)
         //无固化:(试切或者偏离)
         ncNodeAutoCreateService.createNodeTreeWithProgram(progProperties);
      }else{
         //有固化,程序不可用
         if(FlowContants.N.equals(progProperties.getCureProgramUseable())) {
            //固化程序不可用,需要重新建立程序包名和文件节点;可用情况在流程审批中已经升级过节点了
            NcNode curedProgramPackage = ncNodeService.getById(Func.toLong(progProperties.getCuredNodeId()));
            NcNode curedProgramPackage = ncNodeService.getById(progProperties.getCuredNodeId());
            NcNode newCuredPkgNode = new NcNode();
            BeanUtils.copyProperties(curedProgramPackage, newCuredPkgNode);