# 销售订单生产状态“已取消” - 前端联调方案 ## 涉及页面 - ERP 销售订单列表页 - ERP 销售订单详情页 ## 业务背景 生产计划(MPS)取消时,会同步更新来源销售订单的生产状态。此前取消后订单只会回到“未完成”,无法区分“从未生产”和“生产计划已取消”。现新增生产状态 `2-已取消`。 状态取值: | productionStatus | 含义 | 触发时机 | |------------------|------|----------| | 0 | 未完成 | 订单审核通过生成生产计划;或取消后重新审核生成了新的生产计划 | | 1 | 已完成 | 生产完成事件(ProductionFinishedEvent) | | 2 | 已取消 | 来源生产计划被取消(ProductionCanceledEvent) | ## API 接口路径与参数无变化,仅响应字段 `productionStatus` 增加取值 `2`。 | 方法 | 路径 | 说明 | |------|------|------| | GET | /erp/sale-order/page | 销售订单分页 | | GET | /erp/sale-order/get | 销售订单详情 | **响应字段:** | 字段 | 类型 | 说明 | |------|------|------| | productionStatus | Integer | 生产状态:0-未完成,1-已完成,2-已取消 | | productionFinishTime | DateTime | 生产完成时间,仅 productionStatus=1 时有值 | **响应示例:** ```json { "code": 0, "data": { "id": 1310, "no": "XSDD20261026000002", "needProduction": 1, "productionStatus": 2, "productionFinishTime": null } } ``` ## 字段展示规则 | 字段 | 展示位置 | 说明 | |------|----------|------| | productionStatus | 列表“生产状态”列 | 非“无需生产”时按 0/1/2 分别展示未完成 / 已完成 / 已取消;建议“已取消”使用区别于“已完成”的醒目颜色 | | productionStatus | 详情页“生产状态” | 同上,仅在明细需要生产时展示 | | productionFinishTime | 列表、详情 | 仅在 productionStatus=1 时展示,状态为 2 时不展示 | ## 查询筛选规则 列表筛选“生产状态”下拉需新增选项: | 选项 | 传参 | |------|------| | 无需生产 | needProduction=0(沿用现有特殊处理) | | 未完成 | productionStatus=0 | | 已完成 | productionStatus=1 | | 已取消 | productionStatus=2 | ## 业务规则说明 | 场景 | 规则 | |------|------| | 取消生产计划 | 销售订单 productionStatus 置为 2,productionFinishTime 清空 | | 取消后重新审核订单 | 系统检测到原生产计划已取消,会重新生成新的生产计划,并把订单 productionStatus 重置为 0 | | 订单存在有效生产计划时再次审核 | 复用已有生产计划,不改变生产状态 | | 一单多明细 | 生产状态为订单级;任一明细取消生产计划,整单显示“已取消” | ## 注意事项 - 订单状态 `status`(未审核/已审核/已作废)不受生产计划取消影响,仍保持“已审核”。 - productionStatus=2 时订单仍可执行反审核、编辑,重新审核后会自动生成新生产计划。 - 历史已取消的生产计划对应的订单不会追溯刷新,仍显示原状态;如需修正请单独处理存量数据。 - 前端筛选下拉新增“已取消”后,历史上此前取消且状态已被置为 0 的订单仍会落在“未完成”筛选项下。