费用提交
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
# 单测试环境数据库空库初始化
|
||||
|
||||
`overseas-fee-menu-finance-parent-repair.sql` 为已有 `baiyue_iam` 的定向权限修复:将菜单 `platform:overseas-fee:list` 改名为“海外费用明细”,父菜单设为 `platform:finance`(财务管理),保留原路由和 PLATFORM_ADMIN 授权;可重复执行,目标菜单缺失或权限身份冲突时停止。
|
||||
|
||||
`overseas-procurement-test-data-reset.sql` 为用户已确认可丢弃采购造数后的测试专用重置脚本:仅清空六张当前采购专属表,删除二十一张旧采购表;不会修改共用费用、余额、文件对象、库存或其他业务表,也不处理共用表的历史采购关联记录或退款。先停止采购写入并更新分离后的后端,完整执行文件、遇错停止,禁止 `--force`;DELETE 使用事务,后续 DROP 为隐式提交,不能整体回滚。无需存储过程、DELIMITER 或确认变量;成功返回 `procurement_test_reset_complete`,两个数量均为 0,成功后可重复执行。2026-10-27 已在本地隔离 MySQL 8.0.40 使用真实 27 表定义、三张 APPROVED 单及收货/出库/旧费用记录验证两次执行成功,共用表对照数据不变;未连接用户目标数据库,不表示部署完成。
|
||||
|
||||
`finance-receivable-active-uniqueness-repair.sql` 为 TEST 应收作废后重新建单的定向约束修复,仅以一条原子 ALTER 将 `baiyue_finance.fin_settlement` 的全历史唯一键替换为有效应收唯一键;作废历史仍保留原对账单关联,同一客户、同一对账单最多一张未作废应收。须先具备 Finance 重开校验版本 `fe89b8a2b875`,再单独授权执行 SQL;不修改业务金额、不清理或回填数据、不重放空库基线。执行前后核对表结构与记录总数,遇错停止,结果不明确先回查;脚本存在不表示已执行。
|
||||
|
||||
@@ -0,0 +1,83 @@
|
||||
-- 海外费用菜单定向修复,MySQL 8.0+,目标只能 baiyue_iam。
|
||||
-- 将“海外费用管理”改为“海外费用明细”,并挂到“财务管理”下。
|
||||
-- 权限码、路由和角色授权保持不变;可重复执行。
|
||||
USE baiyue_iam;
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
DROP PROCEDURE IF EXISTS repair_overseas_fee_menu_parent;
|
||||
DELIMITER $$
|
||||
CREATE PROCEDURE repair_overseas_fee_menu_parent()
|
||||
BEGIN
|
||||
DECLARE v_menu_changed INT DEFAULT 0;
|
||||
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
||||
BEGIN
|
||||
ROLLBACK;
|
||||
RESIGNAL;
|
||||
END;
|
||||
|
||||
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 parent menu platform:finance is missing or inactive';
|
||||
END IF;
|
||||
|
||||
IF EXISTS (SELECT 1 FROM iam_permission
|
||||
WHERE (id=5117200 AND (permission_code<>'platform:overseas-fee:list'
|
||||
OR tenant_id<>0 OR app_code<>'PLATFORM' OR permission_type<>'MENU'))
|
||||
OR (permission_code='platform:overseas-fee:list'
|
||||
AND (id<>5117200 OR tenant_id<>0 OR app_code<>'PLATFORM'
|
||||
OR permission_type<>'MENU'))) THEN
|
||||
SIGNAL SQLSTATE '45000'
|
||||
SET MESSAGE_TEXT='Overseas fee menu permission identity conflict';
|
||||
END IF;
|
||||
|
||||
IF (SELECT COUNT(*) FROM iam_permission
|
||||
WHERE id=5117200 AND tenant_id=0 AND app_code='PLATFORM'
|
||||
AND permission_type='MENU' AND permission_code='platform:overseas-fee:list')<>1 THEN
|
||||
SIGNAL SQLSTATE '45000'
|
||||
SET MESSAGE_TEXT='Overseas fee menu platform:overseas-fee:list is missing';
|
||||
END IF;
|
||||
|
||||
START TRANSACTION;
|
||||
UPDATE iam_permission
|
||||
SET parent_id=5105000,
|
||||
permission_name='海外费用明细',
|
||||
route_path='/overseas-business/fees',
|
||||
http_method='GET',
|
||||
sort_no=60,
|
||||
status='ACTIVE',
|
||||
deleted=0,
|
||||
updated_at=CURRENT_TIMESTAMP(3)
|
||||
WHERE id=5117200 AND tenant_id=0 AND app_code='PLATFORM'
|
||||
AND permission_type='MENU' AND permission_code='platform:overseas-fee:list'
|
||||
AND (parent_id<>5105000 OR permission_name<>'海外费用明细'
|
||||
OR route_path<>'/overseas-business/fees' OR http_method<>'GET'
|
||||
OR sort_no<>60 OR status<>'ACTIVE' OR deleted<>0);
|
||||
SET v_menu_changed=ROW_COUNT();
|
||||
|
||||
-- 菜单实际变化时递增已获该菜单权限用户的安全版本,刷新旧授权快照。
|
||||
IF v_menu_changed>0 THEN
|
||||
INSERT INTO iam_security_subject_version(auth_user_id,permission_version)
|
||||
SELECT DISTINCT u.auth_user_id,1
|
||||
FROM iam_user u
|
||||
JOIN iam_membership m ON m.user_id=u.id AND m.tenant_id=0
|
||||
JOIN iam_membership_role mr ON mr.membership_id=m.id AND mr.tenant_id=0
|
||||
JOIN iam_role r ON r.id=mr.role_id AND r.tenant_id=0
|
||||
JOIN iam_role_permission rp ON rp.role_id=r.id
|
||||
AND rp.permission_id=5117200 AND rp.tenant_id=0
|
||||
WHERE u.auth_user_id IS NOT NULL AND u.status='ACTIVE' AND u.deleted=0
|
||||
AND m.status='ACTIVE' AND m.deleted=0
|
||||
AND r.app_code='PLATFORM' AND r.status='ACTIVE' AND r.deleted=0
|
||||
ON DUPLICATE KEY UPDATE permission_version=permission_version+1;
|
||||
END IF;
|
||||
|
||||
COMMIT;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
CALL repair_overseas_fee_menu_parent();
|
||||
DROP PROCEDURE repair_overseas_fee_menu_parent;
|
||||
|
||||
SELECT id,parent_id,permission_code,permission_name,route_path,sort_no
|
||||
FROM iam_permission WHERE id IN (5105000,5117200) ORDER BY id;
|
||||
@@ -8462,6 +8462,6 @@ CREATE TABLE wh_document_sequence (
|
||||
|
||||
-- 海外费用查询菜单;编辑、审核继续使用独立财务按钮授权。
|
||||
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,created_at,updated_at,deleted) VALUES (5117200,0,'PLATFORM','MENU',0,'platform:overseas-fee:list','海外费用管理','/overseas-business/fees','GET',890,'ACTIVE',1,CURRENT_TIMESTAMP(3),CURRENT_TIMESTAMP(3),0);
|
||||
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,created_at,updated_at,deleted) VALUES (5117200,0,'PLATFORM','MENU',5105000,'platform:overseas-fee:list','海外费用明细','/overseas-business/fees','GET',60,'ACTIVE',1,CURRENT_TIMESTAMP(3),CURRENT_TIMESTAMP(3),0);
|
||||
INSERT INTO iam_role_permission (role_id,permission_id,tenant_id,created_at) VALUES (4000001,5117200,0,CURRENT_TIMESTAMP(3));
|
||||
SELECT 'PASS' AS initialization_status, 'CN' AS region, 229 AS initialized_tables;
|
||||
|
||||
Reference in New Issue
Block a user