package cn.iocoder.yudao.module.hrm.service.salary; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.hrm.controller.admin.salary.vo.HrmSalaryPaymentDetailPageReqVO; import cn.iocoder.yudao.module.hrm.controller.admin.salary.vo.HrmSalaryPaymentPageReqVO; import cn.iocoder.yudao.module.hrm.dal.dataobject.salary.HrmSalaryPaymentDetailDO; import cn.iocoder.yudao.module.hrm.dal.dataobject.salary.HrmSalaryPaymentDO; import java.util.List; /** * 薪资发放 Service 接口 * * @author 芋道源码 */ public interface HrmSalaryPaymentService { /** * 获得薪资发放分页 */ PageResult getSalaryPaymentPage(HrmSalaryPaymentPageReqVO pageReqVO); /** * 获得薪资发放 */ HrmSalaryPaymentDO getSalaryPayment(Long id); /** * 生成薪资发放台账 * 将已确认的薪酬核算记录转入发放台账 * * @param period 核算周期 * @return 发放台账ID */ Long generatePayment(String period); /** * 发放薪资 * * @param id 发放台账ID */ void paySalary(Long id); /** * 批量发放薪资(指定明细) * * @param detailIds 发放明细ID列表 */ void paySalaryDetail(List detailIds); /** * 撤销薪资发放 * 将已发放的明细恢复为待发放,同时将关联的核算记录恢复为已确认状态 * * @param detailIds 发放明细ID列表 */ void revokeSalaryPaymentDetail(List detailIds); /** * 删除薪资发放台账(仅待发放状态可删除,需先撤销所有明细) * * @param id 发放台账ID */ void deleteSalaryPayment(Long id); /** * 获得薪资发放明细分页 */ PageResult getSalaryPaymentDetailPage(HrmSalaryPaymentDetailPageReqVO pageReqVO); /** * 获得薪资发放明细列表(按发放台账ID) */ List getSalaryPaymentDetailListByPaymentId(Long paymentId); }