OrgMapper.xml 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="com.dk.mdm.mapper.mst.OrgMapper">
  4. <!-- 通用设置 -->
  5. <!-- 通用查询列 -->
  6. <sql id="Base_Column_List">
  7. org_id
  8. , org_name, parent_id, display_no, top_id, level_upper, level_lower, level_leaf, level_no, level_code
  9. , level_name, remarks, flg_valid, cp_id, op_create_time, op_create_user_id, op_update_time, op_update_user_id
  10. , op_app_code, op_timestamp, op_db_user, org_code
  11. </sql>
  12. <sql id="Base_Column_List_view">
  13. parent.org_id
  14. ,parent.org_name
  15. ,parent.parent_id
  16. ,parent.flg_business
  17. ,parent.display_no
  18. ,parent.top_id
  19. ,parent.level_upper
  20. ,parent.level_lower
  21. ,parent.level_leaf
  22. ,parent.level_no
  23. ,parent.level_code
  24. ,parent.level_name
  25. ,parent.remarks
  26. ,parent.flg_valid
  27. ,parent.cp_id
  28. ,
  29. (
  30. SELECT
  31. string_agg ( ma.mac_name, ',' )
  32. FROM
  33. dkic_b.t_mst_org_mac AS orgMac
  34. left join dkic_b.t_mst_money_account ma on orgMac.mac_id=ma.mac_id
  35. WHERE
  36. orgMac.org_id = parent.org_id
  37. ) AS "orgMac"
  38. ,
  39. (
  40. SELECT
  41. string_agg ( wh.wh_name, ',' )
  42. FROM
  43. dkic_b.t_mst_org_wh AS orgWh
  44. left join dkic_b.t_mst_warehouse wh on wh.wh_id=orgWh.wh_id
  45. WHERE
  46. orgWh.org_id = parent.org_id
  47. ) AS "whName"
  48. </sql>
  49. <sql id="Base_Column_List_viewp">
  50. tparent.org_id
  51. ,tparent.org_name
  52. ,tparent.parent_id
  53. ,tparent.flg_business
  54. ,tparent.display_no
  55. ,tparent.top_id
  56. ,tparent.level_upper
  57. ,tparent.level_lower
  58. ,tparent.level_leaf
  59. ,tparent.level_no
  60. ,tparent.level_code
  61. ,tparent.level_name
  62. ,tparent.remarks
  63. ,tparent.flg_valid
  64. ,tparent.cp_id
  65. ,
  66. (
  67. SELECT
  68. string_agg ( ma.mac_name, ',' )
  69. FROM
  70. dkic_b.t_mst_org_mac AS orgMac
  71. left join dkic_b.t_mst_money_account ma on orgMac.mac_id=ma.mac_id
  72. WHERE
  73. orgMac.org_id = tparent.org_id
  74. ) AS "orgMac"
  75. ,
  76. (
  77. SELECT
  78. string_agg ( wh.wh_name, ',' )
  79. FROM
  80. dkic_b.t_mst_org_wh AS orgWh
  81. left join dkic_b.t_mst_warehouse wh on wh.wh_id=orgWh.wh_id
  82. WHERE
  83. orgWh.org_id = tparent.org_id
  84. ) AS "whName"
  85. </sql>
  86. <sql id="Base_Column_List_viewT">
  87. T.org_id
  88. ,T.org_name
  89. ,T.parent_id
  90. ,T.display_no
  91. ,T.flg_business
  92. ,T.top_id
  93. ,T.level_upper
  94. ,T.level_lower
  95. ,T.level_leaf
  96. ,T.level_no
  97. ,T.level_code
  98. ,T.level_name
  99. ,T.remarks
  100. ,T.flg_valid
  101. ,T.cp_id
  102. ,
  103. T."orgMac"
  104. ,
  105. T."whName"
  106. </sql>
  107. <!-- 通用查询映射结果 -->
  108. <resultMap id="BaseResultMap" type="com.dk.mdm.model.pojo.mst.Org">
  109. <id column="org_id" property="orgId"/>
  110. <result column="org_name" property="orgName"/>
  111. <result column="parent_id" property="parentId" typeHandler="UuidTypeHandler"/>
  112. <result column="display_no" property="displayNo"/>
  113. <result column="parent_name" property="parentName"/>
  114. <result column="flg_business" property="flgBusiness"/>
  115. <result column="top_id" property="topId" typeHandler="UuidTypeHandler"/>
  116. <result column="level_upper" property="levelUpper" typeHandler="UuidListTypeHandler"/>
  117. <result column="level_lower" property="levelLower" typeHandler="UuidListTypeHandler"/>
  118. <result column="level_leaf" property="levelLeaf"/>
  119. <result column="level_no" property="levelNo"/>
  120. <result column="level_code" property="levelCode"/>
  121. <result column="level_name" property="levelName"/>
  122. <result column="remarks" property="remarks"/>
  123. <result column="flg_valid" property="flgValid"/>
  124. <result column="cp_id" property="cpId"/>
  125. <result column="op_create_time" property="opCreateTime" typeHandler="TimestampTypeHandler"/>
  126. <result column="op_create_user_id" property="opCreateUserId" typeHandler="UuidTypeHandler"/>
  127. <result column="op_update_time" property="opUpdateTime" typeHandler="TimestampTypeHandler"/>
  128. <result column="op_update_user_id" property="opUpdateUserId" typeHandler="UuidTypeHandler"/>
  129. <result column="op_app_code" property="opAppCode"/>
  130. <result column="op_timestamp" property="opTimestamp" typeHandler="TimestampTypeHandler"/>
  131. <result column="op_db_user" property="opDbUser"/>
  132. <result column="org_code" property="orgCode"/>
  133. <collection property="itemData" javaType="java.util.ArrayList" ofType="com.dk.mdm.model.pojo.mst.Org"
  134. column="org_item_id">
  135. <id column="org_item_id" property="orgId"/>
  136. <result column="org_item_name" property="orgName"/>
  137. </collection>
  138. </resultMap>
  139. <!-- 通用查询映射结果 -->
  140. <resultMap id="BaseResultMapResponse" type="com.dk.common.model.response.mst.OrgResponse">
  141. <id column="org_id" property="orgId"/>
  142. <result column="org_name" property="orgName"/>
  143. <result column="parent_id" property="parentId" typeHandler="UuidTypeHandler"/>
  144. <result column="flg_business" property="flgBusiness"/>
  145. <result column="display_no" property="displayNo"/>
  146. <result column="top_id" property="topId" typeHandler="UuidTypeHandler"/>
  147. <result column="level_upper" property="levelUpper" typeHandler="UuidListTypeHandler"/>
  148. <result column="level_lower" property="levelLower" typeHandler="UuidListTypeHandler"/>
  149. <result column="level_leaf" property="levelLeaf"/>
  150. <result column="level_no" property="levelNo"/>
  151. <result column="level_code" property="levelCode"/>
  152. <result column="level_name" property="levelName"/>
  153. <result column="remarks" property="remarks"/>
  154. <result column="flg_valid" property="flgValid"/>
  155. <result column="cp_id" property="cpId"/>
  156. <result column="op_create_time" property="opCreateTime" typeHandler="TimestampTypeHandler"/>
  157. <result column="op_create_user_id" property="opCreateUserId" typeHandler="UuidTypeHandler"/>
  158. <result column="op_update_time" property="opUpdateTime" typeHandler="TimestampTypeHandler"/>
  159. <result column="op_update_user_id" property="opUpdateUserId" typeHandler="UuidTypeHandler"/>
  160. <result column="op_app_code" property="opAppCode"/>
  161. <result column="op_timestamp" property="opTimestamp" typeHandler="TimestampTypeHandler"/>
  162. <result column="op_db_user" property="opDbUser"/>
  163. <result column="org_code" property="orgCode"/>
  164. <result column="whName" property="whName"/>
  165. <result column="orgMac" property="orgMac"/>
  166. <collection property="itemData" javaType="java.util.ArrayList" ofType="com.dk.mdm.model.pojo.mst.Org"
  167. column="org_item_id">
  168. <id column="org_item_id" property="orgId"/>
  169. <result column="org_item_name" property="orgName"/>
  170. </collection>
  171. </resultMap>
  172. <!-- 通用条件列 -->
  173. <sql id="Condition">
  174. <where>
  175. <if test="orgName != null and orgName != ''">
  176. AND parent.org_name = #{orgName}
  177. </if>
  178. <if test="flgValidList != null and flgValidList.size>0">
  179. AND parent.flg_valid =any(#{flgValidList, typeHandler=BooleanListTypeHandler})
  180. </if>
  181. <if test="flgValid != null">
  182. AND flg_valid = #{flgValid}
  183. </if>
  184. <if test="cpId != null">
  185. AND parent.cp_id = #{cpId}
  186. </if>
  187. <if test="parentId != null and parentId != ''">
  188. AND parent.parent_id = #{parentId}::uuid
  189. </if>
  190. <if test="filterFlag != null and filterFlag != ''">
  191. AND level_code NOT LIKE concat(#{levelCode}, '%')
  192. </if>
  193. <if test="searchText !=null">
  194. AND parent.org_name LIKE concat('%',my_ex.likequery(#{searchText}), '%')
  195. </if>
  196. <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
  197. limit #{end} offset #{start}
  198. </if>
  199. </where>
  200. </sql>
  201. <!-- 通用条件列 -->
  202. <sql id="Condition_no_page">
  203. <where>
  204. <if test="orgName != null and orgName != ''">
  205. AND parent.org_name = #{orgName}
  206. </if>
  207. <if test="flgValidList != null and flgValidList.size>0">
  208. AND parent.flg_valid =any(#{flgValidList, typeHandler=BooleanListTypeHandler})
  209. </if>
  210. <if test="flgValid != null">
  211. AND flg_valid = #{flgValid}
  212. </if>
  213. <if test="cpId != null">
  214. AND parent.cp_id = #{cpId}
  215. </if>
  216. <if test="parentId != null and parentId != ''">
  217. AND parent.parent_id = #{parentId}::uuid
  218. </if>
  219. <if test="filterFlag != null and filterFlag != ''">
  220. AND level_code NOT LIKE concat(#{levelCode}, '%')
  221. </if>
  222. <if test="searchText !=null">
  223. AND parent.org_name LIKE concat('%',my_ex.likequery(#{searchText}), '%')
  224. </if>
  225. </where>
  226. </sql>
  227. <!-- 查询表t_mst_org,(条件查询+分页)列表 -->
  228. <select id="selectByCond" resultMap="BaseResultMapResponse">
  229. SELECT
  230. <include refid="Base_Column_List_view"/>
  231. FROM
  232. dkic_b.t_mst_org AS parent
  233. <include refid="Condition"/>
  234. </select>
  235. <!-- 查询表t_mst_org,(条件查询+分页)列表 -->
  236. <select id="selectByCondTree" resultMap="BaseResultMapResponse">
  237. SELECT
  238. <include refid="Base_Column_List_viewT"/>
  239. FROM
  240. (
  241. SELECT
  242. <include refid="Base_Column_List_view"/>
  243. FROM
  244. dkic_b.t_mst_org AS parent
  245. <include refid="Condition_no_page"/>
  246. UNION ALL
  247. SELECT
  248. <include refid="Base_Column_List_viewp"/>
  249. FROM
  250. dkic_b.t_mst_org AS parent
  251. LEFT JOIN dkic_b.t_mst_org AS tparent ON parent.org_id = ANY ( tparent.level_lower )
  252. <include refid="Condition_no_page"/>
  253. ) T
  254. WHERE T.org_id IS NOT NULL
  255. GROUP BY
  256. <include refid="Base_Column_List_viewT"/>
  257. </select>
  258. <select id="resetLevelOrg" resultType="java.lang.Boolean">
  259. select dkic_b.f_reset_level_org(#{cpId}, #{topId}::uuid)
  260. </select>
  261. <!-- 查询表t_mst_org,(条件查询)个数 -->
  262. <select id="countByCond" resultType="Long">
  263. SELECT
  264. count(1)
  265. FROM dkic_b.t_mst_org parent
  266. <include refid="Condition"/>
  267. </select>
  268. <!-- 根据主键查询表t_mst_org的一行数据 -->
  269. <select id="selectById" resultMap="BaseResultMap">
  270. SELECT
  271. <include refid="Base_Column_List_view"/>
  272. ,tmg.org_name as parent_name
  273. ,parent.org_code
  274. FROM dkic_b.t_mst_org AS parent
  275. left join dkic_b.t_mst_org tmg on tmg.org_id=parent.parent_id
  276. WHERE parent.org_id = #{id}::uuid
  277. </select>
  278. <!-- 根据主键锁定表t_mst_org的一行数据 -->
  279. <select id="selectByIdForUpdate" resultMap="BaseResultMap">
  280. SELECT
  281. <include refid="Base_Column_List"/>
  282. FROM dkic_b.t_mst_org
  283. WHERE org_id = #{orgId}
  284. for update
  285. </select>
  286. <select id="selectChooseOrg" resultType="com.dk.common.model.response.mst.OrgResponse">
  287. SELECT
  288. <include refid="Base_Column_List_view"/>
  289. FROM dkic_b.t_mst_org parent
  290. <include refid="Condition"/>
  291. ORDER BY level_code
  292. </select>
  293. </mapper>