初始提交:添加分时处理

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 org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.InputStream;
import java.util.List;
import java.util.UUID;
/**
* 配网抢修-Controller

View File

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