编辑 | blame | 历史 | 原始文档

销售订单生产状态 - 前端联调方案

涉及页面

  • 销售订单列表页
  • 销售订单详情页

业务流程

销售订单审核通过 → 创建 MPS → 下发 MPS 生成生产工单 → 生产报工 → 质检(如需要) → 生产完成 → 更新销售订单生产状态

生产完成判断条件
1. 已生产数量 >= 计划数量
2. 所有报工单状态为 FINISHED(确保质检完成)

API

销售订单查询接口(已有,响应新增字段)

方法 路径 说明
GET /erp/sale-order/page 销售订单分页查询
GET /erp/sale-order/get 销售订单详情查询

响应字段新增:

字段 类型 说明
productionStatus Integer 生产状态:0-未完成,1-已完成
productionFinishTime DateTime 生产完成时间

响应示例:

{
  "code": 0,
  "data": {
    "id": 1024,
    "no": "XS20260718001",
    "status": 2,
    "customerId": 1001,
    "customerName": "测试客户",
    "productionStatus": 1,
    "productionFinishTime": "2026-07-18 16:30:00",
    "needProduction": 1,
    "canCreateSalesNotice": true,
    "items": [...]
  }
}

字段展示规则

列表页

字段 展示位置 说明
productionStatus 列表 标签形式:0=未完成(灰色),1=已完成(绿色)
productionFinishTime 列表(可选) 仅当 productionStatus=1 时展示

详情页

字段 展示位置 说明
productionStatus 基本信息区域 标签形式展示
productionFinishTime 基本信息区域 仅当 productionStatus=1 时展示

业务规则说明

场景 规则
生产状态初始值 销售订单审核通过时,productionStatus 默认为 0(未完成)
生产状态更新时机 当所有关联的生产订单完成时,系统自动更新为 1(已完成)
生产完成判断 已生产数量 >= 计划数量 且 所有报工单已完成(含质检完成)
发货通知单生成 当 productionStatus=1 且未生成发货通知单时,canCreateSalesNotice 为 true

展示逻辑说明

条件 展示内容
needProduction !== 1(无需生产) 显示"无需生产"或"-"
productionStatus === 0 显示灰色标签"未完成"
productionStatus === 1 显示绿色标签"已完成",并展示完成时间

列顺序建议

生产状态列建议放在"出库状态"列之后。

筛选条件(可选)

如需按生产状态筛选,可新增下拉筛选:
- 全部
- 未完成
- 已完成

注意:筛选时仅查询 needProduction=1 的订单。

注意事项

  1. 状态联动canCreateSalesNotice 需同时满足两个条件:生产已完成(productionStatus=1)且未生成发货通知单(hasSalesNotice=false)

  2. 已生成发货通知单:当 hasSalesNotice=true 时,不显示"生成发货通知单"按钮

  3. 无需生产的订单needProduction !== 1 的订单,productionStatus 字段为 null,前端应显示"无需生产"或不显示

  4. 实时性:生产状态由后端自动更新,前端刷新页面即可看到最新状态

完整流程示例

  1. 用户创建销售订单(明细勾选"需要生产")
  2. 销售订单审核通过 → 系统自动创建 MPS
  3. MPS 下发 → 生成生产工单
  4. 生产报工 → 报工审批
  • 关键工序+需检验:报工状态→待检验→质检完成→已完成
  • 其他工序:报工审批后直接→已完成
  1. 所有报工完成 → 系统自动更新销售订单 productionStatus=1
  2. 用户刷新销售订单页面,看到"生产完成"状态
  3. 用户可生成发货通知单