# 01 — 基础设施(prefactor) **What to build:** 为缩略图功能准备数据模型、配置和依赖基础。`FileInfo` 实体新增 `thumbnail_status`(默认 PENDING)和 `thumbnail_retry_count`(默认 0)两个字段,ddl-auto 自动加列。`FileProperties` 新增 `Thumbnail` 内嵌配置类(width/max-height/format/sync-wait-timeout/retry-limit/retry-cron/libreoffice-path)。`FileConstants` 新增缩略图对象前缀 `THUMBNAIL_PREFIX = "thumbnails/"` 和错误码 62007(缩略图生成失败)、62008(同步等待超时)。父 POM `dependencyManagement` 新增 PDFBox 版本管理,`crm-file/pom.xml` 引入 PDFBox 依赖。无行为变更,纯基础设施。 **Blocked by:** None — can start immediately **Status:** ready-for-agent - [x] `FileInfo` 实体新增 `thumbnail_status`(varchar(16) not null default 'PENDING')和 `thumbnail_retry_count`(int not null default 0)字段,带 JPA @Column 注解和 @Comment - [x] `FileProperties` 新增 `Thumbnail` 内嵌类,含 width(200)/maxHeight(400)/format(jpeg)/syncWaitTimeout(10s)/retryLimit(3)/retryCron("0 0 4 * * ?")/libreofficePath("soffice") 配置项 - [x] `FileConstants` 新增 `THUMBNAIL_PREFIX = "thumbnails/"`、`THUMBNAIL_LOCK_PREFIX = "crm:file:thumbnail:lock:"`、`CODE_THUMBNAIL_GENERATION_FAILED = 62007`、`CODE_THUMBNAIL_SYNC_TIMEOUT = 62008`(62007/62008 为预留码,一期失败/超时走占位图降级不抛出,见 spec §7.3) - [x] 父 POM `` 新增 `pdfbox.version`,`` 新增 `org.apache.pdfbox:pdfbox` 依赖 - [x] `crm-file/pom.xml` 新增 PDFBox 依赖引用(不含版本号,走父 POM 管理) - [x] 编译通过,现有测试不受影响