package com.aizuda.boot.modules.flw.service; import com.aizuda.boot.modules.flw.entity.dto.AssigneeTaskDTO; import com.aizuda.boot.modules.flw.entity.dto.ExecuteTaskDTO; import com.aizuda.boot.modules.flw.entity.dto.ProcessTaskDTO; import com.aizuda.boot.modules.flw.entity.dto.RejectTaskDTO; import com.aizuda.boot.modules.flw.entity.vo.*; import com.aizuda.core.api.PageParam; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.flowlong.bpm.engine.core.FlowCreator; import java.util.List; /** * 流程任务 服务类 * * @author 青苗 * @since 2023-12-11 */ public interface IProcessTaskService { /** * 待认领任务分页列表 */ Page pagePendingClaim(PageParam pageParam); /** * 待审批任务分页列表 */ Page pagePendingApproval(PageParam pageParam); /** * 我的申请任务分页列表 */ Page pageMyApplication(PageParam pageParam); /** * 我收到的任务分页列表 */ Page pageMyReceived(PageParam pageParam); /** * 已审批任务分页列表 */ Page pageApproved(PageParam pageParam); /** * 审批信息 * * @param taskId 任务ID */ TaskApprovalVO approvalInfo(Long taskId); /** * 设置任务为已阅状态 * * @param taskId 任务ID * @param flowCreator 流程创建者 */ boolean viewed(Long taskId, FlowCreator flowCreator); /** * 转办任务 * * @param taskId 任务ID * @param flowCreator 任务参与者 * @param assigneeFlowCreator 任务办理人 */ boolean transfer(Long taskId, FlowCreator flowCreator, FlowCreator assigneeFlowCreator); /** * 委派任务 * * @param taskId 任务ID * @param flowCreator 任务参与者 * @param assigneeFlowCreator 任务办理人 */ boolean delegate(Long taskId, FlowCreator flowCreator, FlowCreator assigneeFlowCreator); /** * 拿回任务 * * @param taskId 任务ID * @param flowCreator 任务创建者 */ boolean reclaim(Long taskId, FlowCreator flowCreator); /** * 认领任务 * * @param taskId 任务ID * @param flowCreator 任务创建者 */ boolean claim(Long taskId, FlowCreator flowCreator); /** * 执行节点跳转任务 * * @param taskId 任务ID * @param nodeName 节点名称 * @param flowCreator 任务创建者 */ boolean executeJump(Long taskId, String nodeName, FlowCreator flowCreator); /** * 执行流程任务 * * @param flowCreator 流程创建者 * @param dto 执行任务对象 {@link ExecuteTaskDTO} */ boolean execute(FlowCreator flowCreator, ExecuteTaskDTO dto); /** * 驳回至上一步任务 * * @param flowCreator 流程创建者 * @param dto 执行任务对象 {@link RejectTaskDTO} */ boolean reject(FlowCreator flowCreator, RejectTaskDTO dto); boolean transfer(FlowCreator flowCreator, AssigneeTaskDTO dto); boolean delegate(FlowCreator flowCreator, AssigneeTaskDTO dto); /** * 查询流程实例ID的审批历史 * * @param instanceId 流程实例ID * @return 审批历史VO列表 */ List listHisTaskByInstanceId(Long instanceId); }