1.0.382.sql 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. -- 1.0.382:Phase 1J S7 FQC 检验单详情统一页 result-detail 隐藏菜单 + 角色授权
  2. -- 背景:抽屉 + 旧录入页收敛为单一路由页 /aidop/s7/fqc/result-detail(组件 fqcInspResultDetail)。
  3. -- 任务列表/结果列表/审批中心 N1-N3 均跳此页;页面按 flowState 决定录入/审核/处置/只读。
  4. -- 幂等:菜单按 Id NOT EXISTS 插入;授权按 (RoleId,MenuId) NOT EXISTS 插入,SysRoleMenu.Id = MAX(Id)+每行固定 rn(确定唯一,避免 @变量在 MySQL8 求值顺序未定义导致重复 PK)。
  5. -- 授权口径:并集 = 旧 insp-detail(1329017010007) ∪ result-list(1329017010002) 的 14 个既有角色
  6. -- + S5 IQC / S6 IPQC / S7 FQC 共 9 个检验角色(保证仅绑检验角色的用户也能进详情页)。
  7. -- 方言:MySQL(主库 aidopdev)。SysMenu / SysRoleMenu 为框架表 PascalCase。
  8. -- ① 隐藏菜单:FQC检验单详情(Id=1329017010008,Pid=成品质量管理目录 1322000000023)
  9. INSERT INTO SysMenu (Id, Pid, Type, Title, Name, Path, Component, Icon, IsIframe, IsHide, IsKeepAlive, IsAffix, OrderNo, Status, CreateTime)
  10. SELECT 1329017010008, 1322000000023, 2, 'FQC检验单详情', 'aidopS7FqcResultDetail',
  11. '/aidop/s7/fqc/result-detail', '/aidop/s7/fqc/fqcInspResultDetail', 'ele-Document',
  12. 0, 1, 1, 0, 45, 1, NOW()
  13. WHERE NOT EXISTS (SELECT 1 FROM SysMenu WHERE Id = 1329017010008);
  14. -- ② 角色授权(并集 14 + 检验角色 9;仅补缺,Id = MAX+固定行号 rn)
  15. INSERT INTO SysRoleMenu (Id, RoleId, MenuId)
  16. SELECT base.m + t.rn, t.RoleId, 1329017010008
  17. FROM (SELECT COALESCE(MAX(Id), 0) AS m FROM SysRoleMenu) base
  18. CROSS JOIN (
  19. SELECT 1300000000101 AS RoleId, 1 AS rn
  20. UNION ALL SELECT 1300000000106, 2
  21. UNION ALL SELECT 1300000000777, 3
  22. UNION ALL SELECT 1300000000888, 4
  23. UNION ALL SELECT 789818613628997, 5
  24. UNION ALL SELECT 795859517808709, 6
  25. UNION ALL SELECT 795859651027013, 7
  26. UNION ALL SELECT 795860051161157, 8
  27. UNION ALL SELECT 798583831580741, 9
  28. UNION ALL SELECT 829309961850949, 10
  29. UNION ALL SELECT 837196242882629, 11
  30. UNION ALL SELECT 838258976469061, 12
  31. UNION ALL SELECT 838258980438085, 13
  32. UNION ALL SELECT 838259499909189, 14
  33. UNION ALL SELECT 1329915010001, 15
  34. UNION ALL SELECT 1329915010002, 16
  35. UNION ALL SELECT 1329915010003, 17
  36. UNION ALL SELECT 1329915020001, 18
  37. UNION ALL SELECT 1329915020002, 19
  38. UNION ALL SELECT 1329915020003, 20
  39. UNION ALL SELECT 1329916010001, 21
  40. UNION ALL SELECT 1329916010002, 22
  41. UNION ALL SELECT 1329916010003, 23
  42. ) t
  43. WHERE NOT EXISTS (SELECT 1 FROM SysRoleMenu x WHERE x.RoleId = t.RoleId AND x.MenuId = 1329017010008);