TaskService.java 2.6 KB
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<DefaultBpmTask> getLeaderTodoList(QueryFilter queryFilter) throws Exception;

    /**
     * 获取用户的待办事宜
     * @param queryFilter
     * @return
     */
    PageList<DefaultBpmTask> getTodoList(QueryFilter<DefaultBpmTask> queryFilter) throws Exception;

    /**
     * 任务列表(分页条件查询)数据
     * @param queryFilter
     * @return
     */
    PageList<DefaultBpmTask> listJson(QueryFilter queryFilter) throws Exception;

    /**
     * 根据任务id获取其下的候选人列表并抽取执行人
     * @param taskId
     * @return
     */
    ArrayNode getCandidatesListByTaskId(String taskId) throws Exception;

    /**
     * 批量处理任务
     * @param requestMap
     * @return
     */
    CommonResult<HashMap<String, Object>> batchHandle(Map<String, Object> requestMap) throws Exception;

    CommonResult<DefaultBpmTask> nextTask(String defId, String defKey) throws Exception;

    CommonResult<String> delegate(AssignParamObject assignParamObject, HttpServletResponse response, Optional<String> leaderId,Optional<String> assignee) throws Exception;

    Object nodeOpinion(Optional<String> defId, Optional<String> instId, String nodeId , boolean isDerive) throws Exception;

    TaskDetailVo getButtonsBytaskId(String taskId, Optional<String> leaderId) throws Exception;

    CommonResult<List<String>> filterUnBatchable(String taskIds);

    Map<String, BpmLeaderTask> 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<String> defId, Optional<String> instId, String nodeId, boolean isDerive) throws Exception;
}