package com.engine.salary.service; import com.engine.salary.entity.taxagent.dto.TaxAgentEmployeeDTO; import com.engine.salary.entity.taxagent.dto.TaxAgentEmployeeTaxAgentDTO; import com.engine.salary.entity.taxagent.dto.TaxAgentListDTO; import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO; import com.engine.salary.entity.taxagent.param.TaxAgentAdminChangeCheckParam; import com.engine.salary.entity.taxagent.param.TaxAgentQueryParam; import com.engine.salary.entity.taxagent.param.TaxAgentSaveParam; import com.engine.salary.entity.taxagent.po.TaxAgentEmployeePO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.salarysob.SalaryEmployeeStatusEnum; import com.engine.salary.enums.taxagent.TaxAgentRoleTypeEnum; import com.engine.salary.util.page.PageInfo; import java.util.Collection; import java.util.List; import java.util.Map; public interface TaxAgentService { /** * 获取租户下所有人员的基本信息 * * @return */ List listEmployees(); /** * 获取当前登录人角色(返回最大角色,优先级为:总管理员-》管理员-》分管理员) * * @param currentEmployeeId * @return */ TaxAgentRoleTypeEnum getRoleType(Long currentEmployeeId); /** * 是否需要分权 * * @param currentEmployeeId * @return */ Boolean isNeedAuth(Long currentEmployeeId); /** * 是否是薪酬模块总管理员 * * @param currentEmployeeId * @return */ Boolean isChief(Long currentEmployeeId); /** * 默认权限是否开启 * * @param currentEmployeeId * @return */ Boolean isDefaultOpen(Long currentEmployeeId); /** * 管理员是否有权限 * * @param currentEmployeeId * @return */ Boolean isAdminEnable(Long currentEmployeeId); /** * 个税扣缴义务人列表(分页) * * @param queryParam * @return */ PageInfo listPage(TaxAgentQueryParam queryParam); /** * 个税扣缴义务人列表(不分页) * * @param queryParam * @return */ List list(TaxAgentQueryParam queryParam); /** * 根据id查询个税扣缴义务人 * * @param ids * @return */ List listByIds(Collection ids); /** * 查询租户下的所有个税扣缴义务人 * * @return */ List listAll(); /** * 根据id获取单个个税扣缴义务人 * * @param id * @return */ TaxAgentPO getById(Long id); /** * 获取所有个税扣缴义务人 * * @return */ Collection findAll(); /** * 获取作为管理员或分管理员的个税扣缴义务人列表 * * @param currentEmployeeId 当前登录人id * @return */ Collection listAllTaxAgents(Long currentEmployeeId); /** * 获取作为管理员的所有个税扣缴义务人列表 * * @param currentEmployeeId 当前登录人id * @return */ Collection listAllTaxAgentsAsAdmin(Long currentEmployeeId); /** * 获取作为人员范围中的个税扣缴义务人列表 * * @param employeeIds 被管理的人员id * @return */ Collection listAllTaxAgentsAsRange(List employeeIds); /** * 新建个税扣缴义务人 * * @param saveParam * @return */ String save(TaxAgentSaveParam saveParam); /** * 更新代缴机构 * * @param taxAgentPO * @return */ String paymentAgencyUpdate(TaxAgentPO taxAgentPO); /** * 编辑个税扣缴义务人 * * @param saveParam * @return */ String update(TaxAgentSaveParam saveParam); /** * 删除个税扣缴义务人 * * @param ids * @return */ String delete(List ids); /** * 获取个税扣缴义务人下拉列表 * * @return */ List> selectList(); /** * 获取作为管理员的个税扣缴义务人的下拉列表 * * @param chiefCanSeeAll * @return */ List> selectListAsAdmin(boolean chiefCanSeeAll); /** * 是否开启分权 * * @return */ Boolean isOpenDevolution(); /** * 获取个税扣缴义务人和可查看的人员列表(树型) * * @param employeeId * @return */ List listTaxAgentAndEmployeeTree(Long employeeId); List listAllTaxAgentAndEmployeeTree(); /** * 获取所有个税扣缴义务人和可查看的人员列表(树型) * * @return */ List listTaxAgentAndEmployeeTree(); /** * 获取个税扣缴义务人和可查看的人员列表(扁平型) * * @param employeeId * @return */ List listTaxAgentAndEmployee(Long employeeId); /** * 获取个税扣缴义务人和可查看的人员列表(树型) * * @param employeeStatus * @param employeeId * @return */ List listTaxAgentAndEmployeeTree(SalaryEmployeeStatusEnum employeeStatus, Long employeeId); /** * 获取个税扣缴义务人和可查看的人员列表(扁平型) * * @param employeeStatus * @param employeeId * @return */ List listTaxAgentAndEmployee(SalaryEmployeeStatusEnum employeeStatus, Long employeeId); /** * 更换管理员校验是否有核算数据 * * @param checkParam * @return */ Boolean adminChangeCheck(TaxAgentAdminChangeCheckParam checkParam); /** * 获取个税扣缴义务人下的人员范围 * * @param taxAgentId * @return */ Collection listEmployeeIdsInTaxAgent(Long taxAgentId); }