Нет описания

ZhjcIrrigationBaseMapper.xml 3.2KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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.yt.zhylplat.moduleZhjc.mapper.ZhjcIrrigationBaseMapper">
  4. <!-- 养护效率查询映射结果 -->
  5. <resultMap id="EfficiencyMap" type="com.yt.zhylplat.moduleZhjc.entity.ZhjcIrrigationEfficiency">
  6. <id column="time_period" property="timePeriod" />
  7. <result column="region_name" property="regionName" />
  8. <result column="smart_completion" property="smartCompletion" />
  9. <result column="manual_completion" property="manualCompletion" />
  10. </resultMap>
  11. <!--养护效率-->
  12. <select id="selectEfficiency" resultMap="EfficiencyMap">
  13. SELECT
  14. time_period,
  15. region_name,
  16. ROUND(SUM(smart_completion), 2) AS smart_completion,
  17. ROUND(SUM(manual_completion) , 2) AS manual_completion
  18. FROM (
  19. SELECT
  20. CONCAT(
  21. LPAD(FLOOR(HOUR(start_time)/2)*2, 2, '0'),
  22. '-',
  23. LPAD(FLOOR(HOUR(start_time)/2)*2 + 2, 2, '0'),
  24. '时'
  25. ) AS time_period,
  26. region_id,
  27. region_name,
  28. CASE WHEN type = 1 THEN scope ELSE 0 END AS smart_completion,
  29. CASE WHEN type = 2 THEN scope ELSE 0 END AS manual_completion
  30. FROM zhjc_irrigation_base
  31. WHERE
  32. DATE(start_time) = CURDATE()
  33. AND del_flag = 0
  34. AND start_time IS NOT NULL
  35. AND scope IS NOT NULL
  36. ) AS temp
  37. GROUP BY time_period, region_id, region_name
  38. ORDER BY time_period, region_id;
  39. </select>
  40. <!-- 资源消耗查询映射结果 -->
  41. <resultMap id="ConsumptionMap" type="com.yt.zhylplat.moduleZhjc.entity.ZhjcIrrigationConsumption">
  42. <id column="month" property="month" />
  43. <result column="region_name" property="regionName" />
  44. <result column="smart_water" property="smartWater" />
  45. <result column="manual_water" property="manualWater" />
  46. <result column="water_conservation" property="waterConservation" />
  47. <result column="conservation_rate" property="conservationRate" />
  48. </resultMap>
  49. <!--资源消耗-->
  50. <select id="selectConsumption" resultMap="ConsumptionMap">
  51. SELECT
  52. DATE_FORMAT(start_time, '%Y-%m') AS month,
  53. region_name,
  54. SUM(CASE WHEN type = 1 THEN water_use ELSE 0 END) AS smart_water,
  55. SUM(CASE WHEN type = 2 THEN water_use ELSE 0 END) AS manual_water,
  56. SUM(CASE WHEN type = 2 THEN water_use ELSE 0 END) -
  57. SUM(CASE WHEN type = 1 THEN water_use ELSE 0 END) AS water_conservation,
  58. CASE
  59. WHEN SUM(CASE WHEN type = 2 THEN water_use ELSE 0 END) > 0 THEN
  60. ROUND(
  61. (SUM(CASE WHEN type = 2 THEN water_use ELSE 0 END) -
  62. SUM(CASE WHEN type = 1 THEN water_use ELSE 0 END)) /
  63. SUM(CASE WHEN type = 2 THEN water_use ELSE 0 END) * 100,
  64. 2
  65. )
  66. ELSE 0
  67. END AS conservation_rate
  68. FROM zhjc_irrigation_base
  69. WHERE del_flag = 0
  70. AND DATE_FORMAT(start_time, '%Y-%m') = DATE_FORMAT(CURDATE(), '%Y-%m')
  71. GROUP BY DATE_FORMAT(start_time, '%Y-%m'), region_id, region_name, park_name
  72. HAVING manual_water > 0
  73. ORDER BY month, water_conservation DESC;
  74. </select>
  75. </mapper>