WwkjReadingRecordMapper.xml 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261
  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.ruoyi.api.mapper.WwkjReadingRecordMapper">
  4. <resultMap type="WwkjReadingRecord" id="WwkjReadingRecordResult">
  5. <result property="id" column="id"/>
  6. <result property="usedWaterId" column="used_water_id"/>
  7. <result property="taskCode" column="task_code"/>
  8. <result property="routeCode" column="route_code"/>
  9. <result property="cardCode" column="card_code"/>
  10. <result property="meterCode" column="meter_code"/>
  11. <result property="thisMeterNumber" column="this_meter_number"/>
  12. <result property="thisMeterDate" column="this_meter_date"/>
  13. <result property="thisMeterStatus" column="this_meter_status"/>
  14. <result property="lastUsedNumber" column="last_used_number"/>
  15. <result property="lastMeteNumber" column="last_mete_number"/>
  16. <result property="lastMeterStatus" column="last_meter_status"/>
  17. <result property="lastMeterDate" column="last_meter_date"/>
  18. <result property="readerName" column="reader_name"/>
  19. <result property="enterName" column="enter_name"/>
  20. <result property="enterDate" column="enter_date"/>
  21. <result property="readingWay" column="reading_way"/>
  22. <result property="readingType" column="reading_type"/>
  23. <result property="remark" column="remark"/>
  24. <result property="addReason" column="add_reason"/>
  25. <result property="progressStatus" column="progress_status"/>
  26. <result property="oldMeterNumber" column="old_meter_number"/>
  27. <result property="newMeterNumber" column="new_meter_number"/>
  28. <result property="changeMeterDate" column="change_meter_date"/>
  29. <result property="delFlag" column="del_flag"/>
  30. <result property="createBy" column="create_by"/>
  31. <result property="createTime" column="create_time"/>
  32. <result property="updateBy" column="update_by"/>
  33. <result property="updateTime" column="update_time"/>
  34. </resultMap>
  35. <sql id="selectWwkjReadingRecordVo">
  36. select id, used_water_id, task_code, route_code, card_code, meter_code, this_meter_number,
  37. this_meter_date, this_meter_status, last_used_number, last_mete_number, last_meter_status,
  38. last_meter_date, reader_name, enter_name, enter_date, reading_way, reading_type, remark,
  39. add_reason, progress_status, old_meter_number, new_meter_number, change_meter_date,
  40. del_flag, create_by, create_time, update_by, update_time
  41. from wwkj_reading_record
  42. </sql>
  43. <delete id="deleteByUsedWaterId">
  44. delete from wwkj_reading_record
  45. where used_water_id = #{usedWaterId}
  46. </delete>
  47. <select id="selectByUsedWaterId" parameterType="String" resultMap="WwkjReadingRecordResult">
  48. <include refid="selectWwkjReadingRecordVo"/>
  49. where used_water_id = #{usedWaterId} and del_flag = '0'
  50. </select>
  51. <select id="selectByMeterCode" parameterType="String" resultMap="WwkjReadingRecordResult">
  52. <include refid="selectWwkjReadingRecordVo"/>
  53. where meter_code = #{meterCode} and del_flag = '0'
  54. </select>
  55. <insert id="insertWwkjReadingRecord" parameterType="WwkjReadingRecord" useGeneratedKeys="true" keyProperty="id">
  56. insert into wwkj_reading_record
  57. <trim prefix="(" suffix=")" suffixOverrides=",">
  58. <if test="usedWaterId != null and usedWaterId != ''">used_water_id,</if>
  59. <if test="taskCode != null and taskCode != ''">task_code,</if>
  60. <if test="routeCode != null and routeCode != ''">route_code,</if>
  61. <if test="cardCode != null and cardCode != ''">card_code,</if>
  62. <if test="meterCode != null and meterCode != ''">meter_code,</if>
  63. <if test="thisMeterNumber != null">this_meter_number,</if>
  64. <if test="thisMeterDate != null">this_meter_date,</if>
  65. <if test="thisMeterStatus != null and thisMeterStatus != ''">this_meter_status,</if>
  66. <if test="lastUsedNumber != null">last_used_number,</if>
  67. <if test="lastMeteNumber != null">last_mete_number,</if>
  68. <if test="lastMeterStatus != null and lastMeterStatus != ''">last_meter_status,</if>
  69. <if test="lastMeterDate != null">last_meter_date,</if>
  70. <if test="readerName != null and readerName != ''">reader_name,</if>
  71. <if test="enterName != null and enterName != ''">enter_name,</if>
  72. <if test="enterDate != null">enter_date,</if>
  73. <if test="readingWay != null and readingWay != ''">reading_way,</if>
  74. <if test="readingType != null and readingType != ''">reading_type,</if>
  75. <if test="remark != null and remark != ''">remark,</if>
  76. <if test="addReason != null and addReason != ''">add_reason,</if>
  77. <if test="progressStatus != null and progressStatus != ''">progress_status,</if>
  78. <if test="oldMeterNumber != null">old_meter_number,</if>
  79. <if test="newMeterNumber != null">new_meter_number,</if>
  80. <if test="changeMeterDate != null">change_meter_date,</if>
  81. <if test="delFlag != null and delFlag != ''">del_flag,</if>
  82. <if test="createBy != null and createBy != ''">create_by,</if>
  83. <if test="createTime != null">create_time,</if>
  84. <if test="updateBy != null and updateBy != ''">update_by,</if>
  85. <if test="updateTime != null">update_time,</if>
  86. </trim>
  87. <trim prefix="values (" suffix=")" suffixOverrides=",">
  88. <if test="usedWaterId != null and usedWaterId != ''">#{usedWaterId},</if>
  89. <if test="taskCode != null and taskCode != ''">#{taskCode},</if>
  90. <if test="routeCode != null and routeCode != ''">#{routeCode},</if>
  91. <if test="cardCode != null and cardCode != ''">#{cardCode},</if>
  92. <if test="meterCode != null and meterCode != ''">#{meterCode},</if>
  93. <if test="thisMeterNumber != null">#{thisMeterNumber},</if>
  94. <if test="thisMeterDate != null">#{thisMeterDate},</if>
  95. <if test="thisMeterStatus != null and thisMeterStatus != ''">#{thisMeterStatus},</if>
  96. <if test="lastUsedNumber != null">#{lastUsedNumber},</if>
  97. <if test="lastMeteNumber != null">#{lastMeteNumber},</if>
  98. <if test="lastMeterStatus != null and lastMeterStatus != ''">#{lastMeterStatus},</if>
  99. <if test="lastMeterDate != null">#{lastMeterDate},</if>
  100. <if test="readerName != null and readerName != ''">#{readerName},</if>
  101. <if test="enterName != null and enterName != ''">#{enterName},</if>
  102. <if test="enterDate != null">#{enterDate},</if>
  103. <if test="readingWay != null and readingWay != ''">#{readingWay},</if>
  104. <if test="readingType != null and readingType != ''">#{readingType},</if>
  105. <if test="remark != null and remark != ''">#{remark},</if>
  106. <if test="addReason != null and addReason != ''">#{addReason},</if>
  107. <if test="progressStatus != null and progressStatus != ''">#{progressStatus},</if>
  108. <if test="oldMeterNumber != null">#{oldMeterNumber},</if>
  109. <if test="newMeterNumber != null">#{newMeterNumber},</if>
  110. <if test="changeMeterDate != null">#{changeMeterDate},</if>
  111. <if test="delFlag != null and delFlag != ''">#{delFlag},</if>
  112. <if test="createBy != null and createBy != ''">#{createBy},</if>
  113. <if test="createTime != null">#{createTime},</if>
  114. <if test="updateBy != null and updateBy != ''">#{updateBy},</if>
  115. <if test="updateTime != null">#{updateTime},</if>
  116. </trim>
  117. </insert>
  118. <update id="updateWwkjReadingRecord" parameterType="WwkjReadingRecord">
  119. update wwkj_reading_record
  120. <trim prefix="SET" suffixOverrides=",">
  121. <if test="taskCode != null and taskCode != ''">task_code = #{taskCode},</if>
  122. <if test="routeCode != null and routeCode != ''">route_code = #{routeCode},</if>
  123. <if test="cardCode != null and cardCode != ''">card_code = #{cardCode},</if>
  124. <if test="meterCode != null and meterCode != ''">meter_code = #{meterCode},</if>
  125. <if test="thisMeterNumber != null">this_meter_number = #{thisMeterNumber},</if>
  126. <if test="thisMeterDate != null">this_meter_date = #{thisMeterDate},</if>
  127. <if test="thisMeterStatus != null and thisMeterStatus != ''">this_meter_status = #{thisMeterStatus},</if>
  128. <if test="lastUsedNumber != null">last_used_number = #{lastUsedNumber},</if>
  129. <if test="lastMeteNumber != null">last_mete_number = #{lastMeteNumber},</if>
  130. <if test="lastMeterStatus != null and lastMeterStatus != ''">last_meter_status = #{lastMeterStatus},</if>
  131. <if test="lastMeterDate != null">last_meter_date = #{lastMeterDate},</if>
  132. <if test="readerName != null and readerName != ''">reader_name = #{readerName},</if>
  133. <if test="enterName != null and enterName != ''">enter_name = #{enterName},</if>
  134. <if test="enterDate != null">enter_date = #{enterDate},</if>
  135. <if test="readingWay != null and readingWay != ''">reading_way = #{readingWay},</if>
  136. <if test="readingType != null and readingType != ''">reading_type = #{readingType},</if>
  137. <if test="remark != null and remark != ''">remark = #{remark},</if>
  138. <if test="addReason != null and addReason != ''">add_reason = #{addReason},</if>
  139. <if test="progressStatus != null and progressStatus != ''">progress_status = #{progressStatus},</if>
  140. <if test="oldMeterNumber != null">old_meter_number = #{oldMeterNumber},</if>
  141. <if test="newMeterNumber != null">new_meter_number = #{newMeterNumber},</if>
  142. <if test="changeMeterDate != null">change_meter_date = #{changeMeterDate},</if>
  143. <if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if>
  144. <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
  145. <if test="updateTime != null">update_time = #{updateTime},</if>
  146. </trim>
  147. where id = #{id}
  148. </update>
  149. <!-- 获取每个水表的最新抄表记录 -->
  150. <select id="selectLatestReadingByMeterCodes" resultMap="WwkjReadingRecordResult">
  151. SELECT
  152. t1.meter_code,
  153. t1.this_meter_number,
  154. t1.this_meter_date,
  155. t1.route_code,
  156. t1.del_flag
  157. FROM wwkj_reading_record t1
  158. INNER JOIN (
  159. SELECT
  160. meter_code,
  161. MAX(this_meter_date) as max_date
  162. FROM wwkj_reading_record
  163. WHERE del_flag = '0'
  164. <if test="list != null and list.size() > 0">
  165. AND meter_code in
  166. <foreach collection="list" item="code" open="(" separator="," close=")">
  167. #{code}
  168. </foreach>
  169. </if>
  170. GROUP BY meter_code
  171. ) t2 ON t1.meter_code = t2.meter_code AND t1.this_meter_date = t2.max_date
  172. WHERE t1.del_flag = '0'
  173. </select>
  174. <!-- 根据水表编号查询最新抄表记录 -->
  175. <select id="selectLatestReadingByMeterCode" parameterType="String" resultMap="WwkjReadingRecordResult">
  176. select * from wwkj_reading_record
  177. where meter_code = #{meterCode}
  178. and del_flag = '0'
  179. order by this_meter_date desc
  180. limit 1
  181. </select>
  182. <!-- 根据条件查询抄表记录 -->
  183. <select id="selectReadingRecordsByCondition" parameterType="map" resultMap="WwkjReadingRecordResult">
  184. <include refid="selectWwkjReadingRecordVo"/>
  185. where del_flag = '0'
  186. <if test="meterCode != null and meterCode != ''">
  187. and meter_code = #{meterCode}
  188. </if>
  189. <if test="startTime != null and startTime != ''">
  190. and this_meter_date >= #{startTime}
  191. </if>
  192. <if test="endTime != null and endTime != ''">
  193. and this_meter_date &lt;= #{endTime}
  194. </if>
  195. order by this_meter_date desc
  196. </select>
  197. <select id="selectForExport" resultType="ReadingRecordExportDTO">
  198. SELECT
  199. r.used_water_id AS usedWaterId,
  200. r.task_code AS taskCode,
  201. r.route_code AS routeCode,
  202. r.card_code AS cardCode,
  203. r.meter_code AS meterCode,
  204. r.this_meter_number AS thisMeterNumber,
  205. r.this_meter_date AS thisMeterDate,
  206. r.this_meter_status AS thisMeterStatus,
  207. r.last_used_number AS lastUsedNumber,
  208. r.last_mete_number AS lastMeteNumber,
  209. r.last_meter_status AS lastMeterStatus,
  210. r.last_meter_date AS lastMeterDate,
  211. r.reader_name AS readerName,
  212. r.enter_name AS enterName,
  213. r.enter_date AS enterDate,
  214. r.reading_way AS readingWay,
  215. r.reading_type AS readingType,
  216. r.remark AS remark,
  217. r.add_reason AS addReason,
  218. r.progress_status AS progressStatus,
  219. r.old_meter_number AS oldMeterNumber,
  220. r.new_meter_number AS newMeterNumber,
  221. r.change_meter_date AS changeMeterDate,
  222. c.customer_name AS customerName,
  223. c.customer_code AS customerCode,
  224. c.company_code AS companyCode,
  225. c.company_name AS companyName,
  226. c.business_code AS businessCode,
  227. c.business_name AS businessName,
  228. c.area_name AS areaName,
  229. c.detailed_address AS detailedAddress,
  230. c.water_nature AS waterNature,
  231. c.customer_type AS customerType,
  232. c.account_status AS accountStatus,
  233. c.open_cus_date AS openCusDate,
  234. w.LifetimeCode AS lifetimeCode,
  235. w.MeterCliber AS meterCliber,
  236. w.MeterType AS meterType,
  237. w.RunStatus AS runStatus
  238. FROM wwkj_reading_record r
  239. LEFT JOIN wwkj_meter_card m ON r.card_code = m.card_code AND m.del_flag = '0'
  240. LEFT JOIN wwkj_customer_info c ON m.customer_code = c.customer_code AND c.del_flag = '0'
  241. LEFT JOIN wwkj_water_meter w ON r.meter_code = w.MeterCode AND w.del_flag = '0'
  242. WHERE r.del_flag = '0'
  243. </select>
  244. </mapper>