add - 添加审批任务的审批人转办功能

This commit is contained in:
wangli 2023-07-27 16:22:21 +08:00
parent 13112303a6
commit 1405dab2c4
4 changed files with 68 additions and 7 deletions

View File

@ -1,5 +1,6 @@
package cn.axzo.workflow.core.service;
import cn.axzo.workflow.core.service.dto.request.task.BpmTaskAssigneeDTO;
import cn.axzo.workflow.core.service.dto.request.task.BpmTaskAuditDTO;
import cn.axzo.workflow.core.service.dto.request.task.BpmTaskTodoPageSearchDTO;
import cn.axzo.workflow.core.service.dto.response.BpmPageResult;
@ -21,17 +22,18 @@ public interface BpmTaskService {
/**
* 已完成的审批列表
*
* @return*/
* @return
*/
BpmPageResult<BpmTaskDonePageItemVO> getDoneTaskPage(BpmTaskTodoPageSearchDTO dto);
/**
* 同意
* */
*/
void approveTask(BpmTaskAuditDTO taskAuditDTO);
/**
* 拒绝
* */
*/
void rejectTask(BpmTaskAuditDTO taskAuditDTO);
/**
@ -41,14 +43,15 @@ public interface BpmTaskService {
/**
* 获取实例正在审核的人列表
*
* <p>
* FIXME 该接口 web 不能正常响应
* */
*/
List<Task> getActiveTasksByProcessInstanceId(String processInstanceId);
/**
* 获得流程任务列表
* FIXME 该接口 web 不能正常响应
*
* @param processInstanceIds 流程实例的编号数组
* @return 流程任务列表
*/
@ -56,4 +59,13 @@ public interface BpmTaskService {
FormInfo getTaskFormModel(String taskId);
/**
* 修改审批任务审批人
* <p>
* 注意:不是委派给其他人
*
* @param dto
*/
void assigneeTask(BpmTaskAssigneeDTO dto);
}

View File

@ -0,0 +1,26 @@
package cn.axzo.workflow.core.service.dto.request.task;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* TODO
*
* @author wangli
* @since 2023/7/27 11:50
*/
@Data
public class BpmTaskAssigneeDTO {
@ApiModelProperty(value = "审批任务 ID")
private String taskId;
@ApiModelProperty(value = "审批任务原审批人")
private String originUserId;
@ApiModelProperty(value = "审批任务转发给谁")
private String newUserId;
@ApiModelProperty(value = "租户 ID")
private String tenantId;
}

View File

@ -7,6 +7,7 @@ import cn.axzo.workflow.core.common.utils.BpmCollectionUtils;
import cn.axzo.workflow.core.service.BpmTaskService;
import cn.axzo.workflow.core.service.converter.BpmTaskDonePageItemConverter;
import cn.axzo.workflow.core.service.converter.BpmTaskTodoPageItemConverter;
import cn.axzo.workflow.core.service.dto.request.task.BpmTaskAssigneeDTO;
import cn.axzo.workflow.core.service.dto.request.task.BpmTaskAuditDTO;
import cn.axzo.workflow.core.service.dto.request.task.BpmTaskTodoPageSearchDTO;
import cn.axzo.workflow.core.service.dto.response.BpmPageResult;
@ -351,4 +352,17 @@ public class BpmTaskServiceImpl implements BpmTaskService {
}
return null;
}
@Override
public void assigneeTask(BpmTaskAssigneeDTO dto) {
Task task = taskService.createTaskQuery()
.taskId(dto.getTaskId())
.taskAssignee(dto.getOriginUserId())
.taskTenantId(dto.getTenantId())
.singleResult();
if (Objects.isNull(task)) {
throw new WorkflowEngineException("任务不存在,或者不属于你");
}
taskService.setAssignee(task.getId(), dto.getNewUserId());
}
}

View File

@ -1,12 +1,14 @@
package cn.axzo.workflow.server.controller.web;
import cn.axzo.workflow.core.service.BpmTaskService;
import cn.axzo.workflow.core.service.dto.request.task.BpmTaskAssigneeDTO;
import cn.axzo.workflow.core.service.dto.request.task.BpmTaskAuditDTO;
import cn.axzo.workflow.core.service.dto.request.task.BpmTaskTodoPageSearchDTO;
import cn.axzo.workflow.core.service.dto.response.BpmPageResult;
import cn.axzo.workflow.core.service.dto.response.task.BpmTaskDonePageItemVO;
import cn.axzo.workflow.core.service.dto.response.task.BpmTaskTodoPageItemVO;
import cn.azxo.framework.common.model.CommonResponse;
import io.swagger.v3.oas.annotations.Operation;
import lombok.extern.slf4j.Slf4j;
import org.flowable.form.api.FormInfo;
import org.flowable.task.api.Task;
@ -49,7 +51,7 @@ public class BpmTaskController {
/**
* 同意
*/
@PostMapping("/approve")
@PutMapping("/approve")
public CommonResponse<Boolean> approveTask(@RequestBody BpmTaskAuditDTO dto) {
log.info("同意 approveTask===>>>参数:{}", dto);
bpmTaskService.approveTask(dto);
@ -59,13 +61,20 @@ public class BpmTaskController {
/**
* 拒绝
*/
@PostMapping("/reject")
@PutMapping("/reject")
public CommonResponse<Boolean> rejectTask(@Valid @RequestBody BpmTaskAuditDTO dto) {
log.info("拒绝 rejectTask===>>>参数:{}", dto);
bpmTaskService.rejectTask(dto);
return CommonResponse.success(true);
}
@Operation(summary = "直接修改审批任务的审批人")
@PutMapping("/assignee")
public CommonResponse<Boolean> assigneeTask(@RequestBody BpmTaskAssigneeDTO dto) {
bpmTaskService.assigneeTask(dto);
return CommonResponse.success(true);
}
/**
* 获取历史已审批的列表详情