|
@@ -1,15 +1,19 @@
|
|
package com.cpp.web.service.datafactory.impl;
|
|
package com.cpp.web.service.datafactory.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
+import com.cpp.system.service.ISysConfigService;
|
|
import com.cpp.web.domain.datafactory.BaseParsing;
|
|
import com.cpp.web.domain.datafactory.BaseParsing;
|
|
import com.cpp.web.domain.datafactory.ParsingDq;
|
|
import com.cpp.web.domain.datafactory.ParsingDq;
|
|
import com.cpp.web.domain.datafactory.dto.ParsingConfParam;
|
|
import com.cpp.web.domain.datafactory.dto.ParsingConfParam;
|
|
import com.cpp.web.domain.datafactory.dto.ParsingResultDto;
|
|
import com.cpp.web.domain.datafactory.dto.ParsingResultDto;
|
|
import com.cpp.web.domain.datafactory.enums.FileTypeEnum;
|
|
import com.cpp.web.domain.datafactory.enums.FileTypeEnum;
|
|
import com.cpp.web.domain.station.ForecastPowerShortTermStation;
|
|
import com.cpp.web.domain.station.ForecastPowerShortTermStation;
|
|
|
|
+import com.cpp.web.domain.station.ForecastPowerUltraShortTermStation;
|
|
import com.cpp.web.mapper.datafactory.ParsingDqMapper;
|
|
import com.cpp.web.mapper.datafactory.ParsingDqMapper;
|
|
|
|
+import com.cpp.web.service.datafactory.DataStore;
|
|
import com.cpp.web.service.datafactory.ParsingDqService;
|
|
import com.cpp.web.service.datafactory.ParsingDqService;
|
|
import com.cpp.web.service.datafactory.ParsingInterface;
|
|
import com.cpp.web.service.datafactory.ParsingInterface;
|
|
|
|
+import com.cpp.web.service.datafactory.ScheduledHelper;
|
|
import com.cpp.web.service.station.ForecastPowerShortTermStationService;
|
|
import com.cpp.web.service.station.ForecastPowerShortTermStationService;
|
|
import com.cpp.web.utils.DateTimeUtil;
|
|
import com.cpp.web.utils.DateTimeUtil;
|
|
import com.cpp.web.utils.ParsingFieldUtil;
|
|
import com.cpp.web.utils.ParsingFieldUtil;
|
|
@@ -17,6 +21,7 @@ import com.cpp.web.utils.ParsingFileUtil;
|
|
import com.cpp.web.utils.ParsingUtil;
|
|
import com.cpp.web.utils.ParsingUtil;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
@@ -26,6 +31,7 @@ import java.text.SimpleDateFormat;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
/**
|
|
* 短期解析业务层实现类
|
|
* 短期解析业务层实现类
|
|
@@ -40,6 +46,8 @@ import java.util.List;
|
|
public class ParsingDqServiceImpl extends ServiceImpl<ParsingDqMapper, ParsingDq> implements ParsingDqService, ParsingInterface {
|
|
public class ParsingDqServiceImpl extends ServiceImpl<ParsingDqMapper, ParsingDq> implements ParsingDqService, ParsingInterface {
|
|
|
|
|
|
|
|
|
|
|
|
+ private final ISysConfigService configService;
|
|
|
|
+
|
|
private List<ParsingDq> parsingDqs = new ArrayList<>();
|
|
private List<ParsingDq> parsingDqs = new ArrayList<>();
|
|
|
|
|
|
private final ForecastPowerShortTermStationService forecastPowerShortTermStationService;
|
|
private final ForecastPowerShortTermStationService forecastPowerShortTermStationService;
|
|
@@ -100,6 +108,8 @@ public class ParsingDqServiceImpl extends ServiceImpl<ParsingDqMapper, ParsingDq
|
|
forecastPowerShortTermStationList.get(i).setOpenCapacity(openCapacityList.get(i));
|
|
forecastPowerShortTermStationList.get(i).setOpenCapacity(openCapacityList.get(i));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ scheduleAddCache(forecastPowerShortTermStationList, stationCode);
|
|
forecastPowerShortTermStationService.saveBatch(forecastPowerShortTermStationList);
|
|
forecastPowerShortTermStationService.saveBatch(forecastPowerShortTermStationList);
|
|
log.info("解析短期文件:{} 成功! O(∩_∩)O", file.getName());
|
|
log.info("解析短期文件:{} 成功! O(∩_∩)O", file.getName());
|
|
parsingResultDto.setStatus("success");
|
|
parsingResultDto.setStatus("success");
|
|
@@ -235,4 +245,33 @@ public class ParsingDqServiceImpl extends ServiceImpl<ParsingDqMapper, ParsingDq
|
|
public Integer calcHowLongAgo(Date baseTime, Date time) {
|
|
public Integer calcHowLongAgo(Date baseTime, Date time) {
|
|
return ((int) ((time.getTime() - baseTime.getTime()) / 86400000L)) + 1;
|
|
return ((int) ((time.getTime() - baseTime.getTime()) / 86400000L)) + 1;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ private final ScheduledHelper scheduledHelper = new ScheduledHelper();
|
|
|
|
+
|
|
|
|
+ public void scheduleAddCache(List<ForecastPowerShortTermStation> forecastPowerShortTermStationList, String stationCode) {
|
|
|
|
+
|
|
|
|
+ int ago = 1;
|
|
|
|
+ try {
|
|
|
|
+ String dqHowLongAgo = configService.selectConfigByKey("dqHowLongAgo");
|
|
|
|
+ ago = Integer.parseInt(dqHowLongAgo);
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ Long dAdd = System.currentTimeMillis() + ago * 86400000L;
|
|
|
|
+ Date startTime = DateTimeUtil.getDayStartTime(dAdd);
|
|
|
|
+ Date endTime = DateTimeUtil.getDayLastTime(dAdd);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ List<ForecastPowerShortTermStation> forecastPowerShortTermStations = forecastPowerShortTermStationList.stream().filter(f -> f.getTime().getTime() >= startTime.getTime() && f.getTime().getTime() < endTime.getTime()).collect(Collectors.toList());
|
|
|
|
+ if (forecastPowerShortTermStations.size() >= 96) {
|
|
|
|
+ scheduledHelper.scheduleTaskAtFixedDate(startTime, new Runnable() {
|
|
|
|
+ @Override
|
|
|
|
+ public void run() {
|
|
|
|
+ DataStore.getInstance().setData(forecastPowerShortTermStationList, stationCode);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
}
|
|
}
|