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

44 lines
1.1 KiB
SQL
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- =====================================================
-- 查找sys_menu表中重复的path记录
-- PostgreSQL 版本
-- =====================================================
-- 1. 查询重复的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;
-- 2. 查看具体重复path的详细信息
SELECT * FROM sys_menu
WHERE path IN (
SELECT path
FROM sys_menu
GROUP BY path
HAVING COUNT(*) > 1
)
ORDER BY path, menu_id;
-- 注意:执行上述查询后,根据结果执行下面的删除操作
-- 只保留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
WHERE path IN (
SELECT path
FROM sys_menu
GROUP BY path
HAVING COUNT(*) > 1
)
) t
WHERE rn > 1
);