Files
qhmes/jeecg-boot/db/mes-fix-rubber-category-visible.sql
2026-06-02 16:32:10 +08:00

65 lines
2.0 KiB
Java
Raw Permalink 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.
-- 修复胶料分类字典XSLMES_RUBBER数据库有数据但页面不展示
-- 场景开启多租户后sys_category tenant_id 与当前登录租户不一致/为空
SET NAMES utf8mb4;
-- 1) 目标租户默认取 admin 用户租户若为空则回退到 0
SET @target_tenant_id = (
SELECT COALESCE(tenant_id, 0)
FROM sys_user
WHERE username = 'admin'
ORDER BY create_time ASC
LIMIT 1
);
SET @target_tenant_id = IFNULL(@target_tenant_id, 0);
-- 2) 定位根分类编码
SET @rubber_code = 'XSLMES_RUBBER';
-- 若根节点不存在则补一个最小根节点避免前端 pcode 查询直接失败
INSERT INTO sys_category (id, pid, name, code, has_child, tenant_id, create_by, create_time, update_by, update_time)
SELECT '1994000000000000001', '0', 'MES胶料分类', @rubber_code, '1', @target_tenant_id, 'admin', NOW(), 'admin', NOW()
FROM dual
WHERE NOT EXISTS (
SELECT 1 FROM sys_category WHERE code = @rubber_code
);
SET @rubber_root_id = (
SELECT id
FROM sys_category
WHERE code = @rubber_code
ORDER BY create_time ASC
LIMIT 1
);
-- 3) 若根节点存在统一修复租户与父子标记
UPDATE sys_category
SET tenant_id = @target_tenant_id
WHERE id = @rubber_root_id;
UPDATE sys_category
SET tenant_id = @target_tenant_id
WHERE pid = @rubber_root_id;
-- 根节点是否有子节点按真实数据回写
UPDATE sys_category
SET has_child = CASE
WHEN EXISTS (SELECT 1 FROM (SELECT id FROM sys_category WHERE pid = @rubber_root_id LIMIT 1) t) THEN '1'
ELSE '0'
END
WHERE id = @rubber_root_id;
-- 子节点统一标记为无子当前这批分类通常为叶子
UPDATE sys_category
SET has_child = '0'
WHERE pid = @rubber_root_id;
-- 4) 结果检查执行后看返回
SELECT 'ROOT' AS level_tag, id, pid, code, name, tenant_id, has_child
FROM sys_category
WHERE id = @rubber_root_id
UNION ALL
SELECT 'CHILD' AS level_tag, id, pid, code, name, tenant_id, has_child
FROM sys_category
WHERE pid = @rubber_root_id
ORDER BY level_tag, code;