修改提交

This commit is contained in:
2026-09-08 17:58:42 +08:00
parent f0939c91c3
commit 2a27e28f26
67 changed files with 2590 additions and 110 deletions
@@ -18019,6 +18019,104 @@ DELIMITER ;
CALL assert_wallet_event_schema();
DROP PROCEDURE IF EXISTS assert_wallet_event_schema;
-- 退货库存菜单:企业管理员和已具备海外入库订单查看权的活跃商户角色均可查看。
USE baiyue_iam;
-- 平台端海外仓退货库存与退货箱号菜单。
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
(5107190,0,'PLATFORM','MENU',0,'platform:overseas-warehouse:return-inventory:list','退货库存管理','/overseas-warehouse/return-inventory','GET',890,'ACTIVE',1,0),
(5107191,0,'PLATFORM','MENU',0,'platform:overseas-warehouse:return-cartons:list','退货箱号管理','/overseas-warehouse/return-cartons','GET',891,'ACTIVE',1,0)
ON DUPLICATE KEY UPDATE permission_name=VALUES(permission_name),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.id IN(5107190,5107191) AND permission.tenant_id=0
WHERE role.tenant_id=0 AND role.app_code='PLATFORM' AND UPPER(role.role_code) IN('PLATFORM_ADMIN','PLATFORM_CUSTOM_ADMIN')
AND role.status='ACTIVE' AND role.deleted=0;
DROP PROCEDURE IF EXISTS migrate_merchant_return_inventory_permission;
-- 退货箱号管理菜单,复用退货库存查看授权。
DROP PROCEDURE IF EXISTS migrate_merchant_return_cartons_permission;
DELIMITER $$
CREATE PROCEDURE migrate_merchant_return_cartons_permission()
BEGIN
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
(5306141,0,'MERCHANT','MENU',0,'merchant:overseas-warehouse:return-cartons:list','退货箱号管理','/overseas-warehouse/return-cartons','GET',96,'ACTIVE',1,0)
ON DUPLICATE KEY UPDATE permission_name=VALUES(permission_name), 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 role.tenant_id, role.id, permission.id, CURRENT_TIMESTAMP(3)
FROM iam_role role JOIN iam_permission permission ON permission.id=5306141
WHERE role.app_code='MERCHANT' AND role.status='ACTIVE' AND role.deleted=0
AND (role.role_code='MERCHANT_OWNER' OR EXISTS (
SELECT 1 FROM iam_role_permission prior_grant JOIN iam_permission prior_permission ON prior_permission.id=prior_grant.permission_id
WHERE prior_grant.tenant_id=role.tenant_id AND prior_grant.role_id=role.id
AND prior_permission.permission_code='merchant:overseas-warehouse:return-inventory:list'));
END$$
DELIMITER ;
CALL migrate_merchant_return_cartons_permission();
DROP PROCEDURE IF EXISTS migrate_merchant_return_cartons_permission;
DELIMITER $$
CREATE PROCEDURE migrate_merchant_return_inventory_permission()
BEGIN
IF EXISTS (
SELECT 1 FROM iam_permission
WHERE (id=5306140 AND (tenant_id<>0 OR app_code<>'MERCHANT' OR permission_type<>'MENU'
OR permission_code<>'merchant:overseas-warehouse:return-inventory:list'))
OR (tenant_id=0 AND app_code='MERCHANT'
AND permission_code='merchant:overseas-warehouse:return-inventory:list' AND id<>5306140)
) 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
(5306140,0,'MERCHANT','MENU',0,'merchant:overseas-warehouse:return-inventory:list','退货库存','/overseas-warehouse/return-inventory','GET',95,'ACTIVE',1,0)
ON DUPLICATE KEY UPDATE permission_name=VALUES(permission_name), 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 role.tenant_id, role.id, permission.id, CURRENT_TIMESTAMP(3)
FROM iam_role role
JOIN iam_permission permission ON permission.tenant_id=0 AND permission.app_code='MERCHANT'
AND permission.permission_code='merchant:overseas-warehouse:return-inventory:list'
WHERE role.app_code='MERCHANT' AND role.status='ACTIVE' AND role.deleted=0
AND permission.status='ACTIVE' AND permission.deleted=0
AND (role.role_code='MERCHANT_OWNER' OR EXISTS (
SELECT 1 FROM iam_role_permission prior_grant
JOIN iam_permission prior_permission ON prior_permission.id=prior_grant.permission_id
AND prior_permission.tenant_id=0 AND prior_permission.app_code='MERCHANT'
WHERE prior_grant.tenant_id=role.tenant_id AND prior_grant.role_id=role.id
AND prior_permission.permission_code='merchant:warehouse:inbound:list'
AND prior_permission.status='ACTIVE' AND prior_permission.deleted=0
));
IF (SELECT COUNT(*) FROM iam_permission
WHERE id=5306140 AND tenant_id=0 AND app_code='MERCHANT' AND permission_type='MENU' AND parent_id=0
AND permission_code='merchant:overseas-warehouse:return-inventory:list' AND route_path='/overseas-warehouse/return-inventory'
AND http_method='GET' AND status='ACTIVE' AND built_in=1 AND deleted=0) <> 1 THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT='退货库存权限初始化失败:菜单资源不完整';
END IF;
IF EXISTS (SELECT 1 FROM iam_role role
WHERE role.app_code='MERCHANT' AND role.role_code='MERCHANT_OWNER' AND role.status='ACTIVE' AND role.deleted=0
AND NOT EXISTS (SELECT 1 FROM iam_role_permission role_permission
JOIN iam_permission permission ON permission.id=role_permission.permission_id
AND permission.tenant_id=0 AND permission.app_code='MERCHANT'
WHERE role_permission.tenant_id=role.tenant_id AND role_permission.role_id=role.id
AND permission.permission_code='merchant:overseas-warehouse:return-inventory:list'
AND permission.status='ACTIVE' AND permission.deleted=0)) THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT='退货库存权限初始化失败:企业管理员授权不完整';
END IF;
END$$
DELIMITER ;
CALL migrate_merchant_return_inventory_permission();
DROP PROCEDURE IF EXISTS migrate_merchant_return_inventory_permission;
CALL baiyue_firstleg.assert_unified_final_schema();
DROP PROCEDURE IF EXISTS baiyue_firstleg.assert_unified_final_schema;
SELECT 'PASS' AS migration_status,
@@ -1769,3 +1769,20 @@ CREATE TABLE IF NOT EXISTS ll_destuff_pallet_cost_allocation (
PRIMARY KEY(id), UNIQUE KEY uk_ll_destuff_customer(cost_id,customer_id), UNIQUE KEY uk_ll_destuff_fee_source(fee_source_id),
CONSTRAINT chk_ll_destuff_allocation CHECK(actual_volume_cbm>0 AND allocated_amount>=0)
) ENGINE=InnoDB COMMENT='拆柜打托成本按客户实收体积分摊';
USE baiyue_lastleg;
SET @ddl = (SELECT IF(
EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='ll_relabel_item' AND column_name='destination_fba_warehouse_code'),
'SELECT 1',
'ALTER TABLE ll_relabel_item ADD COLUMN destination_fba_warehouse_code VARCHAR(128) NULL COMMENT ''FBA目的仓编码(与海外操作仓分离)'''));
PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt;
SET @ddl = (SELECT IF(
EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='ll_relabel_item' AND column_name='operation_type'),
'SELECT 1',
'ALTER TABLE ll_relabel_item ADD COLUMN operation_type VARCHAR(32) NOT NULL DEFAULT ''CARTON_LABEL'' COMMENT ''换标模式:箱唛、SKU或组合换标'''));
PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt;
SET @ddl = (SELECT IF(
EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='ll_relabel_item' AND column_name='sku_relabel_items_json'),
'SELECT 1',
'ALTER TABLE ll_relabel_item ADD COLUMN sku_relabel_items_json JSON NULL COMMENT ''同箱SKU换标子明细快照(数量按件)'''));
PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt;