weaver-hrm-salary/src/com/engine/salary/service/TaxAgentService.java

254 lines
6.0 KiB
Java

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<TaxAgentEmployeePO> 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<TaxAgentPO> listPage(TaxAgentQueryParam queryParam);
/**
* 个税扣缴义务人列表(不分页)
*
* @param queryParam
* @return
*/
List<TaxAgentPO> list(TaxAgentQueryParam queryParam);
/**
* 根据id查询个税扣缴义务人
*
* @param ids
* @return
*/
List<TaxAgentPO> listByIds(Collection<Long> ids);
/**
* 查询租户下的所有个税扣缴义务人
*
* @return
*/
List<TaxAgentPO> listAll();
/**
* 根据id获取单个个税扣缴义务人
*
* @param id
* @return
*/
TaxAgentPO getById(Long id);
/**
* 获取所有个税扣缴义务人
*
* @return
*/
Collection<TaxAgentListDTO> findAll();
/**
* 获取作为管理员或分管理员的个税扣缴义务人列表
*
* @param currentEmployeeId 当前登录人id
* @return
*/
Collection<TaxAgentPO> listAllTaxAgents(Long currentEmployeeId);
/**
* 获取作为管理员的所有个税扣缴义务人列表
*
* @param currentEmployeeId 当前登录人id
* @return
*/
Collection<TaxAgentPO> listAllTaxAgentsAsAdmin(Long currentEmployeeId);
/**
* 获取作为人员范围中的个税扣缴义务人列表
*
* @param employeeIds 被管理的人员id
* @return
*/
Collection<TaxAgentEmployeeTaxAgentDTO> listAllTaxAgentsAsRange(List<Long> 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<Long> ids);
/**
* 获取个税扣缴义务人下拉列表
*
* @return
*/
List<Map<String, Object>> selectList();
/**
* 获取作为管理员的个税扣缴义务人的下拉列表
*
* @param chiefCanSeeAll
* @return
*/
List<Map<String, Object>> selectListAsAdmin(boolean chiefCanSeeAll);
/**
* 是否开启分权
*
* @return
*/
Boolean isOpenDevolution();
/**
* 获取个税扣缴义务人和可查看的人员列表(树型)
*
* @param employeeId
* @return
*/
List<TaxAgentManageRangeEmployeeDTO> listTaxAgentAndEmployeeTree(Long employeeId);
List<TaxAgentManageRangeEmployeeDTO> listAllTaxAgentAndEmployeeTree();
/**
* 获取所有个税扣缴义务人和可查看的人员列表(树型)
*
* @return
*/
List<TaxAgentManageRangeEmployeeDTO> listTaxAgentAndEmployeeTree();
/**
* 获取个税扣缴义务人和可查看的人员列表(扁平型)
*
* @param employeeId
* @return
*/
List<TaxAgentEmployeeDTO> listTaxAgentAndEmployee(Long employeeId);
/**
* 获取个税扣缴义务人和可查看的人员列表(树型)
*
* @param employeeStatus
* @param employeeId
* @return
*/
List<TaxAgentManageRangeEmployeeDTO> listTaxAgentAndEmployeeTree(SalaryEmployeeStatusEnum employeeStatus, Long employeeId);
/**
* 获取个税扣缴义务人和可查看的人员列表(扁平型)
*
* @param employeeStatus
* @param employeeId
* @return
*/
List<TaxAgentEmployeeDTO> listTaxAgentAndEmployee(SalaryEmployeeStatusEnum employeeStatus, Long employeeId);
/**
* 更换管理员校验是否有核算数据
*
* @param checkParam
* @return
*/
Boolean adminChangeCheck(TaxAgentAdminChangeCheckParam checkParam);
/**
* 获取个税扣缴义务人下的人员范围
*
* @param taxAgentId
* @return
*/
Collection<Long> listEmployeeIdsInTaxAgent(Long taxAgentId);
}