package org.springblade.mdm.flow.service; import org.flowable.engine.IdentityService; import org.flowable.engine.RuntimeService; import org.flowable.engine.runtime.ProcessInstance; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.mdm.basesetting.machine.MachineService; import org.springblade.mdm.basesetting.machine.entity.Machine; import org.springblade.mdm.flow.excution.AutoAssignUsersService; import org.springblade.mdm.flow.vo.TaskAssignVO; import org.springblade.mdm.program.entity.NcNode; import org.springblade.mdm.program.entity.NcProgram; import org.springblade.mdm.program.service.NcNodeService; import org.springblade.mdm.program.service.NcProgramService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.Map; /** * 固化流程服务 */ @Service public class CureFlowService { @Autowired private RuntimeService runtimeService; @Autowired private AutoAssignUsersService autoAssignUsersService; @Autowired private IdentityService identityService; @Autowired private NcProgramService ncProgramService; @Autowired private NcNodeService ncNodeService; @Autowired private MachineService machineService; /** * 固化流程的key */ private static final String PROCESS_KEY = "program-cure"; /** * 启动固化流程 * @param programId 程序id */ public void start(long programId){ Map vars = new HashMap<>(); NcProgram prog = ncProgramService.getById(programId); NcNode progNode = ncNodeService.getById(programId); Machine machine = machineService.getByCode(progNode.getMachineCode()); vars.put("machineCode",machine.getCode()); vars.put("machineMode",machine.getName()); vars.put("processEdition",prog.getProcessEdition()); vars.put("programId",programId); vars.put("program",progNode); String businessKey = "0";//业务表key identityService.setAuthenticatedUserId(String.valueOf(AuthUtil.getUserId()));//设置流程发起人 ProcessInstance pinst = runtimeService.startProcessInstanceByKey(PROCESS_KEY,businessKey,vars); int a=1; //log.info() } }