diff --git a/src/main/java/com/southern/power/grid/service/impl/DnerDailyPowerOutageEventSyncServiceImpl.java b/src/main/java/com/southern/power/grid/service/impl/DnerDailyPowerOutageEventSyncServiceImpl.java index 32e7a2b..f07c49f 100644 --- a/src/main/java/com/southern/power/grid/service/impl/DnerDailyPowerOutageEventSyncServiceImpl.java +++ b/src/main/java/com/southern/power/grid/service/impl/DnerDailyPowerOutageEventSyncServiceImpl.java @@ -16,6 +16,7 @@ import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Service; import org.springframework.util.Assert; import org.springframework.util.CollectionUtils; +import org.springframework.util.ObjectUtils; import org.springframework.util.StringUtils; import java.time.LocalDate; @@ -54,9 +55,9 @@ public class DnerDailyPowerOutageEventSyncServiceImpl extends ServiceImpl()); + if (ObjectUtils.isEmpty(count) || count == 0) { + log.info("同步日K数据,分时表数据为空"); + return true; + } if (!StringUtils.hasLength(startDate)) { startDate = getStartDate(eventId); } @@ -90,6 +96,8 @@ public class DnerDailyPowerOutageEventSyncServiceImpl extends ServiceImpl allDates = getAllDates(startDate, endDate); if (CollectionUtils.isEmpty(allDates)) { @@ -205,7 +213,7 @@ public class DnerDailyPowerOutageEventSyncServiceImpl extends ServiceImpl future : futures) { 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 index 4f5ccb5..93eec55 100644 --- a/src/main/java/com/southern/power/grid/service/impl/HourlyOutageExcelProcessService.java +++ b/src/main/java/com/southern/power/grid/service/impl/HourlyOutageExcelProcessService.java @@ -67,7 +67,7 @@ public class HourlyOutageExcelProcessService { if (rowContexts.isEmpty()) { return; } - + log.info("需要处理数据数量:{}",districtTimeRangeMap.size()); // 3.2 按区县分批 IN 查询气象数据,并建立区县+时次索引 Map> weatherIndex = loadWeatherIndexByDistrict(districtTimeRangeMap); @@ -133,10 +133,10 @@ public class HourlyOutageExcelProcessService { /** * 遍历原始 Excel 行,完成预处理、合法性校验、区域编码映射,并产出后续处理所需上下文。 * - * @param excelRows 原始 Excel 行 - * @param districtCodeCache 区域编码缓存(省市区 -> 区县编码) - * @param rowContexts 输出参数:有效行与区县编码映射 - * @param districtTimeRangeMap 输出参数:每个区县对应的最小开始时间与最大结束时间 + * @param excelRows 原始 Excel 行 + * @param districtCodeCache 区域编码缓存(省市区 -> 区县编码) + * @param rowContexts 输出参数:有效行与区县编码映射 + * @param districtTimeRangeMap 输出参数:每个区县对应的最小开始时间与最大结束时间 */ private void collectValidRowsAndRanges(List excelRows, Map districtCodeCache, @@ -267,12 +267,16 @@ public class HourlyOutageExcelProcessService { continue; } + String startDate = formatToHourStart(batchMinStart); + String endDate = formatToHourStart(batchMaxEnd); // 批量拉取该批区县在时间窗内的气象数据 List weatherDataList = regionalWeatherDataMapper.selectByOrgCodesAndTimeRange( new ArrayList<>(batchCodes), - formatToHourStart(batchMinStart), - formatToHourStart(batchMaxEnd)); - + startDate, + endDate); + if (!weatherDataList.isEmpty()) { + log.error("xxxxxxxx"); + } for (RegionalWeatherData weatherData : weatherDataList) { String orgCode = weatherData.getOrgCode(); TimeRange districtRange = districtTimeRangeMap.get(orgCode); diff --git a/src/main/java/com/southern/power/grid/service/impl/RegionalWeatherDataSyncService.java b/src/main/java/com/southern/power/grid/service/impl/RegionalWeatherDataSyncService.java index 1664860..d346990 100644 --- a/src/main/java/com/southern/power/grid/service/impl/RegionalWeatherDataSyncService.java +++ b/src/main/java/com/southern/power/grid/service/impl/RegionalWeatherDataSyncService.java @@ -190,7 +190,9 @@ public class RegionalWeatherDataSyncService extends ServiceImpl config.getDistrictCode().length() > 6 + ? config.getDistrictCode().substring(0, 6) + : config.getDistrictCode(), (oldValue, newValue) -> oldValue)); // 全部放入你的成员变量 Map diff --git a/src/main/java/com/southern/power/grid/utils/AreaConfigUtil.java b/src/main/java/com/southern/power/grid/utils/AreaConfigUtil.java index d2426bc..15b5250 100644 --- a/src/main/java/com/southern/power/grid/utils/AreaConfigUtil.java +++ b/src/main/java/com/southern/power/grid/utils/AreaConfigUtil.java @@ -92,7 +92,7 @@ public class AreaConfigUtil { nwAreaMap.put(key, cfg.getDistrictCode()); } nwAreaMapThreadLocal.set(nwAreaMap); - log.debug("南网区划配置加载完成,共 {} 条", nwAreaMap.size()); + log.info("南网区划配置加载完成,共 {} 条", nwAreaMap.size()); } /** @@ -112,10 +112,12 @@ public class AreaConfigUtil { Map> weatherAreaMap = new HashMap<>((int)(list.size() / 0.75) + 1); for (WeatherSiteAreaConfiguration cfg : list) { - weatherAreaMap.computeIfAbsent(cfg.getDistrictCode(), k -> new ArrayList<>()).add(cfg); + String districtCode = cfg.getDistrictCode(); + String key = districtCode.length() > 6 ? districtCode.substring(0, 6) : districtCode; + weatherAreaMap.computeIfAbsent(key, k -> new ArrayList<>()).add(cfg); } weatherAreaMapThreadLocal.set(weatherAreaMap); - log.debug("气象区划配置加载完成,共 {} 条", weatherAreaMap.size()); + log.info("气象区划配置加载完成,共 {} 条", weatherAreaMap.size()); } /**