package com.mh.user.mapper; import com.mh.user.entity.EnergyEntity; import com.mh.user.mapper.provider.EnergyProvider; import com.mh.user.model.SumModel; import org.apache.ibatis.annotations.*; import org.apache.ibatis.mapping.StatementType; import java.util.List; public interface EnergyMapper { /** * 生产信息 * 保存 * @param energyEntity */ //按天 @Insert("insert into energy_day(cur_date,building_id,building_name,hot_water_value,use_hot_water,elect_value,elect_water,check_in_count,per_elect,per_water) values (" + " #{curDate},#{buildingId},#{buildingName},#{hotWaterValue},#{useHotWater},#{electValue},#{electWater},#{checkInCount},#{perElect},#{perWater})") void saveEnergyDay(EnergyEntity energyEntity); //按月 @Insert("insert into energy_month(cur_date,building_id,building_name,hot_water_value,use_hot_water,elect_value,elect_water,check_in_count,per_elect,per_water) values (" + " #{curTime},#{buildingId},#{buildingName},#{hotWaterValue},#{useHotWater},#{electValue},#{electWater},#{checkInCount},#{perElect},#{perWater})") void saveEnergyMonth(EnergyEntity energyEntity); //按年 @Insert("insert into energy_month(cur_date,building_id,building_name,hot_water_value,use_hot_water,elect_value,elect_water,check_in_count,per_elect,per_water) values (" + " #{curDate},#{buildingId},#{buildingName},#{hotWaterValue},#{useHotWater},#{electValue},#{electWater},#{checkInCount},#{perElect},#{perWater})") void saveEnergyYear(EnergyEntity energyEntity); /** * 生产信息 * 修改 * @param energyEntity */ //按天 @Update("") void updateEnergyDay(EnergyEntity energyEntity); //按月 @Update("") void updateEnergyMonth(EnergyEntity energyEntity); //按年 @Update("") void updateEnergyYear(EnergyEntity energyEntity); /** * 生产信息 * 根据时间日期和楼栋编号删除记录 * @param curDate * @param buildingId */ //按天 @Delete("delete from energy_day where cur_date=#{curDate} and building_id=#{buildingId} ") void deleteEnergyDay(@Param("curDate") String curDate,@Param("buildingId") String buildingId); //按月 @Delete("delete from energy_month where cur_date=#{curDate} and building_id=#{buildingId} ") void deleteEnergyMonth(@Param("curDate") String curDate,@Param("buildingId") String buildingId); //按年 @Delete("delete from energy_year where cur_date=#{curDate} and building_id=#{buildingId} ") void deleteEnergyYear(@Param("curDate") String curDate,@Param("buildingId") String buildingId); /** * 生产信息 * 查询 * @param buildingId * @param startDate * @param endDate * @param page * @param limit * @return */ //按天 @SelectProvider(type = EnergyProvider.class,method = "queryEnergyDay") @Results(id="rs",value = { @Result(property="curDate",column="cur_date"), @Result(property="buildingId",column="building_id"), @Result(property="buildingName",column="building_name"), @Result(property="hotWaterValue",column="hot_water_value"), @Result(property ="useHotWater",column ="use_hot_water"), @Result(property ="electValue",column ="elect_value"), @Result(property="electWater",column="elect_water"), @Result(property="checkInCount",column="check_in_count"), @Result(property="perElect",column="per_elect"), @Result(property="perWater",column="per_water"), @Result(property="electCurValue",column="elect_curValue"), @Result(property="wtCurValue",column="wt_curValue") }) List queryEnergyDay(@Param("buildingId") String buildingId, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("page") int page, @Param("limit") int limit); //按月 @SelectProvider(type = EnergyProvider.class,method = "queryEnergyMonth") @ResultMap("rs") List queryEnergyMonth(@Param("buildingId") String buildingId, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("page") int page, @Param("limit") int limit); //按年 @SelectProvider(type = EnergyProvider.class,method = "queryEnergyYear") @ResultMap("rs") List queryEnergyYear(@Param("buildingId") String buildingId, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("page") int page, @Param("limit") int limit); /** * 生产信息 * 查询记录数 * @return */ //按天 @SelectProvider(type = EnergyProvider.class,method = "getEnergyDayCount") int getEnergyDayCount(@Param("buildingId") String buildingId, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("page") int page, @Param("limit") int limit); //按月 @SelectProvider(type = EnergyProvider.class,method = "getEnergyMonthCount") int getEnergyMonthCount(@Param("buildingId") String buildingId, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("page") int page, @Param("limit") int limit); //按年 @SelectProvider(type = EnergyProvider.class,method = "getEnergyYearCount") int getEnergyYearCount(@Param("buildingId") String buildingId, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("page") int page, @Param("limit") int limit); //按天 @Results(value = { @Result(property="curDate",column="cur_date"), @Result(property ="useHotWater",column ="use_hot_water"), @Result(property ="electValue",column ="elect_value"), @Result(property="electWater",column="elect_water"), @Result(property="perElect",column="per_elect"), @Result(property="perWater",column="per_water") }) @Select("SELECT cur_date,sum(use_hot_water) as use_hot_water,sum(elect_value) as elect_value,sum(elect_water) as elect_water FROM energy_day where Left(cur_date,10)=#{curDate} GROUP BY(cur_date)") List queryEnergyDayGroup(@Param("curDate") String curDate); //按月 @Select("SELECT cur_date,sum(use_hot_water) as use_hot_water,sum(elect_value) as elect_value,sum(elect_water) as elect_water FROM energy_month where Left(cur_date,7)=#{curDate} GROUP BY(cur_date)") List queryEnergyMonthGroup(@Param("curDate") String curDate); //按年 @Select("SELECT cur_date,sum(use_hot_water) as use_hot_water,sum(elect_value) as elect_value,sum(elect_water) as elect_water FROM energy_year where Left(cur_date,4)=#{curDate} GROUP BY(cur_date)") List queryEnergyYearGroup(@Param("curDate") String curDate); //查询每天的用量 @SelectProvider(type = EnergyProvider.class,method = "queryDayEnergy") @ResultMap("rs") List queryDayEnergy(@Param("buildingId") String buildingId, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("page") int page, @Param("limit") int limit); @SelectProvider(type = EnergyProvider.class,method = "getDayEnergyCount") int getDayEnergyCount(@Param("buildingId") String buildingId, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("page") int page, @Param("limit") int limit); /** * 生产信息 * 查询 * @param buildingId * @param curDate * @param page * @param limit * @return */ //查询每小时的用量和能耗 @SelectProvider(type = EnergyProvider.class,method = "queryHourEnergy") @ResultMap("rs") List queryHourEnergy(@Param("buildingId") String buildingId, @Param("curDate") String curDate, @Param("page") int page, @Param("limit") int limit); @SelectProvider(type = EnergyProvider.class,method = "getHourEnergyCount") int getHourEnergyCount(@Param("buildingId") String buildingId, @Param("curDate") String curDate); @ResultMap("rs") @SelectProvider(type = EnergyProvider.class,method = "queryEnergyBuilding") List queryEnergyBuilding(@Param("page") int page, @Param("limit") int limit); @Select("select count(*) from energy_building ") int getEnergyBuildingCount(); //按日、月和年查询水、电用量,计算单耗、平均用量 @Select("exec pro_energy_building #{curDate,jdbcType=VARCHAR,mode=IN},#{endDate,jdbcType=VARCHAR,mode=IN},#{type,jdbcType=VARCHAR,mode=IN} ") @Options(statementType = StatementType.CALLABLE) void proEnergyBuilding(@Param("curDate") String curDate,@Param("endDate") String endDate,@Param("type") int type); //查询合计 @Select("select sum(use_hot_water) as sumWater,sum(elect_value) as sumElect from energy_building") SumModel queryEnergySum(); @Select({ "" }) int getAreaEnergyDayCount(@Param("buildingIds") List buildingIds, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("page") int page, @Param("limit") int limit); @Select({ "" }) @ResultMap("rs") List getAreaEnergyDay(@Param("buildingIds") List buildingIds, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("page") int page, @Param("limit") int limit, @Param("areaName") String areaName); @Select({ "" }) int getAreaEnergyMonthCount(@Param("buildingIds") List buildingIds, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("page") int page, @Param("limit") int limit); @Select({ "" }) @ResultMap("rs") List getAreaEnergyMonth(@Param("buildingIds") List buildingIds, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("page") int page, @Param("limit") int limit, @Param("areaName") String areaName); @Select({ "" }) int getAreaEnergyYearCount(@Param("buildingIds") List buildingIds, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("page") int page, @Param("limit") int limit); @Select({ "" }) @ResultMap("rs") List getAreaEnergyYear(@Param("buildingIds") List buildingIds, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("page") int page, @Param("limit") int limit, @Param("areaName") String areaName); @Select({ "" }) @ResultMap("rs") List getAreaEnergyHour(@Param("buildingIds") List buildingIds, @Param("curDate") String curDate, @Param("page") int page, @Param("limit") int limit, @Param("areaName") String areaName); }