优化
This commit is contained in:
@@ -515,7 +515,7 @@ CREATE TABLE IF NOT EXISTS ord_order (
|
||||
id BIGINT UNSIGNED NOT NULL COMMENT '订单ID(雪花ID)',
|
||||
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '客户ID和数据隔离键',
|
||||
order_no VARCHAR(32) NOT NULL COMMENT '客户范围内唯一订单号',
|
||||
inbound_code VARCHAR(40) NULL COMMENT '提交后生成并固定的入仓码;未提交草稿为空',
|
||||
inbound_code VARCHAR(40) NULL COMMENT '全平台唯一入仓码;来源由全局模式决定,提交后固定',
|
||||
customer_id BIGINT UNSIGNED NULL COMMENT '客户逻辑ID',
|
||||
customer_name VARCHAR(128) NOT NULL COMMENT '下单时客户名称快照',
|
||||
status VARCHAR(24) NOT NULL DEFAULT 'DRAFT' COMMENT '订单业务状态:DRAFT草稿、SUBMITTED已提交、APPROVED审核通过、ACCEPTED已接单、REJECTED审核驳回、PROCESSING履约中、COMPLETED已完成、CANCELLED已取消',
|
||||
@@ -556,7 +556,7 @@ CREATE TABLE IF NOT EXISTS ord_order (
|
||||
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_order_tenant_no (tenant_id, order_no),
|
||||
UNIQUE KEY uk_order_tenant_inbound_code (tenant_id, inbound_code),
|
||||
UNIQUE KEY uk_order_inbound_code (inbound_code),
|
||||
KEY idx_order_tenant_status_time (tenant_id, status, created_at),
|
||||
KEY idx_order_tenant_customer (tenant_id, customer_id),
|
||||
KEY idx_order_tenant_warehouse (tenant_id, destination_warehouse_id)
|
||||
@@ -569,7 +569,7 @@ SET @order_inbound_code_nullable_sql = IF(
|
||||
WHERE table_schema = 'baiyue_order' AND table_name = 'ord_order'
|
||||
AND column_name = 'inbound_code' AND is_nullable = 'NO'
|
||||
),
|
||||
'ALTER TABLE baiyue_order.ord_order MODIFY COLUMN inbound_code VARCHAR(40) NULL COMMENT ''提交后生成并固定的入仓码;未提交草稿为空''',
|
||||
'ALTER TABLE baiyue_order.ord_order MODIFY COLUMN inbound_code VARCHAR(40) NULL COMMENT ''全平台唯一入仓码;来源由全局模式决定,提交后固定''',
|
||||
'SELECT 1'
|
||||
);
|
||||
PREPARE order_inbound_code_nullable_stmt FROM @order_inbound_code_nullable_sql;
|
||||
@@ -2427,7 +2427,7 @@ SET @inbound_code_exists := (
|
||||
WHERE table_schema = DATABASE() AND table_name = 'ord_order' AND column_name = 'inbound_code'
|
||||
);
|
||||
SET @inbound_code_sql := IF(@inbound_code_exists = 0,
|
||||
'ALTER TABLE ord_order ADD COLUMN inbound_code VARCHAR(40) NULL COMMENT ''客户提交后生成的入仓码,草稿为空'' AFTER order_no',
|
||||
'ALTER TABLE ord_order ADD COLUMN inbound_code VARCHAR(40) NULL COMMENT ''全平台唯一入仓码;来源由全局模式决定,提交后固定'' AFTER order_no',
|
||||
'SELECT 1');
|
||||
PREPARE inbound_code_statement FROM @inbound_code_sql;
|
||||
EXECUTE inbound_code_statement;
|
||||
@@ -2436,15 +2436,27 @@ DEALLOCATE PREPARE inbound_code_statement;
|
||||
SET @inbound_code_index_exists := (
|
||||
SELECT COUNT(*) FROM information_schema.statistics
|
||||
WHERE table_schema = DATABASE() AND table_name = 'ord_order'
|
||||
AND index_name = 'uk_order_tenant_inbound_code'
|
||||
AND index_name = 'uk_order_inbound_code'
|
||||
);
|
||||
SET @inbound_code_index_sql := IF(@inbound_code_index_exists = 0,
|
||||
'ALTER TABLE ord_order ADD UNIQUE KEY uk_order_tenant_inbound_code (tenant_id, inbound_code)',
|
||||
'ALTER TABLE ord_order ADD UNIQUE KEY uk_order_inbound_code (inbound_code)',
|
||||
'SELECT 1');
|
||||
PREPARE inbound_code_index_statement FROM @inbound_code_index_sql;
|
||||
EXECUTE inbound_code_index_statement;
|
||||
DEALLOCATE PREPARE inbound_code_index_statement;
|
||||
|
||||
SET @legacy_inbound_code_index_exists := (
|
||||
SELECT COUNT(*) FROM information_schema.statistics
|
||||
WHERE table_schema = DATABASE() AND table_name = 'ord_order'
|
||||
AND index_name = 'uk_order_tenant_inbound_code'
|
||||
);
|
||||
SET @legacy_inbound_code_index_sql := IF(@legacy_inbound_code_index_exists > 0,
|
||||
'ALTER TABLE ord_order DROP INDEX uk_order_tenant_inbound_code',
|
||||
'SELECT 1');
|
||||
PREPARE legacy_inbound_code_index_statement FROM @legacy_inbound_code_index_sql;
|
||||
EXECUTE legacy_inbound_code_index_statement;
|
||||
DEALLOCATE PREPARE legacy_inbound_code_index_statement;
|
||||
|
||||
-- ============================================================================
|
||||
-- 来源:firstleg\src\main\resources\db\phase2-inbound-schema.sql
|
||||
-- ============================================================================
|
||||
@@ -2460,7 +2472,7 @@ CREATE TABLE IF NOT EXISTS fl_inbound_order (
|
||||
task_id BIGINT UNSIGNED NULL COMMENT '头程履约任务ID',
|
||||
order_id BIGINT UNSIGNED NOT NULL COMMENT '订单服务订单ID,不建立跨库外键',
|
||||
order_no VARCHAR(32) NOT NULL COMMENT '订单号快照',
|
||||
inbound_code VARCHAR(40) NOT NULL COMMENT '客户内唯一入仓码',
|
||||
inbound_code VARCHAR(40) NOT NULL COMMENT '全平台唯一入仓码',
|
||||
process_status VARCHAR(24) NOT NULL DEFAULT 'WAIT_MEASURE' COMMENT '入库流程状态:WAIT_MEASURE待测量、PREPARING草稿预入库、MEASURING测量中、MEASURE_PENDING待审核、MEASURE_REJECTED测量驳回、WAIT_PRICING待计费、FEE_CONFIRMING费用确认中、INBOUNDING入库收口中、WAIT_SPLIT待分柜',
|
||||
order_status_snapshot VARCHAR(24) NOT NULL COMMENT '订单状态快照',
|
||||
measure_review_status VARCHAR(24) NOT NULL DEFAULT 'NOT_SUBMITTED' COMMENT '测量审核状态:NOT_SUBMITTED未提交、PENDING待审核、APPROVED已通过、REJECTED已驳回',
|
||||
@@ -2513,7 +2525,7 @@ CREATE TABLE IF NOT EXISTS fl_inbound_order (
|
||||
deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除标记',
|
||||
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_inbound_tenant_code (tenant_id, inbound_code),
|
||||
UNIQUE KEY uk_inbound_code (inbound_code),
|
||||
UNIQUE KEY uk_inbound_tenant_order (tenant_id, order_id),
|
||||
KEY idx_inbound_process_time (tenant_id, process_status, created_at, id),
|
||||
KEY idx_inbound_measure_time (tenant_id, measure_review_status, created_at, id),
|
||||
@@ -2527,6 +2539,30 @@ CREATE TABLE IF NOT EXISTS fl_inbound_order (
|
||||
CONSTRAINT fk_inbound_task FOREIGN KEY (task_id) REFERENCES fl_fulfillment_task (id)
|
||||
) ENGINE=InnoDB COMMENT='二期头程入库单聚合根和列表查询快照';
|
||||
|
||||
SET @inbound_global_code_index_exists := (
|
||||
SELECT COUNT(*) FROM information_schema.statistics
|
||||
WHERE table_schema = DATABASE() AND table_name = 'fl_inbound_order'
|
||||
AND index_name = 'uk_inbound_code'
|
||||
);
|
||||
SET @inbound_global_code_index_sql := IF(@inbound_global_code_index_exists = 0,
|
||||
'ALTER TABLE fl_inbound_order ADD UNIQUE KEY uk_inbound_code (inbound_code)',
|
||||
'SELECT 1');
|
||||
PREPARE inbound_global_code_index_statement FROM @inbound_global_code_index_sql;
|
||||
EXECUTE inbound_global_code_index_statement;
|
||||
DEALLOCATE PREPARE inbound_global_code_index_statement;
|
||||
|
||||
SET @inbound_legacy_code_index_exists := (
|
||||
SELECT COUNT(*) FROM information_schema.statistics
|
||||
WHERE table_schema = DATABASE() AND table_name = 'fl_inbound_order'
|
||||
AND index_name = 'uk_inbound_tenant_code'
|
||||
);
|
||||
SET @inbound_legacy_code_index_sql := IF(@inbound_legacy_code_index_exists > 0,
|
||||
'ALTER TABLE fl_inbound_order DROP INDEX uk_inbound_tenant_code',
|
||||
'SELECT 1');
|
||||
PREPARE inbound_legacy_code_index_statement FROM @inbound_legacy_code_index_sql;
|
||||
EXECUTE inbound_legacy_code_index_statement;
|
||||
DEALLOCATE PREPARE inbound_legacy_code_index_statement;
|
||||
|
||||
UPDATE baiyue_order.ord_order o
|
||||
JOIN baiyue_firstleg.fl_inbound_order i
|
||||
ON i.tenant_id = o.tenant_id AND i.order_id = o.id AND i.deleted = 0
|
||||
@@ -12797,7 +12833,7 @@ CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_order', 'fee_review_sta
|
||||
CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_order', 'fee_status', '费用状态:UNPRICED未计费、CALCULATED已计算、CONFIRMED已确认、SENT已发送、VOIDED已作废');
|
||||
CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_order', 'hold_flag', '当前是否扣货');
|
||||
CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_order', 'id', '入库单ID(雪花ID)');
|
||||
CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_order', 'inbound_code', '客户内唯一入仓码');
|
||||
CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_order', 'inbound_code', '全平台唯一入仓码');
|
||||
CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_order', 'inbound_role', '入仓单层级:MASTER主单、CHILD子单');
|
||||
CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_order', 'inbounded_at', '入库完成时间');
|
||||
CALL queue_column_comment('baiyue_firstleg', 'fl_inbound_order', 'master_order_id', '仅用于约束有效主单订单唯一性');
|
||||
@@ -13769,7 +13805,7 @@ CALL queue_column_comment('baiyue_order', 'ord_order', 'expected_ship_date', '
|
||||
CALL queue_column_comment('baiyue_order', 'ord_order', 'express_company', '履约快递公司名称快照');
|
||||
CALL queue_column_comment('baiyue_order', 'ord_order', 'express_tracking_no', '履约快递单号');
|
||||
CALL queue_column_comment('baiyue_order', 'ord_order', 'id', '订单ID(雪花ID)');
|
||||
CALL queue_column_comment('baiyue_order', 'ord_order', 'inbound_code', '客户提交后生成的入仓码,草稿为空');
|
||||
CALL queue_column_comment('baiyue_order', 'ord_order', 'inbound_code', '全平台唯一入仓码;来源由全局模式决定,提交后固定');
|
||||
CALL queue_column_comment('baiyue_order', 'ord_order', 'order_no', '客户范围内唯一订单号');
|
||||
CALL queue_column_comment('baiyue_order', 'ord_order', 'order_role', '订单层级:MASTER主订单、CHILD子订单');
|
||||
CALL queue_column_comment('baiyue_order', 'ord_order', 'parent_order_id', '直属父订单ID;主订单为空;禁止子订单嵌套');
|
||||
|
||||
Reference in New Issue
Block a user