2026-08-18-production-waste-output-list-design.md 6.0 KB

生产废弃物管理(只读汇总列表)— 设计文档

日期: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/废弃物类型时列表为空,属预期。