5 小时以前 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
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 接口:读文件 → 出模板草稿。
 *
 * <h3>为什么是同步接口</h3>
 * 一次导入要等 10~60 秒。做成异步需要任务表 + 轮询 + 线程池,而它换来的只是「用户可以先去干别的」——
 * 但草稿只作参考,用户等结果和去干别的再回来,拿到的行为完全一样。为一个不改变结果的体验
 * 引入一张表和一个线程池,不划算。
 *
 * <h3>为什么不落库</h3>
 * 草稿只给人在设计器里确认,不需要一个能按 ID 回查的实体。不落库意味着失败、重试、放弃
 * 都不留下任何需要清理的行;而「保存」仍然是既有的 {@code createVersion} / {@code updateVersion},
 * Schema 校验(含判定规则)那道闸门自动生效,不存在第二条落库路径。
 */
public interface QcReportAiImportService {
 
    /**
     * 识别文件,返回模板草稿。
     *
     * @param reqVO 请求参数(文件 blobId、组件清单、补充说明)
     * @return 模板草稿,含软提示
     */
    QcReportAiDraftRespVO generateDraft(QcReportAiDraftReqVO reqVO);
 
}