生产管理模块设计规格
概述
实现需求文档 2.5 节中生产管理下的 7 个子模块(工艺路线配置暂不实现)。
新增一级菜单【生产管理】,下设 7 个二级菜单。按依赖关系分 2 批实现。
范围
| 批次 |
模块 |
需求章节 |
依赖 |
| 第1批 |
耗材管理 |
2.5.1 |
无 |
| 第1批 |
试剂管理 |
2.5.3 |
物品单位管理(已有) |
| 第1批 |
SOP文档 |
2.5.4 |
无(附件上传) |
| 第1批 |
工艺工序分类 |
2.5.5 |
无 |
| 第1批 |
工艺产出物类型 |
2.3.6 |
无 |
| 第2批 |
耗材包管理 |
2.5.2 |
耗材管理 |
| 第2批 |
工艺库管理 |
2.3.7 |
试剂、耗材、SOP、工序分类、产出物类型 |
不在范围内: 工艺路线配置[2.3.8] — 留待下次迭代。
SQL 表(需新建 11 张)
第1批:单表模块(5 张)
1. biz_consumable — 耗材
| 字段 |
类型 |
说明 |
| id |
VARCHAR(64) PK |
UUID |
| consumable_code |
VARCHAR(64) NOT NULL |
耗材编码 |
| consumable_name |
VARCHAR(100) NOT NULL |
耗材名称 |
| spec_model |
VARCHAR(200) DEFAULT NULL |
规格型号 |
| standard_usage |
VARCHAR(100) DEFAULT NULL |
标准用量 |
| description |
VARCHAR(500) DEFAULT NULL |
描述 |
| + 公共字段 |
|
tenant_no ~ del_flag |
2. biz_reagent — 试剂
| 字段 |
类型 |
说明 |
| id |
VARCHAR(64) PK |
UUID |
| reagent_code |
VARCHAR(64) NOT NULL |
试剂编码 |
| reagent_name |
VARCHAR(100) NOT NULL |
试剂名称 |
| spec |
VARCHAR(200) DEFAULT NULL |
规格 |
| standard_usage |
VARCHAR(100) DEFAULT NULL |
标准用量 |
| unit |
VARCHAR(64) DEFAULT NULL |
单位(下拉自物品单位管理) |
| description |
VARCHAR(500) DEFAULT NULL |
描述 |
| + 公共字段 |
|
|
3. biz_sop_document — SOP文档
| 字段 |
类型 |
说明 |
| id |
VARCHAR(64) PK |
UUID |
| sop_code |
VARCHAR(64) NOT NULL |
SOP编号 |
| sop_name |
VARCHAR(200) NOT NULL |
SOP文档名称 |
| version_no |
VARCHAR(50) DEFAULT NULL |
版本号 |
| sop_attachments |
VARCHAR(2000) DEFAULT NULL |
SOP文档附件(逗号分隔URL) |
| + 公共字段 |
|
|
4. biz_process_category — 工艺工序分类
| 字段 |
类型 |
说明 |
| id |
VARCHAR(64) PK |
UUID |
| category_code |
VARCHAR(64) NOT NULL |
分类编码 |
| category_name |
VARCHAR(100) NOT NULL |
分类名称 |
| + 公共字段 |
|
|
5. biz_output_type — 工艺产出物类型
| 字段 |
类型 |
说明 |
| id |
VARCHAR(64) PK |
UUID |
| type_code |
VARCHAR(64) NOT NULL |
类型编码 |
| type_name |
VARCHAR(100) NOT NULL |
类型名称 |
| + 公共字段 |
|
|
第2批:主表+子表模块(6 张)
6. biz_consumable_pack — 耗材包主表
| 字段 |
类型 |
说明 |
| id |
VARCHAR(64) PK |
UUID |
| pack_code |
VARCHAR(64) NOT NULL |
编号 |
| pack_name |
VARCHAR(100) NOT NULL |
名称 |
| usage_scene |
VARCHAR(200) DEFAULT NULL |
使用场景 |
| pack_type |
VARCHAR(20) DEFAULT NULL |
类型(bzhcb-标准耗材包、zdyhcb-自定义耗材包) |
| status |
CHAR(1) DEFAULT '1' |
状态(1-启用、0-停用) |
| + 公共字段 |
|
|
7. biz_consumable_pack_item — 耗材包耗材明细
| 字段 |
类型 |
说明 |
| id |
VARCHAR(64) PK |
UUID |
| pack_id |
VARCHAR(64) NOT NULL |
耗材包id |
| consumable_code |
VARCHAR(64) DEFAULT NULL |
耗材编码 |
| consumable_name |
VARCHAR(100) DEFAULT NULL |
耗材名称 |
| spec_model |
VARCHAR(200) DEFAULT NULL |
耗材规格型号 |
| standard_usage |
VARCHAR(100) DEFAULT NULL |
标准用量 |
| remark |
VARCHAR(512) DEFAULT NULL |
备注 |
| + 公共字段 |
|
|
8. biz_process — 工艺库主表
| 字段 |
类型 |
说明 |
| id |
VARCHAR(64) PK |
UUID |
| process_code |
VARCHAR(64) NOT NULL |
工序代码 |
| category_id |
VARCHAR(64) DEFAULT NULL |
工序分类id(下拉自工艺工序分类) |
| process_name |
VARCHAR(100) NOT NULL |
工序名称 |
| description |
VARCHAR(500) DEFAULT NULL |
描述 |
| equipment_name |
VARCHAR(200) DEFAULT NULL |
预计使用设备名称 |
| estimated_duration |
VARCHAR(100) DEFAULT NULL |
预估耗时 |
| sop_ids |
VARCHAR(1000) DEFAULT NULL |
关联SOP文档id(逗号分隔) |
| + 公共字段 |
|
|
9. biz_process_reagent — 工艺-试剂关联
| 字段 |
类型 |
说明 |
| id |
VARCHAR(64) PK |
UUID |
| process_id |
VARCHAR(64) NOT NULL |
工艺id |
| reagent_code |
VARCHAR(64) DEFAULT NULL |
试剂编码 |
| reagent_name |
VARCHAR(100) DEFAULT NULL |
试剂名称 |
| spec |
VARCHAR(200) DEFAULT NULL |
规格 |
| standard_usage |
VARCHAR(100) DEFAULT NULL |
标准用量 |
| unit |
VARCHAR(64) DEFAULT NULL |
单位 |
| is_key_material |
CHAR(1) DEFAULT '0' |
是否关键物料(0-否、1-是) |
| + 公共字段 |
|
|
10. biz_process_consumable — 工艺-耗材关联
| 字段 |
类型 |
说明 |
| id |
VARCHAR(64) PK |
UUID |
| process_id |
VARCHAR(64) NOT NULL |
工艺id |
| consumable_code |
VARCHAR(64) DEFAULT NULL |
耗材编码 |
| consumable_name |
VARCHAR(100) DEFAULT NULL |
耗材名称 |
| spec_model |
VARCHAR(200) DEFAULT NULL |
耗材规格型号 |
| standard_usage |
VARCHAR(100) DEFAULT NULL |
标准用量 |
| is_required |
CHAR(1) DEFAULT '1' |
是否必需(1-必须、0-可选) |
| remark |
VARCHAR(512) DEFAULT NULL |
备注 |
| + 公共字段 |
|
|
11. biz_process_output — 工艺-产出关联
| 字段 |
类型 |
说明 |
| id |
VARCHAR(64) PK |
UUID |
| process_id |
VARCHAR(64) NOT NULL |
工艺id |
| output_type_id |
VARCHAR(64) DEFAULT NULL |
产出类型(下拉自工艺产出物类型) |
| output_name |
VARCHAR(200) DEFAULT NULL |
产出物名称 |
| output_barcode |
VARCHAR(200) DEFAULT NULL |
产出物条码(生产时才有数据) |
| + 公共字段 |
|
|
模块设计
模块 1-5: 耗材/试剂/SOP/工序分类/产出物类型(简单 CRUD)
- 类型: 标准列表模式
- 后端: Model + CRUD + API 路由(完全参照
item_unit.py 模式)
- 前端: 参照
system/unit/index.vue 标准列表
- 特殊: 试剂管理的"单位"字段下拉数据从物品单位管理获取;SOP文档需要附件上传
模块 6: 耗材包管理(主表+明细)
- 类型: 标准列表 + 弹窗内明细表格
- 后端: 主表 CRUD + 明细子表 CRUD(级联创建/更新/删除)
- 前端: 列表参照
unit/index.vue;新增/编辑弹窗中嵌入耗材明细表格,支持:
- 从耗材库逐条添加(下拉选择耗材后自动带入编码/名称/规格/用量)
- 行内编辑标准用量
- 行内删除
- API:
/web/admin/consumable-packs + /web/admin/consumable-packs/{id} (含明细一起提交)
模块 7: 工艺库管理(主表+3个关联子表)
- 类型: 标准列表 + Tab式编辑弹窗
- 后端: 主表 CRUD + 3 个子表 CRUD(级联操作)
- 前端: 列表页标准列表;新增/编辑弹窗分 4 个 Tab:
- Tab1「基本信息」: 工序代码、工序分类(下拉)、工序名称、描述、设备名称、预估耗时、关联SOP(多选下拉)
- Tab2「试剂关联」: 表格形式,下拉选试剂后自动带入编码/名称/规格/用量/单位,可改标准用量,标记是否关键物料
- Tab3「耗材关联」: 表格形式,支持从耗材包批量导入或从耗材库逐条添加;可改标准用量,标记是否必需
- Tab4「产出物」: 表格形式,下拉选产出类型 + 填产出物名称
- API:
/web/admin/processes + /web/admin/processes/{id} (含所有子表一起提交)
路由与菜单
前端路由
在 sqxp.ts 新增顶级路由组:
/production
/production/consumable 耗材管理
/production/reagent 试剂管理
/production/sop SOP文档
/production/process-category 工艺工序分类
/production/output-type 工艺产出物类型
/production/consumable-pack 耗材包管理
/production/process 工艺库管理
后端 API
统一路由前缀 /web/admin,新增以下端点:
GET/POST /consumables 耗材列表/创建
GET/PUT/DELETE /consumables/{id} 耗材详情/更新/删除
GET/POST /reagents 试剂列表/创建
GET/PUT/DELETE /reagents/{id} 试剂详情/更新/删除
GET/POST /sop-documents SOP列表/创建
GET/PUT/DELETE /sop-documents/{id} SOP详情/更新/删除
GET/POST /process-categories 工序分类列表/创建
GET/PUT/DELETE /process-categories/{id} 工序分类详情/更新/删除
GET/POST /output-types 产出物类型列表/创建
GET/PUT/DELETE /output-types/{id} 产出物类型详情/更新/删除
GET/POST /consumable-packs 耗材包列表/创建
GET/PUT/DELETE /consumable-packs/{id} 耗材包详情/更新/删除
GET/POST /processes 工艺库列表/创建
GET/PUT/DELETE /processes/{id} 工艺库详情/更新/删除
菜单 SQL
在 sys_menu 中新增生产管理顶级菜单(parent_id 指向 Web 端菜单根节点)及 7 个子菜单项。
技术规范
- 后端模式:flat 函数式 CRUD(参照
app/crud/item_unit.py),不用 service 层
- 前端模式:API 函数加入
production.ts,路由加入 sqxp.ts
- 所有查询带
tenant_no 过滤,删除为软删除
- Fresh Mint 配色 (
--primary #10b981)
- 附件使用 MinIO,多附件逗号分隔 URL
- 编码字段需做唯一性校验(同 tenant_no + del_flag=0 下)
实施顺序
- 第1批(5 个简单模块,可并行):
- SQL DDL → Model → CRUD → API → 注册 → 前端 API → 路由 → 页面
- 第2批(2 个复杂模块,串行):
- 菜单 SQL:与第1批一起执行