package cn.iocoder.yudao.module.mes.controller.admin.qc.indicatorresult.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; @Schema(description = "管理后台 - MES 检验报告单(打印数据) Response VO") @Data public class MesQcQcReportRespVO { // ========== 报告表头 ========== @Schema(description = "质检类型:1=IQC,2=IPQC,3=OQC,4=RQC", example = "1") private Integer qcType; @Schema(description = "检验单编号", example = "IQC20260830001") private String docCode; @Schema(description = "检验单名称(报告标题)", example = "正丁醇检验记录") private String docName; @Schema(description = "物料编码", example = "M001") private String itemCode; @Schema(description = "物料名称", example = "正丁醇") private String itemName; @Schema(description = "物料规格型号", example = "工业级") private String itemSpecification; @Schema(description = "批次号(来料供应商批次/其他单据批次号)", example = "V0028B1") private String batchNo; @Schema(description = "采样地点", example = "罐区") private String samplingLocation; @Schema(description = "证书编号/合格证号", example = "V0028") private String certificateNo; @Schema(description = "执行标准", example = "GB/T6027") private String executeStandard; @Schema(description = "采样/检验时间", example = "2026-08-30T01:00:00") private LocalDateTime samplingTime; @Schema(description = "批量(来料=接收数量,过程/退货=检测数量,出货=出货数量)", example = "30") private BigDecimal batchQuantity; @Schema(description = "检测结果(字典 mes_qc_check_result)", example = "1") private Integer checkResult; // ========== 签字区 ========== @Schema(description = "分析者(检测人)用户编号", example = "1") private Long inspectorUserId; @Schema(description = "分析者姓名", example = "新艳") private String inspectorName; @Schema(description = "复核人用户编号", example = "2") private Long auditUserId; @Schema(description = "复核人姓名", example = "海丽") private String auditName; @Schema(description = "审核人用户编号", example = "3") private Long approveUserId; @Schema(description = "审核人姓名", example = "王五") private String approveName; @Schema(description = "备注", example = "无") private String remark; // ========== 检验项矩阵 ========== @Schema(description = "测量批次号列表(报告列头,如 [1,2];无平行测量时为 [1])") private List measureNos; @Schema(description = "检验项树(顶级=分组项或独立录入项;分组项 children 挂子项)") private List items; @Schema(description = "报告检验项") @Data public static class ReportItem { @Schema(description = "检测指标ID", example = "1") private Long indicatorId; @Schema(description = "检测项编码", example = "ACID") private String indicatorCode; @Schema(description = "检测项名称", example = "酸含量") private String indicatorName; @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 = "mol/L") private String unitText; @Schema(description = "同级排序号", example = "10") private Integer sortOrder; @Schema(description = "检测方法", example = "酸碱滴定") private String checkMethod; @Schema(description = "标准值", example = "0.0010") private BigDecimal standardValue; @Schema(description = "阈值下限", example = "0") private BigDecimal thresholdMin; @Schema(description = "阈值上限", example = "0.0050") private BigDecimal thresholdMax; @Schema(description = "测量值列表(按 measureNo 升序;分组项为空)") private List measures; @Schema(description = "子项列表(分组项下挂)") private List children; } @Schema(description = "报告测量值(某检验项某批次)") @Data public static class ReportMeasure { @Schema(description = "测量批次号", example = "1") private Integer measureNo; @Schema(description = "检测值", example = "0.001") private String value; @Schema(description = "备注", example = "无") private String remark; } }