ObjectDigitalMapper.xml 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.persagy.dmp.rwd.digital.dao.ObjectDigitalMapper">
  6. <resultMap id="BaseResultMap" type="com.persagy.dmp.digital.entity.ObjectDigital">
  7. <id property="id" column="id" jdbcType="VARCHAR"/>
  8. <result property="name" column="name" jdbcType="VARCHAR"/>
  9. <result property="localId" column="local_id" jdbcType="VARCHAR"/>
  10. <result property="localName" column="local_name" jdbcType="VARCHAR"/>
  11. <result property="groupCode" column="group_code" jdbcType="VARCHAR"/>
  12. <result property="projectId" column="project_id" jdbcType="VARCHAR"/>
  13. <result property="objType" column="obj_type" jdbcType="VARCHAR"/>
  14. <result property="classCode" column="class_code" jdbcType="VARCHAR"/>
  15. <result property="grouping" column="grouping" jdbcType="INTEGER"/>
  16. <result property="infos" column="infos" jdbcType="VARCHAR" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
  17. <result property="virtualCodes" column="virtual_codes" jdbcType="VARCHAR" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
  18. <result property="createApp" column="create_app" jdbcType="VARCHAR"/>
  19. <result property="updateApp" column="update_app" jdbcType="VARCHAR"/>
  20. <result property="creator" column="creator" jdbcType="VARCHAR"/>
  21. <result property="creationTime" column="creation_time" jdbcType="CHAR"/>
  22. <result property="modifier" column="modifier" jdbcType="VARCHAR"/>
  23. <result property="modifiedTime" column="modified_time" jdbcType="CHAR"/>
  24. <result property="valid" column="valid" jdbcType="TINYINT"/>
  25. <result property="ts" column="ts" jdbcType="TIMESTAMP"/>
  26. <result property="objFromIds" column="objFromIds" jdbcType="VARCHAR" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
  27. <result property="objToIds" column="objToIds" jdbcType="VARCHAR" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
  28. </resultMap>
  29. <resultMap id="count" type="com.persagy.dmp.digital.entity.ObjectDigital">
  30. <result property="totalCount" column="totalCount" jdbcType="INTEGER"/>
  31. </resultMap>
  32. <sql id="Base_Column_List">
  33. id,`name`,local_id,
  34. local_name,group_code,project_id,
  35. obj_type,class_code,grouping,
  36. infos,virtual_codes,create_app,
  37. update_app,creator,creation_time,
  38. modifier,modified_time,valid,
  39. ts
  40. </sql>
  41. <sql id="commonJoinQueryParam">
  42. <if test="param.projectId!=null and param.projectId.length>0">
  43. AND dto.project_id=#{param.projectId}
  44. </if>
  45. <if test="param.objTypes!=null and param.objTypes.size()>0">
  46. <foreach collection="param.objTypes" open="AND dto.obj_type IN(" close=")" separator="," item="objType">
  47. #{objType}
  48. </foreach>
  49. </if>
  50. <if test="param.classCodes!=null and param.classCodes.size()>0">
  51. <foreach collection="param.classCodes" open="AND ( " close=")" separator=" OR " item="classCode">
  52. dto.class_code LIKE CONCAT(#{classCode},'%')
  53. </foreach>
  54. </if>
  55. <if test="param.keyword!=null and param.keyword.length>0">
  56. AND dto.local_name LIKE CONCAT('%',#{param.keyword},'%')
  57. </if>
  58. <choose>
  59. <when test="param.validSet!=null and param.validSet.size()>0">
  60. <foreach collection="param.validSet" open="AND dto.valid IN(" close=")" separator="," item="valid">
  61. #{valid}
  62. </foreach>
  63. </when>
  64. <otherwise>
  65. AND dto.valid = TRUE
  66. </otherwise>
  67. </choose>
  68. <choose>
  69. <when test="param.createTimeScope!=null">
  70. <if test="param.createTimeScope.startEq!=null and param.createTimeScope.startEq.length>0">
  71. AND dto.creation_time&gt;=#{param.createTimeScope.startEq}
  72. </if>
  73. <if test="param.createTimeScope.endEq!=null and param.createTimeScope.endEq.length>0">
  74. AND dto.creation_time&lt;=#{param.createTimeScope.endEq}
  75. </if>
  76. </when>
  77. </choose>
  78. </sql>
  79. <sql id="queryObjByRel">
  80. (
  81. <include refid="commonQueryObjByRel">
  82. <property name="param" value="#{param}"/>
  83. </include>
  84. )
  85. <include refid="queryObjDataUnionEcData">
  86. <property name="param" value="#{param}"/>
  87. </include>
  88. </sql>
  89. <sql id="commonQueryObjByRel">
  90. <include refid="commonQueryObjByRelSub">
  91. <property name="param" value="#{param}"/>
  92. </include>
  93. <if test="param.relCodes!=null and param.relCodes.size()>0">
  94. <foreach collection="param.relCodes" open="AND dtr.rel_code IN (" close=")" separator="," item="relCode">
  95. #{relCode}
  96. </foreach>
  97. </if>
  98. GROUP BY dto.id
  99. </sql>
  100. <sql id="commonQueryObjByRelSub">
  101. SELECT DISTINCT
  102. dto.*,JSON_ARRAYAGG(dtr.obj_from) AS objFromIds,JSON_ARRAYAGG(dtr.obj_to) AS objToIds
  103. FROM dt_relation AS dtr
  104. LEFT JOIN dt_object AS dto ON (dtr.obj_from=dto.id OR dtr.obj_to=dto.id)
  105. WHERE 1=1
  106. <include refid="commonJoinQueryParam">
  107. <property name="param" value="#{param}"/>
  108. </include>
  109. </sql>
  110. <sql id="queryObjDataUnionEcData">
  111. <if test="param.queryEcFlag!=null and param.queryEcFlag='true'">
  112. UNION
  113. (<include refid="commonQueryObjByRelSub">
  114. <property name="param" value="#{param}"/>
  115. </include>
  116. <if test="param.ecRelCodes!=null and param.ecRelCodes.size()>0">
  117. <foreach collection="param.ecRelCodes" open="AND dtr.rel_code IN (" close=")" separator="," item="relCode">
  118. #{relCode}
  119. </foreach>
  120. </if>
  121. AND dtr.obj_from IN(
  122. SELECT DISTINCT
  123. dto.id
  124. FROM dt_relation AS dtr
  125. LEFT JOIN dt_object AS dto ON (dtr.obj_from=dto.id OR dtr.obj_to=dto.id)
  126. WHERE 1=1
  127. <include refid="commonJoinQueryParam">
  128. <property name="param" value="#{param}"/>
  129. </include>
  130. AND dto.obj_type='equipment'
  131. ) GROUP BY dto.id)
  132. </if>
  133. </sql>
  134. <sql id="pageSet">
  135. <if test="param.skip!=null and param.skip!=null and param.size!=0">
  136. limit #{param.skip},#{param.size}
  137. </if>
  138. </sql>
  139. <select id="queryObjectDigitalsByProjectId" resultMap="BaseResultMap,count">
  140. SELECT DISTINCT SQL_CALC_FOUND_ROWS
  141. *
  142. FROM dt_object dto
  143. WHERE 1=1
  144. <include refid="commonJoinQueryParam">
  145. <property name="param" value="#{param}"/>
  146. </include>
  147. <include refid="pageSet">
  148. <property name="param" value="#{param}"/>
  149. </include>
  150. ;
  151. SELECT FOUND_ROWS() AS totalCount;
  152. </select>
  153. <select id="queryObjectListBySuperiorId" resultMap="BaseResultMap,count">
  154. SELECT DISTINCT SQL_CALC_FOUND_ROWS
  155. dto.*
  156. FROM
  157. (
  158. <include refid="queryObjByRel">
  159. <property name="param" value="#{param}"/>
  160. </include>
  161. ) AS dto
  162. <include refid="pageSet">
  163. <property name="param" value="#{param}"/>
  164. </include>
  165. ;
  166. SELECT FOUND_ROWS() AS totalCount;
  167. </select>
  168. </mapper>