feat: 企标启用流程支持驳回后更换流程选人

This commit is contained in:
2023-12-22 13:47:47 +08:00
parent 4a1ce02e19
commit a950273abf
@@ -25,7 +25,9 @@ import com.jero.modules.activiti.service.ProcessNodeLinkService;
import com.jero.modules.sys.utils.UserUtils;
import lombok.extern.slf4j.Slf4j;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -54,6 +56,9 @@ public class ProcessEsEnableServiceImpl extends ServiceImpl<ProcessEsEnableMappe
@Resource
private IProcessHandleService processHandleService;
@Resource
private TaskService taskService;
@Override
public void startProcess(ESEnableDataVO enableData) {
@@ -166,10 +171,26 @@ public class ProcessEsEnableServiceImpl extends ServiceImpl<ProcessEsEnableMappe
String userId = UserUtils.getUserId();
CommonVO commonVO = enableData.getCommon();
String taskId = commonVO.getTaskId();
Map<String, Object> flowUser = enableData.getFlowUser();
// 获取流程实例ID
String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId);
// 获取流程实例对象
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery()
.processInstanceId(processInstanceId).singleResult();
// 获取流程定义ID
String processDefinitionId = processInstance.getProcessDefinitionId();
if (StrUtil.isBlank(taskId) && !actFlowCommonService.taskExists(taskId)) {
throw new JeroBootException(ResultCommon.TASK_NOT_EXISTS);
}
String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId);
if (flowUser != null) {
Map<String, Object> variables = setVariables(flowUser);
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
// 获取执行id
String executionId = task.getExecutionId();
// 设置流程变量
runtimeService.setVariables(executionId, variables);
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, this.getUserMap(flowUser));
}
// 设置流程变量
runtimeService.setVariable(processInstanceId, "pass", pass);
// 更新审批表为完成,填充数据