package com.ruoyi.web.work.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.web.work.domain.Statement;
import com.ruoyi.web.work.domain.StatementDetail;
import com.ruoyi.web.work.domain.dto.RejectDto;

import java.util.List;

/**
 * @author lsw
 * @date 2024-04-20
 */
public interface IStatementService extends IService<Statement> {
    List<Statement> selectList(Statement statement);

    List<Statement> selectAuditList(Statement statement);

    /**
     * 创建结算单
     *
     * @param list
     * @param statement
     * @return
     */
    AjaxResult makeAdd(List<StatementDetail> list, Statement statement);

    /**
     * 生成结算单
     *
     * @param id
     * @return
     */
    AjaxResult makeGenerate(Long id);


    /**
     * 提交结算单审核
     *
     * @param id
     * @return
     */
    AjaxResult manageSubmit(Long id);

    /**
     * 撤回结算单审核
     *
     * @param id
     * @return
     */
    AjaxResult manageCancel(Long id);

    /**
     * 结算单审核通过
     *
     * @param id
     * @return
     */
    AjaxResult auditSuccess(Long id);

    /**
     * 结算单审核驳回
     * @param dto
     * @return
     */
    AjaxResult auditReject(RejectDto dto);

    /**
     * 删除结算单(只有未生成的才能删除)
     *
     * @param id
     * @return
     */
    AjaxResult makeRemove(Long id);


    /**
     * 发放业务费
     * @param id
     * @return
     */
    AjaxResult giveSend(Long id);
}
