package com.sunxung.factoring.service.project;

import com.sunxung.factoring.entity.project.BusinessAssignee;

import java.util.List;

/**
 * @Description:业务办理人Service
 * @Author:wanxiangZhou
 * @E-mail:zhouyu@sunxung.cn
 * @Date:2018年9月3日 下午5:11:04
 */
public interface BusinessAssigneeService {

    /**
     * 新增处理人信息
     *
     * @param assignee 处理人
     * @return
     */
    BusinessAssignee add(BusinessAssignee assignee);

    /**
     * @param assignee 处理人
     * @return true表示更新成功，否则失败
     */
    Boolean update(BusinessAssignee assignee);

    /**
     * 获取任务办理人
     *
     * @param businessKey  业务信息ID
     * @param businessType 业务类型
     * @param assigneeType 办理人类型
     * @return
     */
    BusinessAssignee getByBusiness(Long businessKey, String businessType, String assigneeType);

    /**
     * 获取任务办理人ID
     *
     * @param businessKey  业务信息ID
     * @param businessType 业务类型
     * @param assigneeType 办理人类型
     * @return
     */
    Long getIdByBusiness(Long businessKey, String businessType, String assigneeType);

    /**
     * 获取任务组
     *
     * @param businessKey  业务信息ID
     * @param businessType 业务类型
     * @param assigneeType 办理人类型
     * @return
     */
    String getCandidateByBusiness(Long businessKey, String businessType, String assigneeType);

    /**
     * 获取业务流程所有节点的任务办理人ID
     *
     * @param businessKey  业务信息ID
     * @param businessType 业务类型
     * @return
     */
    List<Long> findIdsByBusiness(Long businessKey, String businessType);
}
