package cn.iocoder.yudao.module.qcreport.controller.admin.aiimport.vo; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.Data; import java.util.List; /** * AI 识别文件生成模板草稿的入参。 *
* 文件不走这里上传:先由前端调 system 模块的 {@code /system/storage-blob/upload} 拿到 blobId, * 再把 blobId 交给本接口。业务模块不自建上传通道,也不碰 MultipartFile(见 file-upload.md)。 *
* 返回的只是**草稿**,不落库。人工在设计器里确认、调整并点保存,才会真正写入模板版本。
*/
@Schema(description = "管理后台 - 智能质检报告 AI 模板草稿 Request VO")
@Data
public class QcReportAiDraftReqVO {
/**
* 文件数量上限**不在注解里写死**:它由 {@code yudao.qcreport.ai-import.max-files} 决定,
* 服务层在读取任何文件之前先比对配置值并给出带两个实际值的提示。
* 这里再写一个数字就是第二个真相来源——它与配置不同步时,用户看到的上限与真正生效的上限对不上,
* 而且注解永远只会更严,配置便只敢往下调。
*/
@Schema(description = "上传文件对应的 blobId 列表,顺序即文档页序。个数上限见 yudao.qcreport.ai-import.max-files",
requiredMode = Schema.RequiredMode.REQUIRED, example = "[2048, 2049]")
@NotEmpty(message = "请至少上传一个文件")
private List