package com.engine.salary.service;
import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeListDTO;
import com.engine.salary.entity.taxagent.param.*;
import com.engine.salary.entity.taxagent.po.TaxAgentExtRangePO;
import com.engine.salary.entity.taxagent.po.TaxAgentManageRangePO;
import com.engine.salary.util.page.PageInfo;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* 个税扣缴义务人的管理范围
*
Copyright: Copyright (c) 2022
* Company: 泛微软件
*
* @author qiantao
* @version 1.0
**/
public interface TaxAgentManageRangeService {
/**
* 根据查询条件查询分管理员的人员范围
*
* @param queryParam 查询条件
* @param includeType 0-从范围中排除/1-关联人员范围
* @return
*/
PageInfo listPageByParamAndIncludeType(TaxAgentSubAdminRangeQueryParam queryParam, Integer includeType);
/**
* 根据查询条件查询个税扣缴义务人的人员范围
*
* @param queryParam 查询条件
* @param includeType 0-从范围中排除/1-关联人员范围
* @return
*/
PageInfo listPageByParamAndIncludeType(TaxAgentRangeQueryParam queryParam, Integer includeType);
/**
* 根据分管理员id集合查询范围列表
*
* @param taxAgentSubAdminIds
* @return
*/
List listBySubAdminIds(Collection taxAgentSubAdminIds);
/**
* 保存
*
* @param saveParam 保存参数
*/
void save(TaxAgentRangeSaveParam saveParam);
/**
* 根据主键id删除管理范围
*
* @param ids
*/
void deleteByIds(Collection ids);
PageInfo listExt(TaxAgentRangeExtQueryParam param);
/**
* 保存外部人员范围
* @param saveParam
*/
void saveExtRange(TaxAgentManageRangeExtSaveParam saveParam);
void deleteExtRange(Collection ids);
/**
* 根据个税扣缴义务人的id删除管理范围
*
* @param taxAgentIds 个税扣缴义务人的id
*/
void deleteByTaxAgentIds(Collection taxAgentIds);
void syncManageRange(List taxAgentIds,String index);
/**
* 人员范围导入
* @param taxAgentImportParam
*/
Map importData(TaxAgentImportParam taxAgentImportParam);
}