gaoluyang
4 天以前 cdaec80a5ffa474f69e5c36f0312be3c0abf2210
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
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<Item> items;
 
    @Schema(description = "参与供应商列表")
    @NotEmpty(message = "请至少添加一个参与供应商")
    private List<Supplier> 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<Quote> 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;
 
    }
 
}