10 小时以前 9bad721754fe8bbe2e5f459d0706e0fefac569f3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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;
 
/**
 * 出件(渲染并落库报告实例)的入参,预览接口也复用它。
 * <p>
 * {@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;
 
}