yangys
2025-06-30 813f0f6d391b7f24682204c22c059ef69b124fa6
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java
@@ -1,5 +1,6 @@
package org.springblade.mdm.flow.excution;
import io.swagger.v3.oas.annotations.media.Schema;
import org.flowable.common.engine.impl.identity.Authentication;
import org.flowable.engine.IdentityService;
import org.flowable.engine.runtime.ProcessInstance;
@@ -9,10 +10,13 @@
import org.springblade.flow.core.pojo.entity.BladeFlow;
import org.springblade.flow.core.utils.TaskUtil;
import org.springblade.mdm.flow.vo.TaskAssignVO;
import org.springblade.mdm.program.entity.NcProgram;
import org.springblade.mdm.program.service.NcProgramService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.flowable.engine.RuntimeService;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service("startDispatcher")
@@ -24,6 +28,9 @@
   private AutoAssignUsersService autoAssignUsersService;
   @Autowired
   private IdentityService identityService;
   @Autowired
   private NcProgramService ncProgramService;
   private static final String PROCESS_KEY = "dispatch";
   public void start(TaskAssignVO startVO){
@@ -40,9 +47,19 @@
      vars.put("craftEdition",startVO.getCraftEdition());
      vars.put("planStartTime",startVO.getPlanStartTime());
      vars.put("partNo",startVO.getPartNo());
      vars.put("partNoEdition",startVO.getPartNoEdition());
      vars.put("planLockDays",startVO.getPlanLockDays());
      //vars.put("producePlanId",startVO.getCraftEdition());
      //零组件代码
      String partNo = generatePartNo(startVO);
      vars.put("partNo",partNo);
      List<NcProgram> curedNcProgram = ncProgramService.getCuredNcProgram(partNo,startVO.getMachineCode());
      //vars.put("curedNcProgram",curedNcProgram);
      //设置是否有固化程序标记
      vars.put("hasCuredProgram",!curedNcProgram.isEmpty() ? "Y":"N");
      String businessKey = "0";//业务表key
@@ -50,7 +67,23 @@
      ProcessInstance pinst = runtimeService.startProcessInstanceByKey(PROCESS_KEY,businessKey,vars);
      int a=1;
      a =2;
      //log.info()
   }
   /**
    * 生成零组件编号
    * 图号、图号版次、工序号、工序名称、工艺版次、工序版次 组合起来获得零组件号
    * @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());
   }
}