package com.engine.salary.service; import com.engine.salary.common.LocalDateRange; import com.engine.salary.entity.salaryacct.param.SalaryAcctRecordQueryParam; import com.engine.salary.entity.salaryacct.param.SalaryAcctRecordSaveParam; import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; import com.engine.salary.entity.salarysob.dto.SalarySobCycleDTO; import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum; import com.engine.salary.util.page.PageInfo; import java.util.Collection; import java.util.List; /** * 薪资核算记录 *

Copyright: Copyright (c) 2022

*

Company: 泛微软件

* * @author qiantao * @version 1.0 **/ public interface SalaryAcctRecordService { /** * 根据主键id获取单条薪资核算记录 * * @param id 主键id * @return */ SalaryAcctRecordPO getById(Long id); /** * 根据主键id查询薪资核算记录 * * @param ids 主键id * @return */ List listByIds(Collection ids); /** * 根据薪资账套id、薪资所属月查询薪资核算记录 * * @param salarySobIds 薪资账套id * @param salaryMonthDateRange 薪资所属月的时间范围 * @return */ List listBySalarySobIdsAndSalaryMonth(Collection salarySobIds, LocalDateRange salaryMonthDateRange); /** * 根据薪资账套id、税款所属期查询薪资核算记录 * * @param salarySobIds 薪资账套id * @param taxCycleDateRange 税款所属期的时间范围 * @return */ List listBySalarySobIdsAndTaxCycle(Collection salarySobIds, LocalDateRange taxCycleDateRange); /** * 根据薪资所属月查询薪资核算记录 * * @param salaryMonthDateRange 薪资所属月的时间范围 * @return */ List listBySalaryMonth(LocalDateRange salaryMonthDateRange); /** * 根据税款周期查询薪资核算记录 * * @param salaryMonthDateRange * @return */ List listByTaxCycle(LocalDateRange salaryMonthDateRange,Collection salarySobIds); /** * 根据列表查询条件查询薪资核算记录(分页) * * @param queryParam 列表查询条件 * @return */ PageInfo listPageByParam(SalaryAcctRecordQueryParam queryParam); /** * 根据id查询同一个账套上一个月的薪资核算记录 * * @param id 薪资核算记录id * @return */ List listById4LastSalaryMonth(Long id); /** * 根据薪资账套ID查询薪资核算记录 * * @param salarySobIds 薪资账套id * @return */ List listBySalarySobIds(Collection salarySobIds); /** * 根据id查询其他合并计税的薪资核算记录 * * @param id 薪资核算记录的id * @return */ List listById4OtherConsolidatedTax(Long id); /** * 薪资核算记录所用的薪资账套薪资周期、考勤周期…… * * @param id 薪资核算记录的id * @return */ SalarySobCycleDTO getSalarySobCycleById(Long id); /** * 保存 * * @param saveParam 保存参数 * @return */ Long save(SalaryAcctRecordSaveParam saveParam); /** * 更新薪资核算记录的状态 * * @param ids 主键id * @param status 薪资核算记录的状态 */ void updateStatusByIds(Collection ids, SalaryAcctRecordStatusEnum status); /** * 根据主键id删除 * * @param ids 薪资核算记录的id */ void deleteByIds(Collection ids); /** * 归档 * * @param id 薪资核算记录的id */ void file(Long id); /** * 重新核算(并不是重新执行公式,而是变更薪资核算记录状态为未归档,并且撤回生成的工资单) * * @param id 薪资核算记录的id */ void reCalculate(Long id); /** * 判断是否存在合并计税 * * @param id 薪资核算记录的id * @return 0:不存在、1:存在 */ Integer hasConsolidatedTax(Long id); /** * 查询操作日志中的操作对象名称 * * @param id 薪资核算记录的id * @return */ String getLogTargetNameById(Long id); /** * 根据状态查询薪资核算记录 * * @param status * @return */ List listByStatus(SalaryAcctRecordStatusEnum status); /** * 根据核算人和核算状态查询核算记录 * * @param status * @param employeeId * @return */ List listByStatusAndEmployeeId(SalaryAcctRecordStatusEnum status, Long employeeId); void updateLockSalaryItemIds(SalaryAcctRecordPO salaryAcctRecord); /** * @description 回算 * @return void * @author Harryxzy * @date 2022/11/24 16:09 */ void backCalculate(Long salaryAcctRecordId); }