package com.ruoyi.system.dto.asset; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import javax.validation.Valid; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import java.math.BigDecimal; import java.time.LocalDate; import java.util.List; /** * 采购申请DTO * * @author Claude * @since 2025-09-16 */ @Data @ApiModel(value = "OaApprovalApplicationPurchaseDTO", description = "采购申请DTO") public class OaApprovalApplicationPurchaseDTO { @ApiModelProperty(value = "审批ID") @NotNull(message = "审批ID不能为空") private Integer approvalId; @ApiModelProperty(value = "申请部门ID") @NotNull(message = "申请部门不能为空") private Integer deptId; @ApiModelProperty(value = "申请部门名称") @NotBlank(message = "申请部门名称不能为空") private String deptName; @ApiModelProperty(value = "申请人ID") @NotNull(message = "申请人不能为空") private Integer applicantUserId; @ApiModelProperty(value = "申请人姓名") @NotBlank(message = "申请人姓名不能为空") private String applicantName; @ApiModelProperty(value = "申请日期") @NotNull(message = "申请日期不能为空") @DateTimeFormat(pattern = "yyyy-MM-dd") private LocalDate applicationDate; @ApiModelProperty(value = "采购说明") @NotBlank(message = "采购说明不能为空") @Size(max = 500, message = "采购说明不能超过500字符") private String applicationReason; @ApiModelProperty(value = "附件地址,多个使用英文逗号拼接") private String attachmentUrl; @ApiModelProperty(value = "事项标题") @NotBlank(message = "事项标题不能为空") private String title; @ApiModelProperty(value = "资产类型ID") @NotNull(message = "资产类型不能为空") private Integer assetTypeId; @ApiModelProperty(value = "采购总金额") @NotNull(message = "采购总金额不能为空") private BigDecimal totalAmount; @ApiModelProperty(value = "采购资产明细列表") @Valid @Size(min = 1, message = "采购资产明细不能为空") private List purchaseItems; @Data @ApiModel(value = "PurchaseItemDTO", description = "采购资产明细DTO") public static class PurchaseItemDTO { @ApiModelProperty(value = "资产名称") @NotBlank(message = "资产名称不能为空") private String assetName; @ApiModelProperty(value = "资产类型ID") @NotNull(message = "资产类型不能为空") private Integer assetTypeId; @ApiModelProperty(value = "规格型号") private String spec; @ApiModelProperty(value = "计量单位") @NotBlank(message = "计量单位不能为空") private String unit; @ApiModelProperty(value = "数量") @NotNull(message = "数量不能为空") private Integer quantity; @ApiModelProperty(value = "单价") @NotNull(message = "单价不能为空") private BigDecimal price; @ApiModelProperty(value = "总金额") @NotNull(message = "总金额不能为空") private BigDecimal totalAmount; } }