package cn.iocoder.yudao.module.qcreport.controller.admin.instance.vo; import cn.iocoder.yudao.module.qcreport.engine.context.ReportContext; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotNull; import lombok.Data; /** * 出件(渲染并落库报告实例)的入参,预览接口也复用它。 *

* {@link #context} 直接用引擎的 {@link ReportContext},不另造一个镜像 VO: * 那就是这个平台对外唯一的数据契约,镜像出来只是多一份需要同步维护的字段清单。 * 字段级的边界校验放在 Service 里做,引擎实体本身不挂校验注解。 */ @Schema(description = "管理后台 - 智能质检报告出件 Request VO") @Data public class QcReportInstanceGenerateReqVO { @Schema(description = "模板编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "5") @NotNull(message = "模板编号不能为空") private Long templateId; @Schema(description = "模板版本号。不传则用模板当前已发布的版本", example = "v1.0") private String version; @Schema(description = "报告编号。不传则按 QR+日期+流水 自动生成", example = "QR20260918-0001") private String reportNo; @Schema(description = "业务单据编号,用于将来按单据反查报告", example = "1024") private String businessId; @Schema(description = "业务单据类型,如 mes_qc_iqc / mes_qc_ipqc / mes_qc_oqc / mes_qc_rqc", example = "mes_qc_oqc") private String businessType; @Schema(description = "报告数据上下文:报告级字段 + 检验项列表", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "报告数据不能为空") private ReportContext context; }