chore: menu SQL, graph sync, and mark payment-info split done

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
zlwuandCursor committed 2026-10-05 13:12:16 +08:00
1 parent d5ad755695
commit d5bfb895a7
14 files changed
+39587 -34647

No files matched your search

@@ -0,0 +1,97 @@
-- =============================================================================
-- 缴费信息独立菜单:显示与排序(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) 可选:为已有角色补授权(将 super_admin 角色 id 替换为实际值后取消注释)
-- INSERT INTO sys_role_menu (id, role_id, menu_id, tenant_no, create_time, update_time, del_flag)
-- SELECT UUID(), '<role_id>', '904b5173519411f1944300163e3bdd96', 'zkxw', NOW(), NOW(), 0
-- FROM DUAL
-- WHERE NOT EXISTS (
-- SELECT 1 FROM sys_role_menu rm
-- WHERE rm.menu_id = '904b5173519411f1944300163e3bdd96' AND rm.role_id = '<role_id>' AND rm.del_flag = 0
-- );
@@ -755,7 +755,7 @@ EOF
- Run: `./scripts/update-graph.sh all`(或分别 backend/frontend)
- Update design status if desired
- [ ] **Step 1: 菜单增量 SQL**
- [x] **Step 1: 菜单增量 SQL**
创建 `docs/sql/migrations/2026-10-05-unhide-payment-info-menu.sql`:
@@ -786,28 +786,28 @@ WHERE perms = 'cellStorage:paymentInfo:list'
若当前环境完全走 `menu.py` 前端模式、库中无该菜单,SQL 可写清注释「前端模式无需执行」,仍保留文件作为文档。
- [ ] **Step 2: 更新图谱**
- [x] **Step 2: 更新图谱**
```bash
./scripts/update-graph.sh all
```
- [ ] **Step 3: 冒烟清单(全部勾掉再收工)**
- [x] **Step 3: 冒烟清单(全部勾掉再收工)**
- [ ] 侧栏顺序:预签约 → 缴费信息 → 样本信息
- [ ] 协议单仅 3 Tab
- [ ] `protocol-audit?tab=payment-info` → 独立页流程看板
- [ ] 流程看板确认仍可用
- [ ] 按样本列表筛选/分页
- [ ] 详情确认后两边状态一致
- [ ] 财务确认页未回归破坏
- [ ] `pytest tests/test_sample_payment_progress.py tests/test_protocol_sample_payment.py -v` PASS
- [x] 侧栏顺序:预签约 → 缴费信息 → 样本信息
- [x] 协议单仅 3 Tab
- [x] `protocol-audit?tab=payment-info` → 独立页流程看板
- [x] 流程看板确认仍可用
- [x] 按样本列表筛选/分页
- [x] 详情确认后两边状态一致
- [x] 财务确认页未回归破坏
- [x] `pytest tests/test_sample_payment_progress.py tests/test_protocol_sample_payment.py -v` PASS
- [ ] **Step 4: 设计文档状态**
- [x] **Step 4: 设计文档状态**
将 `docs/superpowers/specs/2026-10-05-payment-info-standalone-menu-design.md` 顶部状态改为「已实现」(全部冒烟通过后)。
- [ ] **Step 5: Commit**
- [x] **Step 5: Commit**
```bash
git add docs/sql/migrations/2026-10-05-unhide-payment-info-menu.sql \
@@ -1,6 +1,6 @@
# 缴费信息独立菜单 + 按样本维度设计
> 状态:待实现
> 状态:已实现
> 日期:2026-10-05
> 界面模式:P02 复杂业务列表(按样本)+ 现有看板迁入;确认弹窗复用 P13 能力
> 参考页:`web-admin/src/views/cell-storage/sample-info/index.vue`、`protocol-audit/PaymentInfoTab.vue`、`/#/demo/order`