初始提交:添加分时处理
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 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
|
||||||
|
|||||||
@ -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;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建人
|
* 创建人
|
||||||
|
|||||||
@ -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 本身的业务字段
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user