yangys
2025-08-16 f77951077aa87daae6460c0161868bd5661efb2f
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java
@@ -7,6 +7,8 @@
import org.flowable.engine.runtime.ProcessInstance;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.mdm.basesetting.producedivision.entity.ProduceDivision;
import org.springblade.mdm.basesetting.producedivision.service.ProduceDivisionService;
import org.springblade.mdm.flow.constants.FlowContants;
import org.springblade.mdm.flow.entity.FlowProgramFile;
import org.springblade.mdm.flow.service.FlowProgramFileService;
@@ -37,7 +39,8 @@
   private final FlowProgramFileService flowProgramFileService;
   private final NodeDeptQueryService nodeDeptQueryService;
   //public static final String PROCESS_KEY = "dispatch";
   private final ProduceDivisionService produceDivisionService;
   /**
    * 启动派工流程
@@ -46,19 +49,17 @@
    */
   @Transactional
   public String start(TaskAssignVO startVO){
      Map<String,Object> preAssignee = autoAssignUsersService.autoAssignUsers(startVO);
      Map<String, Object> vars = new HashMap<>(preAssignee);
      vars.put(FlowContants.ASSIGNEE,preAssignee.get(FlowContants.TEAM_LEADER));//第一个审批用户:组长
      Map<String, Object> vars = new HashMap<>();
      //Map<String,Object> preAssignee = autoAssignUsersService.autoAssignUsers(startVO);
      this.putDefaultAssignees(vars,startVO.getDrawingNo());
      vars.put(FlowContants.TITLE,startVO.getTitle());
      //机床编号
      vars.put(FlowContants.MACHINE_CODE,startVO.getMachineCode());
      String workshop = nodeDeptQueryService.getWorkshopNameByMachineCode(startVO.getMachineCode());
      vars.put("workshop",workshop);
      vars.put(FlowContants.WORKSHOP,workshop);
      //机床型号
      vars.put(FlowContants.MACHINE_MODE,startVO.getMachineMode());
      vars.put(FlowContants.PROCESS_NO,startVO.getProcessNo());
      vars.put(FlowContants.PROCESS_NAME,startVO.getProcessName());
@@ -93,6 +94,9 @@
      if(vars.getOrDefault(FlowContants.HAS_CURED_PROGRAM,FlowContants.N).equals(FlowContants.Y)){
         myProcessName = "固化下发流程";
      }
      if(StringUtils.isNotBlank(startVO.getDeviation()) ){
         myProcessName = "偏离单";
      }
      vars.put(FlowContants.MY_PROCESS_NAME, myProcessName);
      String businessKey = "0";//业务表key
@@ -107,18 +111,18 @@
   }
   /**
    * 根据原有固化程序包名节点,复制一个,赋予新的流程实例id
    * @param programPkg 原有固化的程序包名节点
    * @param processInstanceId 流程实例id
    * 将默认审批用户放入map中
    * @param vars 启动流程的变量map
    * @param drawingNo 零组件号
    */
   void putDefaultAssignees(Map<String, Object> vars,String drawingNo){
      ProduceDivision div = produceDivisionService.getByDrawingNoWithQinzhe(drawingNo);
      vars.put(FlowContants.TEAM_LEADER,div.getTeamLeaderId());
      vars.put(FlowContants.PROGRAMMER,div.getProgrammerId());
      vars.put(FlowContants.CHECKER,div.getCheckerId());
      vars.put(FlowContants.SENIOR,div.getSeniorId());
   void cloneNodes(NcNode programPkg,String processInstanceId){
      NcNode newProgramPkg = new NcNode();
      BeanUtils.copyProperties(programPkg,newProgramPkg);
      EntityUtil.clearBaseProperties(newProgramPkg);
      newProgramPkg.setProcessInstanceId(processInstanceId);
      this.ncNodeService.save(newProgramPkg);
      vars.put(FlowContants.ASSIGNEE,div.getTeamLeaderId());//第一个审批用户:组长
   }
   /**
@@ -140,21 +144,5 @@
      }
   }
   /**
    * 生成零组件编号
    * 图号、图号版次、工序号、工序名称、工艺版次、工序版次 组合起来获得零组件号
    * @param startVO
    * @return
    */
   /*
   String generatePartNo(TaskAssignVO startVO){
      //TODO 这个格式未确定,需要确认
      return String.format("%s-%s-%s-%s-%s-%s",
         startVO.getPartNo(),
         startVO.getPartNoEdition(),
         startVO.getProcessNo(),
         startVO.getProcessName(),
         startVO.getCraftEdition(),
         startVO.getProcessEdition());
   }*/
}