package cn.iocoder.yudao.module.mes.controller.admin.qc.indicatorresult.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.time.LocalDateTime; import java.util.List; @Schema(description = "管理后台 - MES 检验结果 Response VO") @Data public class MesQcIndicatorResultRespVO { @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; @Schema(description = "样品编号", example = "SPL-001") private String code; @Schema(description = "关联质检单ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long qcId; @Schema(description = "质检类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer qcType; @Schema(description = "产品物料ID", example = "1") private Long itemId; @Schema(description = "物资SN", example = "SN-001") private String sn; @Schema(description = "备注", example = "无") private String remark; @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; // ========== 子表:检验结果明细 ========== @Schema(description = "检验结果明细列表") private List items; @Schema(description = "检验结果明细项(树形:分组项下挂子项;平行测量放入 measures)") @Data public static class Item { @Schema(description = "编号(第一批明细的 ID,兼容旧字段)", example = "1024") private Long id; @Schema(description = "关联检验结果ID", example = "1") private Long resultId; @Schema(description = "检测指标ID", example = "1") private Long indicatorId; @Schema(description = "检测值(第一批测量值,兼容旧字段)", example = "3.14") private String value; @Schema(description = "备注(第一批明细的备注,兼容旧字段)", example = "无") private String remark; // ========== 关联查询字段(来自 indicator) ========== @Schema(description = "检测指标名称", example = "外观检查") private String indicatorName; @Schema(description = "质检值类型", example = "1") private Integer valueType; @Schema(description = "值属性", example = "IMG") private String valueSpecification; @Schema(description = "父指标编号(0=顶级)", example = "0") private Long parentId; @Schema(description = "条目类型:1=录入项,2=分组项", example = "1") private Integer itemType; @Schema(description = "公式展示文本(打印报告用)", example = "w3=c1v1*0.06005/pv*100%") private String formulaText; @Schema(description = "单位文本(打印展示用)", example = "kg/m³") private String unitText; @Schema(description = "同级排序号", example = "10") private Integer sortOrder; // ========== 平行测量 ========== @Schema(description = "测量批次明细列表(按 measureNo 升序)") private List measures; // ========== 树形结构 ========== @Schema(description = "子项列表(分组项下挂)") private List children; } @Schema(description = "检验结果测量批次明细(同一指标的一次平行测量)") @Data public static class Measure { @Schema(description = "明细编号", example = "1024") private Long detailId; @Schema(description = "关联检验结果ID", example = "1") private Long resultId; @Schema(description = "测量批次号", example = "1") private Integer measureNo; @Schema(description = "检测值", example = "3.14") private String value; @Schema(description = "备注", example = "无") private String remark; } }