初始提交:添加分时处理

This commit is contained in:
liuzhiming 2026-03-16 16:43:19 +08:00
parent 1e53fcfa2d
commit 8fdbfb7971
3 changed files with 10 additions and 12 deletions

View File

@ -10,11 +10,9 @@ import com.southern.power.grid.service.IDnerSiteAreaConfigurationService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.InputStream; import java.io.InputStream;
import java.util.List; import java.util.List;
import java.util.UUID;
/** /**
* 配网抢修-Controller * 配网抢修-Controller

View File

@ -71,12 +71,12 @@ public class DnerHourlyPowerOutageEvent {
/** /**
* 停电状态1-待停电2-停电中3-已复电 * 停电状态1-待停电2-停电中3-已复电
*/ */
private Integer outageState; private String outageState;
/** /**
* 停电类型1-故障类2-计划类 * 停电类型1-故障类2-计划类
*/ */
private Integer outageType; private String outageType;
/** /**
* 创建人 * 创建人

View File

@ -3,8 +3,8 @@ package com.southern.power.grid.service.impl;
import com.southern.power.grid.dao.DnerHourlyPowerOutageEventMapper; import com.southern.power.grid.dao.DnerHourlyPowerOutageEventMapper;
import com.southern.power.grid.dao.NwSiteAreaConfigurationMapper; import com.southern.power.grid.dao.NwSiteAreaConfigurationMapper;
import com.southern.power.grid.dao.WeatherSiteAreaConfigurationMapper; import com.southern.power.grid.dao.WeatherSiteAreaConfigurationMapper;
import com.southern.power.grid.entity.DataExcelEntity;
import com.southern.power.grid.entity.DnerHourlyPowerOutageEvent; 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.NwSiteAreaConfiguration;
import com.southern.power.grid.entity.WeatherDataDTO; import com.southern.power.grid.entity.WeatherDataDTO;
import com.southern.power.grid.entity.WeatherSiteAreaConfiguration; import com.southern.power.grid.entity.WeatherSiteAreaConfiguration;
@ -51,7 +51,7 @@ public class HourlyOutageExcelProcessService {
* 对外主入口处理一批 Excel 解析后的数据按逻辑补齐气象数据并批量入库 * 对外主入口处理一批 Excel 解析后的数据按逻辑补齐气象数据并批量入库
*/ */
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void process(List<ExcelHourlyOutageRowDTO> excelRows) { public void process(List<DataExcelEntity> excelRows) {
// 1. 加载南网配置表 // 1. 加载南网配置表
loadNwAreaConfig(); loadNwAreaConfig();
// 2. 加载气象区划配置表 // 2. 加载气象区划配置表
@ -60,9 +60,9 @@ public class HourlyOutageExcelProcessService {
List<DnerHourlyPowerOutageEvent> toInsert = new ArrayList<>(); List<DnerHourlyPowerOutageEvent> toInsert = new ArrayList<>();
// 3 & 4. 循环处理 Excel // 3 & 4. 循环处理 Excel
for (ExcelHourlyOutageRowDTO row : excelRows) { for (DataExcelEntity row : excelRows) {
// 3.1 根据南网省//区县 district_code // 3.1 根据南网省//区县 district_code
String districtCode = findDistrictCode(row.getNwProvince(), row.getNwCity(), row.getNwDistrict()); String districtCode = findDistrictCode(row.getProvince(), row.getCity(), row.getDistrict());
if (districtCode == null) { if (districtCode == null) {
// 找不到映射可记录日志或统计 // 找不到映射可记录日志或统计
continue; continue;
@ -77,7 +77,7 @@ public class HourlyOutageExcelProcessService {
String stationId = weatherArea.getStationId(); String stationId = weatherArea.getStationId();
// 3.3 通过 stationId + 时间统一取7天气象数据内部做缓存 // 3.3 通过 stationId + 时间统一取7天气象数据内部做缓存
LocalDateTime dataTime = row.getDataTime(); LocalDateTime dataTime = row.getStartTime();
WeatherDataDTO weatherData = weatherDataService.getWeatherData(stationId, dataTime); WeatherDataDTO weatherData = weatherDataService.getWeatherData(stationId, dataTime);
// 3.4 组装分时停电事件实体 // 3.4 组装分时停电事件实体
@ -126,15 +126,15 @@ public class HourlyOutageExcelProcessService {
return nwAreaMap.get(key); return nwAreaMap.get(key);
} }
private DnerHourlyPowerOutageEvent buildHourlyEvent(ExcelHourlyOutageRowDTO row, private DnerHourlyPowerOutageEvent buildHourlyEvent(DataExcelEntity row,
String districtCode, String districtCode,
WeatherDataDTO weatherData) { WeatherDataDTO weatherData) {
DnerHourlyPowerOutageEvent e = new DnerHourlyPowerOutageEvent(); DnerHourlyPowerOutageEvent e = new DnerHourlyPowerOutageEvent();
e.setOrgCode(districtCode); e.setOrgCode(districtCode);
// 时间转成字符串入库到 data_time // 时间转成字符串入库到 data_time
if (row.getDataTime() != null) { if (row.getStartTime() != null) {
e.setDataTime(row.getDataTime().format(DB_DATETIME_STR)); e.setDataTime(row.getStartTime().format(DB_DATETIME_STR));
} }
// Excel 本身的业务字段 // Excel 本身的业务字段