| | |
| | | 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; |
| | |
| | | * H5 扫码溯源 - 全程溯源信息 Response VO |
| | | * <p> |
| | | * 以「信息区块」模块化组织,核心信息(品种/批次/人员/质检/入库)始终返回; |
| | | * 采购来源、销售去向、加工流转为可选扩展区块(有数据才非空)。后续新增数据源按同一模式追加区块字段。 |
| | | * 采购来源、销售去向、种子流向(批次出入库流水)、加工流转为可选扩展区块(有数据才非空)。后续新增数据源按同一模式追加区块字段。 |
| | | */ |
| | | @Schema(description = "H5 扫码溯源 - 全程溯源信息 Response VO") |
| | | @Data |
| | |
| | | @Schema(description = "种子质检信息") |
| | | private QualityVO quality; |
| | | |
| | | // ====== 防伪验证区块 ====== |
| | | @Schema(description = "防伪验证信息(该追溯码扫码次数与时间)") |
| | | private AntiFakeVO antiFake; |
| | | |
| | | // ====== 可选扩展区块(有数据才返回,空表返回空列表) ====== |
| | | @Schema(description = "采购来源(可选)") |
| | | private List<MesWmBatchPurchaseSourceRespVO> purchaseSources; |
| | |
| | | @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 |
| | |
| | | private LocalDateTime eventTime; |
| | | } |
| | | |
| | | @Schema(description = "防伪验证信息") |
| | | @Data |
| | | public static class AntiFakeVO { |
| | | @Schema(description = "该追溯码累计扫码次数", example = "3") |
| | | private Long scanCount; |
| | | @Schema(description = "首次扫码时间") |
| | | private LocalDateTime firstScanTime; |
| | | @Schema(description = "最近扫码时间") |
| | | private LocalDateTime lastScanTime; |
| | | } |
| | | |
| | | @Schema(description = "种子质检信息") |
| | | @Data |
| | | public static class QualityVO { |