04c 编号流程¶
状态:✅ 已实现 | ⚙️ 配置驱动
1. 操作入口¶
方式 |
入口 |
|---|---|
GUI |
查询页工具栏「自动编号」/「手动编号」/「设置年月」 |
CLI |
|
编号是合格证生成的前提(合格证要求 product_code 非空)。
2. 涉及配置¶
配置文件 |
关键字段 |
说明 |
|---|---|---|
|
|
编号格式( |
|
编号字段 |
目标字段定义 |
3. 涉及代码文件¶
层 |
文件 |
职责 |
|---|---|---|
View |
|
工具栏按钮 → action |
Controller |
通过 action 派发 |
- |
Service |
|
自动编号算法 |
Service |
|
编号策略 |
Service |
|
合格证编号服务 |
Model |
|
编号状态表 |
4. 逐步流程¶
4.1 设置年月前缀¶
工具栏「设置年月」→ action
set_year_month→_set_year_month弹窗输入年月(如
202608)后续编号将使用此前缀
4.2 自动编号¶
选择待编号记录(或多选)
工具栏「自动编号」→ action
auto_number→_auto_numberCertNumbering服务按numbering.yaml的format_template生成编号:{prefix}← 年月前缀{date}← 当前日期{seq}← 序列号(基于auto_number表维护)
编号写入
sale_plan.product_code
CLI:
certflow auto-number --month 202608 --prefix CF
4.3 手动编号¶
右键菜单「手动编号」→ action
manual_number→_manual_number弹窗输入自定义编号
写入
product_code
4.4 编号复制¶
右键菜单「复制编号」→ action
copy_number→_copy_number将选中记录的编号复制到剪贴板(或批量复制到相邻列)
5. 编号格式模板¶
config/numbering.yaml:
format_template: "{prefix}{date}{seq}"
通过 config/models.py:485 的 format_template 字段定义,支持占位符 {prefix}、{date}、{seq}。
6. 常见问题¶
编号重复:检查
auto_number表是否被破坏;或手动--reset序列编号为空:确认已执行自动/手动编号(合格证生成要求
product_code非空,见cli/commands/print_cert.py:40)