package com.engine.salary.service;

import com.engine.salary.entity.taxagent.param.TaxAgentSubAdminBaseSaveParam;
import com.engine.salary.entity.taxagent.po.TaxAgentSubAdminPO;

import java.util.Collection;
import java.util.List;

/**
 * 个税扣缴义务人分管理员
 * <p>Copyright: Copyright (c) 2022</p>
 * <p>Company: 泛微软件</p>
 *
 * @author qiantao
 * @version 1.0
 **/
public interface TaxAgentSubAdminService {

    /**
     * 根据个税扣缴义务人id删除分管理员
     *
     * @param taxAgentIds
     */
    void deleteByTaxAgentIds(Collection<Long> taxAgentIds);

    /**
     * 根据id获取列表
     *
     * @param ids
     * @return
     */
    List<TaxAgentSubAdminPO> listByIds(Collection<Long> ids);

    /**
     * 根据个税扣缴义务人id查询分管理员
     *
     * @param taxAgentIds
     * @return
     */
    List<TaxAgentSubAdminPO> listByTaxAgentIds(Collection<Long> taxAgentIds);

    /**
     * 根据个税扣缴义务人id和人员id查询分管理员
     *
     * @param taxAgentIds
     * @param currentEmployeeId
     * @return
     */
    List<TaxAgentSubAdminPO> listByTaxAgentIdsAndEmployeeId(List<Long> taxAgentIds, Long currentEmployeeId);

    /**
     * 根据当前登录人id查询分管理员
     *
     * @param currentEmployeeId
     * @return
     */
    List<TaxAgentSubAdminPO> listByAndEmployeeId(Long currentEmployeeId);

    /**
     * 根据id删除分管理员
     *
     * @param ids
     * @return
     */
    String deleteByIds(Collection<Long> ids);

    /**
     * 根据分管理员id和个税扣缴义务人id获取分管理员
     *
     * @param id
     * @return
     */
    TaxAgentSubAdminPO getById(Long id);

    /**
     * 保存基础设置
     *
     * @param saveParam
     * @return
     */
    String saveBase(TaxAgentSubAdminBaseSaveParam saveParam);
}
