docs: add production waste-output list design.
Capture the agreed read-only P01 list under Production Management (sibling to cleanroom garment), querying step outputs of type FQW without a new business table. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
304469f6fa
commit
af337562ae
1 file changed
+158
@@ -0,0 +1,158 @@
|
||||
# 生产废弃物管理(只读汇总列表)— 设计文档
|
||||
|
||||
> 日期:2026-08-18
|
||||
> 状态:已确认
|
||||
> 范围:web-admin【生产管理】下新菜单【废弃物管理】+ 后端分页列表 API
|
||||
|
||||
---
|
||||
|
||||
## 1. 背景
|
||||
|
||||
生产任务执行时,工艺步骤右侧「产出物」可登记类型为「有效物」或「废弃物」的行。业务需要在独立页面统一查看所有任务步骤中已登记的**废弃物**,便于日常核对;本期不做处置流程,也不在本页增删改。
|
||||
|
||||
## 2. 已确认规则
|
||||
|
||||
| 项 | 约定 |
|
||||
|----|------|
|
||||
| 菜单位置 | 【生产管理】下,与【洁净服管理】**同级**、紧挨洁净服 |
|
||||
| 页面能力 | **只读**汇总列表;本页不新增/编辑/删除 |
|
||||
| 数据纳入 | 产出类型为废弃物即列出;**名称、条码可为空**也展示 |
|
||||
| 筛选 | 关键字(产出名称 / 条码模糊)+ 登记时间范围 |
|
||||
| 实现路径 | **方案 1**:现查现列,不新建业务表;多表 JOIN 分页查询 |
|
||||
|
||||
## 3. 非目标
|
||||
|
||||
- 本页对废弃物的增删改
|
||||
- 独立「处置状态 / 出库」等新字段或新表
|
||||
- 工艺库 / 工艺路线模板中的废弃物配置行(只展示任务步骤真实登记的 `biz_production_task_step_output`)
|
||||
- 改变任务执行页产出物录入交互
|
||||
|
||||
## 4. 数据来源
|
||||
|
||||
```
|
||||
biz_production_task_step_output
|
||||
├─ output_type_id → biz_output_type
|
||||
├─ step_id → biz_production_task_step
|
||||
│ └─ task_id → biz_production_task
|
||||
│ └─ work_order_id → biz_production_work_order
|
||||
└─ create_time(列表「登记时间」)
|
||||
```
|
||||
|
||||
**废弃物类型判定(按租户,不写死 UUID):**
|
||||
|
||||
1. 优先:`biz_output_type.type_code = 'FQW'` 且 `del_flag=0`
|
||||
2. 兜底:`type_name = '废弃物'` 且 `del_flag=0`
|
||||
3. 若租户无此类主数据,列表为空(需在「工艺基础信息」维护产出类型)
|
||||
|
||||
种子参考(zkxw 租户):`type_code=FQW` / `type_name=废弃物`;有效物为 `YXW`,**不得**出现在本列表。
|
||||
|
||||
**与洁净服「废弃」无关:** 洁净服 `garment_status=yfq` 是服装状态,不进入本列表。
|
||||
|
||||
## 5. 后端
|
||||
|
||||
### 5.1 API
|
||||
|
||||
`GET /web/admin/production-waste-outputs`(挂在现有 production 路由模块,具体 path 以落地为准,语义一致即可)
|
||||
|
||||
| 参数 | 说明 |
|
||||
|------|------|
|
||||
| `page` / `pageSize` | 分页 |
|
||||
| `keyword` | 可选;模糊匹配 `output_name`、`output_barcode` |
|
||||
| `createTimeStart` / `createTimeEnd` | 可选;按产出行 `create_time` |
|
||||
|
||||
### 5.2 查询约束
|
||||
|
||||
- 当前用户 `tenant_no` 隔离;产出 / 类型 / 步骤 / 任务 / 工单均排除 `del_flag=1`
|
||||
- 应用与生产工单/任务列表一致的 **数据权限**(`apply_data_scope`)
|
||||
- 默认排序:`biz_production_task_step_output.create_time DESC`
|
||||
- **无**写接口(本期)
|
||||
|
||||
### 5.3 列表行字段(camelCase)
|
||||
|
||||
| 字段 | 说明 |
|
||||
|------|------|
|
||||
| `id` | 产出行 id |
|
||||
| `outputName` | 产出名称 |
|
||||
| `outputBarcode` | 条码 |
|
||||
| `remark` | 备注 |
|
||||
| `createTime` | 登记时间 |
|
||||
| `stepId` | 步骤 id |
|
||||
| `processName` | 工序/步骤名称 |
|
||||
| `taskId` | 任务 id |
|
||||
| `taskNo` | 任务号 |
|
||||
| `workOrderId` | 工单 id |
|
||||
| `workOrderNo` | 工单号 |
|
||||
| `sampleCode` | 样本编码(临时工单可空) |
|
||||
| `labStorageCode` | 可选;若 enrich 成本低可顺带返回,列表列可不展示 |
|
||||
|
||||
## 6. 前端
|
||||
|
||||
### 6.1 模式与路由
|
||||
|
||||
- **UI 模式**:P01 标准列表(只读,无新增/编辑弹窗)
|
||||
- **参考页**:`/#/demo/unit`;同组视觉对齐 `production/cleanroom-garment`
|
||||
- **Hash**:`/#/production-group/production/waste-output`
|
||||
- **面板标题**:`废弃物列表`(写入 `App.vue` `panelTitleBarTextRules`)
|
||||
|
||||
### 6.2 筛选
|
||||
|
||||
- 关键字:产出名称、条码
|
||||
- 登记时间:起止,对应 `createTimeStart` / `createTimeEnd`
|
||||
|
||||
### 6.3 表格列
|
||||
|
||||
| 列 | 展示 |
|
||||
|----|------|
|
||||
| 产出名称 | 空 → `—` |
|
||||
| 条码 | 空 → `—` |
|
||||
| 工序/步骤 | `processName` |
|
||||
| 任务号 | `taskNo` |
|
||||
| 工单号 | `workOrderNo` |
|
||||
| 样本编码 | `sampleCode`,空 → `—` |
|
||||
| 备注 | `remark` |
|
||||
| 登记时间 | `createTime` |
|
||||
| 操作 | 「查看」:打开该任务【任务执行】弹窗(只读);无 `taskId` 或任务不可用时禁用/提示 |
|
||||
|
||||
### 6.4 工具栏与空态
|
||||
|
||||
- 无「新增」、无批量删除等写操作
|
||||
- 空态文案:`暂无废弃物登记`
|
||||
|
||||
### 6.5 权限
|
||||
|
||||
- 菜单码:`production:waste-output:list`
|
||||
- 仅列表访问;不配置本页 create/update/delete 按钮权限
|
||||
|
||||
## 7. 菜单落地
|
||||
|
||||
| 项 | 值 |
|
||||
|----|-----|
|
||||
| 父菜单 | 生产管理 `PRM00000000000000000000000000001` |
|
||||
| 建议 menu id | `95300000000000000000000000000001`(避开 950/952 等已用段) |
|
||||
| path | `waste-output` |
|
||||
| menuCode | `production:waste-output:list` |
|
||||
| 排序 | `order_num` 紧挨洁净服(略大于洁净服) |
|
||||
| SQL | `docs/sql/` 下幂等 INSERT + 角色授权脚本 |
|
||||
| 前端路由 | `web-admin/src/router/modules/sqxp.ts` |
|
||||
| 菜单镜像 | `backend/app/api/menu.py`(若工程仍维护静态镜像则同步) |
|
||||
|
||||
## 8. 建议改动文件
|
||||
|
||||
| 层 | 内容 |
|
||||
|----|------|
|
||||
| SQL | `docs/sql/alter_sys_menu_add_production_waste_output.sql`(或同等命名) |
|
||||
| Backend | production 相关 `crud` 列表函数、`api` 路由、必要时 schema |
|
||||
| Frontend | API 模块、`views/production/waste-output/index.vue`、`sqxp.ts`、`App.vue` 标题规则 |
|
||||
| 图谱 | 实现后按仓库约定更新 frontend/backend graphify |
|
||||
|
||||
## 9. 验收
|
||||
|
||||
1. 任务执行中登记废弃物后,本页刷新可见对应行(含空名称/空条码)。
|
||||
2. 关键字、登记时间筛选与分页正确;租户隔离正确;有效物不出现。
|
||||
3. 「查看」可打开对应任务执行(只读);任务不可用时有合理提示。
|
||||
4. 菜单出现在生产管理下、紧挨洁净服;无权限用户不可见。
|
||||
|
||||
## 10. 风险与说明
|
||||
|
||||
- 列表依赖多表 JOIN;数据量在生产任务产出量级下可接受。若后续要做处置状态,再评估冗余表(原方案 2),本期不做。
|
||||
- 租户未配置 FQW/废弃物类型时列表为空,属预期。
|
||||
Reference in new issue
Block a user