初始提交:添加分时处理
This commit is contained in:
parent
1e53fcfa2d
commit
8fdbfb7971
@ -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
|
||||
|
||||
@ -71,12 +71,12 @@ public class DnerHourlyPowerOutageEvent {
|
||||
/**
|
||||
* 停电状态(1-待停电;2-停电中;3-已复电)
|
||||
*/
|
||||
private Integer outageState;
|
||||
private String outageState;
|
||||
|
||||
/**
|
||||
* 停电类型(1-故障类;2-计划类)
|
||||
*/
|
||||
private Integer outageType;
|
||||
private String outageType;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
|
||||
@ -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 本身的业务字段
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user