| | |
| | | import org.flowable.engine.HistoryService; |
| | | import org.flowable.engine.IdentityService; |
| | | import org.flowable.engine.RuntimeService; |
| | | import org.flowable.engine.TaskService; |
| | | import org.flowable.engine.history.HistoricProcessInstance; |
| | | import org.flowable.engine.runtime.ProcessInstance; |
| | | import org.flowable.task.api.Task; |
| | | import org.flowable.task.api.history.HistoricTaskInstance; |
| | | 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.constants.FlowContants; |
| | | import org.springblade.mdm.flow.entity.FlowProgramFile; |
| | | import org.springblade.mdm.flow.excution.AutoAssignUsersService; |
| | | import org.springblade.mdm.flow.vo.TaskAssignVO; |
| | |
| | | private final RuntimeService runtimeService; |
| | | |
| | | private final HistoryService historyService; |
| | | |
| | | private final TaskService taskService; |
| | | private final IdentityService identityService; |
| | | |
| | | private final NcNodeService ncNodeService; |
| | |
| | | |
| | | |
| | | @Transactional |
| | | public void startCure(List<NcNode> programPackageList, Map<Long,List<FlowProgramFile>> allFlowProgramFiles) { |
| | | public void startCure(List<NcNode> programPackageList, Map<Long,List<NcNode>> allFlowProgramFiles) { |
| | | //根据分组启动流程,并插入关联表 |
| | | programPackageList.forEach(pkg -> { |
| | | this.startOne(pkg,allFlowProgramFiles.get(pkg.getId())); |
| | |
| | | * 启动一个数控程序的固化流程 |
| | | * @param programPackage 程序包名 节点实体 |
| | | */ |
| | | public void startOne(NcNode programPackage,List<FlowProgramFile> flowProgramFiles) { |
| | | public void startOne(NcNode programPackage,List<NcNode> programNodes) { |
| | | Map<String, Object> vars = null; |
| | | //该程序在计划任务时 获取编制,校对,审批的人员,作为默认用户,其中编制时第一个固定的用户 |
| | | if(programPackage.getProcessInstanceId() != null) { |
| | |
| | | .list(); |
| | | fillHistoryAssignees(vars, historicTasks); |
| | | |
| | | |
| | | String businessKey = "0";//业务表key |
| | | |
| | | identityService.setAuthenticatedUserId(String.valueOf(AuthUtil.getUserId()));//设置流程发起人 |
| | | |
| | | vars.put(FlowContants.LAST_STEP_USER_NICKNAME, AuthUtil.getNickName()); |
| | | vars.put(FlowContants.TITLE,programPackage.getName()+"-固化");//自动增加标题 |
| | | ProcessInstance inst = runtimeService.startProcessInstanceByKey(PROCESS_KEY,businessKey,vars); |
| | | |
| | | //更新程序包名节点的流程实例id |
| | | programPackage.setProcessInstanceId(inst.getProcessInstanceId()); |
| | | ncNodeService.updateById(programPackage); |
| | | |
| | | //更新文件的流程实例id,并入库 |
| | | flowProgramFiles.forEach(flowProgramFile -> { |
| | | //更新文件的流程实例id,和 程序节点的流程文件id 并入库 |
| | | programNodes.forEach(programNode -> { |
| | | FlowProgramFile flowProgramFile = programNode.getFlowProgramFile(); |
| | | flowProgramFile.setProcessInstanceId(inst.getProcessInstanceId()); |
| | | this.flowProgramFileService.save(flowProgramFile); |
| | | |
| | | programNode.setFlowProgramFileId(flowProgramFile.getId()); |
| | | this.ncNodeService.save(programNode); |
| | | }); |
| | | log.info("启动固化流程完成,实例id={}", inst.getId()); |
| | | } |