package com.engine.salary.service; import com.engine.salary.entity.salaryitem.param.SalaryItemSaveParam; import com.engine.salary.entity.salaryitem.param.SalaryItemSearchParam; import com.engine.salary.entity.salaryitem.param.SyncSalaryItemParam; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.enums.SalarySystemTypeEnum; import com.engine.salary.service.impl.SalaryItemServiceImpl; import com.engine.salary.util.page.PageInfo; import java.util.Collection; import java.util.List; import java.util.Map; import java.util.Set; /** * 薪资项目 *

Copyright: Copyright (c) 2022

*

Company: 泛微软件

* * @author qiantao * @version 1.0 **/ public interface SalaryItemService { /** * 根据主键id获取薪资项目 * * @param id 主键id * @return */ SalaryItemPO getById(Long id); /** * 查询所有薪资项目 * * @return */ List listAll(); /** * 根据主键id获取薪资项目 * * @param ids 主键id * @return */ List listByIds(Collection ids); /** * 根据系统薪资项目的id查询薪资项目 * * @param sysSalaryItemIds 关联的系统薪资项目id * @return */ List listBySysSalaryItemIds(Collection sysSalaryItemIds); /** * 根据名称精确匹配获取薪资项目 * * @param name 薪资项目名称 * @return */ List listByName(String name); /** * 根据(自定义薪资项目/系统薪资项目)查询薪资项目 * * @param systemType 自定义薪资项目/系统薪资项目 * @return */ List listBySystemType(SalarySystemTypeEnum systemType); /** * 根据(自定义薪资项目/系统薪资项目)、是否默认使用 查询薪资项目 * * @param systemType 自定义薪资项目/系统薪资项目 * @param useDefault 是否默认使用 * @return */ List listBySystemTypeAndUseDefault(SalarySystemTypeEnum systemType, Integer useDefault); /** * 根据查询参数获取薪资项目(分页) * * @param searchParam 查询参数 * @return */ List listByParam(SalaryItemSearchParam searchParam); List listByParamOrderById(SalaryItemSearchParam searchParam); PageInfo listPageByParam(SalaryItemSearchParam searchParam); boolean filterInRange(Set userTaxAgentIds, SalaryItemPO po); /** * 保存 * * @param saveParam 保存参数 */ SalaryItemPO save(SalaryItemSaveParam saveParam); /** * 批量保存 * * @param salaryItemPOS 薪资项目 */ void batchSave(Collection salaryItemPOS); /** * 更新 * * @param saveParam 更新参数 */ SalaryItemPO update(SalaryItemSaveParam saveParam); /** * 根据主键id删除薪资项目 * * @param ids 主键id */ void deleteByIds(Collection ids); /** * 获取使用中的项目情况 * * @return */ SalaryItemServiceImpl.UsingItem getUsingItem(); /** * 批量保存薪资项目顺序 * @param values */ void batchUpdateSortedIndex(List values); /** * 获取薪资项目在哪些账套中使用 * @param salaryItemId * @return */ List> getSalarySobBySalaryItem(Long salaryItemId); /** * 将薪资项目管理中的信息同步至账套 * @param syncSalaryItemParam */ void syncSalaryItemToSalarySobItem(SyncSalaryItemParam syncSalaryItemParam); }