状态机和订单类型字典
本文把 application/KzData/Enums 中分散的状态、订单类型和交易类型整理成人能直接使用的字典。排查单据时,先确认“业务类型”,再看“状态是否允许当前操作”。
入口文件
- 采购状态和采购类型:
application/KzData/Enums/PoOrderEnums.php - 销售状态和来源类型:
application/KzData/Enums/SaOrderEnums.php - 秒杀状态:
application/KzData/Enums/FlashActivityEnums.php - 渠道订单状态:
application/KzData/Enums/ChannelOrderEnums.php - 收付款状态:
application/KzData/Enums/PaymentEnums.php - 交易类型:
application/KzData/Enums/TransTypeEnums.php - MQ 事件:
application/KzData/Enums/MqEventEnums.php
采购单状态机
| 值 | 常量 | 含义 | 常见推进来源 | | --- | --- | --- | --- | | 0 | BILLSTATUS_DRAFT | 草稿 | 人工保存草稿 | | 1 | BILLSTATUS_SUBMITED | 待审核 | 服务站提交 | | 2 | BILLSTATUS_AUDITING | 审核中 | 订单中心/OA 类外部审核 | | 3 | BILLSTATUS_AUDIT_PASS | 待出库 | 审核通过 | | 4 | BILLSTATUS_DELIVERY | 配送中 | 调拨/配送中心出库 | | 5 | BILLSTATUS_FINISHED | 已完成 | 收货/入库完成 | | 8 | BILLSTATUS_AUDIT_UNPASS | 审核不通过 | 订单中心驳回 | | 9 | BILLSTATUS_CLOSED | 已关闭 | 人工关闭、超时关闭、外部关闭 | | 10 | BILLSTATUS_WAIT_PAY | 待支付 | 在线支付采购创建后 | | 11 | BILLSTATUS_WAIT_REFUND | 待退款 | 在线支付关闭/退货后 | | 12 | BILLSTATUS_PAY_OVERTIME | 支付超时 | 延时消息或补偿任务 | | 13 | BILLSTATUS_WAIT_STORAGE_IN | 采退待仓库入库 | 采购退货发起后 |
flowchart LR
A["草稿 0"] --> B["待审核 1"]
B --> C["审核中 2"]
C --> D["待支付 10"]
C --> E["待出库 3"]
D --> E
E --> F["配送中 4"]
F --> G["已完成 5"]
B --> H["审核不通过 8"]
D --> I["支付超时 12"]
B --> J["已关闭 9"]
E --> J
F --> J
注意:采购单是否能编辑/关闭,不能只看 billStatus,还要看 orderType、支付类型、关闭类型、明细数量和是否已有出库/入库记录。
采购订单类型
| 类型值 | 常量 | 含义 | | --- | --- | --- | | 30-Cxx-01 | ORDERTYPE_NORMAL_ORDER | 服务站普通采购订单 | | 30-Cxx-04/05/06/16/17/18 | 多个 ORDERTYPE_RETURN_* | 采购退货 | | 30-Cxx-07 | ORDERTYPE_DISPATCH_ORDER | 急件到付 | | 30-Cxx-70 | ORDERTYPE_SELF_PICK_ORDER | 急件自提 | | 30-Cxx-75 | ORDERTYPE_GIFT_ACTIVITY_ORDER | 赠品活动采购 | | 30-Cxx-77 | ORDERTYPE_FLASH_ORDER | 秒杀采购订单 | | 30-Cxx-40 | ORDERTYPE_KA_ORDER | KA 订单 | | 30-Cxx-50/60 | ORDERTYPE_BU_ORDER / ORDERTYPE_BU_BT_ORDER | 多供应商/多供应商授信 |
srcOrderType 是跨系统来源字段:0 普通订单,8 采购退货,10 在线支付未发货采购退货,12 新预订单,13 秒杀活动订单。
销售单状态机
| 值 | 常量 | 含义 | 业务动作 | | --- | --- | --- | --- | | 0 | SA_STATUS_WAIT | 待出库 | 可继续出库或关闭 | | 1 | SA_STATUS_OUT_FEW | 部分出库 | 明细仍有未出库数量 | | 2 | SA_STATUS_OUTED | 已完成 | 销售数量已出库完成 | | 3 | SA_STATUS_CLOSE | 已关闭 | 人工关闭或异常关闭 |
flowchart LR
A["待出库 0"] --> B["部分出库 1"]
A --> C["已完成 2"]
B --> C
A --> D["已关闭 3"]
B --> D
销售来源类型在 SaOrderEnums.php,常见值包括:0 销售开单,1 ERP 订单,8/9 E站商城,10/15 E站维修,14 E站活动,16 AI 助手订单,17-22 E站 APP 订单。
销售出库状态机
| 值 | 常量 | 含义 | | --- | --- | --- | | 0 | OUT_BILLSTATUS_RE_OUTED | 已出库,兼容老销退单 | | 1 | OUT_BILLSTATUS_OUTED | 已出库 | | 2 | OUT_BILLSTATUS_SENDIND | 派送中 | | 3 | OUT_BILLSTATUS_ARRIVE | 已送达 | | 4 | OUT_BILLSTATUS_CHECK | 已对账 | | 5 | OUT_BILLSTATUS_OVER | 已核销 | | 6 | OUT_BILLSTATUS_CANCELED | 已撤销 |
出库后库存已经减少;撤销、退货、异常退货要重点看库存流水是否有反向入库,以及 APP/SAAS 是否收到状态同步。
秒杀活动状态机
| 维度 | 值 | 含义 | | --- | --- | --- | | 申请状态 apply_status | 0/1/2/3 | 草稿/审批中/审批通过/审批驳回 | | 启用状态 enable_status | 0/1/2 | 草稿/启用/提前结束 | | OA 状态 oa_status | 0/1/2/3 | 草稿/审批中/审批通过/审批驳回 | | 页面状态 | 1/2/3 | 未开始/进行中/已结束 | | 商品状态 | 0/1/2/3 | 待开始/进行中/已结束/已失效 | | 购物车状态 | 0/1 | 失效/有效 | | 秒杀订单状态 | 0/1/2/3/4 | 已创建/待支付/已支付/已取消/已关闭 |
秒杀是否能买,要同时满足:活动审批通过、启用、当前时间在活动窗口内、商品未失效、服务站命中黑白名单规则、库存口径足够、限购未超。
渠道订单状态机
| 值 | 含义 | 说明 | | --- | --- | --- | | created | 待审核 | 平台订单刚创建 | | wait_ship | 待发货 | 审核通过,等待发货 | | part_ship | 部分发货 | 明细存在部分发货 | | finish | 已完成 | 发货/签收完成 | | cancel | 已取消 | 审核拒绝或取消 |
渠道状态是字符串,来自 ChannelOrderEnums.php,不要和采购/销售数字状态混用。
收付款状态
| 值 | 常量 | 含义 | | --- | --- | --- | | 0 | BILLSTATUS_CONFIRMED | 已确认 | | 1 | BILLSTATUS_SUBMITED | 已提交 | | 2 | BILLSTATUS_CONFIRMED1 | 已确认,兼容 v2 | | 6 | BILLSTATUS_CANCELED | 已撤销 |
财务状态排查重点是“业务单据状态”和“收付款单状态”是否一致。例如采购在线支付成功后,采购状态、支付明细、付款单、账户流水都要能串起来。
交易类型 transType
| 值 | 含义 | 常见表 | | --- | --- | --- | | 170401 | 采购订单 | 采购主单、账户流水 | | 170402 | 采购订单退货 | 采购退货 | | 170503 | 采购关闭 | 关闭明细、账户/库存 | | 170410 | 采购出库单 | 采购发货/配送 | | 150501 | 采购入库 | 库存流水 | | 150502 | 销售退货入库 | 库存流水 | | 170502 | 普通销售单 | 销售主单 | | 150601 | 普通销售出库 | 出库和库存流水 | | 150602 | 销售退货 | 出库退货和库存流水 | | 150701/150801 | 盘盈/盘亏 | 库存盘点 | | 150706/150806 | 其他入库/其他出库 | 其他出入库 | | 153001/153101 | 收款/付款 | 收付款单、账户 |
常用排查命令
rg -n "BILLSTATUS_|ORDERTYPE_|SRC_ORDER_TYPE_" application/KzData/Enums/PoOrderEnums.php
rg -n "SA_STATUS_|OUT_BILLSTATUS_|ORDER_SOURCE_TYPE_" application/KzData/Enums/SaOrderEnums.php
rg -n "ORDER_STATUS_|APPLY_STATUS_|ENABLE_STATUS_" application/KzData/Enums/FlashActivityEnums.php
rg -n "TRANSTYPE_PO_PURCHASE|TRANSTYPE_SA_INVOICE_SALE|TRANSTYPE_PAYMENT_RECEIPT" application/KzData/Enums/TransTypeEnums.php
改动风险和回归清单
- 新增状态:必须同步列表筛选、详情展示、按钮可用性、导出、报表、MQ 消费和补偿任务。
- 改订单类型:必须确认订单中心、支付中心、OA、活动、报表是否按字符串类型判断。
- 改来源类型:必须确认 APP/SAAS/E站/机器人是否有硬编码来源。
- 改交易类型:必须回归库存流水、账户流水、报表和历史数据兼容。