# 销售订单生产状态 - 前端联调方案 ## 涉及页面 - 销售订单列表页 - 销售订单详情页 ## 业务流程 ``` 销售订单审核通过 → 创建 MPS → 下发 MPS 生成生产工单 → 生产报工 → 质检(如需要) → 生产完成 → 更新销售订单生产状态 ``` **生产完成判断条件**: 1. 已生产数量 >= 计划数量 2. 所有报工单状态为 FINISHED(确保质检完成) ## API ### 销售订单查询接口(已有,响应新增字段) | 方法 | 路径 | 说明 | |------|------|------| | GET | /erp/sale-order/page | 销售订单分页查询 | | GET | /erp/sale-order/get | 销售订单详情查询 | **响应字段新增:** | 字段 | 类型 | 说明 | |------|------|------| | productionStatus | Integer | 生产状态:0-未完成,1-已完成 | | productionFinishTime | DateTime | 生产完成时间 | **响应示例:** ```json { "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` 时,不显示"生成发货通知单"按钮 2. **无需生产的订单**:`needProduction !== 1` 的订单,`productionStatus` 字段为 null,前端应显示"无需生产"或不显示 3. **实时性**:生产状态由后端自动更新,前端刷新页面即可看到最新状态 ## 完整流程示例 1. 用户创建销售订单(明细勾选"需要生产") 2. 销售订单审核通过 → 系统自动创建 MPS 3. MPS 下发 → 生成生产工单 4. 生产报工 → 报工审批 - 关键工序+需检验:报工状态→待检验→质检完成→已完成 - 其他工序:报工审批后直接→已完成 5. 所有报工完成 → 系统自动更新销售订单 productionStatus=1 6. 用户刷新销售订单页面,看到"生产完成"状态 7. 用户可生成发货通知单