package com.engine.salary.service;

import com.engine.salary.entity.taxagent.param.TaxAgentEmpSaveParam;
import com.engine.salary.entity.taxagent.po.TaxAgentEmpPO;
import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum;

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

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

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

    /**
     * 根据个税扣缴义务人id获取管理范围中的人员
     *
     * @param taxAgentIds
     * @return
     */
    List<TaxAgentEmpPO> listByTaxAgentIds(List<Long> taxAgentIds, UseEmployeeTypeEnum type);

    /**
     * 同步人员到本地关联表
     *
     * @param taxAgentEmpSaveParamList
     * @param currentEmployeeId
     */
    void syncTaxAgentEmployee(List<TaxAgentEmpSaveParam> taxAgentEmpSaveParamList, Long currentEmployeeId);

    /**
     * 同步外部人员
     * @param taxAgentEmpSaveParamList
     * @param currentEmployeeId
     */
    void syncTaxAgentExtEmployee(List<TaxAgentEmpSaveParam> taxAgentEmpSaveParamList, Long currentEmployeeId);
}
