新增课程起止日期管理
This commit is contained in:
@@ -85,7 +85,7 @@
|
||||
|
||||
### C009 Excel 导入字段
|
||||
|
||||
- 决定:导入模板只保留姓名、手机号、项目代码、发证日期。
|
||||
- 决定:导入模板保留姓名、手机号、项目代码、课程开始日期、课程结束日期、发证日期。
|
||||
- 原因:证书名称、课程名称、阶段名称、发证单位属于项目配置,不应该在每一行 Excel 里重复填写。
|
||||
- 备注:导入备注字段一期移除;批量导入后的备注缺少明确展示和业务使用场景。
|
||||
|
||||
@@ -98,7 +98,7 @@
|
||||
|
||||
- Decision: keep `certificate-template-lab` as a standalone visual tuning page.
|
||||
- Decision: production PDF rendering now uses the approved certificate image as the base layer, then renders learner/course/date/certificate number dynamically with Pillow.
|
||||
- Current limitation: the data model only has `issue_date`; until separate training start/end dates are added, the rendered course date range uses `issue_date` for both start and end.
|
||||
- Current behavior: the rendered course date range uses the separate course start/end dates; legacy certificates without them fall back to `issue_date`.
|
||||
- Current limitation: mentor, issuer names, and QR area remain from the approved base image for visual consistency.
|
||||
|
||||
### C012 PDF 批量预生成
|
||||
@@ -107,3 +107,10 @@
|
||||
- 策略:预生成继续使用系统设置里的 `PDF 生成并发限制`,不单独开无限制后台任务。
|
||||
- 原因:大批量学员毕业前先生成缓存,可以降低公开查询高峰的等待时间和 CPU 压力。
|
||||
- 当前限制:任务进度保存在后端进程内,服务重启后只保留已生成的 PDF 缓存,不恢复历史进度。
|
||||
|
||||
### C013 课程起止日期独立建模
|
||||
|
||||
- 决定:证书增加“课程开始日期”和“课程结束日期”两个独立字段,不再用发证日期代替课程时间。
|
||||
- 原因:课程学习周期与证书签发日期含义不同,拆分后可校验时间顺序,也便于后续按开班、结业周期统计。
|
||||
- 导入约定:两个课程日期与发证日期均必填,模板统一推荐 `YYYY-MM-DD`,例如 `2026-06-01`;课程结束日期不得早于开始日期。
|
||||
- 兼容策略:历史证书没有课程日期时,展示和 PDF 继续回退到发证日期,避免升级后旧证书无法查看或下载。
|
||||
|
||||
@@ -38,6 +38,7 @@ docker compose exec backend python -m app.cli init-db --admin-username admin --a
|
||||
- 发证单位名称已确认。
|
||||
- 系统设置里的 `PDF 生成并发限制` 已确认,2 核 4G 建议保持默认 `2`。
|
||||
- Excel 导入模板已下载并试填。
|
||||
- 导入模板中的课程开始日期、课程结束日期和发证日期已统一使用 `YYYY-MM-DD`,例如 `2026-06-01`。
|
||||
- 占位证书模板已确认可临时使用。
|
||||
- 大批量毕业前的操作约定已确认:确认导入后先在“Excel 导入”或“证书管理”里批量预生成 PDF。
|
||||
|
||||
@@ -49,6 +50,8 @@ docker compose exec backend python -m app.cli init-db --admin-username admin --a
|
||||
- 可上传 Excel 并确认导入。
|
||||
- 已导入批次可以启动“预生成PDF”,进度弹窗能显示总数、已完成、失败数和并发数。
|
||||
- 证书管理页可按导入批次和 PDF 状态筛选,并能勾选多张证书批量预生成。
|
||||
- 倒序的课程起止日期会在手工新增和 Excel 导入校验阶段被拦截。
|
||||
- 新证书正文显示课程起止日期,底部发证日期仍显示证书签发日期。
|
||||
- 可导出证书和直达链接。
|
||||
- 公开查询支持两种方式:
|
||||
- 证书编号查询:必须输入姓名和图形验证码。
|
||||
|
||||
@@ -39,11 +39,8 @@
|
||||
1. 姓名
|
||||
2. 手机号
|
||||
3. 项目代码
|
||||
4. 证书名称
|
||||
5. 课程名称
|
||||
6. 阶段名称
|
||||
7. 发证日期
|
||||
8. 发证单位
|
||||
9. 备注
|
||||
4. 课程开始日期
|
||||
5. 课程结束日期
|
||||
6. 发证日期
|
||||
|
||||
证书编号不在 Excel 中填写,由系统确认导入后自动生成。
|
||||
三个日期统一使用 `YYYY-MM-DD`,例如 `2026-06-01`,课程结束日期不得早于开始日期。证书名称、课程名称、阶段名称和发证单位从项目配置自动带出;证书编号由系统确认导入后自动生成。
|
||||
|
||||
@@ -42,7 +42,7 @@ reset-local-data.bat
|
||||
2. 进入“项目管理”,维护 `DBY`、`QSX` 等项目代码。项目支持搜索、修改、启用和停用。
|
||||
3. 进入“学员管理”,手动新增、查询、修改或删除学员。
|
||||
4. 进入“证书管理”,手动新增证书,支持单张预览、PDF 下载、作废、重置直达链接、按条件筛选、勾选后批量预生成 PDF 和导出。
|
||||
5. 进入“Excel 导入”,下载模板、上传 Excel、查看校验结果,确认后正式导入。模板只需要填写姓名、手机号、项目代码、发证日期;证书名称、课程名称、阶段名称、发证单位从项目配置自动带出。
|
||||
5. 进入“Excel 导入”,下载模板、上传 Excel、查看校验结果,确认后正式导入。模板需要填写姓名、手机号、项目代码、课程开始日期、课程结束日期、发证日期;三个日期统一按 `YYYY-MM-DD` 填写,例如 `2026-06-01`。证书名称、课程名称、阶段名称、发证单位从项目配置自动带出。
|
||||
“确认导入”表示把已校验通过的临时数据正式写入学员和证书表。导入记录支持下载原文件、下载错误报告和删除;删除导入记录只删除上传文件、错误报告和批次记录,不删除已经生成的学员和证书。
|
||||
确认导入后,可以在该批次行点击“预生成PDF”,系统会提前为这一批有效证书生成 PDF,并在弹窗里显示总数、已完成、新生成、已缓存、跳过和失败数量。
|
||||
6. 进入“系统设置”,确认 `PDF 生成并发限制`。2 核 4G 服务器建议保持默认值 `2`。
|
||||
@@ -143,7 +143,7 @@ docker compose exec backend pytest
|
||||
- 学员手动新增、查询、修改、删除。
|
||||
- 证书新增、查询、后台预览、后台下载、作废、重置直达链接。
|
||||
- 证书按导入批次筛选、按 PDF 状态筛选、批量预生成 PDF。
|
||||
- Excel 模板下载、上传校验、错误报告下载、确认导入。导入模板字段为姓名、手机号、项目代码、发证日期。
|
||||
- Excel 模板下载、上传校验、错误报告下载、确认导入。导入模板字段为姓名、手机号、项目代码、课程开始日期、课程结束日期、发证日期,并附有日期格式示例和填写说明。
|
||||
- 导入批次原文件下载和导入批次删除。
|
||||
- 导入后自动生成证书编号、直达链接 token、二维码 token。
|
||||
- 证书导出,包含证书编号和对外直达链接。
|
||||
|
||||
@@ -529,12 +529,15 @@ https://你的域名/admin/login
|
||||
姓名
|
||||
手机号
|
||||
项目代码
|
||||
课程开始日期
|
||||
课程结束日期
|
||||
发证日期
|
||||
```
|
||||
|
||||
检查:
|
||||
|
||||
- 能下载模板。
|
||||
- 模板“填写说明”页包含 `YYYY-MM-DD` 示例,课程结束日期早于开始日期时校验失败。
|
||||
- 能上传 Excel。
|
||||
- 错误数据能生成错误报告。
|
||||
- 校验通过后能确认导入。
|
||||
|
||||
@@ -520,18 +520,21 @@ https://你的域名/admin/login
|
||||
|
||||
### 13.5 Excel 导入
|
||||
|
||||
确认模板字段只有:
|
||||
确认模板字段为:
|
||||
|
||||
```text
|
||||
姓名
|
||||
手机号
|
||||
项目代码
|
||||
课程开始日期
|
||||
课程结束日期
|
||||
发证日期
|
||||
```
|
||||
|
||||
确认:
|
||||
|
||||
- 能上传 Excel。
|
||||
- 模板“填写说明”页包含 `YYYY-MM-DD` 示例,课程结束日期早于开始日期时校验失败。
|
||||
- 能下载原文件。
|
||||
- 能删除导入批次。
|
||||
- 能确认导入。
|
||||
|
||||
Reference in New Issue
Block a user