xiaoyi
22 小时以前 8782476e9cb4480be5da588888d08022b7942d0c
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
package cn.iocoder.yudao.module.srm.controller.admin.statistics.vo;
 
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
 
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
 
/**
 * 采购成本分析 Response VO。
 *
 * <p>数据来源:SRM 招标物料需求(数量、预估单价)+ 供应商报价(含税单价、税率)。
 * 不依赖 ERP 采购订单,适用于未启用 ERP 的项目。
 */
@Schema(description = "管理后台 - 采购成本分析 Response VO")
@Data
public class SrmCostAnalysisRespVO {
 
    @Schema(description = "物料编号")
    private Long productId;
    @Schema(description = "物料编码")
    private String productCode;
    @Schema(description = "物料名称")
    private String productName;
    @Schema(description = "规格")
    private String productSpec;
    @Schema(description = "单位")
    private String unit;
 
    @Schema(description = "采购需求量")
    private BigDecimal totalQuantity;
    @Schema(description = "报价次数")
    private Integer quoteCount;
    @Schema(description = "参与报价的供应商数")
    private Integer supplierCount;
 
    @Schema(description = "加权平均报价(按需求量加权)")
    private BigDecimal weightedAvgPrice;
    @Schema(description = "最低报价")
    private BigDecimal minPrice;
    @Schema(description = "最高报价")
    private BigDecimal maxPrice;
    @Schema(description = "预估单价")
    private BigDecimal estimatedPrice;
    @Schema(description = "相对预估价的偏差率(%)")
    private BigDecimal deviationRate;
 
    @Schema(description = "最近报价时间")
    private LocalDateTime lastQuoteTime;
    @Schema(description = "价格变动(最近两次报价差)")
    private BigDecimal priceChange;
 
    @Schema(description = "报价明细")
    private List<QuoteItem> quotes;
 
    @Schema(description = "报价明细项")
    @Data
    public static class QuoteItem {
        @Schema(description = "供应商编号")
        private Long supplierId;
        @Schema(description = "供应商名称")
        private String supplierName;
        @Schema(description = "报价单价")
        private BigDecimal quotePrice;
        @Schema(description = "税率(%)")
        private BigDecimal taxRate;
        @Schema(description = "交期(天)")
        private Integer deliveryCycle;
        @Schema(description = "报价时间")
        private LocalDateTime quoteTime;
    }
 
    @Schema(description = "价格趋势点")
    @Data
    public static class TrendPoint {
        @Schema(description = "月份 yyyy-MM")
        private String month;
        @Schema(description = "平均报价")
        private BigDecimal avgPrice;
        @Schema(description = "报价次数")
        private Integer count;
    }
}