package com.engine.salary.service; import com.engine.salary.entity.salaryBill.dto.*; import com.engine.salary.entity.salaryBill.param.*; import com.engine.salary.entity.salaryBill.po.SalarySendPO; import com.engine.salary.entity.salaryBill.po.SalaryTemplatePO; import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; import com.engine.salary.util.page.PageInfo; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.util.List; import java.util.Map; import java.util.Set; /** * @Description: 工资单发放 */ public interface SalarySendService { /** * 获取单个工资单发放 * * @param salarySendId * @return */ SalarySendPO getById(Long salarySendId); List findReAccountingIdsByAcctIds(List salaryAccountingIds, String tenantKey); /** * 薪资核算-归档生成工资单 * @param salaryAccountingId * @return */ String generateSalaryBill(Long salaryAccountingId); /** * 薪资核算-归档撤销工资单 * @param salaryAcctRecord * @return */ void revokeSalaryBill(SalaryAcctRecordPO salaryAcctRecord); /** * 工资单发放列表(分页) * * @param queryParam * @return */ PageInfo listPage(SalarySendQueryParam queryParam); /** * 工资单发放 * @param queryParam * @return */ Map grant(SalarySendGrantParam queryParam); /** * 工资单撤回 * @param queryParam * @return */ Map withdraw(SalarySendWithdrawParam queryParam); /** * 工资单发放基本信息 * @param id * @return */ SalarySendBaseInfoDTO getBaseInfo(Long id); /** * 我的工资单 * @param salaryInfoId * @param currentEmployeeId * @return */ Map mySalaryBill(Long salaryInfoId, Long currentEmployeeId); /** * 工资单发放信息列表(分页) * @param queryParam * @return */ PageInfo salarySendInfoListPage(SalarySendInfoQueryParam queryParam); /** * 我的工资单列表详情 * * @param queryParam * @return */ PageInfo mySalaryBillListPage(SalaryBillQueryParam queryParam); /** * 工资单发放详情列表 * @param queryParam * @return */ PageInfo salarySendInfoDetailListPage(SalarySendDetailQueryParam queryParam); /** * 获取薪资项目设置 * * @param salaryTemplatePO * @return */ List getSalaryItemsSetting(SalaryTemplatePO salaryTemplatePO); /** * 构建详情列表 * * @param salaryItems * @param records * @param salaryAccountingId * @return */ List> buildDetailList(List salaryItems, List records, Long salaryAccountingId); /** * 导出-工资单发放详情列表 * * @param queryParam */ XSSFWorkbook exportInfoList(SalarySendInfoQueryParam queryParam); /** * 导出-工资单发放详情列表 * @param salarySend * @param queryParam */ XSSFWorkbook exportDetailList(SalarySendPO salarySend, SalarySendDetailQueryParam queryParam); /** * 获取核算工资单发放结果 * * @param salaryAcctRecordIds * @return */ List getSalarySendCheckResult(Set salaryAcctRecordIds); /** * @description 处理历史数据 * @return null * @author Harryxzy * @date 2022/11/25 10:45 */ void handleHistory(); }