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<String, Object> 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()
|
}
|
|
}
|