分支
用户 liu <2021943741@qq.com>
星期四, 九月 17, 2026 13:33 +0800
提交者 liu <2021943741@qq.com>
星期四, 九月 17, 2026 13:33 +0800
提交e235b3b7f5a7db97fa8a71dc4a638d918af22c0e
目录 7915b6717ccca7f455e015e833577787b3cf2db1 目录 | zip | gz
上一版本 b08a6f05c20cbdb29ffc4d447aedb5ccdc2f607f 查看 | 对比
feat(sql): 迁移脚本补齐审批配置地基 + 采购计划/订单变更,并加订单审批测试

原 xgdl_review_audit_pending_changes.sql 只加了「审核人字段」和「审核按钮权限」,
缺少审批引擎本身:新环境只跑它,所有单据提交都会在
validateApprovalEnabledAndGetApprovers 处失败。

新增第四部分:
- system_approval_config / system_approval_config_user 建表
- 26 个业务类型种子(默认未启用)
- 审批配置页面菜单 + 查询/保存按钮;父级用 component/permission 锚点反查,
不硬编码菜单 ID
- erp_purchase_plan / erp_purchase_order 审核人四字段(原第一部分未覆盖这两张表)
- 两单的 audit 按钮权限
- 角色授权:本框架无超管绕过逻辑,:audit 与审批配置权限一律显式授予
super_admin 与 common

权限对账(grep 代码中的 ':audit' 与脚本比对)另发现 3 个代码已使用但脚本未建的菜单,
一并补入:aftersales:compensation、hrm:performance-appraise、mes:pd-product。
现代码 22 项 / 脚本 22 项,无缺漏无冗余。
开发库还实测出 mes:pd-product:audit、mes:pd-tech-confirm:audit 漏授 super_admin,
授权段的 NOT EXISTS 会顺带补齐。

脚本经 dry-run 验证:各插入语句算出的 parent_id 与开发库既有记录完全一致
(1 / 1065900 / 1065900 / 1065212 / 2666),幂等守卫在开发库上均为跳过、零新增。

测试:新增 scripts/test-purchase-order-api.js(接口级,24/24 通过)
与 scripts/test-purchase-order-ui.js(Playwright 端到端,自建种子数据)

注:本次提交同时带上了工作区里已有的既有加固(各菜单插入语句补
WHERE a.parent_id IS NOT NULL,防止锚点权限缺失时插入 parent_id=NULL 的孤立菜单),
该改动非本次所写,一并入库。

Co-Authored-By: Claude <noreply@anthropic.com>
已添加2个文件
已修改1个文件
888 ■■■■■ 文件已修改
scripts/test-purchase-order-api.js 284 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
scripts/test-purchase-order-ui.js 333 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
sql/mysql/xgdl_review_audit_pending_changes.sql 271 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史