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 blobIds; @Schema(description = "报销明细列表") @NotEmpty(message = "报销明细不能为空") private List items; }