|
@@ -104,23 +104,43 @@
|
|
|
</select>
|
|
|
|
|
|
<select id="listSixMonthWaterLine" resultType="com.huimv.guowei.admin.entity.vo.WaterLineVo">
|
|
|
- SELECT create_date,
|
|
|
+ SELECT calendar.month_date AS create_date,
|
|
|
<foreach collection="chipCodeList" item="code" index="index" separator=",">
|
|
|
- IFNULL(ROUND(SUM(CASE WHEN chip_code = ${code} THEN water_value END),2), 0) AS 'value${index+1}'
|
|
|
+ IFNULL(ROUND(SUM(CASE WHEN energy_water.chip_code = ${code} THEN energy_water.water_value ELSE 0 END), 2), 0) AS value${index+1}
|
|
|
</foreach>
|
|
|
- FROM `energy_water`
|
|
|
- WHERE chip_code IN ${chipCodes} AND farm_id = #{farmId} AND create_date >= DATE_SUB(NOW(), INTERVAL 6 MONTH)
|
|
|
- GROUP BY DATE_FORMAT(create_date,"%Y-%m")
|
|
|
+ FROM (
|
|
|
+ SELECT DATE_FORMAT(NOW(), '%Y-%m-01') AS month_date
|
|
|
+ UNION ALL SELECT DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y-%m-01')
|
|
|
+ UNION ALL SELECT DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 2 MONTH), '%Y-%m-01')
|
|
|
+ UNION ALL SELECT DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 3 MONTH), '%Y-%m-01')
|
|
|
+ UNION ALL SELECT DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 4 MONTH), '%Y-%m-01')
|
|
|
+ UNION ALL SELECT DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 5 MONTH), '%Y-%m-01')
|
|
|
+ ) AS calendar
|
|
|
+ LEFT JOIN `energy_water` ON calendar.month_date = DATE_FORMAT(`energy_water`.create_date, "%Y-%m-01")
|
|
|
+ AND `energy_water`.chip_code IN ${chipCodes} AND `energy_water`.farm_id = #{farmId}
|
|
|
+ GROUP BY calendar.month_date
|
|
|
+ ORDER BY calendar.month_date;
|
|
|
</select>
|
|
|
|
|
|
<select id="listSevenDayWaterLine" resultType="com.huimv.guowei.admin.entity.vo.WaterLineVo">
|
|
|
- SELECT create_date,
|
|
|
+ SELECT calendar.date AS create_date,
|
|
|
<foreach collection="chipCodeList" item="code" index="index" separator=",">
|
|
|
- IFNULL(ROUND(SUM(CASE WHEN chip_code = ${code} THEN water_value END), 2), 0) AS 'value${index+1}'
|
|
|
+ IFNULL(ROUND(SUM(CASE WHEN energy_water.chip_code = ${code} THEN energy_water.water_value ELSE 0 END), 2), 0) AS value${index+1}
|
|
|
</foreach>
|
|
|
- FROM `energy_water`
|
|
|
- WHERE chip_code IN ${chipCodes} AND farm_id = #{farmId} AND create_date >= DATE_SUB(CURDATE(), INTERVAL 6 DAY)
|
|
|
- GROUP BY DATE_FORMAT(create_date, "%Y-%m-%d")
|
|
|
+ FROM (
|
|
|
+ SELECT DATE_FORMAT(NOW(), '%Y-%m-%d') AS date
|
|
|
+ UNION ALL SELECT DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 DAY), '%Y-%m-%d')
|
|
|
+ UNION ALL SELECT DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 2 DAY), '%Y-%m-%d')
|
|
|
+ UNION ALL SELECT DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 3 DAY), '%Y-%m-%d')
|
|
|
+ UNION ALL SELECT DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 4 DAY), '%Y-%m-%d')
|
|
|
+ UNION ALL SELECT DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 5 DAY), '%Y-%m-%d')
|
|
|
+ UNION ALL SELECT DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 6 DAY), '%Y-%m-%d')
|
|
|
+ ) AS calendar
|
|
|
+ LEFT JOIN `energy_water` ON calendar.date = DATE(`energy_water`.create_date)
|
|
|
+ AND `energy_water`.chip_code IN ${chipCodes} AND `energy_water`.farm_id = #{farmId}
|
|
|
+ WHERE calendar.date >= DATE_SUB(DATE(NOW()), INTERVAL 6 DAY)
|
|
|
+ GROUP BY calendar.date
|
|
|
+ ORDER BY calendar.date;
|
|
|
</select>
|
|
|
|
|
|
|