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);
}