1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package cn.iocoder.yudao.module.finance.api.reimbursement;
 
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.finance.api.reimbursement.dto.FinanceReimbursementCreateReqDTO;
import cn.iocoder.yudao.module.finance.api.reimbursement.dto.FinanceReimbursementRespDTO;
import cn.iocoder.yudao.module.finance.api.reimbursement.dto.FinanceReimbursementUpdateReqDTO;
 
/**
 * 财务报销单 API 接口
 *
 * 供其他模块(如课题管理经费拨付)创建并自动提交报销审批,以及修改后重新发起、删除、查询报销单。
 *
 * @author 超级管理员
 */
public interface FinanceReimbursementApi {
 
    String PREFIX = "/rpc-api/finance/reimbursement";
 
    /**
     * 创建报销单并立即提交审批(系统自动生成 1 行明细)
     *
     * @param reqDTO 报销单信息
     * @return 报销单编号
     */
    CommonResult<Long> createReimbursementAndSubmit(FinanceReimbursementCreateReqDTO reqDTO);
 
    /**
     * 修改报销单并重新提交审批(用于报销被驳回后重新发起)
     *
     * @param reqDTO 报销单信息(含报销单编号)
     * @return 是否成功
     */
    CommonResult<Boolean> updateReimbursementAndResubmit(FinanceReimbursementUpdateReqDTO reqDTO);
 
    /**
     * 删除报销单(只有草稿或已驳回状态才能删除)
     *
     * @param reimbursementId 报销单编号
     * @return 是否成功
     */
    CommonResult<Boolean> deleteReimbursement(Long reimbursementId);
 
    /**
     * 获取报销单
     *
     * @param reimbursementId 报销单编号
     * @return 报销单
     */
    CommonResult<FinanceReimbursementRespDTO> getReimbursement(Long reimbursementId);
 
}