# batchAutoComplete 接口销售订单状态说明 ## 接口地址 `POST /production/autoComplete/batchAutoComplete` --- ## 销售订单状态码说明 | 状态码 | 状态名称 | 说明 | |--------|---------|------| | A | 待生产 | 订单刚创建,未进入生产 | | B | 生产中 | 已生成工单,正在生产 | | F | 生产完成 | 已报工完成,待入库 | | G | 已入库 | 已完工入库 | | E | 部分发货 | 部分产品已发货 | | C | 已发货 | 全部产品已发货 | | D | 已关闭 | 订单已关闭 | --- ## 情况1:只生成工单(不生成报工单) ### 请求参数 ```json { "orderNumbers": ["SO202603120001"], "plan": { "isGeneratePlan": 0 }, "workOrder": { "routeId": 1005, "processStartTime": "2026-03-12 08:00:00" }, "reportWorkOrder": { "isGenerateReportWorkOrder": 0 } } ``` ### 离散制造业 **分录状态变化**:`A`(待生产)→ `B`(生产中) **主表状态变化**:`A`(待生产)→ `B`(生产中) ### 连续制造业 **分录状态变化**:`A`(待生产)→ `A`(待生产)- **保持不变** **主表状态变化**:`A`(待生产)→ `A`(待生产)- **保持不变** **说明**:连续制造业只生成工单不生成报工单时,订单状态不会改变。 ## 情况2:生成报工单(订单已有工单) ### 请求参数 ```json { "orderNumbers": ["SO202603120001"], "plan": { "isGeneratePlan": 0 }, "workOrder": { "isGenerateWorkOrder": 0 }, "reportWorkOrder": { "reporters": [ {"operatorId": 101, "reportTime": "2026-03-12 10:00:00"} ] } } ``` ### 前提条件 订单已经有工单(之前已生成,分录状态为B) ### 离散制造业 **分录状态变化**:`B`(生产中)→ `F`(生产完成) **主表状态变化**:`B`(生产中)→ `F`(生产完成) ### 连续制造业 **分录状态变化**:`B`(生产中)→ `F`(生产完成) **主表状态变化**:`B`(生产中)→ `F`(生产完成) --- ## 情况3:完工入库(分录改为已入库) ### 操作方式 通过完工入库单(ManufactureInto)关联销售订单分录 ### 前提条件 订单分录状态为F(生产完成) ### 所有制造类型 **分录状态变化**:`F`(生产完成)→ `G`(已入库) **主表状态变化**:`F`(生产完成)→ `G`(已入库) **说明**: - 完工入库不是通过 batchAutoComplete 接口实现 - 完工入库通过仓库管理模块的完工入库单实现 - 完工入库单明细关联销售订单分录ID后,会自动更新分录和主表状态 --- --- ## 主表状态更新规则 主表状态由所有分录的状态决定,优先级从高到低: ### 状态优先级 **C(已发货)> E(部分发货)> G(已入库)> F(生产完成)> D(已关闭)> B(生产中)> A(待生产)** ### 决策规则 1. **所有分录都是C(已发货)** → 主表状态为 **C(已发货)** 2. **有分录是C(已发货)但不是全部** → 主表状态为 **E(部分发货)** 3. **所有分录都是G(已入库)或更高状态(E/C)** → 主表状态为 **G(已入库)** 4. **所有分录都是F(生产完成)或更高状态(G/E/C)** → 主表状态为 **F(生产完成)** 5. **所有分录都是D(已关闭)或更高状态(F/G/E/C)** → 主表状态为 **D(已关闭)** 6. **有任何分录在B(生产中)** → 主表状态为 **B(生产中)** 7. **其他情况** → 主表状态为 **A(待生产)** ### 多分录订单示例 #### 示例1:全部完成 - 分录1:`F`(生产完成),分录2:`F`(生产完成),分录3:`F`(生产完成) → 主表:`F`(生产完成) #### 示例2:部分完成 - 分录1:`F`(生产完成),分录2:`B`(生产中),分录3:`A`(待生产) → 主表:`B`(生产中)- 有分录在生产中 #### 示例3:全部已入库 - 分录1:`G`(已入库),分录2:`G`(已入库),分录3:`G`(已入库) → 主表:`G`(已入库) #### 示例4:混合状态 - 分录1:`G`(已入库),分录2:`F`(生产完成),分录3:`F`(生产完成) → 主表:`F`(生产完成)- 不是所有分录都≥G #### 示例5:部分发货 - 分录1:`C`(已发货),分录2:`G`(已入库),分录3:`F`(生产完成) → 主表:`E`(部分发货)- 有分录已发货但不是全部 --- ## 快速对照表 | 操作 | 分录状态变化 | 主表状态变化 | 适用制造类型 | |------|------------|------------|------------| | 只生成工单 | A → B | A → B | 离散制造 | | 只生成工单 | A → A | A → A | 连续制造 | | 生成报工单 | B → F | B → F | 所有类型 | | 完工入库 | F → G | F → G | 所有类型 | --- ## 版本信息 - 文档版本:v1.0 - 创建日期:2026-03-12 - 最后更新:2026-03-12