package cn.iocoder.yudao.module.srm.controller.admin.inquiry.vo; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.math.BigDecimal; import java.time.LocalDate; import java.util.List; import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY; @Schema(description = "管理后台 - 询价比价创建/更新 Request VO") @Data public class SrmInquirySaveReqVO { @Schema(description = "询价单ID") private Long id; @Schema(description = "询价标题", requiredMode = Schema.RequiredMode.REQUIRED) @NotEmpty(message = "询价标题不能为空") private String title; @Schema(description = "询价日期") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY) private LocalDate inquiryDate; @Schema(description = "报价截止日期") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY) private LocalDate deadline; @Schema(description = "采购员用户编号") private Long purchaserUserId; @Schema(description = "备注") private String remark; @Schema(description = "产品行列表") @NotEmpty(message = "请至少添加一个询价产品") private List items; @Schema(description = "参与供应商列表") @NotEmpty(message = "请至少添加一个参与供应商") private List suppliers; @Schema(description = "询价产品行") @Data public static class Item { @Schema(description = "询价产品行ID(编辑已有行时传入)") private Long id; @Schema(description = "产品编号", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "产品不能为空") private Long productId; @Schema(description = "产品单位编号") private Long productUnitId; @Schema(description = "产品编码") private String productCode; @Schema(description = "产品名称") private String productName; @Schema(description = "规格型号") private String productSpec; @Schema(description = "单位名称") private String unitName; @Schema(description = "采购数量", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "采购数量不能为空") private BigDecimal quantity; @Schema(description = "目标单价") private BigDecimal estimatedPrice; @Schema(description = "中标供应商编号") private Long selectedSupplierId; @Schema(description = "供应商报价列表(创建/编辑时一并提交)") private List quotes; @Schema(description = "备注") private String remark; } @Schema(description = "询价产品供应商报价") @Data public static class Quote { @Schema(description = "供应商编号", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "报价供应商不能为空") private Long supplierId; @Schema(description = "报价单价", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "报价单价不能为空") private BigDecimal price; @Schema(description = "税率,百分比") private BigDecimal taxRate; @Schema(description = "交货周期,天") private Integer deliveryCycle; @Schema(description = "付款条件") private String paymentTerms; @Schema(description = "备注") private String remark; } @Schema(description = "参与供应商") @Data public static class Supplier { @Schema(description = "供应商编号", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "供应商不能为空") private Long supplierId; @Schema(description = "备注") private String remark; } }