package com.jiayue.client.service; import lombok.extern.slf4j.Slf4j; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Repository; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import java.util.Map; @Repository @Slf4j public class QueryDataService { private final static String WHITH_AND_SQL_STR = "'and '"; private final JdbcTemplate jdbcTemplate; public QueryDataService(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } public static Long changStrTimeToLongTime(String strTime) { long resultTime = -1L; SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //设置要读取的时间字符串格式 try { Date date = format.parse(strTime); resultTime = date.getTime(); } catch (ParseException e) { log.error("转换时间 {} 为Long格式出错:{}", strTime, e); } return resultTime; } /** * 查询所有电站信息 */ public List> getStations() { String stationsSql = "SELECT C_STATION_CODE,C_NAME,C_CAPACITY " + "from t_electric_field "; return jdbcTemplate.queryForList(stationsSql); } /** * 查询实际功率 * * @param startTime * @param endTime * @param stationCode * @return */ public List> getRps(String startTime, String endTime, String stationCode) { String rpsSql = "SELECT C_TIME,C_STATION_CODE,C_REAL_VALUE " + "from t_power_station_status_data where C_STATION_CODE='" + stationCode + "' and C_TIME between '" + startTime + WHITH_AND_SQL_STR + endTime + "'"; log.info("实际功率回传数据查询sql:{}", rpsSql); return jdbcTemplate.queryForList(rpsSql); } /** * 查询短期数据 * * @param startTime * @param endTime * @param stationCode * @return */ public List> getDqs(String startTime, String endTime, String stationCode) { String dqsSql = "SELECT C_FORECAST_TIME,C_STATION_CODE,C_ABLE_VALUE " + "from t_forecast_power_short_term_his where C_STATION_CODE='" + stationCode + "' and C_FORECAST_TIME between '" + changStrTimeToLongTime(startTime) + WHITH_AND_SQL_STR + changStrTimeToLongTime(endTime) + "'"; log.info("短期回传数据查询sql:{}", dqsSql); return jdbcTemplate.queryForList(dqsSql); } /** * 查询超短期数据 * * @param startTime * @param endTime * @param stationCode * @return */ public List> getCdqs(String startTime, String endTime, String stationCode) { String cdqsSql = "SELECT C_FORECAST_TIME,C_STATION_CODE,C_ABLE_VALUE " + "from t_forecast_power_ultra_short_term_his where C_STATION_CODE='" + stationCode + "' and C_FORECAST_TIME between '" + changStrTimeToLongTime(startTime) + WHITH_AND_SQL_STR + changStrTimeToLongTime(endTime) + "'"; log.info("超短期回传数据查询sql:{}", cdqsSql); return jdbcTemplate.queryForList(cdqsSql); } /** * 查询环境检测仪数据:时间,设备编号,总辐射,环境温度 * * @param startTime * @param endTime * @param equirpmentNo * @return */ public List> getWeatherds(String startTime, String endTime, String equirpmentNo) { String wedSql = "SELECT C_TIME,C_EQUIPMENT_ID,C_GLOBALR,C_AIRT " + "from t_weather_station_status_data where C_EQUIPMENT_ID='" + equirpmentNo + "' and C_TIME between '" + startTime + WHITH_AND_SQL_STR + endTime + "'"; log.info("超短期回传数据查询sql:{}", wedSql); return jdbcTemplate.queryForList(wedSql); } /** * 查询测风塔数据 :时间,设备编号,风速,风向 * * @param startTime * @param endTime * @param equirpmentNo * @return */ public List> getCfts(String startTime, String endTime, String equirpmentNo) { String cftsSql = "SELECT C_TIME,C_EQUIPMENT_ID,C_WS_INST_HUB_HEIGHT,C_WD_INST_HUB_HEIGHT " + "from t_wind_tower_status_data where C_EQUIPMENT_ID='" + equirpmentNo + "' and C_TIME between '" + startTime + WHITH_AND_SQL_STR + endTime + "'"; log.info("测风塔回传数据查询sql:{}", cftsSql); return jdbcTemplate.queryForList(cftsSql); } /** * 查询风机信息:时间,设备编号,风速,风向 * * @param startTime * @param endTime * @param equirpmentNo * @return */ public List> getFjs(String startTime, String endTime, String equirpmentNo) { String fjsSql = "SELECT C_TIME,C_EQUIPMENT_ID,C_WS,C_WD " + "from t_wind_turbine_status_data where C_EQUIPMENT_ID='" + equirpmentNo + "' and C_TIME between '" + startTime + WHITH_AND_SQL_STR + endTime + "'"; log.info("风机回传数据查询sql:{}", fjsSql); return jdbcTemplate.queryForList(fjsSql); } /** * 查询环境检测仪信息 * * @param stationCode * @return */ public List> getWeatherStations(String stationCode) { String fjsSql = "SELECT C_ID,C_EQUIPMENT_NO,C_EQUIPMENT_TYPE " + "from t_weather_station_info where C_STATION_CODE='" + stationCode + "' "; log.info("环境检测仪设备信息查询sql:{}", fjsSql); return jdbcTemplate.queryForList(fjsSql); } /** * 查询测风塔信息 * * @param stationCode * @return */ public List> getWindTower(String stationCode) { String fjsSql = "SELECT C_ID,C_EQUIPMENT_NO,C_EQUIPMENT_TYPE " + "from t_wind_tower_info where C_STATION_CODE='" + stationCode + "' "; log.info("测风塔设备信息查询sql:{}", fjsSql); return jdbcTemplate.queryForList(fjsSql); } /** * 查询风机信息 * * @param stationCode * @return */ public List> getWindTurbine(String stationCode) { String fjsSql = "SELECT C_ID,C_EQUIPMENT_NO,C_EQUIPMENT_TYPE " + "from t_wind_turbine_info where C_STATION_CODE='" + stationCode + "' "; log.info("风机设备信息查询sql:{}", fjsSql); return jdbcTemplate.queryForList(fjsSql); } }