|
|
|
@ -230,4 +230,308 @@ public interface EnergyMapper {
|
|
|
|
|
SumModel queryEnergySum(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Select({ |
|
|
|
|
"<script>", |
|
|
|
|
"SELECT count(1) FROM (", |
|
|
|
|
" SELECT " + |
|
|
|
|
" cur_date, " + |
|
|
|
|
" sum(use_hot_water) as use_hot_water, " + |
|
|
|
|
" sum(elect_value) as elect_value, " + |
|
|
|
|
" CASE WHEN sum(use_hot_water) = 0 THEN 0 ELSE sum(elect_value)/ sum(use_hot_water) END as elect_water, " + |
|
|
|
|
" sum(check_in_count) as check_in_count, " + |
|
|
|
|
" CASE WHEN sum(check_in_count) = 0 THEN 0 ELSE sum(use_hot_water) / sum(check_in_count) END as per_water, " + |
|
|
|
|
" CASE WHEN sum(check_in_count) = 0 THEN 0 ELSE sum(elect_value)/ sum(check_in_count) END as per_elect , " + |
|
|
|
|
" ROW_NUMBER() OVER(ORDER BY cur_date DESC) AS rn " + |
|
|
|
|
" FROM energy_day", |
|
|
|
|
" WHERE 1=1", |
|
|
|
|
" <if test='buildingIds != null and !buildingIds.isEmpty()'>", |
|
|
|
|
" AND building_id IN", |
|
|
|
|
" <foreach collection='buildingIds' item='id' open='(' separator=',' close=')'>", |
|
|
|
|
" #{id}", |
|
|
|
|
" </foreach>", |
|
|
|
|
" </if>", |
|
|
|
|
" <if test='startDate != null and startDate != \"\"'>", |
|
|
|
|
" AND LEFT(cur_date,10) >= #{startDate}", |
|
|
|
|
" </if>", |
|
|
|
|
" <if test='endDate != null and endDate != \"\"'>", |
|
|
|
|
" AND LEFT(cur_date,10) <= #{endDate}", |
|
|
|
|
" </if>", |
|
|
|
|
" group by cur_date ) T", |
|
|
|
|
"</script>" |
|
|
|
|
}) |
|
|
|
|
int getAreaEnergyDayCount(@Param("buildingIds") List<String> buildingIds, |
|
|
|
|
@Param("startDate") String startDate, |
|
|
|
|
@Param("endDate") String endDate, |
|
|
|
|
@Param("page") int page, |
|
|
|
|
@Param("limit") int limit); |
|
|
|
|
|
|
|
|
|
@Select({ |
|
|
|
|
"<script>", |
|
|
|
|
"SELECT T.cur_date, " + |
|
|
|
|
" T.use_hot_water , " + |
|
|
|
|
" T.elect_value, " + |
|
|
|
|
" T.elect_water, " + |
|
|
|
|
" t.check_in_count , " + |
|
|
|
|
" t.per_water , " + |
|
|
|
|
" t.per_elect , " + |
|
|
|
|
" t.rn, " + |
|
|
|
|
" #{areaName} as building_name FROM (", |
|
|
|
|
" SELECT " + |
|
|
|
|
" cur_date, " + |
|
|
|
|
" sum(use_hot_water) as use_hot_water, " + |
|
|
|
|
" sum(elect_value) as elect_value, " + |
|
|
|
|
" CASE WHEN sum(use_hot_water) = 0 THEN 0 ELSE sum(elect_value)/ sum(use_hot_water) END as elect_water, " + |
|
|
|
|
" sum(check_in_count) as check_in_count, " + |
|
|
|
|
" CASE WHEN sum(check_in_count) = 0 THEN 0 ELSE sum(use_hot_water) / sum(check_in_count) END as per_water, " + |
|
|
|
|
" CASE WHEN sum(check_in_count) = 0 THEN 0 ELSE sum(elect_value)/ sum(check_in_count) END as per_elect , " + |
|
|
|
|
" ROW_NUMBER() OVER(ORDER BY cur_date DESC) AS rn " + |
|
|
|
|
" FROM energy_day", |
|
|
|
|
" WHERE 1=1", |
|
|
|
|
" <if test='buildingIds != null and !buildingIds.isEmpty()'>", |
|
|
|
|
" AND building_id IN", |
|
|
|
|
" <foreach collection='buildingIds' item='id' open='(' separator=',' close=')'>", |
|
|
|
|
" #{id}", |
|
|
|
|
" </foreach>", |
|
|
|
|
" </if>", |
|
|
|
|
" <if test='startDate != null and startDate != \"\"'>", |
|
|
|
|
" AND LEFT(cur_date,10) >= #{startDate}", |
|
|
|
|
" </if>", |
|
|
|
|
" <if test='endDate != null and endDate != \"\"'>", |
|
|
|
|
" AND LEFT(cur_date,10) <= #{endDate}", |
|
|
|
|
" </if>", |
|
|
|
|
" group by cur_date ) T", |
|
|
|
|
"<where>", |
|
|
|
|
" <if test='page != 0 and limit != 0'>", |
|
|
|
|
" T.rn > (#{page}-1)*#{limit} AND T.rn <= #{page}*#{limit}", |
|
|
|
|
" </if>", |
|
|
|
|
"</where>", |
|
|
|
|
"ORDER BY T.cur_date DESC", |
|
|
|
|
"</script>" |
|
|
|
|
}) |
|
|
|
|
@ResultMap("rs") |
|
|
|
|
List<EnergyEntity> getAreaEnergyDay(@Param("buildingIds") List<String> buildingIds, |
|
|
|
|
@Param("startDate") String startDate, |
|
|
|
|
@Param("endDate") String endDate, |
|
|
|
|
@Param("page") int page, |
|
|
|
|
@Param("limit") int limit, |
|
|
|
|
@Param("areaName") String areaName); |
|
|
|
|
|
|
|
|
|
@Select({ |
|
|
|
|
"<script>", |
|
|
|
|
"SELECT count(1) FROM (", |
|
|
|
|
" SELECT " + |
|
|
|
|
" cur_date, " + |
|
|
|
|
" sum(use_hot_water) as use_hot_water, " + |
|
|
|
|
" sum(elect_value) as elect_value, " + |
|
|
|
|
" CASE WHEN sum(use_hot_water) = 0 THEN 0 ELSE sum(elect_value)/ sum(use_hot_water) END as elect_water, " + |
|
|
|
|
" sum(check_in_count) as check_in_count, " + |
|
|
|
|
" CASE WHEN sum(check_in_count) = 0 THEN 0 ELSE sum(use_hot_water) / sum(check_in_count) END as per_water, " + |
|
|
|
|
" CASE WHEN sum(check_in_count) = 0 THEN 0 ELSE sum(elect_value)/ sum(check_in_count) END as per_elect , " + |
|
|
|
|
" ROW_NUMBER() OVER(ORDER BY cur_date DESC) AS rn " + |
|
|
|
|
" FROM energy_month", |
|
|
|
|
" WHERE 1=1", |
|
|
|
|
" <if test='buildingIds != null and !buildingIds.isEmpty()'>", |
|
|
|
|
" AND building_id IN", |
|
|
|
|
" <foreach collection='buildingIds' item='id' open='(' separator=',' close=')'>", |
|
|
|
|
" #{id}", |
|
|
|
|
" </foreach>", |
|
|
|
|
" </if>", |
|
|
|
|
" <if test='startDate != null and startDate != \"\"'>", |
|
|
|
|
" AND LEFT(cur_date,7) >= #{startDate}", |
|
|
|
|
" </if>", |
|
|
|
|
" <if test='endDate != null and endDate != \"\"'>", |
|
|
|
|
" AND LEFT(cur_date,7) <= #{endDate}", |
|
|
|
|
" </if>", |
|
|
|
|
" group by cur_date ) T", |
|
|
|
|
"</script>" |
|
|
|
|
}) |
|
|
|
|
int getAreaEnergyMonthCount(@Param("buildingIds") List<String> buildingIds, |
|
|
|
|
@Param("startDate") String startDate, |
|
|
|
|
@Param("endDate") String endDate, |
|
|
|
|
@Param("page") int page, |
|
|
|
|
@Param("limit") int limit); |
|
|
|
|
|
|
|
|
|
@Select({ |
|
|
|
|
"<script>", |
|
|
|
|
"SELECT T.cur_date, " + |
|
|
|
|
" T.use_hot_water , " + |
|
|
|
|
" T.elect_value, " + |
|
|
|
|
" T.elect_water, " + |
|
|
|
|
" t.check_in_count , " + |
|
|
|
|
" t.per_water , " + |
|
|
|
|
" t.per_elect , " + |
|
|
|
|
" t.rn, " + |
|
|
|
|
" #{areaName} as building_name FROM (", |
|
|
|
|
" SELECT " + |
|
|
|
|
" cur_date, " + |
|
|
|
|
" sum(use_hot_water) as use_hot_water, " + |
|
|
|
|
" sum(elect_value) as elect_value, " + |
|
|
|
|
" CASE WHEN sum(use_hot_water) = 0 THEN 0 ELSE sum(elect_value)/ sum(use_hot_water) END as elect_water, " + |
|
|
|
|
" sum(check_in_count) as check_in_count, " + |
|
|
|
|
" CASE WHEN sum(check_in_count) = 0 THEN 0 ELSE sum(use_hot_water) / sum(check_in_count) END as per_water, " + |
|
|
|
|
" CASE WHEN sum(check_in_count) = 0 THEN 0 ELSE sum(elect_value)/ sum(check_in_count) END as per_elect , " + |
|
|
|
|
" ROW_NUMBER() OVER(ORDER BY cur_date DESC) AS rn " + |
|
|
|
|
" FROM energy_month ", |
|
|
|
|
" WHERE 1=1", |
|
|
|
|
" <if test='buildingIds != null and !buildingIds.isEmpty()'>", |
|
|
|
|
" AND building_id IN", |
|
|
|
|
" <foreach collection='buildingIds' item='id' open='(' separator=',' close=')'>", |
|
|
|
|
" #{id}", |
|
|
|
|
" </foreach>", |
|
|
|
|
" </if>", |
|
|
|
|
" <if test='startDate != null and startDate != \"\"'>", |
|
|
|
|
" AND LEFT(cur_date,7) >= #{startDate}", |
|
|
|
|
" </if>", |
|
|
|
|
" <if test='endDate != null and endDate != \"\"'>", |
|
|
|
|
" AND LEFT(cur_date,7) <= #{endDate}", |
|
|
|
|
" </if>", |
|
|
|
|
" group by cur_date ) T", |
|
|
|
|
"<where>", |
|
|
|
|
" <if test='page != 0 and limit != 0'>", |
|
|
|
|
" T.rn > (#{page}-1)*#{limit} AND T.rn <= #{page}*#{limit}", |
|
|
|
|
" </if>", |
|
|
|
|
"</where>", |
|
|
|
|
"ORDER BY T.cur_date DESC", |
|
|
|
|
"</script>" |
|
|
|
|
}) |
|
|
|
|
@ResultMap("rs") |
|
|
|
|
List<EnergyEntity> getAreaEnergyMonth(@Param("buildingIds") List<String> buildingIds, |
|
|
|
|
@Param("startDate") String startDate, |
|
|
|
|
@Param("endDate") String endDate, |
|
|
|
|
@Param("page") int page, |
|
|
|
|
@Param("limit") int limit, |
|
|
|
|
@Param("areaName") String areaName); |
|
|
|
|
|
|
|
|
|
@Select({ |
|
|
|
|
"<script>", |
|
|
|
|
"SELECT count(1) FROM (", |
|
|
|
|
" SELECT " + |
|
|
|
|
" cur_date, " + |
|
|
|
|
" sum(use_hot_water) as use_hot_water, " + |
|
|
|
|
" sum(elect_value) as elect_value, " + |
|
|
|
|
" CASE WHEN sum(use_hot_water) = 0 THEN 0 ELSE sum(elect_value)/ sum(use_hot_water) END as elect_water, " + |
|
|
|
|
" sum(check_in_count) as check_in_count, " + |
|
|
|
|
" CASE WHEN sum(check_in_count) = 0 THEN 0 ELSE sum(use_hot_water) / sum(check_in_count) END as per_water, " + |
|
|
|
|
" CASE WHEN sum(check_in_count) = 0 THEN 0 ELSE sum(elect_value)/ sum(check_in_count) END as per_elect , " + |
|
|
|
|
" ROW_NUMBER() OVER(ORDER BY cur_date DESC) AS rn " + |
|
|
|
|
" FROM energy_year", |
|
|
|
|
" WHERE 1=1", |
|
|
|
|
" <if test='buildingIds != null and !buildingIds.isEmpty()'>", |
|
|
|
|
" AND building_id IN", |
|
|
|
|
" <foreach collection='buildingIds' item='id' open='(' separator=',' close=')'>", |
|
|
|
|
" #{id}", |
|
|
|
|
" </foreach>", |
|
|
|
|
" </if>", |
|
|
|
|
" <if test='startDate != null and startDate != \"\"'>", |
|
|
|
|
" AND LEFT(cur_date,4) >= #{startDate}", |
|
|
|
|
" </if>", |
|
|
|
|
" <if test='endDate != null and endDate != \"\"'>", |
|
|
|
|
" AND LEFT(cur_date,4) <= #{endDate}", |
|
|
|
|
" </if>", |
|
|
|
|
" group by cur_date ) T", |
|
|
|
|
"</script>" |
|
|
|
|
}) |
|
|
|
|
int getAreaEnergyYearCount(@Param("buildingIds") List<String> buildingIds, |
|
|
|
|
@Param("startDate") String startDate, |
|
|
|
|
@Param("endDate") String endDate, |
|
|
|
|
@Param("page") int page, |
|
|
|
|
@Param("limit") int limit); |
|
|
|
|
|
|
|
|
|
@Select({ |
|
|
|
|
"<script>", |
|
|
|
|
"SELECT T.cur_date, " + |
|
|
|
|
" T.use_hot_water , " + |
|
|
|
|
" T.elect_value, " + |
|
|
|
|
" T.elect_water, " + |
|
|
|
|
" t.check_in_count , " + |
|
|
|
|
" t.per_water , " + |
|
|
|
|
" t.per_elect , " + |
|
|
|
|
" t.rn, " + |
|
|
|
|
" #{areaName} as building_name FROM (", |
|
|
|
|
" SELECT " + |
|
|
|
|
" cur_date, " + |
|
|
|
|
" sum(use_hot_water) as use_hot_water, " + |
|
|
|
|
" sum(elect_value) as elect_value, " + |
|
|
|
|
" CASE WHEN sum(use_hot_water) = 0 THEN 0 ELSE sum(elect_value)/ sum(use_hot_water) END as elect_water, " + |
|
|
|
|
" sum(check_in_count) as check_in_count, " + |
|
|
|
|
" CASE WHEN sum(check_in_count) = 0 THEN 0 ELSE sum(use_hot_water) / sum(check_in_count) END as per_water, " + |
|
|
|
|
" CASE WHEN sum(check_in_count) = 0 THEN 0 ELSE sum(elect_value)/ sum(check_in_count) END as per_elect , " + |
|
|
|
|
" ROW_NUMBER() OVER(ORDER BY cur_date DESC) AS rn " + |
|
|
|
|
" FROM energy_year ", |
|
|
|
|
" WHERE 1=1", |
|
|
|
|
" <if test='buildingIds != null and !buildingIds.isEmpty()'>", |
|
|
|
|
" AND building_id IN", |
|
|
|
|
" <foreach collection='buildingIds' item='id' open='(' separator=',' close=')'>", |
|
|
|
|
" #{id}", |
|
|
|
|
" </foreach>", |
|
|
|
|
" </if>", |
|
|
|
|
" <if test='startDate != null and startDate != \"\"'>", |
|
|
|
|
" AND LEFT(cur_date,4) >= #{startDate}", |
|
|
|
|
" </if>", |
|
|
|
|
" <if test='endDate != null and endDate != \"\"'>", |
|
|
|
|
" AND LEFT(cur_date,4) <= #{endDate}", |
|
|
|
|
" </if>", |
|
|
|
|
" group by cur_date ) T", |
|
|
|
|
"<where>", |
|
|
|
|
" <if test='page != 0 and limit != 0'>", |
|
|
|
|
" T.rn > (#{page}-1)*#{limit} AND T.rn <= #{page}*#{limit}", |
|
|
|
|
" </if>", |
|
|
|
|
"</where>", |
|
|
|
|
"ORDER BY T.cur_date DESC", |
|
|
|
|
"</script>" |
|
|
|
|
}) |
|
|
|
|
@ResultMap("rs") |
|
|
|
|
List<EnergyEntity> getAreaEnergyYear(@Param("buildingIds") List<String> buildingIds, |
|
|
|
|
@Param("startDate") String startDate, |
|
|
|
|
@Param("endDate") String endDate, |
|
|
|
|
@Param("page") int page, |
|
|
|
|
@Param("limit") int limit, |
|
|
|
|
@Param("areaName") String areaName); |
|
|
|
|
|
|
|
|
|
@Select({ |
|
|
|
|
"<script>", |
|
|
|
|
"SELECT T.cur_date, " + |
|
|
|
|
" T.use_hot_water , " + |
|
|
|
|
" T.elect_value, " + |
|
|
|
|
" T.elect_water, " + |
|
|
|
|
" t.check_in_count , " + |
|
|
|
|
" t.per_water , " + |
|
|
|
|
" t.per_elect , " + |
|
|
|
|
" t.rn, " + |
|
|
|
|
" #{areaName} as building_name FROM (", |
|
|
|
|
" SELECT " + |
|
|
|
|
" cur_date, " + |
|
|
|
|
" sum(use_hot_water) as use_hot_water, " + |
|
|
|
|
" sum(elect_value) as elect_value, " + |
|
|
|
|
" CASE WHEN sum(use_hot_water) = 0 THEN 0 ELSE sum(elect_value)/ sum(use_hot_water) END as elect_water, " + |
|
|
|
|
" sum(check_in_count) as check_in_count, " + |
|
|
|
|
" CASE WHEN sum(check_in_count) = 0 THEN 0 ELSE sum(use_hot_water) / sum(check_in_count) END as per_water, " + |
|
|
|
|
" CASE WHEN sum(check_in_count) = 0 THEN 0 ELSE sum(elect_value)/ sum(check_in_count) END as per_elect , " + |
|
|
|
|
" ROW_NUMBER() OVER(ORDER BY cur_date DESC) AS rn " + |
|
|
|
|
" FROM energy_hour ", |
|
|
|
|
" WHERE 1=1", |
|
|
|
|
" <if test='buildingIds != null and !buildingIds.isEmpty()'>", |
|
|
|
|
" AND building_id IN", |
|
|
|
|
" <foreach collection='buildingIds' item='id' open='(' separator=',' close=')'>", |
|
|
|
|
" #{id}", |
|
|
|
|
" </foreach>", |
|
|
|
|
" </if>", |
|
|
|
|
" <if test='curDate != null and curDate != \"\"'>", |
|
|
|
|
" AND LEFT(cur_date,10) = #{curDate}", |
|
|
|
|
" </if>", |
|
|
|
|
" group by cur_date ) T", |
|
|
|
|
"<where>", |
|
|
|
|
" <if test='page != 0 and limit != 0'>", |
|
|
|
|
" T.rn > (#{page}-1)*#{limit} AND T.rn <= #{page}*#{limit}", |
|
|
|
|
" </if>", |
|
|
|
|
"</where>", |
|
|
|
|
"ORDER BY T.cur_date DESC", |
|
|
|
|
"</script>" |
|
|
|
|
}) |
|
|
|
|
@ResultMap("rs") |
|
|
|
|
List<EnergyEntity> getAreaEnergyHour(@Param("buildingIds") List<String> buildingIds, |
|
|
|
|
@Param("curDate") String curDate, |
|
|
|
|
@Param("page") int page, |
|
|
|
|
@Param("limit") int limit, |
|
|
|
|
@Param("areaName") String areaName); |
|
|
|
|
} |
|
|
|
|