IcContractDao.xml 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  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="platform.modules.carrier.dao.IcContractDao">
  4. <update id="updateStatusBatch">
  5. update ic_contract
  6. SET status = #{status},terminate_time = #{terminate_time}
  7. WHERE
  8. <if test="idList.size() > 0">
  9. id in
  10. <foreach collection="idList" open="(" close=")" separator="," item="id">
  11. #{id}
  12. </foreach>
  13. </if>
  14. </update>
  15. <select id="findContractList" resultType="platform.modules.carrier.entity.ContractFloor"
  16. parameterType="platform.modules.carrier.dto.CustomSearchCondition">
  17. SELECT
  18. contract.id,
  19. contract.company_name,
  20. contract.building_name,
  21. contract.floor,
  22. contract.contract_start,
  23. contract.contract_end,
  24. contract.area,
  25. contract.STATUS,
  26. park. NAME park_name,
  27. (
  28. IF (
  29. contract. STATUS = 0,
  30. IF (
  31. DATE_FORMAT(NOW(), '%Y-%m-%d') <![CDATA[<]]> contract.contract_start,
  32. 1,
  33. IF (
  34. DATE_FORMAT(NOW(), '%Y-%m-%d') <![CDATA[>]]> contract.contract_end,
  35. 3,
  36. 2
  37. )
  38. ),
  39. IF (
  40. DATE_FORMAT(NOW(), '%Y-%m-%d') <![CDATA[>]]> contract.terminate_time,
  41. 4,
  42. IF (
  43. DATE_FORMAT(NOW(), '%Y-%m-%d') <![CDATA[<]]> contract.contract_start,
  44. 1,
  45. IF (
  46. DATE_FORMAT(NOW(), '%Y-%m-%d') <![CDATA[>]]> contract.contract_end,
  47. 3,
  48. 2
  49. )
  50. )
  51. )
  52. )
  53. ) state_code
  54. FROM
  55. ic_contract_floor contract
  56. LEFT JOIN ic_building building ON contract.building_id = building.id
  57. LEFT JOIN ic_park park ON park.id = building.park_id
  58. LEFT JOIN s_street street ON park.street_id = street.id
  59. WHERE
  60. contract.del_flag != 1
  61. <if test="param.street_id != null and param.street_id != '' ">
  62. AND street.id = #{param.street_id}
  63. </if>
  64. <if test="param.park_id != null and param.park_id != '' ">
  65. <choose>
  66. <when test="param.is_parent != null and param.is_parent != ''">
  67. AND (park.id = #{param.park_id} OR park.id IN (SELECT park_id FROM ic_sub_park WHERE parent_id = #{param.park_id}))
  68. </when>
  69. <otherwise>
  70. AND park.id = #{param.park_id}
  71. </otherwise>
  72. </choose>
  73. </if>
  74. <if test="param.building_id != null and param.building_id != '' ">
  75. AND building.id = #{param.building_id}
  76. </if>
  77. <if test="param.floor_id != null and param.floor_id != '' ">
  78. AND contract.floor_id = #{param.floor_id}
  79. </if>
  80. <if test="param.title != null and param.title != '' ">
  81. AND (
  82. contract.company_name LIKE CONCAT('%',#{param.title},'%')
  83. )
  84. </if>
  85. <if test="param.status != null and param.status != '' ">
  86. <if test="param.status == 1">
  87. AND contract.contract_start <![CDATA[>]]> DATE_FORMAT(NOW(), '%Y-%m-%d')
  88. AND (
  89. contract.terminate_time <![CDATA[>]]> DATE_FORMAT(NOW(), '%Y-%m-%d')
  90. OR ISNULL(contract.terminate_time)
  91. )
  92. </if>
  93. <if test="param.status == 2">
  94. AND contract.contract_start <![CDATA[<=]]> DATE_FORMAT(NOW(), '%Y-%m-%d')
  95. AND contract.contract_end <![CDATA[>=]]> DATE_FORMAT(NOW(), '%Y-%m-%d')
  96. AND (
  97. contract.terminate_time <![CDATA[>]]> DATE_FORMAT(NOW(), '%Y-%m-%d')
  98. OR ISNULL(contract.terminate_time)
  99. )
  100. </if>
  101. <if test="param.status == 3">
  102. AND contract.contract_end <![CDATA[<]]> DATE_FORMAT(NOW(), '%Y-%m-%d')
  103. AND (
  104. contract.terminate_time <![CDATA[>]]> DATE_FORMAT(NOW(), '%Y-%m-%d')
  105. OR ISNULL(contract.terminate_time)
  106. )
  107. </if>
  108. <if test="param.status == 4">
  109. AND contract.terminate_time <![CDATA[<]]> DATE_FORMAT(NOW(), '%Y-%m-%d')
  110. </if>
  111. </if>
  112. ORDER BY contract.create_time DESC
  113. </select>
  114. <select id="findEndContractList" resultType="platform.modules.carrier.entity.ContractFloor">
  115. select
  116. cf.company_name, cf.contract_end, cf.floor, cf.building_name, cf.area as floor_area
  117. from ic_contract_floor cf
  118. where cf.del_flag = 0
  119. and cf.contract_end >= now()
  120. <if test="demandTime != null and demandTime != ''">
  121. and cf.contract_end <![CDATA[ <= ]]> #{demandTime}
  122. </if>
  123. and cf.building_id = #{id}
  124. order by cf.contract_end asc
  125. </select>
  126. <select id="findByCheckinTime" resultType="platform.modules.carrier.entity.ContractFloor">
  127. select * from ic_contract_floor cf
  128. left join y_floor f on f.id = cf.floor_id
  129. where c.del_flag = 0 and cf.del_flag = 0
  130. and cf.floor_id = #{id}
  131. and f.remain_area +
  132. (
  133. SELECT
  134. SUM( cf.remain_area )
  135. FROM
  136. ic_contract_floor cf
  137. WHERE
  138. cf.floor_id = f.id
  139. AND cf.contract_end <![CDATA[ <= ]]> #{query.demandTime}
  140. )
  141. -
  142. (
  143. SELECT
  144. SUM( cf.remain_area )
  145. FROM
  146. ic_contract_floor cf
  147. WHERE
  148. cf.floor_id = f.id
  149. AND cf.contract_start <![CDATA[ <= ]]> #{query.maxCheckin}
  150. )
  151. >= #{query.minArea}
  152. </select>
  153. <select id="findNotStayYet" resultType="platform.modules.carrier.entity.ContractFloor">
  154. select cf.* from ic_contract_floor cf
  155. where cf.del_flag = 0
  156. <if test="floorId != null and floorId != ''">
  157. and cf.floor_id = #{floorId}
  158. </if>
  159. <if test="buildingId != null and buildingId != ''">
  160. and cf.building_id = #{buildingId}
  161. </if>
  162. and cf.contract_start >= #{demandTime}
  163. <if test="maxCheckin != null and maxCheckin != ''">
  164. and cf.contract_start <![CDATA[ <= ]]> #{maxCheckin}
  165. </if>
  166. order by cf.contract_start ASC
  167. </select>
  168. <select id="findByBuildingId" resultType="platform.modules.carrier.entity.ContractFloor">
  169. SELECT
  170. cf.id, cf.company_id, cf.company_name, cf.park_id, cf.contract_start, cf.contract_end
  171. FROM
  172. ic_contract_floor cf
  173. WHERE del_flag = false
  174. AND cf.building_id = #{id}
  175. AND cf.contract_end > NOW()
  176. AND cf.status != 4
  177. </select>
  178. <select id="findByFloorId" resultType="platform.modules.carrier.entity.ContractFloor">
  179. select * from ic_contract_floor cf where cf.floor_id = #{id}
  180. and cf.contract_end > now() AND cf.status != 4
  181. </select>
  182. </mapper>