ObjectDigitalMapper.xml 31 KB

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