| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
- <mapper namespace="com.yt.zhylplat.moduleZhjc.mapper.ZhjcIrrigationBaseMapper">
- <!-- 养护效率查询映射结果 -->
- <resultMap id="EfficiencyMap" type="com.yt.zhylplat.moduleZhjc.entity.ZhjcIrrigationEfficiency">
- <id column="time_period" property="timePeriod" />
- <result column="region_name" property="regionName" />
- <result column="smart_completion" property="smartCompletion" />
- <result column="manual_completion" property="manualCompletion" />
- </resultMap>
- <!--养护效率-->
- <select id="selectEfficiency" resultMap="EfficiencyMap">
- SELECT
- time_period,
- region_name,
- ROUND(SUM(smart_completion), 2) AS smart_completion,
- ROUND(SUM(manual_completion) , 2) AS manual_completion
- FROM (
- SELECT
- CONCAT(
- LPAD(FLOOR(HOUR(start_time)/2)*2, 2, '0'),
- '-',
- LPAD(FLOOR(HOUR(start_time)/2)*2 + 2, 2, '0'),
- '时'
- ) AS time_period,
- region_id,
- region_name,
- CASE WHEN type = 1 THEN scope ELSE 0 END AS smart_completion,
- CASE WHEN type = 2 THEN scope ELSE 0 END AS manual_completion
- FROM zhjc_irrigation_base
- WHERE
- DATE(start_time) = CURDATE()
- AND del_flag = 0
- AND start_time IS NOT NULL
- AND scope IS NOT NULL
- ) AS temp
- GROUP BY time_period, region_id, region_name
- ORDER BY time_period, region_id;
- </select>
- <!-- 资源消耗查询映射结果 -->
- <resultMap id="ConsumptionMap" type="com.yt.zhylplat.moduleZhjc.entity.ZhjcIrrigationConsumption">
- <id column="month" property="month" />
- <result column="region_name" property="regionName" />
- <result column="smart_water" property="smartWater" />
- <result column="manual_water" property="manualWater" />
- <result column="water_conservation" property="waterConservation" />
- <result column="conservation_rate" property="conservationRate" />
- </resultMap>
- <!--资源消耗-->
- <select id="selectConsumption" resultMap="ConsumptionMap">
- SELECT
- DATE_FORMAT(start_time, '%Y-%m') AS month,
- region_name,
- SUM(CASE WHEN type = 1 THEN water_use ELSE 0 END) AS smart_water,
- SUM(CASE WHEN type = 2 THEN water_use ELSE 0 END) AS manual_water,
- SUM(CASE WHEN type = 2 THEN water_use ELSE 0 END) -
- SUM(CASE WHEN type = 1 THEN water_use ELSE 0 END) AS water_conservation,
- CASE
- WHEN SUM(CASE WHEN type = 2 THEN water_use ELSE 0 END) > 0 THEN
- ROUND(
- (SUM(CASE WHEN type = 2 THEN water_use ELSE 0 END) -
- SUM(CASE WHEN type = 1 THEN water_use ELSE 0 END)) /
- SUM(CASE WHEN type = 2 THEN water_use ELSE 0 END) * 100,
- 2
- )
- ELSE 0
- END AS conservation_rate
- FROM zhjc_irrigation_base
- WHERE del_flag = 0
- AND DATE_FORMAT(start_time, '%Y-%m') = DATE_FORMAT(CURDATE(), '%Y-%m')
- GROUP BY DATE_FORMAT(start_time, '%Y-%m'), region_id, region_name, park_name
- HAVING manual_water > 0
- ORDER BY month, water_conservation DESC;
- </select>
- </mapper>
|