Files
his/sql/迁移记录-DB变更记录/find_and_fix_duplicate_path.sql
zhangfei 9c3e603b94 Fix Bug #443: 手术计费:点击签发耗材时异常报错
当手术计费弹窗中点击"签发"耗材时,因耗材的locationId(发放库房)为空导致后端异常。
在DoctorStationAdviceAppServiceImpl.handDevice方法中,当locationId为null时,使用登录用户的科室ID作为默认值,
与NurseBillingAppService中的处理方式保持一致。
2026-05-08 09:14:18 +08:00

38 lines
1.0 KiB
SQL
Executable File

-- =====================================================
-- 查找并修复 sys_menu 表中重复的 path 记录
-- PostgreSQL 版本
-- =====================================================
-- 第一步:查看是否有重复的 path
SELECT
path,
COUNT(*) as count,
STRING_AGG(CAST(menu_id AS TEXT), ', ') as menu_ids,
STRING_AGG(menu_name, ', ') as menu_names
FROM sys_menu
GROUP BY path
HAVING COUNT(*) > 1;
-- 第二步:查看具体重复记录的详细信息
-- (替换下面的重复路径值)
-- SELECT * FROM sys_menu WHERE path = 'your_duplicate_path_value' ORDER BY menu_id;
-- 第三步:自动删除重复的 path 记录(保留 menu_id 最小的)
DELETE FROM sys_menu
WHERE menu_id IN (
SELECT menu_id FROM (
SELECT menu_id,
ROW_NUMBER() OVER (PARTITION BY path ORDER BY menu_id) as rn
FROM sys_menu
) t
WHERE rn > 1
);
-- 第四步:验证是否还有重复的 path
SELECT
path,
COUNT(*) as count
FROM sys_menu
GROUP BY path
HAVING COUNT(*) > 1;