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;
|
}
|
}
|