ObjectDigitalMapper.xml 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645
  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="modelId" column="modelId" jdbcType="VARCHAR"/>
  27. <result property="objFromIds" column="objFromIds" jdbcType="VARCHAR" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
  28. <result property="objToIds" column="objToIds" jdbcType="VARCHAR" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
  29. <result property="relObjs" column="relObjs" jdbcType="VARCHAR" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
  30. <result property="bimLocation" column="bimLocation" jdbcType="VARCHAR" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
  31. <result property="outLines" column="outLines" jdbcType="VARCHAR" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
  32. <result property="objTypeClassCodes" column="objTypeClassCodes" jdbcType="VARCHAR" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
  33. </resultMap>
  34. <resultMap id="count" type="com.persagy.dmp.digital.entity.ObjectDigital">
  35. <result property="totalCount" column="totalCount" jdbcType="INTEGER"/>
  36. </resultMap>
  37. <sql id="Base_Column_List">
  38. id,`name`,local_id,
  39. local_name,group_code,project_id,
  40. obj_type,class_code,grouping,
  41. infos,virtual_codes,create_app,
  42. update_app,creator,creation_time,
  43. modifier,modified_time,valid,
  44. ts
  45. </sql>
  46. <sql id="commonJoinQueryParam">
  47. <if test="param.projectId!=null and param.projectId.length>0">
  48. AND dto.project_id=#{param.projectId}
  49. </if>
  50. <if test="param.objTypes!=null and param.objTypes.size()>0">
  51. <foreach collection="param.objTypes" open="AND dto.obj_type IN(" close=")" separator="," item="objType">
  52. #{objType}
  53. </foreach>
  54. </if>
  55. <if test="param.classCodes!=null and param.classCodes.size()>0">
  56. <foreach collection="param.classCodes" open="AND ( " close=")" separator=" OR " item="classCode">
  57. dto.class_code LIKE CONCAT(#{classCode},'%')
  58. </foreach>
  59. </if>
  60. <if test="param.keyword!=null and param.keyword.length>0">
  61. AND dto.local_name LIKE CONCAT('%',#{param.keyword},'%')
  62. </if>
  63. <choose>
  64. <when test="param.validSet!=null and param.validSet.size()>0">
  65. <foreach collection="param.validSet" open="AND dto.valid IN(" close=")" separator="," item="valid">
  66. #{valid}
  67. </foreach>
  68. </when>
  69. <otherwise>
  70. AND dto.valid = TRUE
  71. </otherwise>
  72. </choose>
  73. <choose>
  74. <when test="param.createTimeScope!=null">
  75. <if test="param.createTimeScope.startEq!=null and param.createTimeScope.startEq.length>0">
  76. AND dto.creation_time&gt;=#{param.createTimeScope.startEq}
  77. </if>
  78. <if test="param.createTimeScope.endEq!=null and param.createTimeScope.endEq.length>0">
  79. AND dto.creation_time&lt;=#{param.createTimeScope.endEq}
  80. </if>
  81. </when>
  82. </choose>
  83. </sql>
  84. <sql id="queryObjByRel">
  85. (
  86. <include refid="commonQueryObjByRel">
  87. <property name="param" value="#{param}"/>
  88. </include>
  89. )
  90. <include refid="queryObjDataUnionEcData">
  91. <property name="param" value="#{param}"/>
  92. </include>
  93. </sql>
  94. <sql id="commonQueryObjByRel">
  95. (
  96. <include refid="commonQueryObjByRelSubTo">
  97. <property name="param" value="#{param}"/>
  98. </include>
  99. <if test="param.relCodes!=null and param.relCodes.size()>0">
  100. <foreach collection="param.relCodes" open="AND dtr.rel_code IN (" close=")" separator="," item="relCode">
  101. #{relCode}
  102. </foreach>
  103. </if>
  104. GROUP BY dto.id
  105. )
  106. UNION
  107. (
  108. <include refid="commonQueryObjByRelSubFrom">
  109. <property name="param" value="#{param}"/>
  110. </include>
  111. <if test="param.relCodes!=null and param.relCodes.size()>0">
  112. <foreach collection="param.relCodes" open="AND dtr.rel_code IN (" close=")" separator="," item="relCode">
  113. #{relCode}
  114. </foreach>
  115. </if>
  116. GROUP BY dto.id
  117. )
  118. </sql>
  119. <sql id="commonQueryObjByRelSubTo">
  120. SELECT DISTINCT
  121. dto.*,JSON_ARRAYAGG(dtr.obj_from) AS objFromIds,JSON_ARRAYAGG(dtr.obj_to) AS objToIds
  122. FROM dt_object AS dto
  123. LEFT JOIN (SELECT * FROM dt_relation AS dtrA WHERE dtrA.obj_to=#{param.filterObjId} OR
  124. dtrA.obj_from=#{param.filterObjId} AND dtrA.valid=TRUE) AS dtr ON dtr.obj_to=dto.id
  125. WHERE 1=1 AND dtr.valid=TRUE
  126. <include refid="commonJoinQueryParam">
  127. <property name="param" value="#{param}"/>
  128. </include>
  129. </sql>
  130. <sql id="commonQueryObjByRelSubFrom">
  131. SELECT DISTINCT
  132. dto.*,JSON_ARRAYAGG(dtr.obj_from) AS objFromIds,JSON_ARRAYAGG(dtr.obj_to) AS objToIds
  133. FROM dt_object AS dto
  134. LEFT JOIN (SELECT * FROM dt_relation AS dtrA WHERE dtrA.obj_to=#{param.filterObjId} OR dtrA.obj_from=#{param.filterObjId} AND dtrA.valid=TRUE) AS dtr ON dtr.obj_from=dto.id
  135. WHERE 1=1
  136. <include refid="commonJoinQueryParam">
  137. <property name="param" value="#{param}"/>
  138. </include>
  139. </sql>
  140. <sql id="queryObjDataUnionEcData">
  141. <if test="param.queryEcFlag!=null and param.queryEcFlag='true'">
  142. UNION
  143. (<include refid="commonQueryObjByRelSubTo">
  144. <property name="param" value="#{param}"/>
  145. </include>
  146. <if test="param.ecRelCodes!=null and param.ecRelCodes.size()>0">
  147. <foreach collection="param.ecRelCodes" open="AND dtr.rel_code IN (" close=")" separator="," item="relCode">
  148. #{relCode}
  149. </foreach>
  150. </if>
  151. AND dtr.obj_from IN(
  152. SELECT DISTINCT
  153. dto.id
  154. FROM dt_relation AS dtr
  155. LEFT JOIN dt_object AS dto ON (dtr.obj_from=dto.id OR dtr.obj_to=dto.id AND dtr.valid=TRUE)
  156. WHERE 1=1
  157. <include refid="commonJoinQueryParam">
  158. <property name="param" value="#{param}"/>
  159. </include>
  160. AND dto.obj_type='equipment'
  161. ) GROUP BY dto.id)
  162. </if>
  163. </sql>
  164. <sql id="pageSet">
  165. <if test="param.skip!=null and param.skip!=null and param.size!=0">
  166. limit #{param.skip},#{param.size}
  167. </if>
  168. </sql>
  169. <sql id="commonQueryObjectListByParam">
  170. SELECT DISTINCT SQL_CALC_FOUND_ROWS
  171. dto.*,
  172. JSON_ARRAYAGG( dtr.obj_from ) AS objFromIds,
  173. JSON_ARRAYAGG( dtr.obj_to ) AS objToIds
  174. FROM
  175. dt_object AS dto
  176. INNER JOIN ( SELECT * FROM dt_relation AS dtrA WHERE 1=1
  177. <if test="null!=param.relId and param.relId.length>0">
  178. AND (dtrA.obj_from = #{param.relId} OR dtrA.obj_to=#{param.relId})
  179. </if>
  180. <if test="null!=param.projectId and param.projectId.length>0">
  181. AND dtrA.project_id = #{param.projectId}
  182. </if>
  183. <if test="null!=param.relCode and param.relCode.length>0">
  184. AND dtrA.rel_code = #{param.relCode}
  185. </if>
  186. <if test="null!=param.groupCode and param.groupCode.length>0">
  187. AND dtrA.group_code = #{param.groupCode}
  188. </if>
  189. ) AS dtr ON (dtr.obj_to = dto.id OR dtr.obj_from = dto.id)
  190. <include refid="commonQueryObjectListByParamDtObjectWhereCondition">
  191. <property name="param" value="#{param}"/>
  192. </include>
  193. </sql>
  194. <sql id="commonQueryObjectListByParamDtObjectWhereCondition">
  195. WHERE
  196. 1 = 1
  197. <if test="null!=param.projectId and param.projectId.length>0">
  198. AND dto.project_id = #{param.projectId}
  199. </if>
  200. <if test="null!=param.objType and param.objType.length>0">
  201. AND dto.obj_type = #{param.objType}
  202. </if>
  203. <if test="null!=param.keyword and param.keyword.length>0">
  204. AND dto.local_name LIKE CONCAT('%',#{param.keyword},'%')
  205. </if>
  206. <if test="null!=param.groupCode and param.groupCode.length>0">
  207. AND dto.group_code = #{param.groupCode}
  208. </if>
  209. AND dto.valid = TRUE
  210. </sql>
  211. <sql id="commonQueryObjectListByParamSuffix">
  212. GROUP BY
  213. dto.id
  214. <include refid="pageSet">
  215. <property name="param" value="#{param}"/>
  216. </include>
  217. ;
  218. SELECT
  219. FOUND_ROWS( ) AS totalCount;
  220. </sql>
  221. <select id="queryObjectDigitalsByProjectId" resultMap="BaseResultMap,count">
  222. SELECT DISTINCT SQL_CALC_FOUND_ROWS
  223. *
  224. FROM dt_object dto
  225. WHERE 1=1
  226. <include refid="commonJoinQueryParam">
  227. <property name="param" value="#{param}"/>
  228. </include>
  229. <include refid="pageSet">
  230. <property name="param" value="#{param}"/>
  231. </include>
  232. ;
  233. SELECT FOUND_ROWS() AS totalCount;
  234. </select>
  235. <select id="queryObjectListBySuperiorId" resultMap="BaseResultMap,count">
  236. SELECT DISTINCT SQL_CALC_FOUND_ROWS
  237. dto.*
  238. FROM
  239. (
  240. <include refid="queryObjByRel">
  241. <property name="param" value="#{param}"/>
  242. </include>
  243. ) AS dto
  244. <include refid="pageSet">
  245. <property name="param" value="#{param}"/>
  246. </include>
  247. ;
  248. SELECT FOUND_ROWS() AS totalCount;
  249. </select>
  250. <select id="queryObjectListByFloorIdAndRoomFuncType" resultMap="BaseResultMap,count">
  251. <include refid="commonQueryObjectListByParam">
  252. <property name="param" value="#{param}"/>
  253. </include>
  254. <if test="null!=param.roomFuncType and param.roomFuncType.length>0">
  255. AND JSON_UNQUOTE(JSON_EXTRACT(dto.infos, '$.roomFuncType'))=#{param.roomFuncType}
  256. </if>
  257. <include refid="commonQueryObjectListByParamSuffix">
  258. <property name="param" value="#{param}"/>
  259. </include>
  260. </select>
  261. <select id="queryObjectListByRelIdAndClassCode" resultMap="BaseResultMap,count">
  262. <include refid="commonQueryObjectListByParam">
  263. <property name="param" value="#{param}"/>
  264. </include>
  265. <if test="null!=param.classCode and param.classCode.length>0">
  266. AND dto.class_code=#{param.classCode}
  267. </if>
  268. <include refid="commonQueryObjectListByParamSuffix">
  269. <property name="param" value="#{param}"/>
  270. </include>
  271. </select>
  272. <select id="queryEquipListByClassCode" resultMap="BaseResultMap,count">
  273. SELECT DISTINCT SQL_CALC_FOUND_ROWS
  274. dto.*
  275. FROM
  276. dt_object AS dto
  277. <include refid="commonQueryObjectListByParamDtObjectWhereCondition">
  278. <property name="param" value="#{param}"/>
  279. </include>
  280. <if test="null!=param.classCode and param.classCode.length>0">
  281. AND dto.class_code LIKE CONCAT(#{param.classCode},'%')
  282. </if>
  283. <include refid="commonQueryObjectListByParamSuffix">
  284. <property name="param" value="#{param}"/>
  285. </include>
  286. </select>
  287. <sql id="queryMasterObjSql">
  288. FROM
  289. dt_object AS dobj
  290. WHERE
  291. 1=1
  292. <choose>
  293. <when test='null!=param.type and param.type=="id" and null!=param.mainContent and param.mainContent.length>0'>
  294. AND dobj.id=#{param.mainContent}
  295. </when>
  296. <when test='null!=param.type and param.type=="name" and null!=param.mainContent and param.mainContent.length>0'>
  297. AND dobj.name=#{param.mainContent}
  298. </when>
  299. <when test='null!=param.type and param.type=="localId" and null!=param.mainContent and param.mainContent.length>0'>
  300. AND dobj.local_id=#{param.mainContent}
  301. </when>
  302. <when test='null!=param.type and param.type=="localName" and null!=param.mainContent and param.mainContent.length>0'>
  303. AND dobj.local_name=#{param.mainContent}
  304. </when>
  305. <when test='null!=param.type and param.type=="cadId" and null!=param.mainContent and param.mainContent.length>0'>
  306. AND JSON_UNQUOTE(JSON_EXTRACT(dobj.infos, '$.cADID')) =#{param.mainContent}
  307. </when>
  308. </choose>
  309. <if test="null!=param.groupCode and param.groupCode.length>0">
  310. AND dobj.group_code=#{param.groupCode}
  311. </if>
  312. <if test="null!=param.projectId and param.projectId.length>0">
  313. AND dobj.project_id=#{param.projectId}
  314. </if>
  315. <if test="null!=param.masterObjType and param.masterObjType.length>0">
  316. AND dobj.obj_type=#{param.masterObjType}
  317. </if>
  318. AND dobj.valid=TRUE
  319. </sql>
  320. <select id="queryObjectListByIdOrNameOrCadId" resultType="com.persagy.dmp.digital.entity.ObjectDigital">
  321. SELECT
  322. dobj.*,
  323. true AS mainFlag,
  324. IFNULL(JSON_UNQUOTE(JSON_EXTRACT(dobj.infos, '$.cADID')),'') AS cadId
  325. <include refid="queryMasterObjSql">
  326. <property name="param" value="#{param}"/>
  327. </include>
  328. UNION
  329. SELECT
  330. dobj.*,
  331. false AS mainFlag,
  332. IFNULL(JSON_UNQUOTE(JSON_EXTRACT(dobj.infos, '$.cADID')),'') AS cadId
  333. FROM
  334. dt_object AS dobj
  335. WHERE
  336. 1=1
  337. <choose>
  338. <when test='null!=param.type and param.type=="id" and null!=param.slaveContent and param.slaveContent.size()>0'>
  339. <foreach collection="param.slaveContent" open="AND dobj.id IN(" close=")" separator="," item="keyword">
  340. #{keyword}
  341. </foreach>
  342. </when>
  343. <when test='null!=param.type and param.type=="name" and null!=param.slaveContent and param.slaveContent.size()>0'>
  344. <foreach collection="param.slaveContent" open="AND dobj.name IN(" close=")" separator="," item="keyword">
  345. #{keyword}
  346. </foreach>
  347. </when>
  348. <when test='null!=param.type and param.type=="localId" and null!=param.slaveContent and param.slaveContent.size()>0'>
  349. <foreach collection="param.slaveContent" open="AND dobj.local_id IN(" close=")" separator="," item="keyword">
  350. #{keyword}
  351. </foreach>
  352. </when>
  353. <when test='null!=param.type and param.type=="localName" and null!=param.slaveContent and param.slaveContent.size()>0'>
  354. <foreach collection="param.slaveContent" open="AND dobj.local_name IN(" close=")" separator="," item="keyword">
  355. #{keyword}
  356. </foreach>
  357. </when>
  358. <when test='null!=param.type and param.type=="cadId" and null!=param.slaveContent and param.slaveContent.size()>0'>
  359. <foreach collection="param.slaveContent" open="AND JSON_UNQUOTE(JSON_EXTRACT(dobj.infos, '$.cADID')) IN(" close=")" separator="," item="keyword">
  360. #{keyword}
  361. </foreach>
  362. </when>
  363. </choose>
  364. <if test="null!=param.groupCode and param.groupCode.length>0">
  365. AND dobj.group_code=#{param.groupCode}
  366. </if>
  367. <if test="null!=param.projectId and param.projectId.length>0">
  368. AND dobj.project_id=#{param.projectId}
  369. </if>
  370. <if test="null!=param.slaveObjType and param.slaveObjType.length>0">
  371. AND dobj.obj_type=#{param.slaveObjType}
  372. </if>
  373. AND dobj.id NOT IN(SELECT id <include refid="queryMasterObjSql"><property name="param" value="#{param}"/></include>)
  374. <if test="null!=param.hasFilterClassCode and param.hasFilterClassCode">
  375. AND dobj.class_code IN(SELECT class_code <include refid="queryMasterObjSql"><property name="param" value="#{param}"/></include>)
  376. </if>
  377. AND dobj.valid=TRUE
  378. </select>
  379. <select id="queryObjectListByGraphCodeAndRelCode" resultMap="BaseResultMap,count">
  380. SELECT DISTINCT SQL_CALC_FOUND_ROWS
  381. dtoA.*,
  382. IF
  383. (
  384. CONCAT( JSON_EXTRACT( JSON_EXTRACT( JSON_ARRAYAGG( JSON_OBJECT( 'id', dtoB.id ) ), '$[0]' ), '$.id' ), '' ) = 'null',
  385. JSON_ARRAY( ),
  386. JSON_ARRAYAGG(
  387. JSON_OBJECT(
  388. 'id',
  389. dtoB.id,
  390. 'name',
  391. IFNULL( dtoB.`name`, ''),
  392. 'localId',
  393. IFNULL( dtoB.local_id, ''),
  394. 'localName',
  395. IFNULL( dtoB.local_name, ''),
  396. 'infos',
  397. IFNULL( dtoB.infos, JSON_OBJECT()),
  398. 'groupCode',
  399. IFNULL( dtoB.group_code, ''),
  400. 'projectId',
  401. IFNULL( dtoB.project_id, ''),
  402. 'objType',
  403. IFNULL( dtoB.obj_type, ''),
  404. 'classCode',
  405. IFNULL( dtoB.class_code, ''),
  406. 'grouping',
  407. IFNULL( dtoB.grouping, ''),
  408. 'valid',
  409. IFNULL( dtoB.valid, 1 )
  410. )
  411. )
  412. ) AS relObjs
  413. FROM
  414. (
  415. SELECT
  416. dto.*,
  417. JSON_ARRAYAGG( dtr.obj_to ) AS objToIds
  418. FROM
  419. dt_object dto
  420. INNER JOIN dt_relation dtr ON dto.id = dtr.obj_from
  421. WHERE 1=1
  422. <if test="null!=param.relCode and param.relCode.length>0">
  423. AND dtr.rel_code = #{param.relCode}
  424. </if>
  425. <if test="null!=param.graphCode and param.graphCode.length>0">
  426. AND dtr.graph_code = #{param.graphCode}
  427. </if>
  428. <if test="null!=param.projectId and param.projectId.length>0">
  429. AND dto.project_id = #{param.projectId}
  430. </if>
  431. <if test="null!=param.groupCode and param.groupCode.length>0">
  432. AND dto.group_code = #{param.groupCode}
  433. </if>
  434. <if test="null!=param.mainContent and param.mainContent.length>0">
  435. AND (
  436. dto.id = #{param.mainContent}
  437. OR dto.`name` LIKE CONCAT( '%', #{param.mainContent}, '%' )
  438. OR dto.local_name LIKE CONCAT( '%', #{param.mainContent}, '%' )
  439. OR dto.local_id LIKE CONCAT( '%', #{param.mainContent}, '%' )
  440. OR JSON_EXTRACT( dto.infos, '$.cADID' ) LIKE CONCAT( '%', #{param.mainContent}, '%' )
  441. )
  442. </if>
  443. GROUP BY
  444. dto.id
  445. ) AS dtoA
  446. LEFT JOIN dt_object AS dtoB ON (
  447. JSON_SEARCH( dtoA.objToIds, 'one', dtoB.id ) > 0
  448. <if test="null!=param.slaveContent and param.slaveContent.size()>0">
  449. <foreach collection="param.slaveContent" item="keyword" open="AND (" close=")" separator=" OR ">
  450. dtoB.id = #{keyword}
  451. OR dtoB.`name` LIKE CONCAT( '%', #{keyword}, '%' )
  452. OR dtoB.local_name LIKE CONCAT( '%', #{keyword}, '%' )
  453. OR dtoB.local_id LIKE CONCAT( '%', #{keyword}, '%' )
  454. </foreach>
  455. </if>
  456. )
  457. WHERE dtoA.valid=TRUE AND dtoB.valid=TRUE
  458. GROUP BY
  459. dtoA.id
  460. <include refid="pageSet">
  461. <property name="param" value="#{param}"/>
  462. </include>
  463. ;
  464. SELECT FOUND_ROWS() AS totalCount;
  465. </select>
  466. <select id="queryToData" resultMap="BaseResultMap">
  467. SELECT
  468. id,
  469. group_code,
  470. project_id,
  471. JSON_UNQUOTE(
  472. JSON_EXTRACT(
  473. JSON_UNQUOTE( JSON_EXTRACT( infos, CONCAT('$.',#{toInfoCode}) ) ),
  474. IF
  475. (
  476. JSON_DEPTH( JSON_UNQUOTE( JSON_EXTRACT( infos, CONCAT('$.',#{toInfoCode}) ) ) ) = 3,
  477. '$[*]',
  478. IF
  479. ( JSON_DEPTH( JSON_UNQUOTE( JSON_EXTRACT( infos, CONCAT('$.',#{toInfoCode}) ) ) ) = 4, '$[0][*]', '$[0][0][*]' )
  480. )
  481. )
  482. ) AS outLines,
  483. class_code,
  484. obj_type
  485. FROM
  486. dt_object
  487. WHERE
  488. valid = TRUE
  489. <if test="null!=toIds and toIds.size>0">
  490. <foreach collection="toIds" open="AND id IN (" close=")" item="toId" separator=",">
  491. #{toId}
  492. </foreach>
  493. </if>
  494. <if test="null!=param.projectId and param.projectId.length>0">
  495. AND project_id = #{param.projectId}
  496. </if>
  497. <if test="null!=toObjType and toObjType.length>0">
  498. AND obj_type = #{toObjType}
  499. </if>
  500. <if test="null!=param.groupCode and param.groupCode.length>0">
  501. AND group_code = #{param.groupCode}
  502. </if>
  503. ;
  504. </select>
  505. <select id="queryFromData" resultMap="BaseResultMap">
  506. SELECT
  507. id,
  508. group_code,
  509. project_id,
  510. JSON_OBJECT(
  511. 'X',
  512. JSON_EXTRACT(
  513. JSON_UNQUOTE(
  514. CONCAT(
  515. '[',
  516. SUBSTRING(JSON_EXTRACT(infos, CONCAT('$.',#{fromInfoCode})) FROM 2 FOR LENGTH(JSON_EXTRACT(infos, CONCAT('$.',#{fromInfoCode})))-2),
  517. ']'
  518. )
  519. ),
  520. '$[0]'
  521. ),
  522. 'Y',
  523. JSON_EXTRACT(
  524. JSON_UNQUOTE(
  525. CONCAT(
  526. '[',
  527. SUBSTRING(JSON_EXTRACT(infos, CONCAT('$.',#{fromInfoCode})) FROM 2 FOR LENGTH(JSON_EXTRACT(infos, CONCAT('$.',#{fromInfoCode})))-2),
  528. ']'
  529. )
  530. ),
  531. '$[1]'
  532. )
  533. ) AS bimLocation,
  534. class_code,
  535. obj_type
  536. FROM
  537. dt_object
  538. WHERE
  539. valid = TRUE
  540. <if test="null!=fromIds and fromIds.size>0">
  541. <foreach collection="fromIds" open="AND id IN (" close=")" item="fromId" separator=",">
  542. #{fromId}
  543. </foreach>
  544. </if>
  545. <if test="null!=param.projectId and param.projectId.length>0">
  546. AND project_id = #{param.projectId}
  547. </if>
  548. <if test="null!=fromObjType and fromObjType.length>0">
  549. AND obj_type = #{fromObjType}
  550. </if>
  551. <if test="null!=param.groupCode and param.groupCode.length>0">
  552. AND group_code = #{param.groupCode}
  553. </if>
  554. </select>
  555. <select id="queryObjectListByIds" resultMap="BaseResultMap">
  556. SELECT
  557. dto.*,
  558. JSON_ARRAYAGG( dtdt.`code` ) AS objTypeClassCodes
  559. FROM
  560. dt_object AS dto
  561. LEFT JOIN dt_define_type AS dtdt ON ( dtdt.obj_type = dto.obj_type AND dtdt.valid = TRUE )
  562. WHERE 1=1
  563. <foreach collection="objIds" item="objId" open=" AND dto.id IN(" close=")" separator=",">
  564. #{objId}
  565. </foreach>
  566. AND dto.valid = TRUE
  567. GROUP BY
  568. dto.id;
  569. </select>
  570. <resultMap id="SpaceCalResultMap" type="com.persagy.dmp.rwd.digital.domain.SpaceCalDTO">
  571. <id property="id" column="id" jdbcType="VARCHAR"/>
  572. <result property="modelId" column="modelId" jdbcType="VARCHAR"/>
  573. <result property="firstPoint" column="firstPoint" jdbcType="VARCHAR" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
  574. <result property="secondPoint" column="secondPoint" jdbcType="VARCHAR" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
  575. <result property="outLines" column="outLines" jdbcType="VARCHAR" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
  576. </resultMap>
  577. <select id="queryEquipmentsByModelIds" resultMap="SpaceCalResultMap">
  578. SELECT
  579. id,
  580. JSON_UNQUOTE(JSON_EXTRACT( dto.infos, '$.modelId' )) AS modelId,
  581. JSON_UNQUOTE(JSON_EXTRACT(JSON_UNQUOTE(JSON_EXTRACT(infos, '$.outline')), '$[0][0]')) AS firstPoint,
  582. JSON_UNQUOTE(JSON_EXTRACT(JSON_UNQUOTE(JSON_EXTRACT(infos, '$.outline')), '$[1][0]')) AS secondPoint
  583. FROM
  584. dt_object AS dto
  585. WHERE
  586. JSON_EXTRACT( dto.infos, '$.outline' ) IS NOT NULL
  587. AND JSON_EXTRACT( dto.infos, '$.modelId' ) IS NOT NULL
  588. AND dto.obj_type = 'equipment'
  589. AND dto.valid=TRUE
  590. <if test="null!=param.groupCode and param.groupCode.length>0">
  591. AND dto.group_code = #{param.groupCode}
  592. </if>
  593. <if test="null!=param.projectId and param.projectId.length>0">
  594. AND dto.project_id = #{param.projectId}
  595. </if>
  596. <if test="null!=classCode and classCode.length>0">
  597. AND dto.class_code = #{classCode}
  598. </if>
  599. <if test="null!=objIds and objIds.size()>0">
  600. <foreach collection="objIds" open="AND JSON_EXTRACT( dto.infos, '$.modelId' ) IN (" close=")" separator="," item="objId">
  601. #{objId}
  602. </foreach>
  603. </if>
  604. ;
  605. </select>
  606. <select id="queryIspacesByModelIds" resultMap="SpaceCalResultMap">
  607. SELECT
  608. id,
  609. JSON_UNQUOTE(JSON_EXTRACT( dto.infos, '$.modelId' )) AS modelId,
  610. JSON_UNQUOTE(JSON_EXTRACT(JSON_UNQUOTE(JSON_EXTRACT(infos, '$.outline')), '$[0][*]')) AS outLines
  611. FROM
  612. dt_object AS dto
  613. WHERE
  614. JSON_EXTRACT( dto.infos, '$.outline' ) IS NOT NULL
  615. AND JSON_EXTRACT( dto.infos, '$.modelId' ) IS NOT NULL
  616. AND dto.obj_type = 'ispace'
  617. AND dto.class_code = 'ispace'
  618. AND dto.valid=TRUE
  619. <if test="null!=param.groupCode and param.groupCode.length>0">
  620. AND dto.group_code = #{param.groupCode}
  621. </if>
  622. <if test="null!=param.projectId and param.projectId.length>0">
  623. AND dto.project_id = #{param.projectId}
  624. </if>
  625. <if test="null!=objIds and objIds.size()>0">
  626. <foreach collection="objIds" open="AND JSON_EXTRACT( dto.infos, '$.modelId' ) IN (" close=")" separator="," item="objId">
  627. #{objId}
  628. </foreach>
  629. </if>
  630. ;
  631. </select>
  632. </mapper>