1.0.543.verify.sql 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. -- S6-IPQC-BILL-PAGE-1 后置校验。每条语句必须返回真值标量,否则 AutoVersionUpdate 判失败。
  2. -- 1. 列表页菜单存在且配置正确(可见 Tab、KeepAlive 保留列表状态)
  3. SELECT COUNT(*) = 1 FROM SysMenu
  4. WHERE Id = 1329016020002 AND Pid = 1322000000020 AND Type = 2 AND Status = 1
  5. AND Path = '/aidop/s6/process-quality/ipqc-bill-list'
  6. AND Component = '/aidop/s6/process-quality/ipqcBillList'
  7. AND IsHide = 0 AND IsKeepAlive = 1;
  8. -- 2. 详情页菜单存在、隐藏、且 KeepAlive 必须为 0(强状态页面,不允许缓存旧 canEdit/flowState)
  9. SELECT COUNT(*) = 1 FROM SysMenu
  10. WHERE Id = 1329016020003 AND Pid = 1322000000020 AND Type = 2 AND Status = 1
  11. AND Path = '/aidop/s6/process-quality/ipqc-bill-detail/:id'
  12. AND Component = '/aidop/s6/process-quality/ipqcBillDetail'
  13. AND IsHide = 1 AND IsKeepAlive = 0;
  14. -- 3. 两个新菜单的租户面与入口菜单完全一致(继承而非硬编码)
  15. SELECT (SELECT COUNT(DISTINCT TenantId) FROM SysTenantMenu WHERE MenuId = 1329016020002)
  16. = (SELECT COUNT(DISTINCT TenantId) FROM SysTenantMenu WHERE MenuId = 1329016020001);
  17. SELECT (SELECT COUNT(DISTINCT TenantId) FROM SysTenantMenu WHERE MenuId = 1329016020003)
  18. = (SELECT COUNT(DISTINCT TenantId) FROM SysTenantMenu WHERE MenuId = 1329016020001);
  19. SELECT NOT EXISTS (
  20. SELECT 1 FROM (SELECT TenantId FROM SysTenantMenu WHERE MenuId = 1329016020001) a
  21. WHERE a.TenantId NOT IN (SELECT TenantId FROM SysTenantMenu WHERE MenuId = 1329016020002)
  22. );
  23. -- 4. 两个新菜单的角色面与入口菜单完全一致
  24. SELECT (SELECT COUNT(DISTINCT RoleId) FROM SysRoleMenu WHERE MenuId = 1329016020002)
  25. = (SELECT COUNT(DISTINCT RoleId) FROM SysRoleMenu WHERE MenuId = 1329016020001);
  26. SELECT (SELECT COUNT(DISTINCT RoleId) FROM SysRoleMenu WHERE MenuId = 1329016020003)
  27. = (SELECT COUNT(DISTINCT RoleId) FROM SysRoleMenu WHERE MenuId = 1329016020001);
  28. SELECT NOT EXISTS (
  29. SELECT 1 FROM (SELECT RoleId FROM SysRoleMenu WHERE MenuId = 1329016020001) a
  30. WHERE a.RoleId NOT IN (SELECT RoleId FROM SysRoleMenu WHERE MenuId = 1329016020002)
  31. );
  32. -- 5. 未新建权限码(与 S6 其余菜单一致,Permission 留空)
  33. SELECT COUNT(*) = 0 FROM SysMenu
  34. WHERE Id IN (1329016020002, 1329016020003) AND Permission IS NOT NULL AND Permission <> '';
  35. -- 6. 另一条链的既有菜单 1329016020001 未被本脚本改动(标题仍是原值)
  36. SELECT COUNT(*) = 1 FROM SysMenu
  37. WHERE Id = 1329016020001 AND Title = '过程检验单列表'
  38. AND Component = '/aidop/s6/process-quality/processInspectionList';
  39. -- 7. 幂等:两个新菜单各只有一行
  40. SELECT COUNT(*) = 2 FROM SysMenu WHERE Id IN (1329016020002, 1329016020003);