yangys
2025-08-23 d6ef9bf9011d45b5e20057f40841f2fc5ead4ec4
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java
@@ -56,7 +56,7 @@
      Map<String, Object> vars = new HashMap<>();
      ProduceDivision div = flowCommonService.putDefaultAssignees(vars,startVO.getDrawingNo(),null);
      vars.put(FlowContants.ASSIGNEE,div.getTeamLeaderId());//第一个用户组长
      vars.put(FlowContants.TITLE,startVO.getTitle());
      //机床编号
@@ -92,6 +92,7 @@
         //工序版次是否一致,是否在有效期内
         if (curedProgramPackage != null && Func.isBlank(startVO.getDeviation())) {//偏离单优先,如果有偏离单,那么找到固化程序的也不算固化了
            vars.put(FlowContants.CURED_NODE_ID, curedProgramPackage.getId());
            vars.put(FlowContants.CURED_LOCKED, curedProgramPackage.hasLocked()?FlowContants.Y:FlowContants.N);
            vars.put(FlowContants.IS_PROCESS_EDITION_SAME, StringUtils.equals(curedProgramPackage.getProcessEdition(), startVO.getProcessEdition()) ? "Y" : "N");
            vars.put(FlowContants.VALIDITY_PERIOD, curedProgramPackage.withinValidityPeriod() ? FlowContants.Y : FlowContants.N);
         } else {
@@ -116,11 +117,16 @@
      String businessKey = "0";//业务表key
      identityService.setAuthenticatedUserId(String.valueOf(AuthUtil.getUserId()));//设置流程发起人
      ProcessInstance inst = runtimeService.startProcessInstanceByKey(FlowContants.TRY_PROCESS_KEY,businessKey,vars);
      ProcessInstance inst;
      if(startVO.isTemporaryFlow()){
         vars.put(FlowContants.ASSIGNEE,div.getProgrammerId());//第一个用户编制上传文件
         inst = runtimeService.startProcessInstanceByKey(FlowContants.APPEND_PROCESS_KEY,businessKey,vars);
      }else{
         vars.put(FlowContants.ASSIGNEE,div.getTeamLeaderId());//第一个用户组长
         inst = runtimeService.startProcessInstanceByKey(FlowContants.TRY_PROCESS_KEY,businessKey,vars);
      }
      if(curedProgramPackage != null) {//存在已固化程序,复制原来的程序文件。
         copyFlowProgramFiles(curedProgramPackage.getId(),inst.getProcessInstanceId());
         curedProgramPackage.setProcessInstanceId(inst.getProcessInstanceId());
         ncNodeService.updateById(curedProgramPackage);
      }