KlRelationMapper.xml 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  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.diagbot.mapper.KlRelationMapper">
  4. <!-- 通用查询映射结果 -->
  5. <resultMap id="BaseResultMap" type="com.diagbot.entity.KlRelation">
  6. <id column="id" property="id" />
  7. <result column="is_deleted" property="isDeleted" />
  8. <result column="gmt_create" property="gmtCreate" />
  9. <result column="gmt_modified" property="gmtModified" />
  10. <result column="creator" property="creator" />
  11. <result column="modifier" property="modifier" />
  12. <result column="start_id" property="startId" />
  13. <result column="relation_id" property="relationId" />
  14. <result column="end_id" property="endId" />
  15. <result column="status" property="status" />
  16. </resultMap>
  17. <select id="getMedClassMedList" resultType="com.diagbot.dto.MedClassMedDTO">
  18. SELECT
  19. a.lib_name AS medClassLibName,
  20. a.lib_type AS medClassLibType,
  21. b.relation_id AS relationId,
  22. c.lib_name AS medLibName,
  23. c.lib_type AS medLibType
  24. FROM
  25. kl_concept a,
  26. kl_relation b,
  27. kl_concept c
  28. WHERE
  29. a.is_deleted = 'N'
  30. AND b.is_deleted = 'N'
  31. AND c.is_deleted = 'N'
  32. AND a.id = b.start_id
  33. AND c.id = b.end_id
  34. AND a.lib_type IN ( 301, 302, 303, 304 )
  35. AND c.lib_type = 101
  36. AND b.relation_id = 600
  37. AND a.`status` = 1
  38. AND b.`status` = 1
  39. AND c.`status` = 1
  40. </select>
  41. <select id="getRelations" parameterType="com.diagbot.vo.RelationVO" resultType="com.diagbot.dto.RelationDTO">
  42. SELECT
  43. a.id AS sId,
  44. a.lib_name AS sName,
  45. a.lib_type AS sType,
  46. b.relation_id AS rId,
  47. c.id AS eId,
  48. c.lib_name AS eName,
  49. c.lib_type AS eType
  50. FROM
  51. kl_concept a,
  52. kl_relation b,
  53. kl_concept c,
  54. kl_relation_order d
  55. WHERE
  56. a.is_deleted = 'N'
  57. AND b.is_deleted = 'N'
  58. AND c.is_deleted = 'N'
  59. AND a.id = b.start_id
  60. AND c.id = b.end_id
  61. <if test="sType!=null">
  62. AND a.lib_type = #{sType}
  63. </if>
  64. <if test="rId!=null">
  65. AND b.relation_id = #{rId}
  66. </if>
  67. <if test="eType!=null">
  68. AND c.lib_type = #{eType}
  69. </if>
  70. AND a.`status` = 1
  71. AND b.`status` = 1
  72. AND c.`status` = 1
  73. AND b.id = d.t_relation_id
  74. AND d.is_deleted = 'N'
  75. ORDER BY
  76. a.id,
  77. d.order_no
  78. </select>
  79. <select id="getRelationNodeDTOs" resultType="com.diagbot.dto.RelationNodeDTO">
  80. SELECT
  81. d.id AS conceptId,
  82. d.lib_name AS conceptName,
  83. d.lib_type AS conceptTypeId,
  84. d.is_deleted AS isDeletedConcept,
  85. c.id AS parentConceptId,
  86. c.lib_name AS parentConceptName,
  87. c.lib_type AS parentConceptTypeId,
  88. e.id AS relationId,
  89. e.`name` AS relationName
  90. FROM kl_relation a LEFT JOIN kl_relation_order b ON a.id=b.t_relation_id
  91. JOIN kl_concept c ON a.start_id=c.id
  92. JOIN kl_concept d ON a.end_id=d.id
  93. JOIN kl_lexicon_relationship e ON a.relation_id=e.code
  94. WHERE 1=1
  95. AND a.is_deleted='N'
  96. AND e.is_deleted='N'
  97. AND a.start_id=#{conceptId}
  98. <if test="relationId!=null">
  99. AND a.relation_id=#{relationId}
  100. </if>
  101. <if test="endTypeId!=null">
  102. AND d.lib_type=#{endTypeId}
  103. </if>
  104. ORDER BY b.order_no ASC,a.gmt_modified DESC
  105. </select>
  106. <select id="getRelationNameDTOs"
  107. resultType="com.diagbot.dto.RelationNameDTO">
  108. SELECT
  109. m.*, kc.lib_name AS medName,
  110. kc.lib_type AS medLibType
  111. FROM
  112. (
  113. SELECT
  114. k.*, r.end_id AS medId
  115. FROM
  116. (
  117. SELECT
  118. klc1.id AS startId,
  119. klr1.relation_id AS relationId,
  120. klc1.lib_name AS startLibName,
  121. klr1.end_id AS endId,
  122. klc2.lib_name AS endLibName,
  123. klc2.lib_type AS libType
  124. FROM
  125. kl_relation klr1,
  126. kl_concept klc1,
  127. kl_concept klc2
  128. WHERE
  129. klr1.start_id = klc1.id
  130. AND klc2.id = klr1.end_id
  131. <if test="conceptIds!=null and conceptIds.size() > 0">
  132. AND klc1.id IN
  133. <foreach collection="conceptIds" item="item" index="index" open="(" separator="," close=")">
  134. #{item}
  135. </foreach>
  136. </if>
  137. <if test="relationId!=null">
  138. AND relation_id = #{relationId}
  139. </if>
  140. ) k,
  141. kl_relation r
  142. WHERE
  143. k.endId = r.start_id
  144. AND k.relationId = r.relation_id
  145. ) m,
  146. kl_concept kc
  147. WHERE
  148. m.medId = kc.id
  149. </select>
  150. </mapper>