package com.sunxung.factoring.mapper.project;

import com.sunxung.factoring.entity.project.BusinessAssignee;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Description:业务处理人Mapper
 * @Author:wanxiangZhou
 * @E-mail:zhouyu@sunxung.cn
 * @Date:2018年9月3日 下午5:01:20
 */
@Mapper
public interface BusinessAssigneeMapper {

    /**
     * 新增业务处理人
     *
     * @param assignee 处理人
     */
    void add(BusinessAssignee assignee);

    /**
     * 更新业务处理人信息
     *
     * @param processLog 处理人
     * @return 受影响的记录条数
     */
    int update(BusinessAssignee assignee);

    BusinessAssignee get(Long id);

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

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