84 lines
5.1 KiB
SQL
84 lines
5.1 KiB
SQL
-- Finance G3/G4 permissions exposed by the frozen reconciliation and settlement controllers.
|
|
-- These resources are assignable to custom platform roles; this migration never grants them by default.
|
|
USE baiyue_iam;
|
|
SET NAMES utf8mb4;
|
|
|
|
DROP PROCEDURE IF EXISTS migrate_finance_g3_g4_permissions;
|
|
DELIMITER $$
|
|
CREATE PROCEDURE migrate_finance_g3_g4_permissions()
|
|
BEGIN
|
|
IF EXISTS (
|
|
SELECT 1
|
|
FROM iam_permission
|
|
WHERE (id = 5105026 AND permission_code <> 'platform:finance:reconciliation:create')
|
|
OR (id = 5105027 AND permission_code <> 'platform:finance:reconciliation:review')
|
|
OR (id = 5105028 AND permission_code <> 'platform:finance:reconciliation:issue')
|
|
OR (id = 5105029 AND permission_code <> 'platform:finance:reconciliation:adjust')
|
|
OR (id = 5105030 AND permission_code <> 'platform:finance:reconciliation:void')
|
|
OR (id = 5105031 AND permission_code <> 'platform:finance:settlement-ar:create')
|
|
OR (id = 5105032 AND permission_code <> 'platform:finance:settlement-ap:create')
|
|
OR (id = 5105035 AND permission_code <> 'platform:finance:payment:create')
|
|
OR (permission_code = 'platform:finance:reconciliation:create' AND id <> 5105026)
|
|
OR (permission_code = 'platform:finance:reconciliation:review' AND id <> 5105027)
|
|
OR (permission_code = 'platform:finance:reconciliation:issue' AND id <> 5105028)
|
|
OR (permission_code = 'platform:finance:reconciliation:adjust' AND id <> 5105029)
|
|
OR (permission_code = 'platform:finance:reconciliation:void' AND id <> 5105030)
|
|
OR (permission_code = 'platform:finance:settlement-ar:create' AND id <> 5105031)
|
|
OR (permission_code = 'platform:finance:settlement-ap:create' AND id <> 5105032)
|
|
OR (permission_code = 'platform:finance:payment:create' AND id <> 5105035)
|
|
OR (id BETWEEN 5105026 AND 5105035 AND (tenant_id <> 0 OR app_code <> 'PLATFORM'))
|
|
) THEN
|
|
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT='finance G3/G4 permission id/code conflict';
|
|
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
|
|
(5105026, 0, 'PLATFORM', 'BUTTON', 5105000, 'platform:finance:reconciliation:create', '生成和提交客户对账单', NULL, 'POST', 170, 'ACTIVE', 1, 0),
|
|
(5105027, 0, 'PLATFORM', 'BUTTON', 5105000, 'platform:finance:reconciliation:review', '审核客户对账单', NULL, 'POST', 180, 'ACTIVE', 1, 0),
|
|
(5105028, 0, 'PLATFORM', 'BUTTON', 5105000, 'platform:finance:reconciliation:issue', '出账客户对账单', NULL, 'POST', 190, 'ACTIVE', 1, 0),
|
|
(5105029, 0, 'PLATFORM', 'BUTTON', 5105000, 'platform:finance:reconciliation:adjust', '调整客户对账单', NULL, 'POST', 200, 'ACTIVE', 1, 0),
|
|
(5105030, 0, 'PLATFORM', 'BUTTON', 5105000, 'platform:finance:reconciliation:void', '作废或重开客户对账单', NULL, 'POST', 210, 'ACTIVE', 1, 0),
|
|
(5105031, 0, 'PLATFORM', 'BUTTON', 5105000, 'platform:finance:settlement-ar:create', '生成应收结算单', NULL, 'POST', 220, 'ACTIVE', 1, 0),
|
|
(5105032, 0, 'PLATFORM', 'BUTTON', 5105000, 'platform:finance:settlement-ap:create', '生成应付结算单', NULL, 'POST', 230, 'ACTIVE', 1, 0),
|
|
(5105035, 0, 'PLATFORM', 'BUTTON', 5105000, 'platform:finance:payment:create', '登记应付付款', NULL, 'POST', 260, '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;
|
|
|
|
DELETE rp
|
|
FROM iam_role_permission rp
|
|
JOIN iam_permission p ON p.id=rp.permission_id AND p.tenant_id=rp.tenant_id
|
|
WHERE p.tenant_id=0 AND p.app_code='PLATFORM'
|
|
AND p.permission_code IN ('platform:finance:settlement-ar:view','platform:finance:settlement-ap:view');
|
|
|
|
UPDATE iam_permission
|
|
SET status='INACTIVE', deleted=1
|
|
WHERE tenant_id=0 AND app_code='PLATFORM'
|
|
AND permission_code IN ('platform:finance:settlement-ar:view','platform:finance:settlement-ap:view');
|
|
|
|
IF (SELECT COUNT(*) FROM iam_permission
|
|
WHERE tenant_id=0 AND app_code='PLATFORM' AND parent_id=5105000
|
|
AND permission_code IN ('platform:finance:reconciliation:create','platform:finance:reconciliation:review',
|
|
'platform:finance:reconciliation:issue','platform:finance:reconciliation:adjust','platform:finance:reconciliation:void',
|
|
'platform:finance:settlement-ar:create','platform:finance:settlement-ap:create',
|
|
'platform:finance:payment:create')
|
|
AND status='ACTIVE' AND deleted=0) <> 8 THEN
|
|
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT='finance G3/G4 permission catalog is incomplete';
|
|
END IF;
|
|
|
|
IF (SELECT COUNT(*) FROM iam_permission
|
|
WHERE id=5105000 AND tenant_id=0 AND app_code='PLATFORM'
|
|
AND permission_type='MENU' AND permission_code='platform:finance'
|
|
AND status='ACTIVE' AND deleted=0) <> 1 THEN
|
|
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT='finance permission parent is invalid';
|
|
END IF;
|
|
END$$
|
|
DELIMITER ;
|
|
|
|
CALL migrate_finance_g3_g4_permissions();
|
|
DROP PROCEDURE IF EXISTS migrate_finance_g3_g4_permissions;
|