351 lines
23 KiB
SQL
351 lines
23 KiB
SQL
USE baiyue_iam;
|
|
SET NAMES utf8mb4;
|
|
|
|
-- 五期海外排车、出库与派送权限。列表权限同时覆盖列表和详情只读,写操作保持独立授权。
|
|
DROP PROCEDURE IF EXISTS guard_phase5_delivery_permission_ids;
|
|
DELIMITER $$
|
|
CREATE PROCEDURE guard_phase5_delivery_permission_ids()
|
|
BEGIN
|
|
IF EXISTS (
|
|
SELECT 1 FROM iam_permission
|
|
WHERE (id = 5107064 AND permission_code <> 'platform:overseas-warehouse:dispatch:list')
|
|
OR (id = 5107065 AND permission_code <> 'platform:overseas-warehouse:dispatch:create')
|
|
OR (id = 5107066 AND permission_code <> 'platform:overseas-warehouse:dispatch:loading-complete')
|
|
OR (id = 5107067 AND permission_code <> 'platform:overseas-warehouse:dispatch:depart')
|
|
OR (id = 5107016 AND permission_code <> 'platform:overseas-warehouse:dispatch:edit')
|
|
OR (id = 5107017 AND permission_code <> 'platform:overseas-warehouse:dispatch:cancel')
|
|
OR (id = 5107018 AND permission_code <> 'platform:overseas-warehouse:dispatch:transfer-delivery')
|
|
OR (id = 5107090 AND permission_code <> 'platform:overseas-warehouse:outbound:list')
|
|
OR (id = 5107091 AND permission_code <> 'platform:overseas-warehouse:outbound:create')
|
|
OR (id = 5107092 AND permission_code <> 'platform:overseas-warehouse:delivery:list')
|
|
OR (id = 5107094 AND permission_code <> 'platform:overseas-warehouse:delivery:documents')
|
|
OR (id = 5107093 AND permission_code <> 'platform:overseas-warehouse:outbound:cancel')
|
|
OR (id = 5107070 AND permission_code <> 'platform:overseas-warehouse:exception-order:list')
|
|
OR (id = 5107071 AND permission_code <> 'platform:overseas-warehouse:exception-order:create')
|
|
OR (id = 5107073 AND permission_code <> 'platform:overseas-warehouse:exception-order:process')
|
|
OR (id = 5107072 AND permission_code <> 'platform:overseas-warehouse:delivery:return')
|
|
OR (id = 5107080 AND permission_code <> 'platform:overseas-warehouse:customer-visit:list')
|
|
OR (id = 5107081 AND permission_code <> 'platform:overseas-warehouse:customer-visit:edit')
|
|
OR (id = 5107082 AND permission_code <> 'platform:overseas-warehouse:delivery:status')
|
|
OR (id = 5306000 AND permission_code <> 'merchant:warehouse:delivery:list')
|
|
) OR EXISTS (
|
|
SELECT 1 FROM iam_permission
|
|
WHERE (permission_code = 'platform:overseas-warehouse:dispatch:list' AND id <> 5107064)
|
|
OR (permission_code = 'platform:overseas-warehouse:dispatch:create' AND id <> 5107065)
|
|
OR (permission_code = 'platform:overseas-warehouse:dispatch:loading-complete' AND id <> 5107066)
|
|
OR (permission_code = 'platform:overseas-warehouse:dispatch:depart' AND id <> 5107067)
|
|
OR (permission_code = 'platform:overseas-warehouse:dispatch:edit' AND id <> 5107016)
|
|
OR (permission_code = 'platform:overseas-warehouse:dispatch:cancel' AND id <> 5107017)
|
|
OR (permission_code = 'platform:overseas-warehouse:dispatch:transfer-delivery' AND id <> 5107018)
|
|
OR (permission_code = 'platform:overseas-warehouse:outbound:list' AND id <> 5107090)
|
|
OR (permission_code = 'platform:overseas-warehouse:outbound:create' AND id <> 5107091)
|
|
OR (permission_code = 'platform:overseas-warehouse:delivery:list' AND id <> 5107092)
|
|
OR (permission_code = 'platform:overseas-warehouse:delivery:documents' AND id <> 5107094)
|
|
OR (permission_code = 'platform:overseas-warehouse:outbound:cancel' AND id <> 5107093)
|
|
OR (permission_code = 'platform:overseas-warehouse:exception-order:list' AND id <> 5107070)
|
|
OR (permission_code = 'platform:overseas-warehouse:exception-order:create' AND id <> 5107071)
|
|
OR (permission_code = 'platform:overseas-warehouse:exception-order:process' AND id <> 5107073)
|
|
OR (permission_code = 'platform:overseas-warehouse:delivery:return' AND id <> 5107072)
|
|
OR (permission_code = 'platform:overseas-warehouse:customer-visit:list' AND id <> 5107080)
|
|
OR (permission_code = 'platform:overseas-warehouse:customer-visit:edit' AND id <> 5107081)
|
|
OR (permission_code = 'platform:overseas-warehouse:delivery:status' AND id <> 5107082)
|
|
OR (permission_code = 'merchant:warehouse:delivery:list' AND id <> 5306000)
|
|
) THEN
|
|
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT='五期海外派送权限初始化失败:权限ID或编码冲突';
|
|
END IF;
|
|
END$$
|
|
DELIMITER ;
|
|
CALL guard_phase5_delivery_permission_ids();
|
|
DROP PROCEDURE guard_phase5_delivery_permission_ids;
|
|
|
|
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
|
|
(5107064,0,'PLATFORM','MENU',0,'platform:overseas-warehouse:dispatch:list','海外排车单','/overseas-warehouse/dispatches','GET',764,'ACTIVE',1,0),
|
|
(5107065,0,'PLATFORM','BUTTON',5107064,'platform:overseas-warehouse:dispatch:create','新增排车单',NULL,'POST',765,'ACTIVE',1,0),
|
|
(5107066,0,'PLATFORM','BUTTON',5107064,'platform:overseas-warehouse:dispatch:loading-complete','确认装车完成',NULL,'POST',766,'ACTIVE',1,0),
|
|
(5107067,0,'PLATFORM','BUTTON',5107064,'platform:overseas-warehouse:dispatch:depart','确认实际发车',NULL,'POST',767,'ACTIVE',1,0),
|
|
(5107016,0,'PLATFORM','BUTTON',5107064,'platform:overseas-warehouse:dispatch:edit','编辑海外排车',NULL,'PUT',716,'ACTIVE',1,0),
|
|
(5107017,0,'PLATFORM','BUTTON',5107064,'platform:overseas-warehouse:dispatch:cancel','取消海外排车',NULL,'POST',717,'ACTIVE',1,0),
|
|
(5107018,0,'PLATFORM','BUTTON',5107064,'platform:overseas-warehouse:dispatch:transfer-delivery','排车转派送',NULL,'POST',718,'ACTIVE',1,0),
|
|
(5107070,0,'PLATFORM','MENU',0,'platform:overseas-warehouse:exception-order:list','海外异常订单','/overseas-warehouse/exception-orders','GET',770,'ACTIVE',1,0),
|
|
(5107071,0,'PLATFORM','BUTTON',5107070,'platform:overseas-warehouse:exception-order:create','新增海外异常订单',NULL,'POST',771,'ACTIVE',1,0),
|
|
(5107073,0,'PLATFORM','BUTTON',5107070,'platform:overseas-warehouse:exception-order:process','处理海外异常订单',NULL,'POST',773,'ACTIVE',1,0),
|
|
(5107072,0,'PLATFORM','BUTTON',5107092,'platform:overseas-warehouse:delivery:return','派送单标记退货',NULL,'POST',772,'ACTIVE',1,0),
|
|
(5107080,0,'PLATFORM','MENU',0,'platform:overseas-warehouse:customer-visit:list','客户回访','/overseas-warehouse/customer-visits','GET',780,'ACTIVE',1,0),
|
|
(5107081,0,'PLATFORM','BUTTON',5107080,'platform:overseas-warehouse:customer-visit:edit','保存客户回访',NULL,'PUT',781,'ACTIVE',1,0),
|
|
(5107082,0,'PLATFORM','BUTTON',5107092,'platform:overseas-warehouse:delivery:status','编辑派送单状态',NULL,'PUT',782,'ACTIVE',1,0),
|
|
(5107090,0,'PLATFORM','MENU',0,'platform:overseas-warehouse:outbound:list','海外出库单','/overseas-warehouse/outbounds','GET',765,'ACTIVE',1,0),
|
|
(5107091,0,'PLATFORM','BUTTON',5107090,'platform:overseas-warehouse:outbound:create','创建海外出库单',NULL,'POST',766,'ACTIVE',1,0),
|
|
(5107092,0,'PLATFORM','MENU',0,'platform:overseas-warehouse:delivery:list','海外派送单','/overseas-warehouse/delivery-orders','GET',767,'ACTIVE',1,0),
|
|
(5107094,0,'PLATFORM','BUTTON',5107092,'platform:overseas-warehouse:delivery:documents','管理派送资料',NULL,'POST',769,'ACTIVE',1,0),
|
|
(5107093,0,'PLATFORM','BUTTON',5107090,'platform:overseas-warehouse:outbound:cancel','取消海外出库单',NULL,'POST',768,'ACTIVE',1,0),
|
|
(5306000,0,'MERCHANT','MENU',0,'merchant:warehouse:delivery:list','海外仓派送单','/orders/delivery','GET',60,'ACTIVE',1,0)
|
|
ON DUPLICATE KEY UPDATE
|
|
permission_type=VALUES(permission_type), parent_id=VALUES(parent_id),
|
|
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.tenant_id=0 AND permission.app_code='PLATFORM'
|
|
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
|
|
AND permission.permission_code IN (
|
|
'platform:overseas-warehouse:dispatch:list',
|
|
'platform:overseas-warehouse:dispatch:create',
|
|
'platform:overseas-warehouse:dispatch:loading-complete',
|
|
'platform:overseas-warehouse:dispatch:depart',
|
|
'platform:overseas-warehouse:dispatch:edit',
|
|
'platform:overseas-warehouse:dispatch:cancel',
|
|
'platform:overseas-warehouse:dispatch:transfer-delivery',
|
|
'platform:overseas-warehouse:outbound:list',
|
|
'platform:overseas-warehouse:outbound:create',
|
|
'platform:overseas-warehouse:outbound:cancel',
|
|
'platform:overseas-warehouse:delivery:list',
|
|
'platform:overseas-warehouse:exception-order:list',
|
|
'platform:overseas-warehouse:exception-order:create',
|
|
'platform:overseas-warehouse:exception-order:process',
|
|
'platform:overseas-warehouse:delivery:return',
|
|
'platform:overseas-warehouse:delivery:status',
|
|
'platform:overseas-warehouse:delivery:documents',
|
|
'platform:overseas-warehouse:customer-visit:list',
|
|
'platform:overseas-warehouse:customer-visit:edit')
|
|
AND permission.status='ACTIVE' AND permission.deleted=0;
|
|
|
|
-- 已创建的客户拥有租户级默认管理员角色;权限资源仍引用 tenant_id=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'
|
|
WHERE role.tenant_id>0 AND role.app_code='MERCHANT' AND role.role_code='MERCHANT_OWNER'
|
|
AND role.status='ACTIVE' AND role.deleted=0
|
|
AND permission.permission_code IN (
|
|
'merchant:warehouse:delivery:list')
|
|
AND permission.status='ACTIVE' AND permission.deleted=0;
|
|
|
|
-- 仓库后台岗位按最小职责授权;PDA 岗位不得获得后台排车、出库或派送权限。
|
|
DROP TEMPORARY TABLE IF EXISTS tmp_phase5_delivery_role_permission;
|
|
CREATE TEMPORARY TABLE tmp_phase5_delivery_role_permission (
|
|
role_code VARCHAR(64) NOT NULL,
|
|
permission_code VARCHAR(160) NOT NULL,
|
|
PRIMARY KEY (role_code, permission_code)
|
|
) ENGINE=MEMORY;
|
|
INSERT INTO tmp_phase5_delivery_role_permission (role_code, permission_code) VALUES
|
|
('WAREHOUSE_OPERATOR','platform:overseas-warehouse:dispatch:list'),
|
|
('WAREHOUSE_OPERATOR','platform:overseas-warehouse:dispatch:create'),
|
|
('WAREHOUSE_OPERATOR','platform:overseas-warehouse:dispatch:loading-complete'),
|
|
('WAREHOUSE_OPERATOR','platform:overseas-warehouse:dispatch:depart'),
|
|
('WAREHOUSE_OPERATOR','platform:overseas-warehouse:dispatch:edit'),
|
|
('WAREHOUSE_OPERATOR','platform:overseas-warehouse:dispatch:cancel'),
|
|
('WAREHOUSE_OPERATOR','platform:overseas-warehouse:dispatch:transfer-delivery'),
|
|
('WAREHOUSE_OPERATOR','platform:overseas-warehouse:outbound:list'),
|
|
('WAREHOUSE_OPERATOR','platform:overseas-warehouse:outbound:create'),
|
|
('WAREHOUSE_OPERATOR','platform:overseas-warehouse:outbound:cancel'),
|
|
('WAREHOUSE_OPERATOR','platform:overseas-warehouse:delivery:list'),
|
|
('WAREHOUSE_OPERATOR','platform:overseas-warehouse:exception-order:list'),
|
|
('WAREHOUSE_OPERATOR','platform:overseas-warehouse:exception-order:create'),
|
|
('WAREHOUSE_OPERATOR','platform:overseas-warehouse:exception-order:process'),
|
|
('WAREHOUSE_OPERATOR','platform:overseas-warehouse:delivery:return'),
|
|
('WAREHOUSE_OPERATOR','platform:overseas-warehouse:delivery:status'),
|
|
('WAREHOUSE_OPERATOR','platform:overseas-warehouse:delivery:documents'),
|
|
('WAREHOUSE_OPERATOR','platform:overseas-warehouse:customer-visit:list'),
|
|
('WAREHOUSE_OPERATOR','platform:overseas-warehouse:customer-visit:edit'),
|
|
('WAREHOUSE_TALLY','platform:overseas-warehouse:dispatch:list'),
|
|
('WAREHOUSE_TALLY','platform:overseas-warehouse:outbound:list'),
|
|
('WAREHOUSE_TALLY','platform:overseas-warehouse:delivery:list'),
|
|
('WAREHOUSE_TALLY','platform:overseas-warehouse:exception-order:list'),
|
|
('WAREHOUSE_TALLY','platform:overseas-warehouse:customer-visit:list');
|
|
|
|
DELETE grant_row 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
|
|
LEFT JOIN tmp_phase5_delivery_role_permission expected
|
|
ON expected.role_code=role.role_code AND expected.permission_code=permission.permission_code
|
|
WHERE role.tenant_id=0 AND role.app_code='PLATFORM'
|
|
AND role.role_code IN ('WAREHOUSE_OPERATOR','WAREHOUSE_TALLY','OVERSEAS_WAREHOUSE_PDA_OPERATOR','CN_FIRSTLEG_PDA_OPERATOR')
|
|
AND permission.permission_code IN (
|
|
'platform:overseas-warehouse:dispatch:list',
|
|
'platform:overseas-warehouse:dispatch:create',
|
|
'platform:overseas-warehouse:dispatch:loading-complete',
|
|
'platform:overseas-warehouse:dispatch:depart',
|
|
'platform:overseas-warehouse:dispatch:edit',
|
|
'platform:overseas-warehouse:dispatch:cancel',
|
|
'platform:overseas-warehouse:dispatch:transfer-delivery',
|
|
'platform:overseas-warehouse:outbound:list',
|
|
'platform:overseas-warehouse:outbound:create',
|
|
'platform:overseas-warehouse:outbound:cancel',
|
|
'platform:overseas-warehouse:delivery:list',
|
|
'platform:overseas-warehouse:exception-order:list',
|
|
'platform:overseas-warehouse:exception-order:create',
|
|
'platform:overseas-warehouse:exception-order:process',
|
|
'platform:overseas-warehouse:delivery:return',
|
|
'platform:overseas-warehouse:delivery:status',
|
|
'platform:overseas-warehouse:delivery:documents',
|
|
'platform:overseas-warehouse:customer-visit:list',
|
|
'platform:overseas-warehouse:customer-visit:edit')
|
|
AND expected.permission_code IS NULL;
|
|
|
|
INSERT IGNORE INTO iam_role_permission (tenant_id, role_id, permission_id, created_at)
|
|
SELECT 0, role.id, permission.id, CURRENT_TIMESTAMP(3)
|
|
FROM tmp_phase5_delivery_role_permission expected
|
|
JOIN iam_role role ON role.tenant_id=0 AND role.app_code='PLATFORM'
|
|
AND role.role_code=expected.role_code AND role.status='ACTIVE' AND role.deleted=0
|
|
JOIN iam_permission permission ON permission.tenant_id=0 AND permission.app_code='PLATFORM'
|
|
AND permission.permission_code=expected.permission_code
|
|
AND permission.status='ACTIVE' AND permission.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='MERCHANT'
|
|
WHERE role.tenant_id=0 AND role.app_code='MERCHANT' AND role.role_code='MERCHANT_OWNER'
|
|
AND role.status='ACTIVE' AND role.deleted=0
|
|
AND permission.permission_code IN (
|
|
'merchant:warehouse:delivery:list')
|
|
AND permission.status='ACTIVE' AND permission.deleted=0;
|
|
|
|
DROP PROCEDURE IF EXISTS assert_phase5_delivery_permissions;
|
|
DELIMITER $$
|
|
CREATE PROCEDURE assert_phase5_delivery_permissions()
|
|
BEGIN
|
|
DECLARE v_warehouse_operator_permission_count INT DEFAULT 0;
|
|
DECLARE v_warehouse_tally_permission_count INT DEFAULT 0;
|
|
|
|
IF (SELECT COUNT(*) FROM iam_permission
|
|
WHERE tenant_id=0 AND status='ACTIVE' AND deleted=0
|
|
AND permission_code IN (
|
|
'platform:overseas-warehouse:dispatch:list',
|
|
'platform:overseas-warehouse:dispatch:create',
|
|
'platform:overseas-warehouse:dispatch:loading-complete',
|
|
'platform:overseas-warehouse:dispatch:depart',
|
|
'platform:overseas-warehouse:dispatch:edit',
|
|
'platform:overseas-warehouse:dispatch:cancel',
|
|
'platform:overseas-warehouse:dispatch:transfer-delivery',
|
|
'platform:overseas-warehouse:outbound:list',
|
|
'platform:overseas-warehouse:outbound:create',
|
|
'platform:overseas-warehouse:outbound:cancel',
|
|
'platform:overseas-warehouse:delivery:list',
|
|
'platform:overseas-warehouse:exception-order:list',
|
|
'platform:overseas-warehouse:exception-order:create',
|
|
'platform:overseas-warehouse:exception-order:process',
|
|
'platform:overseas-warehouse:delivery:return',
|
|
'platform:overseas-warehouse:delivery:status',
|
|
'platform:overseas-warehouse:delivery:documents',
|
|
'platform:overseas-warehouse:customer-visit:list',
|
|
'platform:overseas-warehouse:customer-visit:edit',
|
|
'merchant:warehouse:delivery:list')) <> 20 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
|
|
WHERE role.role_code='PLATFORM_ADMIN'
|
|
AND permission.permission_code IN (
|
|
'platform:overseas-warehouse:dispatch:list',
|
|
'platform:overseas-warehouse:dispatch:create',
|
|
'platform:overseas-warehouse:dispatch:loading-complete',
|
|
'platform:overseas-warehouse:dispatch:depart',
|
|
'platform:overseas-warehouse:dispatch:edit',
|
|
'platform:overseas-warehouse:dispatch:cancel',
|
|
'platform:overseas-warehouse:dispatch:transfer-delivery',
|
|
'platform:overseas-warehouse:outbound:list',
|
|
'platform:overseas-warehouse:outbound:create',
|
|
'platform:overseas-warehouse:outbound:cancel',
|
|
'platform:overseas-warehouse:delivery:list',
|
|
'platform:overseas-warehouse:exception-order:list',
|
|
'platform:overseas-warehouse:exception-order:create',
|
|
'platform:overseas-warehouse:exception-order:process',
|
|
'platform:overseas-warehouse:delivery:return',
|
|
'platform:overseas-warehouse:delivery:status',
|
|
'platform:overseas-warehouse:delivery:documents',
|
|
'platform:overseas-warehouse:customer-visit:list',
|
|
'platform:overseas-warehouse:customer-visit:edit')) <> 19 THEN
|
|
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT='五期海外派送权限初始化失败:平台管理员授权不完整';
|
|
END IF;
|
|
IF EXISTS (SELECT 1 FROM iam_role role
|
|
WHERE role.tenant_id=0 AND role.app_code='PLATFORM'
|
|
AND UPPER(role.role_code)='PLATFORM_CUSTOM_ADMIN'
|
|
AND role.status='ACTIVE' AND role.deleted=0
|
|
AND (SELECT COUNT(*) FROM iam_role_permission grant_row
|
|
JOIN iam_permission permission ON permission.id=grant_row.permission_id
|
|
WHERE grant_row.role_id=role.id AND grant_row.tenant_id=role.tenant_id
|
|
AND permission.permission_code IN (
|
|
'platform:overseas-warehouse:dispatch:list',
|
|
'platform:overseas-warehouse:dispatch:create',
|
|
'platform:overseas-warehouse:dispatch:loading-complete',
|
|
'platform:overseas-warehouse:dispatch:depart',
|
|
'platform:overseas-warehouse:dispatch:edit',
|
|
'platform:overseas-warehouse:dispatch:cancel',
|
|
'platform:overseas-warehouse:dispatch:transfer-delivery',
|
|
'platform:overseas-warehouse:outbound:list',
|
|
'platform:overseas-warehouse:outbound:create',
|
|
'platform:overseas-warehouse:outbound:cancel',
|
|
'platform:overseas-warehouse:delivery:list',
|
|
'platform:overseas-warehouse:exception-order:list',
|
|
'platform:overseas-warehouse:exception-order:create',
|
|
'platform:overseas-warehouse:exception-order:process',
|
|
'platform:overseas-warehouse:delivery:return',
|
|
'platform:overseas-warehouse:delivery:status',
|
|
'platform:overseas-warehouse:delivery:documents',
|
|
'platform:overseas-warehouse:customer-visit:list',
|
|
'platform:overseas-warehouse:customer-visit:edit')) <> 19) THEN
|
|
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT='五期海外派送权限初始化失败:平台自定义管理员授权不完整';
|
|
END IF;
|
|
SELECT COALESCE(SUM(role_code='WAREHOUSE_OPERATOR'),0),
|
|
COALESCE(SUM(role_code='WAREHOUSE_TALLY'),0)
|
|
INTO v_warehouse_operator_permission_count, v_warehouse_tally_permission_count
|
|
FROM tmp_phase5_delivery_role_permission;
|
|
IF v_warehouse_operator_permission_count <> 19
|
|
OR v_warehouse_tally_permission_count <> 5 THEN
|
|
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT='五期海外派送权限初始化失败:仓库岗位最小权限矩阵异常';
|
|
END IF;
|
|
IF EXISTS (SELECT 1 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
|
|
WHERE role.role_code IN ('OVERSEAS_WAREHOUSE_PDA_OPERATOR','CN_FIRSTLEG_PDA_OPERATOR')
|
|
AND permission.permission_code IN (
|
|
'platform:overseas-warehouse:dispatch:list',
|
|
'platform:overseas-warehouse:dispatch:create',
|
|
'platform:overseas-warehouse:dispatch:loading-complete',
|
|
'platform:overseas-warehouse:dispatch:depart',
|
|
'platform:overseas-warehouse:dispatch:edit',
|
|
'platform:overseas-warehouse:dispatch:cancel',
|
|
'platform:overseas-warehouse:dispatch:transfer-delivery',
|
|
'platform:overseas-warehouse:outbound:list',
|
|
'platform:overseas-warehouse:outbound:create',
|
|
'platform:overseas-warehouse:outbound:cancel',
|
|
'platform:overseas-warehouse:delivery:list',
|
|
'platform:overseas-warehouse:exception-order:list',
|
|
'platform:overseas-warehouse:exception-order:create',
|
|
'platform:overseas-warehouse:exception-order:process',
|
|
'platform:overseas-warehouse:delivery:return',
|
|
'platform:overseas-warehouse:delivery:status',
|
|
'platform:overseas-warehouse:delivery:documents',
|
|
'platform:overseas-warehouse:customer-visit:list',
|
|
'platform:overseas-warehouse:customer-visit:edit')) THEN
|
|
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT='五期海外派送权限初始化失败:PDA岗位错误获得后台权限';
|
|
END IF;
|
|
IF EXISTS (SELECT role.id FROM iam_role role
|
|
LEFT JOIN iam_role_permission grant_row
|
|
ON grant_row.role_id=role.id AND grant_row.tenant_id=role.tenant_id
|
|
LEFT JOIN iam_permission permission ON permission.id=grant_row.permission_id
|
|
AND permission.permission_code IN (
|
|
'merchant:warehouse:delivery:list')
|
|
WHERE role.role_code='MERCHANT_OWNER' AND role.app_code='MERCHANT'
|
|
AND role.status='ACTIVE' AND role.deleted=0
|
|
GROUP BY role.id HAVING COUNT(DISTINCT permission.permission_code) <> 1) THEN
|
|
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT='五期海外派送权限初始化失败:客户默认管理员授权不完整';
|
|
END IF;
|
|
END$$
|
|
DELIMITER ;
|
|
CALL assert_phase5_delivery_permissions();
|
|
DROP PROCEDURE assert_phase5_delivery_permissions;
|
|
DROP TEMPORARY TABLE tmp_phase5_delivery_role_permission;
|