923d1a51d682e926a452b2185188d4a60c1a895c.svn-base 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. <?xml version="1.0" encoding='UTF-8'?>
  2. <queryMap desc="选择菜单">
  3. <query id="menu.Menu.Select" desc="获取菜单" fetchSize="10">
  4. <![CDATA[
  5. SELECT LEVEL, MNSCR_ID, MNSCR_NM FROM TBZ01_MNSCR
  6. WHERE MNSCR_TP = 'M' AND UPCHECK_YN = 'Y'
  7. START WITH P_MNSCR_ID = '*'
  8. CONNECT BY PRIOR MNSCR_ID = P_MNSCR_ID
  9. ORDER SIBLINGS BY MNSCR_DSP_SEQ
  10. ]]>
  11. </query>
  12. <query id="menu.User.Menu.Select" desc="获取用户菜单" fetchSize="10">
  13. <![CDATA[
  14. SELECT DISTINCT MNSCR_ID FROM TBZ01_MNSCR
  15. WHERE MNSCR_TP = 'M' AND UPCHECK_YN = 'Y'
  16. START WITH MNSCR_ID IN (
  17. SELECT DISTINCT P.MNSCR_ID
  18. FROM TBZ01_USERPRIV P INNER JOIN TBZ01_USER U ON (P.USER_CD = U.USER_CD)
  19. WHERE P.USER_CD IN (?, ?)
  20. AND NVL(U.LOCKED_YN, 'N') = 'N') -- 参数:用户、角色代码
  21. CONNECT BY PRIOR P_MNSCR_ID = MNSCR_ID -- 查找父菜单
  22. UNION
  23. SELECT DISTINCT MNSCR_ID FROM TBZ01_MNSCR
  24. WHERE MNSCR_TP = 'M' AND UPCHECK_YN = 'Y'
  25. START WITH P_MNSCR_ID IN (
  26. SELECT DISTINCT P.MNSCR_ID
  27. FROM TBZ01_USERPRIV P INNER JOIN TBZ01_USER U ON (P.USER_CD = U.USER_CD)
  28. WHERE P.USER_CD IN (?, ?)
  29. AND NVL(U.LOCKED_YN, 'N') = 'N') -- 参数:用户、角色代码
  30. CONNECT BY PRIOR MNSCR_ID = P_MNSCR_ID -- 查找子菜单
  31. ]]>
  32. </query>
  33. <query id="menu.Dept.Menu.Select" desc="获取部门菜单" fetchSize="10">
  34. <![CDATA[
  35. SELECT DISTINCT MNSCR_ID FROM TBZ01_MNSCR
  36. WHERE MNSCR_TP = 'M' AND UPCHECK_YN = 'Y'
  37. START WITH MNSCR_ID IN (
  38. SELECT DISTINCT MNSCR_ID FROM TBZ01_DEPTPRIV
  39. WHERE DT_CD IN (
  40. SELECT DEPT_CD FROM TBZ01_DEPT
  41. START WITH DEPT_CD = ? -- 参数:部门代码
  42. CONNECT BY PRIOR DEPT_CD = P_DEPT_CD))
  43. CONNECT BY PRIOR P_MNSCR_ID = MNSCR_ID -- 查找父菜单
  44. UNION
  45. SELECT DISTINCT MNSCR_ID FROM TBZ01_MNSCR
  46. WHERE MNSCR_TP = 'M' AND UPCHECK_YN = 'Y'
  47. START WITH P_MNSCR_ID IN (
  48. SELECT DISTINCT MNSCR_ID FROM TBZ01_DEPTPRIV
  49. WHERE DT_CD IN (
  50. SELECT DEPT_CD FROM TBZ01_DEPT
  51. START WITH DEPT_CD = ? -- 参数:部门代码
  52. CONNECT BY PRIOR DEPT_CD = P_DEPT_CD))
  53. CONNECT BY PRIOR MNSCR_ID = P_MNSCR_ID -- 查找子菜单
  54. ]]>
  55. </query>
  56. <query id="menu.User.Scr.Select" desc="获取用户界面" fetchSize="10">
  57. <![CDATA[
  58. SELECT LEVEL, MNSCR_ID, MNSCR_NM, MNSCR_URL FROM TBZ01_MNSCR
  59. WHERE UPCHECK_YN = 'Y'
  60. AND (MNSCR_TP = 'M' OR MNSCR_ID IN (
  61. SELECT DISTINCT MNSCR_ID FROM TBZ01_MNSCR
  62. WHERE MNSCR_TP = 'S'
  63. START WITH MNSCR_ID IN (
  64. SELECT DISTINCT MNSCR_ID FROM TBZ01_USERPRIV
  65. WHERE USER_CD IN (?, ?)) -- 参数:用户、角色代码
  66. CONNECT BY PRIOR MNSCR_ID = P_MNSCR_ID))
  67. START WITH MNSCR_ID = ? -- 参数:上级菜单(E01)
  68. CONNECT BY PRIOR MNSCR_ID = P_MNSCR_ID
  69. ORDER SIBLINGS BY MNSCR_DSP_SEQ
  70. ]]>
  71. </query>
  72. <query id="menu.Dept.Scr.Select" desc="获取部门界面" fetchSize="10">
  73. <![CDATA[
  74. SELECT DISTINCT MNSCR_ID FROM TBZ01_MNSCR
  75. WHERE UPCHECK_YN = 'Y'
  76. AND MNSCR_ID IN (
  77. SELECT DISTINCT MNSCR_ID FROM TBZ01_MNSCR
  78. WHERE MNSCR_TP = 'S'
  79. START WITH MNSCR_ID IN (
  80. SELECT DISTINCT MNSCR_ID FROM TBZ01_DEPTPRIV
  81. WHERE DT_CD IN (
  82. SELECT DEPT_CD FROM TBZ01_DEPT
  83. START WITH DEPT_CD = ? -- 参数:部门代码
  84. CONNECT BY PRIOR DEPT_CD = P_DEPT_CD))
  85. CONNECT BY PRIOR MNSCR_ID = P_MNSCR_ID)
  86. START WITH MNSCR_ID = ? -- 参数:上级菜单(E01)
  87. CONNECT BY PRIOR MNSCR_ID = P_MNSCR_ID
  88. ]]>
  89. </query>
  90. <query id="menu_01.select" desc="获取菜单(角色 and 部门 or 用户)" fetchSize="10">
  91. <![CDATA[
  92. SELECT LEVEL,
  93. MNSCR_ID, -- 菜单/画面 ID
  94. MNSCR_NM -- 菜单/画面名
  95. FROM TBZ01_MNSCR
  96. WHERE UPCHECK_YN = 'Y' AND MNSCR_ID IN (
  97. SELECT DISTINCT MNSCR_ID FROM TBZ01_MNSCR
  98. WHERE MNSCR_TP = 'M'
  99. AND ('Y' = ? OR MNSCR_ID IN ( -- 参数:最高管理
  100. SELECT DISTINCT MNSCR_ID FROM TBZ01_MNSCR
  101. START WITH MNSCR_ID IN (
  102. SELECT DISTINCT P_MNSCR_ID FROM TBZ01_MNSCR
  103. START WITH MNSCR_ID IN (
  104. SELECT DISTINCT MNSCR_ID FROM TBZ01_DEPTPRIV
  105. WHERE DT_CD IN (
  106. SELECT DEPT_CD FROM TBZ01_DEPT
  107. START WITH DEPT_CD = ? -- 参数:部门代码
  108. CONNECT BY PRIOR DEPT_CD = P_DEPT_CD))
  109. CONNECT BY PRIOR MNSCR_ID = P_MNSCR_ID) -- 查找子菜单
  110. CONNECT BY PRIOR P_MNSCR_ID = MNSCR_ID)) -- 查找父菜单
  111. START WITH MNSCR_ID IN (
  112. SELECT MNSCR_ID FROM TBZ01_USERPRIV
  113. WHERE USER_CD IN (?, ?)) -- 参数:用户、角色代码
  114. CONNECT BY PRIOR MNSCR_ID = P_MNSCR_ID)
  115. START WITH P_MNSCR_ID = '*'
  116. CONNECT BY PRIOR MNSCR_ID = P_MNSCR_ID -- 使菜单正常显示
  117. ORDER SIBLINGS BY MNSCR_DSP_SEQ
  118. ]]>
  119. </query>
  120. <query id="menu_02.select" desc="获取界面(角色 and 部门 or 用户)" fetchSize="10">
  121. <![CDATA[
  122. SELECT LEVEL,
  123. MNSCR_ID, -- 菜单/画面 ID
  124. MNSCR_NM, -- 菜单/画面名
  125. MNSCR_URL -- 菜单/画面URL路径
  126. FROM TBZ01_MNSCR
  127. WHERE UPCHECK_YN = 'Y' -- 菜单/界面必须有效
  128. AND (MNSCR_TP = 'M' OR MNSCR_ID IN (
  129. SELECT DISTINCT MNSCR_ID FROM TBZ01_MNSCR
  130. WHERE 'Y' = ? OR MNSCR_ID IN ( -- 参数:最高管理
  131. SELECT DISTINCT MNSCR_ID FROM TBZ01_MNSCR
  132. WHERE MNSCR_TP = 'S'
  133. START WITH MNSCR_ID IN (
  134. SELECT DISTINCT MNSCR_ID FROM TBZ01_DEPTPRIV
  135. WHERE DT_CD IN (
  136. SELECT DEPT_CD FROM TBZ01_DEPT
  137. START WITH DEPT_CD = ? -- 参数:部门代码
  138. CONNECT BY PRIOR DEPT_CD = P_DEPT_CD)) -- 子部门
  139. CONNECT BY PRIOR MNSCR_ID = P_MNSCR_ID) -- 子界面
  140. START WITH MNSCR_ID IN (
  141. SELECT MNSCR_ID FROM TBZ01_USERPRIV
  142. WHERE USER_CD IN (?, ?)) -- 参数:用户、角色代码
  143. CONNECT BY PRIOR MNSCR_ID = P_MNSCR_ID))
  144. START WITH MNSCR_ID = ? -- 参数:菜单代码 (如:E01)
  145. CONNECT BY PRIOR MNSCR_ID = P_MNSCR_ID
  146. ORDER SIBLINGS BY MNSCR_DSP_SEQ
  147. ]]>
  148. </query>
  149. </queryMap>