liu
2 天以前 4ca4444ad33a2a1a51f5c06e78ee9365dfb1eed6
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/pub/trace/vo/MesProTracePublicRespVO.java
@@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.mes.controller.pub.trace.vo;
import cn.iocoder.yudao.module.mes.controller.admin.wm.batch.vo.MesWmBatchFlowRespVO;
import cn.iocoder.yudao.module.mes.controller.admin.wm.batch.vo.MesWmBatchProcessTraceRespVO;
import cn.iocoder.yudao.module.mes.controller.admin.wm.batch.vo.MesWmBatchPurchaseSourceRespVO;
import cn.iocoder.yudao.module.mes.controller.admin.wm.batch.vo.MesWmBatchSalesTargetRespVO;
@@ -14,7 +15,7 @@
 * H5 扫码溯源 - 全程溯源信息 Response VO
 * <p>
 * 以「信息区块」模块化组织,核心信息(品种/批次/人员/质检/入库)始终返回;
 * 采购来源、销售去向、加工流转为可选扩展区块(有数据才非空)。后续新增数据源按同一模式追加区块字段。
 * 采购来源、销售去向、种子流向(批次出入库流水)、加工流转为可选扩展区块(有数据才非空)。后续新增数据源按同一模式追加区块字段。
 */
@Schema(description = "H5 扫码溯源 - 全程溯源信息 Response VO")
@Data
@@ -23,8 +24,24 @@
    @Schema(description = "追溯入口类型:BAG-袋码 / PALLET-托盘码 / BATCH-批次码", example = "BAG")
    private String sourceType;
    @Schema(description = "请求的追溯码(原始扫码值)", example = "PC20260828twoITEM_001")
    @Schema(description = "请求的追溯码(原始扫码值)", example = "0286267849370923")
    private String requestCode;
    @Schema(description = "追溯码有效性:VALID-有效 / CANCELED-已作废(作废码不得作为有效产品流通)",
            example = "VALID")
    private String codeStatus;
    @Schema(description = "是否已录入生产批次(false 表示袋码/托盘已生成但尚未录入批次,此时仅返回品种信息)", example = "true")
    private Boolean batchBound;
    // ====== 标签四要素区块(与二维码标签印刷内容保持一致) ======
    @Schema(description = "生产经营者名称(进口种子场景为进口商名称)",
            example = "新疆塔里木河种业股份有限公司")
    private String operatorName;
    @Schema(description = "追溯网址(与二维码内容前缀一致)",
            example = "http://1.95.78.124:9008/prod/trace.html")
    private String traceUrl;
    // ====== 品种信息区块 ======
    @Schema(description = "品种编码")
@@ -35,6 +52,9 @@
    @Schema(description = "品种规格")
    private String itemSpecification;
    @Schema(description = "品种计量单位名称", example = "48千克")
    private String itemUnitMeasureName;
    // ====== 生产批次信息区块 ======
    @Schema(description = "批次号")
@@ -116,9 +136,50 @@
    @Schema(description = "销售去向(可选)")
    private List<MesWmBatchSalesTargetRespVO> salesTargets;
    @Schema(description = "种子流向信息(批次出入库流水:生产入库 → 销售出库等,可选)")
    private List<MesWmBatchFlowRespVO> seedFlows;
    @Schema(description = "加工流转(可选)")
    private List<MesWmBatchProcessTraceRespVO> processTraces;
    @Schema(description = "追溯时间线")
    private List<TimelineVO> timeline;
    @Schema(description = "追溯决策摘要")
    private DecisionVO decision;
    @Schema(description = "追溯时间线事件")
    @Data
    public static class TimelineVO {
        @Schema(description = "阶段")
        private String stage;
        @Schema(description = "事件类型")
        private String eventType;
        @Schema(description = "事件名称")
        private String eventName;
        @Schema(description = "事件时间")
        private LocalDateTime eventTime;
        @Schema(description = "数量")
        private BigDecimal quantity;
        @Schema(description = "状态")
        private String status;
    }
    @Schema(description = "追溯决策摘要")
    @Data
    public static class DecisionVO {
        @Schema(description = "质量是否存在风险")
        private Boolean qualityRisk;
        @Schema(description = "库存入库数量")
        private BigDecimal inboundQuantity;
        @Schema(description = "销售去向数量")
        private Integer salesTargetCount;
        @Schema(description = "消费者扫码次数")
        private Long consumerScanCount;
        @Schema(description = "风险等级")
        private String riskLevel;
    }
    @Schema(description = "生产人员")
    @Data
    public static class WorkerVO {