package cn.iocoder.yudao.module.qcreport.service.aiimport; import cn.iocoder.yudao.module.qcreport.controller.admin.aiimport.vo.QcReportAiDraftReqVO; import cn.iocoder.yudao.module.qcreport.controller.admin.aiimport.vo.QcReportAiDraftRespVO; /** * AI 导入 Service 接口:读文件 → 出模板草稿。 * *

为什么是同步接口

* 一次导入要等 10~60 秒。做成异步需要任务表 + 轮询 + 线程池,而它换来的只是「用户可以先去干别的」—— * 但草稿只作参考,用户等结果和去干别的再回来,拿到的行为完全一样。为一个不改变结果的体验 * 引入一张表和一个线程池,不划算。 * *

为什么不落库

* 草稿只给人在设计器里确认,不需要一个能按 ID 回查的实体。不落库意味着失败、重试、放弃 * 都不留下任何需要清理的行;而「保存」仍然是既有的 {@code createVersion} / {@code updateVersion}, * Schema 校验(含判定规则)那道闸门自动生效,不存在第二条落库路径。 */ public interface QcReportAiImportService { /** * 识别文件,返回模板草稿。 * * @param reqVO 请求参数(文件 blobId、组件清单、补充说明) * @return 模板草稿,含软提示 */ QcReportAiDraftRespVO generateDraft(QcReportAiDraftReqVO reqVO); }