Files
zkxw/docs/sql/migrations/2026-10-05-unhide-payment-info-menu.sql
T
zlwuandCursor db31990ebe feat: 细胞存储缴费催缴、统一样本信息与协议支付能力增强
汇总近期业务改动:催缴菜单与后端、样本信息快捷登记与进度、运费关联、客户档案扩展、协议优惠/期次与押金划转,并同步 SQL 迁移与管理端页面收敛。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-10 21:20:37 +08:00

120 lines
3.9 KiB
SQL
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.
-- =============================================================================
-- 缴费信息独立菜单:显示与排序(2026-10-05)
-- =============================================================================
--
-- 【主路径 — 前端固定菜单】
-- 当前 Web 管理端使用 VITE_ACCESS_MODE=frontend,菜单树由以下两处维护,Task 4 已更新:
-- - backend/app/api/menu.py → CellStoragePaymentInfo(id 904b5173519411f1944300163e3bdd96)
-- - web-admin/src/router/modules/sqxp.ts → 预签约订单与样本信息管理之间,已取消 isHide
-- 前端模式环境 **无需执行** 本脚本;保留本文件供 DB 菜单模式或角色授权同步参考。
--
-- 【可选 — DB 菜单模式】
-- sys_menu 列名以 backend/app/models/models.py :: SysMenu 为准(docs/sql/zkxw.sql 无 sys_menu 段)。
-- visible: '1'=显示, '0'=隐藏(与 menu.py meta.isHide 映射一致,见 reorder_web_menus.py)
--
-- 细胞存储目录 parent_id: CEL00000000000000000000000000001
-- 预签约订单 id: 50000000000000000000000000000020
-- 缴费信息 id: 904b5173519411f1944300163e3bdd96 path=payment-info perms=cellStorage:paymentInfo:list
-- 样本信息 id: 50000000000000000000000000000013
-- =============================================================================
-- 1) 若库中已有该菜单(按 id 或 perms 匹配):取消隐藏并调整排序至预签约与样本信息之间
UPDATE sys_menu
SET del_flag = 0,
visible = '1',
status = '1',
order_num = (
SELECT mid_order FROM (
SELECT COALESCE(MAX(m2.order_num), 0) AS mid_order
FROM sys_menu m2
WHERE m2.del_flag = 0
AND (
m2.id = '50000000000000000000000000000020'
OR m2.perms = 'cell-storage:presign-order:list'
OR m2.path = 'presign-order'
)
) t
) + 1,
update_time = NOW()
WHERE del_flag = 0
AND (
id = '904b5173519411f1944300163e3bdd96'
OR perms = 'cellStorage:paymentInfo:list'
OR (path = 'payment-info' AND parent_id = 'CEL00000000000000000000000000001')
);
-- 2) 若不存在则幂等插入(仅 DB 菜单模式需要;前端模式可跳过)
INSERT INTO sys_menu (
id, menu_name, parent_id, menu_type, path, component, perms,
is_frame, visible, status, tenant_no, order_num, remark,
create_by, create_dept_id, create_time, update_by, update_time, del_flag
)
SELECT
'904b5173519411f1944300163e3bdd96',
'缴费信息',
'CEL00000000000000000000000000001',
'C',
'payment-info',
'/cell-storage/payment-info/index',
'cellStorage:paymentInfo:list',
1,
'1',
'1',
'zkxw',
COALESCE((
SELECT MAX(m2.order_num) + 1
FROM sys_menu m2
WHERE m2.del_flag = 0
AND (
m2.id = '50000000000000000000000000000020'
OR m2.perms = 'cell-storage:presign-order:list'
)
), 1),
'细胞存储:缴费信息(流程看板 + 按样本),独立于采集协议单',
NULL,
'',
NOW(),
NULL,
NOW(),
0
FROM DUAL
WHERE NOT EXISTS (
SELECT 1 FROM sys_menu m
WHERE m.del_flag = 0
AND (
m.id = '904b5173519411f1944300163e3bdd96'
OR m.perms = 'cellStorage:paymentInfo:list'
)
);
-- 3) 已有「采集协议单」权限的角色补授权(幂等)
INSERT INTO sys_role_menu (
id, role_id, menu_id, tenant_no, order_num, remark,
create_by, create_dept_id, create_time, update_by, update_time, del_flag
)
SELECT
MD5(CONCAT(r.id, '|904b5173519411f1944300163e3bdd96')),
r.id,
'904b5173519411f1944300163e3bdd96',
IFNULL(NULLIF(r.tenant_no, ''), 'zkxw'),
0,
'grant payment-info to protocol-audit roles',
NULL,
'',
NOW(),
NULL,
NOW(),
0
FROM sys_role r
INNER JOIN sys_role_menu rm
ON rm.role_id = r.id
AND rm.menu_id = '50000000000000000000000000000003'
AND rm.del_flag = 0
WHERE r.del_flag = 0
AND NOT EXISTS (
SELECT 1 FROM sys_role_menu x
WHERE x.role_id = r.id
AND x.menu_id = '904b5173519411f1944300163e3bdd96'
AND x.del_flag = 0
);