feat(lastleg): redispatch returned cargo and reconcile source signatures
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
| 区域 | 完整入口 | 服务 schema | 表数 |
|
||||
|---|---|---|---:|
|
||||
| 国内 | `头程数据库统一增量-MySQL8.sql` | `baiyue_auth`、`baiyue_iam`、`baiyue_order`、`baiyue_warehouse`、`baiyue_firstleg`、`baiyue_file`、`baiyue_audit`、`baiyue_finance` | 226 |
|
||||
| 海外 | `海外区域统一增量-MySQL8.sql` | `baiyue_lastleg`、`baiyue_lastlag_warehouse` | 152 |
|
||||
| 海外 | `海外区域统一增量-MySQL8.sql` | `baiyue_lastleg`、`baiyue_lastlag_warehouse` | 153 |
|
||||
|
||||
- 所有服务位于同一测试环境;两份文件只分组组织服务 schema,不代表两个部署区域。`baiyue_lastlag_warehouse` 保留当前正式的 `lastlag` 拼写。
|
||||
- 两份文件必须在同一测试数据库实例中完成初始化;业务服务仍只访问本服务 schema,经内部接口访问 IAM/Warehouse。已移除事件桥两个 schema 的创建,不对已有数据库执行 DROP。
|
||||
@@ -16,6 +16,7 @@
|
||||
- 外接预订的`quote_source_json`保存可选销售报价来源版本快照,实际成交价仍在货物快照及`agreed_amount`中;手填成交价时无报价来源。该字段随Lastleg模块基线与海外统一入口维护,执行状态只见正式部署契约。
|
||||
- 异常退回的`return_context_json`保存取消时所需的原始业务状态;逐来源`received_packages`累计实际入仓量且不得超过批准退回量。同一派送可以保留多张已取消/已结束的历史退回单,活动退回仍由派送行锁内校验;普通`idx_ll_exception_delivery_return`替代跨全部历史的唯一索引。数量和状态不能通过回填旧单据伪造。
|
||||
- 派送`ll_delivery_order.signed_packages`保存签收资料确认时冻结的实际签收箱数;NULL表示未确认,不当作全量签收,数量须在0到本次实发箱数之间。后续退回保留原签收历史,不用当前退回量倒改实签。
|
||||
- `ll_return_stock_receipt`与真实退回库存入账同事务保存,按客户/入账流水唯一,保留原订单和出库位置以及实际入仓位置。重派候选、草稿锁及拣货显式引用该凭据;拣货`receipt_id`与`return_receipt_id`恰有一个非空。退回不增加原订单箱数,不回退历史出库流水;可重新发运量由实际退回及已消耗凭据核平。
|
||||
- 国内 Warehouse 管理包括海外仓在内的公共仓库主档;海外 Warehouse 只保存资源与主档 ID 引用。
|
||||
- Gateway、Print、Integration 不新增数据库。Compose 继续使用 `SPRING_SQL_INIT_MODE=never`,服务启动不执行这些文件。
|
||||
|
||||
@@ -28,7 +29,7 @@
|
||||
5. DDL 隐式提交,不可整体回滚。失败后停止并保留错误;经另行授权准备空库后从头执行,不针对半初始化库追加迁移或从失败行续跑。
|
||||
6. Firstleg 测量项与拆分项互为外键:建空表期间暂设会话 `foreign_key_checks=0`,随后立即恢复 `1`,再插入种子。失败时关闭连接。两边外键完整保留在 CREATE TABLE 内。
|
||||
|
||||
成功时只在最末输出一行 `initialization_status=PASS`,并带 `region=CN/OVERSEAS`、`initialized_tables=226/152`。必须同时确认客户端退出码 0;忽略错误后出现的 PASS 不算成功。
|
||||
成功时只在最末输出一行 `initialization_status=PASS`,并带 `region=CN/OVERSEAS`、`initialized_tables=226/153`。必须同时确认客户端退出码 0;忽略错误后出现的 PASS 不算成功。
|
||||
|
||||
## 平台管理员密码
|
||||
|
||||
|
||||
@@ -376,6 +376,8 @@ CREATE TABLE ll_dispatch_item (
|
||||
source_business_type varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源业务类型',
|
||||
source_business_no varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源业务单号',
|
||||
created_at datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||||
return_receipt_id BIGINT NULL COMMENT '明确选用的真实退回入仓来源',
|
||||
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_ll_dispatch_item_source (dispatch_order_id,plan_pallet_id,warehouse_pallet_id),
|
||||
KEY idx_ll_dispatch_item_order (customer_id,order_id),
|
||||
@@ -433,6 +435,8 @@ CREATE TABLE ll_dispatch_pallet_lock (
|
||||
released_at datetime(3) DEFAULT NULL COMMENT '释放时间',
|
||||
created_at datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||||
updated_at datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
||||
return_receipt_id BIGINT NULL COMMENT '明确选用的真实退回入仓来源',
|
||||
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_ll_dispatch_active_pallet (customer_id,active_key),
|
||||
KEY idx_ll_dispatch_pallet_lock_order (customer_id,dispatch_order_id,status),
|
||||
@@ -470,15 +474,44 @@ CREATE TABLE ll_dispatch_pda_pick (
|
||||
KEY idx_ll_dispatch_pda_pick_item (customer_id,task_id,dispatch_item_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='派车PDA拣货记录';
|
||||
|
||||
CREATE TABLE ll_return_stock_receipt (
|
||||
id BIGINT NOT NULL COMMENT '退回入仓实收凭据ID',
|
||||
customer_id VARCHAR(128) NOT NULL COMMENT '客户数据归属',
|
||||
receipt_no VARCHAR(64) NOT NULL COMMENT '退回实收业务编号',
|
||||
inventory_ledger_id BIGINT NOT NULL COMMENT '唯一实际退回入账流水',
|
||||
exception_order_id BIGINT NOT NULL COMMENT '退回异常订单',
|
||||
order_id BIGINT NOT NULL COMMENT '原尾程订单',
|
||||
inbound_order_id BIGINT NOT NULL COMMENT '原入仓单',
|
||||
source_outbound_no VARCHAR(64) NOT NULL COMMENT '原发运出库业务编号',
|
||||
source_outbound_pallet_item_id BIGINT NOT NULL COMMENT '原出库托盘明细',
|
||||
source_inventory_position_id BIGINT NOT NULL COMMENT '原拣货库存位置',
|
||||
inventory_balance_id BIGINT NOT NULL COMMENT '实际退回库存余额',
|
||||
inventory_position_id BIGINT NOT NULL COMMENT '实际退回库存位置',
|
||||
received_packages BIGINT NOT NULL COMMENT '实际退回箱数,不增加原订单箱数',
|
||||
received_at DATETIME(3) NOT NULL COMMENT '实际退回入账时间',
|
||||
created_at DATETIME(3) NOT NULL COMMENT '凭据记录时间',
|
||||
PRIMARY KEY(id),
|
||||
UNIQUE KEY uk_return_stock_receipt_no(customer_id,receipt_no),
|
||||
UNIQUE KEY uk_return_stock_receipt_ledger(customer_id,inventory_ledger_id),
|
||||
KEY idx_return_stock_receipt_order(customer_id,order_id),
|
||||
KEY idx_return_stock_receipt_position(customer_id,inventory_balance_id,inventory_position_id),
|
||||
CONSTRAINT chk_return_stock_receipt_packages CHECK(received_packages>0)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='真实退回入仓及再次发运来源凭据';
|
||||
|
||||
CREATE TABLE ll_dispatch_pda_pick_order (
|
||||
id bigint NOT NULL COMMENT '主键ID',
|
||||
customer_id varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID',
|
||||
pick_id bigint NOT NULL COMMENT 'PDA拣货记录ID',
|
||||
receipt_id bigint NOT NULL COMMENT '入仓实收记录ID',
|
||||
receipt_id BIGINT NULL COMMENT '入仓实收记录ID',
|
||||
order_id bigint NOT NULL COMMENT '订单ID',
|
||||
packages bigint NOT NULL COMMENT '本次操作箱数',
|
||||
product_quantity bigint NOT NULL DEFAULT '0' COMMENT '产品数量',
|
||||
created_at datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||||
return_receipt_id BIGINT NULL COMMENT '明确选用的真实退回入仓来源',
|
||||
KEY idx_dispatch_pick_return_receipt(customer_id,return_receipt_id),
|
||||
CONSTRAINT chk_dispatch_pick_receipt_source CHECK((receipt_id IS NOT NULL AND return_receipt_id IS NULL) OR (receipt_id IS NULL AND return_receipt_id IS NOT NULL)),
|
||||
|
||||
|
||||
PRIMARY KEY (id),
|
||||
KEY idx_ll_dispatch_pick_order_pick (customer_id,pick_id),
|
||||
KEY idx_ll_dispatch_pick_order_receipt (customer_id,receipt_id)
|
||||
@@ -3392,4 +3425,4 @@ CREATE TABLE event_delivery_attempt (
|
||||
KEY idx_delivery_attempt_outcome (outcome,started_at)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='本服务业务事件逐次投递审计';
|
||||
|
||||
SELECT 'PASS' AS initialization_status, 'OVERSEAS' AS region, 152 AS initialized_tables;
|
||||
SELECT 'PASS' AS initialization_status, 'OVERSEAS' AS region, 153 AS initialized_tables;
|
||||
|
||||
Reference in New Issue
Block a user