add 增加委托办理,调整流程启动

This commit is contained in:
songgaoshuai 2023-06-12 17:58:11 +08:00
parent 91c10d31a4
commit 7428cd42f2
3 changed files with 26 additions and 2 deletions

View File

@ -15,11 +15,21 @@ public interface FlowConstant {
String MESSAGE_CURRENT_TASK_IS_NULL = "当前任务不存在或你不是任务办理人"; String MESSAGE_CURRENT_TASK_IS_NULL = "当前任务不存在或你不是任务办理人";
String MESSAGE_SUSPENDED = "当前任务已"; String MESSAGE_SUSPENDED = "当前任务已挂起";
/** /**
* 连线 * 连线
*/ */
String SEQUENCE_FLOW = "sequenceFlow"; String SEQUENCE_FLOW = "sequenceFlow";
/**
* 流程委派标识
*/
String PENDING = "PENDING";
/**
* 流程启动者
*/
String INITIATOR = "initiator";
} }

View File

@ -72,10 +72,11 @@ public class ActTaskServiceImpl implements IActTaskService {
map.put("taskId", taskResult.get(0).getId()); map.put("taskId", taskResult.get(0).getId());
return map; return map;
} }
// 设置启动人
Authentication.setAuthenticatedUserId(String.valueOf(LoginHelper.getUserId())); Authentication.setAuthenticatedUserId(String.valueOf(LoginHelper.getUserId()));
// 启动流程实例提交申请 // 启动流程实例提交申请
Map<String, Object> variables = startProcessBo.getVariables(); Map<String, Object> variables = startProcessBo.getVariables();
// 设置启动人
variables.put(FlowConstant.INITIATOR, String.valueOf(LoginHelper.getUserId()));
// 启动跳过表达式 // 启动跳过表达式
variables.put("_FLOWABLE_SKIP_EXPRESSION_ENABLED", true); variables.put("_FLOWABLE_SKIP_EXPRESSION_ENABLED", true);
ProcessInstance pi = runtimeService.startProcessInstanceByKeyAndTenantId(startProcessBo.getProcessKey(), startProcessBo.getBusinessKey(), variables, TenantHelper.getTenantId()); ProcessInstance pi = runtimeService.startProcessInstanceByKeyAndTenantId(startProcessBo.getProcessKey(), startProcessBo.getBusinessKey(), variables, TenantHelper.getTenantId());
@ -115,6 +116,14 @@ public class ActTaskServiceImpl implements IActTaskService {
if (task == null) { if (task == null) {
throw new ServiceException(FlowConstant.MESSAGE_CURRENT_TASK_IS_NULL); throw new ServiceException(FlowConstant.MESSAGE_CURRENT_TASK_IS_NULL);
} }
//办理委托任务
if (ObjectUtil.isNotEmpty(task.getDelegationState()) && FlowConstant.PENDING.equals(task.getDelegationState().name())) {
taskService.resolveTask(completeTaskBo.getTaskId());
TaskEntity newTask = WorkflowUtils.createNewTask(task);
taskService.addComment(newTask.getId(), task.getProcessInstanceId(), completeTaskBo.getMessage());
taskService.complete(newTask.getId());
return true;
}
//办理意见 //办理意见
taskService.addComment(completeTaskBo.getTaskId(), task.getProcessInstanceId(), StringUtils.isBlank(completeTaskBo.getMessage()) ? "同意" : completeTaskBo.getMessage()); taskService.addComment(completeTaskBo.getTaskId(), task.getProcessInstanceId(), StringUtils.isBlank(completeTaskBo.getMessage()) ? "同意" : completeTaskBo.getMessage());
//办理任务 //办理任务

View File

@ -130,6 +130,11 @@ public class WorkflowUtils {
} }
} }
/**
* 创建一个新任务
*
* @param currentTask 参数
*/
public static TaskEntity createNewTask(Task currentTask) { public static TaskEntity createNewTask(Task currentTask) {
TaskEntity task = null; TaskEntity task = null;
if (ObjectUtil.isNotEmpty(currentTask)) { if (ObjectUtil.isNotEmpty(currentTask)) {