# 批次追溯功能 - 前端联调方案 ## 概述 本次改造修复并完善了批次追溯功能,支持从批次出发的正向(原材料→成品)和反向(成品→原材料)追溯查询。 --- ## 一、涉及页面 | 页面 | 路径 | 改动说明 | |------|------|----------| | 批次管理列表 | `/mes/wm/batch/list` | 添加"向前追溯"、"向后追溯"按钮 | | 批次详情 | `/mes/wm/batch/detail` | 展示追溯结果时间线 | --- ## 二、API 接口 ### 2.1 批次向前追溯 **请求方式**:GET **请求路径**:`/mes/wm/batch/forward-list` **请求参数**: | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | code | String | 是 | 批次编码 | **响应示例**: ```json { "code": 0, "msg": "", "data": [ { "id": 1, "code": "BATCH20250713001", "itemId": 100, "itemCode": "ITEM001", "itemName": "成品A", "workOrderId": 50, "workOrderCode": "WO20250713001", "taskId": 80, "taskCode": "TASK001", "vendorId": 20, "vendorCode": "VENDOR001", "vendorName": "供应商A", "clientId": 30, "clientCode": "CLIENT001", "clientName": "客户A", "workstationId": 40, "workstationCode": "WS001", "toolId": 50, "toolCode": "TOOL001" } ] } ``` ### 2.2 批次向后追溯 **请求方式**:GET **请求路径**:`/mes/wm/batch/backward-list` **请求参数**: | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | code | String | 是 | 批次编码 | **响应示例**:同向前追溯 --- ## 三、前端实现要点 ### 3.1 数据获取时机 用户点击"向前追溯"或"向后追溯"按钮时,调用对应接口获取追溯结果。 ### 3.2 追溯结果展示 建议使用时间线组件展示追溯链路: ```html

批次:{{ batch.code }}

物料:{{ batch.itemName }} ({{ batch.itemCode }})

工单:{{ batch.workOrderCode }}

任务:{{ batch.taskCode }}

供应商:{{ batch.vendorName }}

客户:{{ batch.clientName }}

批次:{{ batch.code }}

物料:{{ batch.itemName }} ({{ batch.itemCode }})

工单:{{ batch.workOrderCode }}

任务:{{ batch.taskCode }}

供应商:{{ batch.vendorName }}

``` ### 3.3 无数据提示 当追溯结果为空时,显示友好提示: ```html ``` --- ## 四、业务流程图 ### 4.1 批次向前追溯流程 ``` ┌─────────────┐ │ 批次列表页 │ └──────┬──────┘ │ 点击"向前追溯" ▼ ┌─────────────────────────────────────┐ │ 调用 GET /mes/wm/batch/forward-list │ │ 参数: code = 当前批次编码 │ └──────────────────┬──────────────────┘ │ ▼ ┌─────────────────────────────────────┐ │ 返回该批次产出的所有下游批次列表 │ │ │ │ 追溯路径: │ │ 库存事务(消耗) → 消耗单 → 报工记录 │ │ → 库存事务(产出) → 下游批次 │ └──────────────────┬──────────────────┘ │ ▼ ┌─────────────────────────────────────┐ │ 以时间线形式展示追溯结果 │ │ 可点击任一条目跳转到对应批次详情 │ └─────────────────────────────────────┘ ``` ### 4.2 批次向后追溯流程 ``` ┌─────────────┐ │ 批次列表页 │ └──────┬──────┘ │ 点击"向后追溯" ▼ ┌─────────────────────────────────────┐ │ 调用 GET /mes/wm/batch/backward-list│ │ 参数: code = 当前批次编码 │ └──────────────────┬──────────────────┘ │ ▼ ┌─────────────────────────────────────┐ │ 返回生产该批次所消耗的所有上游批次 │ │ │ │ 追溯路径: │ │ 库存事务(产出) → 产出单 → 报工记录 │ │ → 库存事务(消耗) → 上游批次 │ └──────────────────┬──────────────────┘ │ ▼ ┌─────────────────────────────────────┐ │ 以时间线形式展示追溯结果 │ │ 可点击任一条目跳转到对应批次详情 │ └─────────────────────────────────────┘ ``` --- ## 五、注意事项 ### 5.1 数据完整性 - 追溯功能依赖 `mes_wm_transaction` 库存事务表的数据完整性 - 确保所有消耗和产出操作都正确生成了库存事务记录 - `biz_type` 字段值:`123` = 物料消耗,`124` = 产品产出 ### 5.2 性能考虑 - 批次追溯采用递归查询,最大深度限制为 20 层 - 对于复杂生产场景,可能返回大量数据,建议分页展示或限制展示数量 ### 5.3 权限控制 - 追溯查询需要 `mes:wm-batch:query` 权限 - 如需编辑追溯相关数据,需相应模块的编辑权限 --- ## 六、相关接口汇总 | 方法 | 路径 | 说明 | |------|------|------| | GET | /mes/wm/batch/get | 获取批次详情 | | GET | /mes/wm/batch/page | 获取批次分页列表 | | GET | /mes/wm/batch/forward-list | 批次向前追溯 | | GET | /mes/wm/batch/backward-list | 批次向后追溯 | --- ## 七、数据库变更说明 ### 7.1 新增字段 以下表已添加 `feedback_id` 字段用于精确关联: | 表名 | 新增字段 | 说明 | |------|----------|------| | mes_wm_item_consume | feedback_id | 关联报工记录编号 | | mes_wm_product_produce | feedback_id | 关联报工记录 ID | ### 7.2 索引优化 ```sql CREATE INDEX idx_item_consume_feedback_id ON mes_wm_item_consume(feedback_id); CREATE INDEX idx_product_produce_feedback_id ON mes_wm_product_produce(feedback_id); ``` --- ## 八、更新日志 | 日期 | 版本 | 说明 | |------|------|------| | 2026-07-13 | v1.0 | 初始版本,完成批次追溯功能修复 |