diff --git a/src/main/java/com/southern/power/grid/dao/DnerHourlyPowerOutageEventMapper.java b/src/main/java/com/southern/power/grid/dao/DnerHourlyPowerOutageEventMapper.java index bd2bed1..105d8bc 100644 --- a/src/main/java/com/southern/power/grid/dao/DnerHourlyPowerOutageEventMapper.java +++ b/src/main/java/com/southern/power/grid/dao/DnerHourlyPowerOutageEventMapper.java @@ -18,4 +18,11 @@ public interface DnerHourlyPowerOutageEventMapper extends BaseMapper selectListByConditions(@Param("orgCode") String orgCode, @Param("startDate") String startDate, @Param("endDate") String endDate); + + /** + * 批量插入事件记录 + * @param list 待插入的数据列表 + * @return 插入成功的条数 + */ + int batchInsert(List list); } diff --git a/src/main/java/com/southern/power/grid/dao/DnerSiteAreaConfigurationMapper.java b/src/main/java/com/southern/power/grid/dao/DnerSiteAreaConfigurationMapper.java index 8f7c855..e2c609d 100644 --- a/src/main/java/com/southern/power/grid/dao/DnerSiteAreaConfigurationMapper.java +++ b/src/main/java/com/southern/power/grid/dao/DnerSiteAreaConfigurationMapper.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.southern.power.grid.entity.DnerSiteAreaConfiguration; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 行政区划配置表 -- mapper类 * @@ -12,5 +14,5 @@ import org.apache.ibatis.annotations.Mapper; **/ @Mapper public interface DnerSiteAreaConfigurationMapper extends BaseMapper { - + List selectAll(); } diff --git a/src/main/java/com/southern/power/grid/dao/NationalWeatherStationMapper.java b/src/main/java/com/southern/power/grid/dao/NationalWeatherStationMapper.java index 7b6ef42..718d8f3 100644 --- a/src/main/java/com/southern/power/grid/dao/NationalWeatherStationMapper.java +++ b/src/main/java/com/southern/power/grid/dao/NationalWeatherStationMapper.java @@ -3,6 +3,9 @@ package com.southern.power.grid.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.southern.power.grid.entity.NationalWeatherStation; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 国家气象站 -- mapper类 @@ -12,4 +15,12 @@ import org.apache.ibatis.annotations.Mapper; **/ @Mapper public interface NationalWeatherStationMapper extends BaseMapper { + /** + * 按站号 + 时间范围查询(时间字符串格式:yyyy-MM-dd HH) + */ + List selectByStationAndTimeRange( + @Param("stationId") String stationId, + @Param("startTime") String startTime, + @Param("endTime") String endTime + ); } diff --git a/src/main/java/com/southern/power/grid/dao/NwSiteAreaConfigurationMapper.java b/src/main/java/com/southern/power/grid/dao/NwSiteAreaConfigurationMapper.java index 556c6af..463fe83 100644 --- a/src/main/java/com/southern/power/grid/dao/NwSiteAreaConfigurationMapper.java +++ b/src/main/java/com/southern/power/grid/dao/NwSiteAreaConfigurationMapper.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.southern.power.grid.entity.NwSiteAreaConfiguration; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 南网区划配置表 Mapper接口 * @@ -12,5 +14,5 @@ import org.apache.ibatis.annotations.Mapper; **/ @Mapper public interface NwSiteAreaConfigurationMapper extends BaseMapper { - + List selectAll(); } diff --git a/src/main/java/com/southern/power/grid/dao/PowerGridConfigMapper.java b/src/main/java/com/southern/power/grid/dao/PowerGridConfigMapper.java new file mode 100644 index 0000000..6743f6c --- /dev/null +++ b/src/main/java/com/southern/power/grid/dao/PowerGridConfigMapper.java @@ -0,0 +1,9 @@ +package com.southern.power.grid.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.southern.power.grid.entity.NwSiteAreaConfiguration; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface PowerGridConfigMapper extends BaseMapper { +} diff --git a/src/main/java/com/southern/power/grid/dao/RegionalWeatherStationMapper.java b/src/main/java/com/southern/power/grid/dao/RegionalWeatherStationMapper.java index d8c4be7..5a15f81 100644 --- a/src/main/java/com/southern/power/grid/dao/RegionalWeatherStationMapper.java +++ b/src/main/java/com/southern/power/grid/dao/RegionalWeatherStationMapper.java @@ -3,6 +3,9 @@ package com.southern.power.grid.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.southern.power.grid.entity.RegionalWeatherStation; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 区域气象站 -- mapper类 @@ -12,4 +15,9 @@ import org.apache.ibatis.annotations.Mapper; **/ @Mapper public interface RegionalWeatherStationMapper extends BaseMapper { + List selectByStationAndTimeRange( + @Param("stationId") String stationId, + @Param("startTime") String startTime, + @Param("endTime") String endTime + ); } diff --git a/src/main/java/com/southern/power/grid/dao/WeatherSiteAreaConfigurationMapper.java b/src/main/java/com/southern/power/grid/dao/WeatherSiteAreaConfigurationMapper.java index 12348fd..6bfe7dd 100644 --- a/src/main/java/com/southern/power/grid/dao/WeatherSiteAreaConfigurationMapper.java +++ b/src/main/java/com/southern/power/grid/dao/WeatherSiteAreaConfigurationMapper.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.southern.power.grid.entity.WeatherSiteAreaConfiguration; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 气象区划配置表 Mapper 接口 * @@ -12,5 +14,5 @@ import org.apache.ibatis.annotations.Mapper; **/ @Mapper public interface WeatherSiteAreaConfigurationMapper extends BaseMapper { - + List selectAll(); } diff --git a/src/main/java/com/southern/power/grid/entity/DataExcelEntity.java b/src/main/java/com/southern/power/grid/entity/DataExcelEntity.java index 777024f..00d8384 100644 --- a/src/main/java/com/southern/power/grid/entity/DataExcelEntity.java +++ b/src/main/java/com/southern/power/grid/entity/DataExcelEntity.java @@ -11,6 +11,6 @@ import lombok.Data; **/ @Data public class DataExcelEntity { - @ExcelProperty(index = 0, value = "省份") + @ExcelProperty(value = "省") private String province; } diff --git a/src/main/java/com/southern/power/grid/entity/ExcelHourlyOutageRowDTO.java b/src/main/java/com/southern/power/grid/entity/ExcelHourlyOutageRowDTO.java new file mode 100644 index 0000000..dd65ab0 --- /dev/null +++ b/src/main/java/com/southern/power/grid/entity/ExcelHourlyOutageRowDTO.java @@ -0,0 +1,25 @@ +package com.southern.power.grid.entity; + +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +public class ExcelHourlyOutageRowDTO { + /** 资料时次,对应分时表的 data_time */ + private LocalDateTime dataTime; + + /** Excel 中体现的南网省/地市局/区县局(用于映射) */ + private String nwProvince; + private String nwCity; + private String nwDistrict; + + /** 停电影响用户数等业务字段(示例) */ + private Integer userCount; + private Integer outageState; + private Integer outageType; + + // ... 根据你的 Excel 列补全 + + // getter/setter +} diff --git a/src/main/java/com/southern/power/grid/entity/WeatherDataDTO.java b/src/main/java/com/southern/power/grid/entity/WeatherDataDTO.java new file mode 100644 index 0000000..dfc33ce --- /dev/null +++ b/src/main/java/com/southern/power/grid/entity/WeatherDataDTO.java @@ -0,0 +1,19 @@ +package com.southern.power.grid.entity; + +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +public class WeatherDataDTO { + private String stationId; + private String stationName; + private LocalDateTime dataTime; + + private String temperature; + private String hourlyMaxTemperature; + private String hourlyMinTemperature; + private String hourlyPrecipitation; + private String dailyPrecipitation; + private String extremeWindSpeedHourly; +} diff --git a/src/main/java/com/southern/power/grid/service/WeatherDataService.java b/src/main/java/com/southern/power/grid/service/WeatherDataService.java new file mode 100644 index 0000000..0e96e64 --- /dev/null +++ b/src/main/java/com/southern/power/grid/service/WeatherDataService.java @@ -0,0 +1,19 @@ +package com.southern.power.grid.service; + +import com.southern.power.grid.entity.WeatherDataDTO; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.List; + +public interface WeatherDataService { + /** + * 根据站点ID + 起始日期(从0点起,向后7天)从 DB 查询并返回 7 天气象数据 + */ + List query7DaysWeather(String stationId, LocalDate startDate); + + /** + * 从缓存(若无则查库)中获取指定 站点 + 时间点 对应的气象数据 + */ + WeatherDataDTO getWeatherData(String stationId, LocalDateTime dateTime); +} diff --git a/src/main/java/com/southern/power/grid/service/impl/DnerHourlyPowerOutageEventServiceImpl.java b/src/main/java/com/southern/power/grid/service/impl/DnerHourlyPowerOutageEventServiceImpl.java index 450cdc6..7ef2cd0 100644 --- a/src/main/java/com/southern/power/grid/service/impl/DnerHourlyPowerOutageEventServiceImpl.java +++ b/src/main/java/com/southern/power/grid/service/impl/DnerHourlyPowerOutageEventServiceImpl.java @@ -8,7 +8,9 @@ import com.southern.power.grid.service.IDnerHourlyPowerOutageEventService; import com.southern.power.grid.utils.TimeUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -26,9 +28,12 @@ import java.util.stream.Collectors; public class DnerHourlyPowerOutageEventServiceImpl extends ServiceImpl implements IDnerHourlyPowerOutageEventService { - @Autowired + @Resource private DnerHourlyPowerOutageEventMapper dnerHourlyPowerOutageEventMapper; + + + @Override public HourlyPowerOutageEventChartVO queryIntradayData(String orgCode, String startDate, String endDate) { List dataList = dnerHourlyPowerOutageEventMapper.selectListByConditions( @@ -70,4 +75,10 @@ public class DnerHourlyPowerOutageEventServiceImpl result.setWindList(windList); return result; } + + + + + + } diff --git a/src/main/java/com/southern/power/grid/service/impl/HourlyOutageExcelProcessService.java b/src/main/java/com/southern/power/grid/service/impl/HourlyOutageExcelProcessService.java new file mode 100644 index 0000000..502d1ac --- /dev/null +++ b/src/main/java/com/southern/power/grid/service/impl/HourlyOutageExcelProcessService.java @@ -0,0 +1,158 @@ +package com.southern.power.grid.service.impl; + +import com.southern.power.grid.dao.DnerHourlyPowerOutageEventMapper; +import com.southern.power.grid.dao.NwSiteAreaConfigurationMapper; +import com.southern.power.grid.dao.WeatherSiteAreaConfigurationMapper; +import com.southern.power.grid.entity.DnerHourlyPowerOutageEvent; +import com.southern.power.grid.entity.ExcelHourlyOutageRowDTO; +import com.southern.power.grid.entity.NwSiteAreaConfiguration; +import com.southern.power.grid.entity.WeatherDataDTO; +import com.southern.power.grid.entity.WeatherSiteAreaConfiguration; +import com.southern.power.grid.service.WeatherDataService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class HourlyOutageExcelProcessService { + @Resource + private NwSiteAreaConfigurationMapper nwSiteAreaConfigurationMapper; + + @Resource + private WeatherSiteAreaConfigurationMapper weatherSiteAreaConfigurationMapper; + + @Resource + private WeatherDataService weatherDataService; + + @Resource + private DnerHourlyPowerOutageEventMapper dnerHourlyPowerOutageEventMapper; + + /** + * key = nw_province + "|" + nw_city + "|" + nw_district ;value = district_code + */ + private final Map nwAreaMap = new HashMap<>(); + + /** + * key = district_code ;value = WeatherSiteAreaConfiguration(包含 station_id/station_name) + */ + private final Map weatherAreaMap = new HashMap<>(); + + private static final DateTimeFormatter DB_DATETIME_STR = + DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + + /** + * 对外主入口:处理一批 Excel 解析后的数据,按逻辑补齐气象数据并批量入库 + */ + @Transactional(rollbackFor = Exception.class) + public void process(List excelRows) { + // 1. 加载南网配置表 + loadNwAreaConfig(); + // 2. 加载气象区划配置表 + loadWeatherAreaConfig(); + + List toInsert = new ArrayList<>(); + + // 3 & 4. 循环处理 Excel 行 + for (ExcelHourlyOutageRowDTO row : excelRows) { + // 3.1 根据南网省/市/区县 → district_code + String districtCode = findDistrictCode(row.getNwProvince(), row.getNwCity(), row.getNwDistrict()); + if (districtCode == null) { + // 找不到映射,可记录日志或统计 + continue; + } + + // 3.2 district_code → station_id + WeatherSiteAreaConfiguration weatherArea = weatherAreaMap.get(districtCode); + if (weatherArea == null || weatherArea.getStationId() == null) { + // 找不到对应气象站 + continue; + } + String stationId = weatherArea.getStationId(); + + // 3.3 通过 stationId + 时间,统一取7天气象数据(内部做缓存) + LocalDateTime dataTime = row.getDataTime(); + WeatherDataDTO weatherData = weatherDataService.getWeatherData(stationId, dataTime); + + // 3.4 组装分时停电事件实体 + DnerHourlyPowerOutageEvent entity = buildHourlyEvent(row, districtCode, weatherData); + toInsert.add(entity); + } + + if (!toInsert.isEmpty()) { + // 4. 批量入库 + dnerHourlyPowerOutageEventMapper.batchInsert(toInsert); + } + } + + private void loadNwAreaConfig() { + nwAreaMap.clear(); + List list = nwSiteAreaConfigurationMapper.selectAll(); + if (list == null) return; + + for (NwSiteAreaConfiguration cfg : list) { + String key = buildNwKey(cfg.getNwProvince(), cfg.getNwCity(), cfg.getNwDistrict()); + if (cfg.getDistrictCode() != null && !cfg.getDistrictCode().isEmpty()) { + nwAreaMap.put(key, cfg.getDistrictCode()); + } + } + } + + private void loadWeatherAreaConfig() { + weatherAreaMap.clear(); + List list = weatherSiteAreaConfigurationMapper.selectAll(); + if (list == null) return; + for (WeatherSiteAreaConfiguration cfg : list) { + if (cfg.getDistrictCode() != null && !cfg.getDistrictCode().isEmpty()) { + weatherAreaMap.put(cfg.getDistrictCode(), cfg); + } + } + } + + private String buildNwKey(String province, String city, String district) { + return (province == null ? "" : province.trim()) + "|" + + (city == null ? "" : city.trim()) + "|" + + (district == null ? "" : district.trim()); + } + + private String findDistrictCode(String nwProvince, String nwCity, String nwDistrict) { + String key = buildNwKey(nwProvince, nwCity, nwDistrict); + return nwAreaMap.get(key); + } + + private DnerHourlyPowerOutageEvent buildHourlyEvent(ExcelHourlyOutageRowDTO row, + String districtCode, + WeatherDataDTO weatherData) { + DnerHourlyPowerOutageEvent e = new DnerHourlyPowerOutageEvent(); + e.setOrgCode(districtCode); + + // 时间转成字符串,入库到 data_time + if (row.getDataTime() != null) { + e.setDataTime(row.getDataTime().format(DB_DATETIME_STR)); + } + + // Excel 本身的业务字段 + e.setUserCount(row.getUserCount()); + e.setOutageState(row.getOutageState()); + e.setOutageType(row.getOutageType()); + + // 气象字段(如不存在数据可以为 null) + if (weatherData != null) { + e.setTemperature(weatherData.getTemperature()); + e.setHourlyMaxTemperature(weatherData.getHourlyMaxTemperature()); + e.setHourlyMinTemperature(weatherData.getHourlyMinTemperature()); + e.setHourlyPrecipitation(weatherData.getHourlyPrecipitation()); + e.setDailyPrecipitation(weatherData.getDailyPrecipitation()); + e.setExtremeWindSpeedHourly(weatherData.getExtremeWindSpeedHourly()); + } + + // create_by/update_by 可根据当前登录用户等进行填充 + return e; + } +} diff --git a/src/main/java/com/southern/power/grid/service/impl/WeatherDataServiceImpl.java b/src/main/java/com/southern/power/grid/service/impl/WeatherDataServiceImpl.java new file mode 100644 index 0000000..83eb010 --- /dev/null +++ b/src/main/java/com/southern/power/grid/service/impl/WeatherDataServiceImpl.java @@ -0,0 +1,129 @@ +package com.southern.power.grid.service.impl; + +import com.southern.power.grid.dao.NationalWeatherStationMapper; +import com.southern.power.grid.dao.RegionalWeatherStationMapper; +import com.southern.power.grid.entity.NationalWeatherStation; +import com.southern.power.grid.entity.RegionalWeatherStation; +import com.southern.power.grid.entity.WeatherDataDTO; +import com.southern.power.grid.service.WeatherDataService; + +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.*; + +@Service +public class WeatherDataServiceImpl implements WeatherDataService { + @Resource + private NationalWeatherStationMapper nationalWeatherStationMapper; + + @Resource + private RegionalWeatherStationMapper regionalWeatherStationMapper; + + /** + * 缓存:key = stationId + "|" + startDate(yyyy-MM-dd),value = Map + */ + private final Map> cache = new HashMap<>(); + + private static final DateTimeFormatter DB_TIME_FORMAT = DateTimeFormatter.ofPattern("yyyy-MM-dd HH"); + + @Override + public List query7DaysWeather(String stationId, LocalDate startDate) { + LocalDateTime start = startDate.atStartOfDay(); + LocalDateTime end = start.plusDays(7); + + String startStr = start.format(DB_TIME_FORMAT); + String endStr = end.format(DB_TIME_FORMAT); + + List nationalList = + nationalWeatherStationMapper.selectByStationAndTimeRange(stationId, startStr, endStr); + List regionalList = + regionalWeatherStationMapper.selectByStationAndTimeRange(stationId, startStr, endStr); + + List result = new ArrayList<>(); + if (nationalList != null) { + for (NationalWeatherStation n : nationalList) { + result.add(convertFromNational(n)); + } + } + if (regionalList != null) { + for (RegionalWeatherStation r : regionalList) { + result.add(convertFromRegional(r)); + } + } + return result; + } + + @Override + public WeatherDataDTO getWeatherData(String stationId, LocalDateTime dateTime) { + if (stationId == null || dateTime == null) { + return null; + } + LocalDate startDate = dateTime.toLocalDate(); + String windowKey = buildWindowKey(stationId, startDate); + + Map stationMap = cache.get(windowKey); + if (stationMap == null) { + stationMap = new HashMap<>(); + List list = query7DaysWeather(stationId, startDate); + if (list != null) { + for (WeatherDataDTO dto : list) { + if (dto.getDataTime() != null) { + stationMap.put(dto.getDataTime(), dto); + } + } + } + cache.put(windowKey, stationMap); + } + return stationMap.get(dateTime); + } + + private String buildWindowKey(String stationId, LocalDate startDate) { + return stationId + "|" + startDate.toString(); + } + + private WeatherDataDTO convertFromNational(NationalWeatherStation n) { + WeatherDataDTO dto = new WeatherDataDTO(); + dto.setStationId(n.getStationId()); + dto.setStationName(n.getStationName()); + dto.setDataTime(parseDataTime(n.getDataTime())); + dto.setTemperature(n.getTemperature()); + dto.setHourlyMaxTemperature(n.getHourlyMaxTemperature()); + dto.setHourlyMinTemperature(n.getHourlyMinTemperature()); + dto.setHourlyPrecipitation(n.getHourlyPrecipitation()); + dto.setDailyPrecipitation(n.getDailyPrecipitation()); + dto.setExtremeWindSpeedHourly(n.getExtremeWindSpeedHourly()); + return dto; + } + + private WeatherDataDTO convertFromRegional(RegionalWeatherStation r) { + WeatherDataDTO dto = new WeatherDataDTO(); + dto.setStationId(r.getStationId()); + dto.setStationName(r.getStationName()); + dto.setDataTime(parseDataTime(r.getDataTime())); + dto.setTemperature(r.getTemperature()); + dto.setHourlyMaxTemperature(r.getHourlyMaxTemperature()); + dto.setHourlyMinTemperature(r.getHourlyMinTemperature()); + dto.setHourlyPrecipitation(r.getHourlyPrecipitation()); + dto.setDailyPrecipitation(r.getDailyPrecipitation()); + dto.setExtremeWindSpeedHourly(r.getExtremeWindSpeedHourly()); + return dto; + } + + private LocalDateTime parseDataTime(String dataTime) { + if (dataTime == null || dataTime.isEmpty()) return null; + // 你实际存的是 "yyyy-MM-dd HH:mm:ss" 还是 "yyyyMMddHH" 自己调整解析格式 + try { + return LocalDateTime.parse(dataTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + } catch (Exception e) { + try { + return LocalDateTime.parse(dataTime, DateTimeFormatter.ofPattern("yyyyMMddHH")); + } catch (Exception ex) { + return null; + } + } + } +} diff --git a/src/main/resources/mapper/DnerHourlyPowerOutageEventMapper.xml b/src/main/resources/mapper/DnerHourlyPowerOutageEventMapper.xml index 1d72981..45ffd0a 100644 --- a/src/main/resources/mapper/DnerHourlyPowerOutageEventMapper.xml +++ b/src/main/resources/mapper/DnerHourlyPowerOutageEventMapper.xml @@ -14,4 +14,32 @@ and data_time #{endDate} order by data_time asc + + + INSERT INTO dner_hourly_power_outage_event ( + org_code, data_time, hourly_precipitation, daily_precipitation, + temperature, hourly_max_temperature, hourly_min_temperature, + extreme_wind_speed_hourly, user_count, outage_state, outage_type, + create_by, create_time, update_by, update_time + ) VALUES + + ( + #{item.orgCode}, + #{item.dataTime}, + #{item.hourlyPrecipitation}, + #{item.dailyPrecipitation}, + #{item.temperature}, + #{item.hourlyMaxTemperature}, + #{item.hourlyMinTemperature}, + #{item.extremeWindSpeedHourly}, + #{item.userCount}, + #{item.outageState}, + #{item.outageType}, + #{item.createBy}, + NOW(), + #{item.updateBy}, + NOW() + ) + + \ No newline at end of file diff --git a/src/main/resources/mapper/DnerSiteAreaConfigurationMapper.xml b/src/main/resources/mapper/DnerSiteAreaConfigurationMapper.xml new file mode 100644 index 0000000..a40b601 --- /dev/null +++ b/src/main/resources/mapper/DnerSiteAreaConfigurationMapper.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/NationalWeatherStationMapper.xml b/src/main/resources/mapper/NationalWeatherStationMapper.xml new file mode 100644 index 0000000..24d2028 --- /dev/null +++ b/src/main/resources/mapper/NationalWeatherStationMapper.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/NwSiteAreaConfigurationMapper.xml b/src/main/resources/mapper/NwSiteAreaConfigurationMapper.xml new file mode 100644 index 0000000..a2ca762 --- /dev/null +++ b/src/main/resources/mapper/NwSiteAreaConfigurationMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/RegionalWeatherStationMapper.xml b/src/main/resources/mapper/RegionalWeatherStationMapper.xml new file mode 100644 index 0000000..0e99ece --- /dev/null +++ b/src/main/resources/mapper/RegionalWeatherStationMapper.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/WeatherSiteAreaConfigurationMapper.xml b/src/main/resources/mapper/WeatherSiteAreaConfigurationMapper.xml new file mode 100644 index 0000000..bc489d7 --- /dev/null +++ b/src/main/resources/mapper/WeatherSiteAreaConfigurationMapper.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file