business/src/main/java/com/ycl/controller/ProjectProcessController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
business/src/main/java/com/ycl/domain/form/TaskDelegationForm.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
business/src/main/java/com/ycl/service/ProjectProcessService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
common/src/main/java/com/ycl/common/enums/business/HandlerTypeEnum.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
business/src/main/java/com/ycl/controller/ProjectProcessController.java
@@ -3,6 +3,7 @@ import com.ycl.common.group.Update; import com.ycl.common.group.Add; import com.ycl.domain.form.RejectTaskForm; import com.ycl.domain.form.TaskDelegationForm; import com.ycl.domain.query.TaskQuery; import org.springframework.validation.annotation.Validated; import org.springframework.security.access.prepost.PreAuthorize; @@ -82,11 +83,11 @@ return projectProcessService.taskIsAuditing(processDefId, taskId); } @PostMapping("/detail/task/reject") @ApiOperation(value = "驳回", notes = "驳回") @PostMapping("/detail/task/delegation") @ApiOperation(value = "转办", notes = "将任务委托给其它人办理") // @PreAuthorize("@ss.hasPermi('projectProcess:detail')") public Result rejectTask(@RequestBody RejectTaskForm form) { return projectProcessService.rejectTask(form); public Result taskDelegation(@RequestBody TaskDelegationForm form) { return projectProcessService.taskDelegation(form); } business/src/main/java/com/ycl/domain/form/TaskDelegationForm.java
New file @@ -0,0 +1,36 @@ package com.ycl.domain.form; import com.ycl.common.enums.business.HandlerTypeEnum; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * 任务转办 * * @author:xp * @date:2024/12/13 13:51 */ @Data @ApiModel("任务转办表单") public class TaskDelegationForm { /** * 当前任务id * */ private String taskId; /** * 用户组类型 * */ private HandlerTypeEnum peopleType; /** * 不同用户组对应选择的id * */ @ApiModelProperty("不同用户组对应选择的id, 如:peopleType是角色,这里就对应角色id,多个用英文逗号隔开") private String targetId; } business/src/main/java/com/ycl/service/ProjectProcessService.java
@@ -5,6 +5,7 @@ import com.ycl.common.base.Result; import com.ycl.domain.form.ProjectProcessForm; import com.ycl.domain.form.RejectTaskForm; import com.ycl.domain.form.TaskDelegationForm; import com.ycl.domain.query.ProjectProcessQuery; import com.ycl.domain.query.TaskQuery; import com.ycl.domain.vo.CustomerTaskVO; @@ -81,10 +82,10 @@ Result taskIsAuditing(String processDefinitionId, String taskId); /** * 驳回任务 * 任务转办 * * @param form * @return */ Result rejectTask(RejectTaskForm form); Result taskDelegation(TaskDelegationForm form); } business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
@@ -20,6 +20,7 @@ import com.ycl.domain.entity.ProjectInfo; import com.ycl.domain.entity.ProjectProcess; import com.ycl.domain.form.RejectTaskForm; import com.ycl.domain.form.TaskDelegationForm; import com.ycl.domain.vo.CustomerTaskVO; import com.ycl.domain.vo.ProjectProcessDetailVO; import com.ycl.mapper.ProjectInfoMapper; @@ -360,10 +361,31 @@ } @Override public Result rejectTask(RejectTaskForm form) { Task task = taskService.createTaskQuery().taskId(form.getTaskId()).singleResult(); taskCommonService.reject(form.getRejectedTaskDefKey(), task.getTaskDefinitionKey(), task.getProcessInstanceId(), form.getTaskId(), form.getAuditOpinion()); return Result.ok("驳回成功"); public Result taskDelegation(TaskDelegationForm form) { Task task = taskService.createTaskQuery().taskId(form.getTaskId()).includeIdentityLinks().singleResult(); if (Objects.isNull(task)) { throw new RuntimeException("未在运行任务中找到该任务,无法执行转办操作"); } // 需要先移除之前的处理人 for (IdentityLinkInfo identityLink : task.getIdentityLinks()) { if (StringUtils.isNotBlank(identityLink.getUserId())) { taskService.deleteCandidateUser(task.getId(), identityLink.getUserId()); } else if (StringUtils.isNotBlank(identityLink.getGroupId())) { taskService.deleteCandidateGroup(task.getId(), identityLink.getGroupId()); } } // 再新增处理人 switch (form.getPeopleType()) { case FIX_USER: // 指定用户的话,只能选一个用户 taskService.delegateTask(task.getId(), form.getTargetId()); break; case USER: // 用户组的话,可以选多个用户,严格来说这里的用户组并不是flowable中的组的概念,只是开源框架有这个定义 } return Result.ok("转办成功"); } /** common/src/main/java/com/ycl/common/enums/business/HandlerTypeEnum.java
@@ -12,9 +12,10 @@ @Getter public enum HandlerTypeEnum { USER("USER", "用户"), DEPT("DEPT", "部门"), ROLE("ROLE", "角色") USER("USER", "用户组"), // 严格来说这里的用户组并不是flowable中的组的概念,只是开源框架有这个定义,它只是能配置多个用户 FIX_USER("FIX_USER", "指定用户"), // 只能选择一个人 DEPT("DEPT", "部门组"), // 可以选择多个部门 ROLE("ROLE", "角色组") // 可以选择多个角色 ; @JsonValue