feat: add inbound hold lifecycle
This commit is contained in:
@@ -2560,7 +2560,7 @@ CREATE TABLE IF NOT EXISTS fl_inbound_order (
|
||||
destination_code VARCHAR(32) NULL COMMENT '目的仓编码,例如FBA仓编码',
|
||||
destination_name VARCHAR(128) NULL COMMENT '目的仓名称快照',
|
||||
hold_flag TINYINT(1) NOT NULL DEFAULT 0 COMMENT '当前是否扣货',
|
||||
current_hold_reason VARCHAR(500) NULL COMMENT '当前扣货理由快照',
|
||||
current_hold_reason VARCHAR(1000) NULL COMMENT '当前扣货理由快照',
|
||||
last_overseas_hold_version BIGINT UNSIGNED NULL COMMENT '海外暂扣事件最新聚合版本,用于阻止乱序覆盖',
|
||||
total_package_count INT UNSIGNED NULL COMMENT '确认后的总箱数',
|
||||
actual_gross_weight_kg DECIMAL(18,3) NULL COMMENT '确认后的实际总毛重kg',
|
||||
@@ -17914,6 +17914,92 @@ SET @ddl = (SELECT IF(EXISTS (SELECT 1 FROM information_schema.columns WHERE tab
|
||||
PREPARE lx_inbound_ddl FROM @ddl; EXECUTE lx_inbound_ddl; DEALLOCATE PREPARE lx_inbound_ddl;
|
||||
SET @ddl = (SELECT IF(EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema='baiyue_lastleg' AND table_name='ll_outbound_order' AND column_name='lx_codes'), 'SELECT 1', 'ALTER TABLE baiyue_lastleg.ll_outbound_order ADD COLUMN lx_codes VARCHAR(1000) NULL COMMENT ''关联一件代发领星入库单代码汇总'' AFTER outbound_type'));
|
||||
PREPARE lx_outbound_ddl FROM @ddl; EXECUTE lx_outbound_ddl; DEALLOCATE PREPARE lx_outbound_ddl;
|
||||
|
||||
ALTER TABLE baiyue_firstleg.fl_inbound_order
|
||||
MODIFY COLUMN current_hold_reason VARCHAR(1000) NULL COMMENT '当前扣货理由快照';
|
||||
|
||||
USE baiyue_iam;
|
||||
DROP PROCEDURE IF EXISTS migrate_inbound_hold_permission;
|
||||
DELIMITER $$
|
||||
CREATE PROCEDURE migrate_inbound_hold_permission()
|
||||
BEGIN
|
||||
IF EXISTS (
|
||||
SELECT 1
|
||||
FROM iam_permission
|
||||
WHERE (id = 5102032 AND (tenant_id <> 0
|
||||
OR app_code <> 'PLATFORM'
|
||||
OR permission_type <> 'BUTTON'
|
||||
OR permission_code <> 'platform:firstleg:inbound:hold'))
|
||||
OR (permission_code = 'platform:firstleg:inbound:hold'
|
||||
AND (id <> 5102032 OR tenant_id <> 0 OR app_code <> 'PLATFORM'))
|
||||
) THEN
|
||||
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT='入库单扣货权限初始化失败:权限ID、编码或类型冲突';
|
||||
END IF;
|
||||
|
||||
INSERT INTO iam_permission
|
||||
(id, tenant_id, app_code, permission_type, parent_id, permission_code,
|
||||
permission_name, route_path, http_method, sort_no, status, built_in, deleted)
|
||||
VALUES
|
||||
(5102032, 0, 'PLATFORM', 'BUTTON', 5102030, 'platform:firstleg:inbound:hold',
|
||||
'扣货与解除扣货', NULL, 'POST', 20, 'ACTIVE', 1, 0)
|
||||
ON DUPLICATE KEY UPDATE
|
||||
permission_name=VALUES(permission_name), parent_id=VALUES(parent_id),
|
||||
route_path=VALUES(route_path), http_method=VALUES(http_method),
|
||||
sort_no=VALUES(sort_no), status='ACTIVE', built_in=1, deleted=0;
|
||||
|
||||
INSERT IGNORE INTO iam_role_permission (tenant_id, role_id, permission_id, created_at)
|
||||
SELECT 0, role.id, permission.id, CURRENT_TIMESTAMP(3)
|
||||
FROM iam_role role
|
||||
JOIN iam_permission permission
|
||||
ON permission.tenant_id=0
|
||||
AND permission.app_code='PLATFORM'
|
||||
AND permission.permission_code='platform:firstleg:inbound:hold'
|
||||
WHERE role.tenant_id=0
|
||||
AND role.app_code='PLATFORM'
|
||||
AND role.role_code='PLATFORM_ADMIN'
|
||||
AND role.status='ACTIVE'
|
||||
AND role.deleted=0
|
||||
AND permission.status='ACTIVE'
|
||||
AND permission.deleted=0;
|
||||
|
||||
IF (SELECT COUNT(*)
|
||||
FROM iam_permission
|
||||
WHERE id=5102032
|
||||
AND tenant_id=0
|
||||
AND app_code='PLATFORM'
|
||||
AND permission_type='BUTTON'
|
||||
AND parent_id=5102030
|
||||
AND permission_code='platform:firstleg:inbound:hold'
|
||||
AND http_method='POST'
|
||||
AND status='ACTIVE'
|
||||
AND built_in=1
|
||||
AND deleted=0) <> 1 THEN
|
||||
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT='入库单扣货权限初始化失败:权限资源不完整';
|
||||
END IF;
|
||||
|
||||
IF (SELECT COUNT(*)
|
||||
FROM iam_role_permission grant_row
|
||||
JOIN iam_role role
|
||||
ON role.id=grant_row.role_id
|
||||
AND role.tenant_id=grant_row.tenant_id
|
||||
JOIN iam_permission permission
|
||||
ON permission.id=grant_row.permission_id
|
||||
AND permission.tenant_id=grant_row.tenant_id
|
||||
WHERE role.tenant_id=0
|
||||
AND role.app_code='PLATFORM'
|
||||
AND role.role_code='PLATFORM_ADMIN'
|
||||
AND role.status='ACTIVE'
|
||||
AND role.deleted=0
|
||||
AND permission.permission_code='platform:firstleg:inbound:hold'
|
||||
AND permission.status='ACTIVE'
|
||||
AND permission.deleted=0) <> 1 THEN
|
||||
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT='入库单扣货权限初始化失败:平台超级管理员授权不完整';
|
||||
END IF;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
CALL migrate_inbound_hold_permission();
|
||||
DROP PROCEDURE IF EXISTS migrate_inbound_hold_permission;
|
||||
|
||||
DROP PROCEDURE IF EXISTS assert_wallet_event_schema;
|
||||
DELIMITER $$
|
||||
CREATE PROCEDURE assert_wallet_event_schema()
|
||||
@@ -17936,4 +18022,4 @@ DROP PROCEDURE IF EXISTS assert_wallet_event_schema;
|
||||
CALL baiyue_firstleg.assert_unified_final_schema();
|
||||
DROP PROCEDURE IF EXISTS baiyue_firstleg.assert_unified_final_schema;
|
||||
SELECT 'PASS' AS migration_status,
|
||||
'统一增量全部执行完成;父子订单、履约分片、装柜门禁、订舱拖车、报关船期、船司查询、仓库角色、费用、Finance人工财务、客户资金账户、公共资源、可靠审计及IAM安全事件结构校验通过' AS message;
|
||||
'统一增量全部执行完成;父子订单、入库扣货、履约分片、装柜门禁、订舱拖车、报关船期、船司查询、仓库角色、费用、Finance人工财务、客户资金账户、公共资源、可靠审计及IAM安全事件结构校验通过' AS message;
|
||||
|
||||
Reference in New Issue
Block a user