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
package cn.iocoder.yudao.module.finance.controller.admin.reimbursement.vo;
 
import cn.iocoder.yudao.module.finance.controller.admin.reimbursement.vo.item.FinanceReimbursementItemSaveReqVO;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.Data;
 
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;
 
@Schema(description = "管理后台 - 报销单新增/修改 Request VO")
@Data
public class FinanceReimbursementSaveReqVO {
 
    @Schema(description = "编号", example = "1")
    private Long id;
 
    @Schema(description = "报销单号。留空(含只填空格)则由系统按 BX+日期+6位流水自动生成;"
            + "修改时不传或留空表示保持原单号不变", example = "BX20260928000001")
    @Size(max = 36, message = "报销单号长度不能超过 36 个字符")
    private String no;
 
    @Schema(description = "报销标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "9月差旅报销")
    @NotEmpty(message = "报销标题不能为空")
    private String title;
 
    @Schema(description = "报销总金额", requiredMode = Schema.RequiredMode.REQUIRED, example = "1000.00")
    @NotNull(message = "报销总金额不能为空")
    private BigDecimal totalAmount;
 
    @Schema(description = "申请日期", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "申请日期不能为空")
    private LocalDate applyDate;
 
    @Schema(description = "备注", example = "出差北京")
    private String remark;
 
    @Schema(description = "发票附件BlobId列表")
    private List<Long> blobIds;
 
    @Schema(description = "报销明细列表")
    @NotEmpty(message = "报销明细不能为空")
    private List<FinanceReimbursementItemSaveReqVO> items;
 
}