package org.springblade.mdm.flow.service;
|
|
import lombok.AllArgsConstructor;
|
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.basesetting.producedivision.entity.ProduceDivision;
|
import org.springblade.mdm.basesetting.producedivision.service.ProduceDivisionService;
|
import org.springblade.mdm.flow.constants.FlowContants;
|
import org.springblade.mdm.program.entity.NcNode;
|
import org.springblade.mdm.program.service.NcNodeService;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.util.HashMap;
|
import java.util.Map;
|
|
@AllArgsConstructor
|
@Service
|
public class LockFlowService {
|
private final NcNodeService nodeService;
|
private final RuntimeService runtimeService;
|
private final IdentityService identityService;
|
private final MachineService machineService;
|
private final ProduceDivisionService produceDivisionService;
|
|
|
/**
|
* 启动解锁流程
|
*/
|
@Transactional
|
public void startUnlock(Long nodeId){
|
NcNode programPackage = nodeService.getById(nodeId);
|
Map<String, Object> vars = new HashMap<>();
|
|
ProduceDivision div = produceDivisionService.getByDrawingNoWithQinzhe(programPackage.getDrawingNo());
|
vars.put(FlowContants.ASSIGNEE,div.getSeniorId());//审批用户:高师
|
|
vars.put(FlowContants.TITLE,programPackage.getName()+"程序解锁");
|
|
//机床编号
|
vars.put(FlowContants.MACHINE_CODE,programPackage.getMachineCode());
|
Machine machine = machineService.getByCode(programPackage.getMachineCode());
|
//机床型号
|
if(machine != null) {
|
vars.put(FlowContants.MACHINE_MODE, machine.getName());
|
}
|
vars.put(FlowContants.PROCESS_NO,programPackage.getProcessNo());
|
vars.put(FlowContants.PROCESS_NAME,programPackage.getProcessName());
|
vars.put(FlowContants.PROCESS_EDITION,programPackage.getProcessEdition());
|
vars.put(FlowContants.CRAFT_EDITION,programPackage.getCraftEdition());
|
|
vars.put(FlowContants.DRAWING_NO,programPackage.getDrawingNo());
|
vars.put(FlowContants.DRAWING_NO_EDITION,programPackage.getDrawingNoEdition());
|
|
vars.put(FlowContants.PROGRAM_PACKAGE_NAME,programPackage.getName());
|
|
vars.put(FlowContants.PRODUCT_MODEL,programPackage.getProductModel());
|
vars.put(FlowContants.NODE_ID, nodeId);
|
|
vars.put("comment", "add on start");
|
identityService.setAuthenticatedUserId(String.valueOf(AuthUtil.getUserId()));//设置流程发起人
|
ProcessInstance inst = runtimeService.startProcessInstanceByKey(FlowContants.REPLACE_PROCESS_KEY,nodeId+"",vars);
|
|
programPackage.setProcessInstanceId(inst.getId());
|
this.nodeService.updateById(programPackage);
|
}
|
|
}
|