-- 平台入库单扣货独立写权限;查看入库单不会自动获得扣货能力。 USE baiyue_iam; SET NAMES utf8mb4; 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;