package cn.iocoder.yudao.module.aftersales.service.compensation; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.aftersales.controller.admin.compensation.vo.AfterSaleCompensationPageReqVO; import cn.iocoder.yudao.module.aftersales.controller.admin.compensation.vo.AfterSaleCompensationSaveReqVO; import cn.iocoder.yudao.module.aftersales.dal.dataobject.compensation.AfterSaleCompensationDO; import java.util.Set; /** * 售后赔付/服务补偿单 Service 接口 */ public interface AfterSaleCompensationService { Long createCompensation(AfterSaleCompensationSaveReqVO createReqVO); void updateCompensation(AfterSaleCompensationSaveReqVO updateReqVO); void deleteCompensation(Long id); AfterSaleCompensationDO getCompensation(Long id); PageResult getCompensationPage(AfterSaleCompensationPageReqVO pageReqVO); /** * 提交赔付单审批(未提交 / 审核不通过 → 审批中) * * 审批人由「系统管理 - 审批配置」按业务类型 compensation_approve 统一指定,提交时不选人。 * * @param id 赔付单编号 */ void submitCompensation(Long id); /** * 获得赔付单审批人编号集合,供前端判断是否展示审核按钮 * * @return 审批人用户编号集合 */ Set getCompensationApproverUserIds(); /** * 审核赔付单(审批中 → 审核通过 / 审核不通过) * * @param id 赔付单编号 * @param pass 是否通过 * @param reviewRemark 审核意见,审核不通过时必填 */ void auditCompensation(Long id, Boolean pass, String reviewRemark); }