package com.engine.salary.service;
import com.engine.salary.entity.salaryarchive.dto.SalaryItemAdjustRecordListDTO;
import com.engine.salary.entity.salaryarchive.param.SalaryArchiveItemSaveParam;
import com.engine.salary.entity.salaryarchive.param.SalaryItemAdjustBeforeParam;
import com.engine.salary.entity.salaryarchive.param.SalaryItemAdjustRecordQueryParam;
import com.engine.salary.entity.salaryarchive.po.SalaryArchiveItemPO;
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
import com.engine.salary.util.page.PageInfo;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* 薪资档案-薪资项目
*
Copyright: Copyright (c) 2022
* Company: 泛微软件
*
* @author qiantao
* @version 1.0
**/
public interface SalaryArchiveItemService {
/**
* 获取单个薪资档案项目调整记录
*
* @param salaryArchiveItemId
* @return
*/
SalaryArchiveItemPO getById(Long salaryArchiveItemId);
/**
* 获取可以调整的薪资项目
*/
List getCanAdjustSalaryItems();
/**
* 获取薪资项目调整前的值
*
* @param adjustBeforeParam
*/
String getSalaryItemAdjustBeforeValue(SalaryItemAdjustBeforeParam adjustBeforeParam);
/**
* @description 根据薪资档案id和薪资项id获取薪资项目(生效+不生效)
* @return List
* @author Harryxzy
* @date 2022/11/14 17:07
*/
List getSalaryItemsBySalaryArchiveIdAndItemIds(Long salaryArchiveId, List salaryItemPageIds);
/**
* 获取当前已生效
*
* @param salaryArchiveId
* @param salaryItemPageIds
*/
List getEffectiveSalaryItems(Long salaryArchiveId, List salaryItemPageIds);
/**
* 调薪前置校验
* @param saveParam
* @return
*/
String checkSaveSalaryItem(SalaryArchiveItemSaveParam saveParam);
/**
* 保存薪资项目调整
*
* @param saveParam
* @return
*/
String saveSalaryItem(SalaryArchiveItemSaveParam saveParam);
/**
* 删除薪资项目调整
*
* @param salaryArchiveItemId
* @return
*/
String deleteSalaryItem(Long salaryArchiveItemId);
/**
* 薪资调整记录列表(分页)
*
* @param queryParam
* @param salaryItemIds
* @return
*/
PageInfo salaryItemAdjustRecordListPage(SalaryItemAdjustRecordQueryParam queryParam, List salaryItemIds);
/**
* 薪资调整记录列表
*
* @param queryParam
* @param salaryItemIds
* @return
*/
List salaryItemAdjustRecordList(SalaryItemAdjustRecordQueryParam queryParam, List salaryItemIds);
/**
* 导出薪资项目的调整记录列表
*
* @param queryParam
*/
XSSFWorkbook exportAdjustRecordList(SalaryItemAdjustRecordQueryParam queryParam);
/**
* 获取薪资档案对应的当前生效的薪资项目
*
* @param salaryArchivesIds
* @return
*/
List getCurrentEffectiveItemList(Collection salaryArchivesIds, Collection salaryItemIds);
/**
* 获取薪资档案对应的当前生效的薪资项目忽略值
*
* @param salaryArchivesIds
* @param salaryItemIds
* @return
*/
List getCurrentEffectiveItemListIngoreValue(Collection salaryArchivesIds, List salaryItemIds);
/**
* 获取当前已生效
*
* @param salaryArchiveIds
* @param isNoNeedSalaryItem
* @param salaryItemIds
* @return
*/
Map> getEffectiveItemListMap(Collection salaryArchiveIds, boolean isNoNeedSalaryItem, Collection salaryItemIds);
/**
* 获取当前未生效
*
* @param salaryArchiveIds
* @param isNoNeedSalaryItem
* @param salaryItemIds
* @return
*/
Map> getIneffectiveItemListMap(Collection salaryArchiveIds, boolean isNoNeedSalaryItem, Collection salaryItemIds);
/**
* @description 单个档案的薪资项目调整的编辑
* @return String
* @author Harryxzy
* @date 2022/11/14 13:38
*/
String editSingleSalaryItem(SalaryArchiveItemSaveParam salaryArchiveItemSaveParam);
}