package com.hotent.runtime.service; import com.fasterxml.jackson.databind.node.ArrayNode; import com.hotent.base.model.CommonResult; import com.hotent.base.query.PageList; import com.hotent.base.query.QueryFilter; import com.hotent.bpm.persistence.model.BpmLeaderTask; import com.hotent.bpm.persistence.model.DefaultBpmTask; import com.hotent.runtime.params.AssignParamObject; import com.hotent.runtime.params.TaskDetailVo; import javax.servlet.http.HttpServletResponse; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; public interface TaskService { /** * 获取用户领导的待办事宜 * @param queryFilter * @return */ PageList getLeaderTodoList(QueryFilter queryFilter) throws Exception; /** * 获取用户的待办事宜 * @param queryFilter * @return */ PageList getTodoList(QueryFilter queryFilter) throws Exception; /** * 任务列表(分页条件查询)数据 * @param queryFilter * @return */ PageList listJson(QueryFilter queryFilter) throws Exception; /** * 根据任务id获取其下的候选人列表并抽取执行人 * @param taskId * @return */ ArrayNode getCandidatesListByTaskId(String taskId) throws Exception; /** * 批量处理任务 * @param requestMap * @return */ CommonResult> batchHandle(Map requestMap) throws Exception; CommonResult nextTask(String defId, String defKey) throws Exception; CommonResult delegate(AssignParamObject assignParamObject, HttpServletResponse response, Optional leaderId,Optional assignee) throws Exception; Object nodeOpinion(Optional defId, Optional instId, String nodeId , boolean isDerive) throws Exception; TaskDetailVo getButtonsBytaskId(String taskId, Optional leaderId) throws Exception; CommonResult> filterUnBatchable(String taskIds); Map getLeaderTodoCard(QueryFilter queryFilter, Integer size) throws Exception; Object taskBackOpinion(String instId); /** * 获取流程实例中指定节点的审批意见 会签节点记录会进行分组 * @param defId * @param instId * @param nodeId * @param isDerive 是否推演未到达节点的审批人 * @return * @throws Exception */ Object nodeOpinionFromPreview(Optional defId, Optional instId, String nodeId, boolean isDerive) throws Exception; }