|
@@ -93,10 +93,13 @@ public class DashboardService extends BaseService {
|
|
|
private final SenderModbusTcpTunnelRepository senderModbusTcpTunnelRepository;
|
|
|
|
|
|
private final ForecastPowerUltraShortTermHisRepository forecastPowerUltraShortTermHisRepository;
|
|
|
+ private final ForecastPowerUltraShortTermOneHisRepository forecastPowerUltraShortTermOneHisRepository;
|
|
|
|
|
|
private final ForecastPowerShortTermHisRepository forecastPowerShortTermHisRepository;
|
|
|
+ private final ForecastPowerShortTermOneHisRepository forecastPowerShortTermOneHisRepository;
|
|
|
|
|
|
private final PowerStationStatusDataRepository powerStationStatusDataRepository;
|
|
|
+ private final PowerStationStatusDataOneRepository powerStationStatusDataOneRepository;
|
|
|
|
|
|
private final ChannelDisconLogRepository channelDisconLogRepository;
|
|
|
|
|
@@ -114,7 +117,7 @@ public class DashboardService extends BaseService {
|
|
|
@Autowired
|
|
|
private Map<String, IUploadFileRuleService> uploadFileRuleServiceMap;
|
|
|
|
|
|
- public DashboardService(UploadObjectRepository uploadObjectRepository, UploadFileChannelRepository uploadFileChannelRepository, UploadFileLogRepository uploadFileLogRepository, WeatherStationInfoRepository weatherStationInfoRepository, WindTowerInfoRepository windTowerInfoRepository, FileAnalysisRecordRepository fileAnalysisRecordRepository, ProtocolGatherDataPointRepository protocolGatherDataPointRepository, WeatherStationStatusDataRepository weatherStationStatusDataRepository, WindTowerStatusDataRepository windTowerStatusDataRepository, Gather104TcpTunnelRepository gather104TcpTunnelRepository, GatherCdtRtuTunnelRepository gatherCdtRtuTunnelRepository, GatherModbusRtuTunnelRepository gatherModbusRtuTunnelRepository, GatherModbusRtuWithTcpServerTunnelRepository gatherModbusRtuWithTcpServerTunnelRepository, GatherModbusTcpTunnelRepository gatherModbusTcpTunnelRepository, Sender104TcpTunnelRepository sender104TcpTunnelRepository, SenderCdtRtuTunnelRepository senderCdtRtuTunnelRepository, SenderModbusRtuTunnelRepository senderModbusRtuTunnelRepository, SenderModbusTcpTunnelRepository senderModbusTcpTunnelRepository, ForecastPowerUltraShortTermHisRepository forecastPowerUltraShortTermHisRepository, ForecastPowerShortTermHisRepository forecastPowerShortTermHisRepository, PowerStationStatusDataRepository powerStationStatusDataRepository, ChannelDisconLogRepository channelDisconLogRepository, PowerLimitPlanSignRepository powerLimitPlanSignRepository, ChannelAlarmInfoRepository channelAlarmInfoRepository, QuartzRepository quartzRepository, FileParseTunnelInfoRepository fileParseTunnelInfoRepository, ElectricFieldRepository electricFieldRepository, SysParameterRepository sysParameterRepository) {
|
|
|
+ public DashboardService(UploadObjectRepository uploadObjectRepository, UploadFileChannelRepository uploadFileChannelRepository, UploadFileLogRepository uploadFileLogRepository, WeatherStationInfoRepository weatherStationInfoRepository, WindTowerInfoRepository windTowerInfoRepository, FileAnalysisRecordRepository fileAnalysisRecordRepository, ProtocolGatherDataPointRepository protocolGatherDataPointRepository, WeatherStationStatusDataRepository weatherStationStatusDataRepository, WindTowerStatusDataRepository windTowerStatusDataRepository, Gather104TcpTunnelRepository gather104TcpTunnelRepository, GatherCdtRtuTunnelRepository gatherCdtRtuTunnelRepository, GatherModbusRtuTunnelRepository gatherModbusRtuTunnelRepository, GatherModbusRtuWithTcpServerTunnelRepository gatherModbusRtuWithTcpServerTunnelRepository, GatherModbusTcpTunnelRepository gatherModbusTcpTunnelRepository, Sender104TcpTunnelRepository sender104TcpTunnelRepository, SenderCdtRtuTunnelRepository senderCdtRtuTunnelRepository, SenderModbusRtuTunnelRepository senderModbusRtuTunnelRepository, SenderModbusTcpTunnelRepository senderModbusTcpTunnelRepository, ForecastPowerUltraShortTermHisRepository forecastPowerUltraShortTermHisRepository, ForecastPowerUltraShortTermOneHisRepository forecastPowerUltraShortTermOneHisRepository, ForecastPowerShortTermHisRepository forecastPowerShortTermHisRepository, ForecastPowerShortTermOneHisRepository forecastPowerShortTermOneHisRepository, PowerStationStatusDataRepository powerStationStatusDataRepository, PowerStationStatusDataOneRepository powerStationStatusDataOneRepository, ChannelDisconLogRepository channelDisconLogRepository, PowerLimitPlanSignRepository powerLimitPlanSignRepository, ChannelAlarmInfoRepository channelAlarmInfoRepository, QuartzRepository quartzRepository, FileParseTunnelInfoRepository fileParseTunnelInfoRepository, ElectricFieldRepository electricFieldRepository, SysParameterRepository sysParameterRepository) {
|
|
|
this.uploadObjectRepository = uploadObjectRepository;
|
|
|
this.uploadFileChannelRepository = uploadFileChannelRepository;
|
|
|
this.uploadFileLogRepository = uploadFileLogRepository;
|
|
@@ -134,8 +137,11 @@ public class DashboardService extends BaseService {
|
|
|
this.senderModbusRtuTunnelRepository = senderModbusRtuTunnelRepository;
|
|
|
this.senderModbusTcpTunnelRepository = senderModbusTcpTunnelRepository;
|
|
|
this.forecastPowerUltraShortTermHisRepository = forecastPowerUltraShortTermHisRepository;
|
|
|
+ this.forecastPowerUltraShortTermOneHisRepository = forecastPowerUltraShortTermOneHisRepository;
|
|
|
this.forecastPowerShortTermHisRepository = forecastPowerShortTermHisRepository;
|
|
|
+ this.forecastPowerShortTermOneHisRepository = forecastPowerShortTermOneHisRepository;
|
|
|
this.powerStationStatusDataRepository = powerStationStatusDataRepository;
|
|
|
+ this.powerStationStatusDataOneRepository = powerStationStatusDataOneRepository;
|
|
|
this.channelDisconLogRepository = channelDisconLogRepository;
|
|
|
this.powerLimitPlanSignRepository = powerLimitPlanSignRepository;
|
|
|
this.channelAlarmInfoRepository = channelAlarmInfoRepository;
|
|
@@ -1036,7 +1042,7 @@ public class DashboardService extends BaseService {
|
|
|
*
|
|
|
* @return
|
|
|
*/
|
|
|
- public Map<String, List> getCompositeData(String efiType) {
|
|
|
+ public Map<String, List> getCompositeData() {
|
|
|
Date d = new Date();
|
|
|
Long startDateTime = DateMomentUtil.getDayStartTime(d.getTime());
|
|
|
Long endDateTime = DateMomentUtil.getDayLastTime(d.getTime());
|
|
@@ -1212,6 +1218,187 @@ public class DashboardService extends BaseService {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 获取首页短期、超短期、实际功率、可用功率、理论功率、轮毂高度风速数据
|
|
|
+ * Map的key:sjList,dqList,cdqList,lggdfsList
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public Map<String, List> getCompositeDataOne() {
|
|
|
+ Date d = new Date();
|
|
|
+ Long startDateTime = DateMomentUtil.getDayStartTime(d.getTime());
|
|
|
+ Long endDateTime = DateMomentUtil.getDayLastTime(d.getTime());
|
|
|
+ // 取超短期
|
|
|
+ String khPoint = "1";
|
|
|
+ try {
|
|
|
+ khPoint = super.getSysParameter("cst_kh_point", "1");
|
|
|
+ } catch (RuntimeException e) {
|
|
|
+ String errorInfo = "参数表cst_kh_point获取失败";
|
|
|
+ log.error(errorInfo, e);
|
|
|
+ String name = "参数表cst_kh_point获取失败";
|
|
|
+ String describe = "参数表cst_kh_point获取失败";
|
|
|
+ String solution = "使用默认值1";
|
|
|
+ super.saveSysAlarm(AlarmTypeEnum.E1, name, describe, errorInfo, solution);
|
|
|
+ }
|
|
|
+ List<ForecastPowerUltraShortTermOneHis> forecastPowerUltraShortTermHisList = forecastPowerUltraShortTermOneHisRepository.findByForecastTimeBetweenAndForecastHowLongAgo(startDateTime, endDateTime, Integer.parseInt(khPoint));
|
|
|
+ Map<Long, Double> cdqMap = new HashMap<>();
|
|
|
+ for (ForecastPowerUltraShortTermOneHis forecastPowerUltraShortTermOneHis : forecastPowerUltraShortTermHisList) {
|
|
|
+ cdqMap.put(forecastPowerUltraShortTermOneHis.getForecastTime(), forecastPowerUltraShortTermOneHis.getAbleValue().doubleValue());
|
|
|
+ }
|
|
|
+ // 取超短期
|
|
|
+ String stkhPoint = "1";
|
|
|
+ try {
|
|
|
+ stkhPoint = super.getSysParameter("st_kh_point", "1");
|
|
|
+ } catch (RuntimeException e) {
|
|
|
+ String errorInfo = "参数表st_kh_point获取失败";
|
|
|
+ log.error(errorInfo, e);
|
|
|
+ String name = "参数表st_kh_point获取失败";
|
|
|
+ String describe = "参数表st_kh_point获取失败";
|
|
|
+ String solution = "使用默认值1";
|
|
|
+ super.saveSysAlarm(AlarmTypeEnum.E1, name, describe, errorInfo, solution);
|
|
|
+ }
|
|
|
+ // 取短期
|
|
|
+ List<ForecastPowerShortTermOneHis> forecastPowerShortTermOneHisList = forecastPowerShortTermOneHisRepository.findByForecastTimeBetweenAndForecastHowLongAgo(startDateTime, endDateTime, Integer.parseInt(stkhPoint));
|
|
|
+ Map<Long, Double> dqMap = new HashMap<>();
|
|
|
+ for (ForecastPowerShortTermOneHis forecastPowerShortTermOneHis : forecastPowerShortTermOneHisList) {
|
|
|
+ dqMap.put(forecastPowerShortTermOneHis.getForecastTime(), forecastPowerShortTermOneHis.getAbleValue().doubleValue());
|
|
|
+ }
|
|
|
+ // 实际功率
|
|
|
+ List<PowerStationStatusDataOne> powerStationStatusDataOneList = powerStationStatusDataOneRepository.findByTimeBetween(new Date(startDateTime), new Date(endDateTime));
|
|
|
+ Map<Long, Double> sjMap = new HashMap<>();
|
|
|
+ Map<Long, Double> kyMap = new HashMap<>();
|
|
|
+ Map<Long, Double> llMap = new HashMap<>();
|
|
|
+ for (PowerStationStatusDataOne powerStationStatusDataOne : powerStationStatusDataOneList) {
|
|
|
+ Calendar date = Calendar.getInstance();
|
|
|
+ date.setTimeInMillis(powerStationStatusDataOne.getTime().getTime());
|
|
|
+ date.set(Calendar.SECOND, 0);
|
|
|
+ date.set(Calendar.MILLISECOND, 0);
|
|
|
+ sjMap.put(date.getTimeInMillis(), powerStationStatusDataOne.getRealValue().doubleValue());
|
|
|
+ kyMap.put(date.getTimeInMillis(), powerStationStatusDataOne.getAbleValue().doubleValue());
|
|
|
+ llMap.put(date.getTimeInMillis(), powerStationStatusDataOne.getTheoryValue().doubleValue());
|
|
|
+ }
|
|
|
+ //轮毂高度风速
|
|
|
+ List<WindTowerStatusData> windTowerStatusDataList = windTowerStatusDataRepository.findByTimeBetween(new Date(startDateTime), new Date(endDateTime));
|
|
|
+ Map<Long,Double> lggdfsMap = new HashMap<>();
|
|
|
+ for (WindTowerStatusData windTowerStatusData : windTowerStatusDataList){
|
|
|
+ Calendar date = Calendar.getInstance();
|
|
|
+ date.setTimeInMillis(windTowerStatusData.getTime().getTime());
|
|
|
+ lggdfsMap.put(date.getTimeInMillis(),windTowerStatusData.getWsInstHubHeight().doubleValue());
|
|
|
+ }
|
|
|
+
|
|
|
+ List cdqList = new ArrayList();
|
|
|
+ List dqList = new ArrayList();
|
|
|
+ List sjList = new ArrayList();
|
|
|
+ List kyList = new ArrayList();
|
|
|
+ List llList = new ArrayList();
|
|
|
+ List timeList = new ArrayList();
|
|
|
+ List lggdfsList = new ArrayList();
|
|
|
+ for (Long tempDateTime = startDateTime; tempDateTime < endDateTime; tempDateTime = tempDateTime + 15 * 60 * 1000) {
|
|
|
+ String time = DateFormatUtils.format(tempDateTime, "HH:mm");
|
|
|
+ //时间
|
|
|
+ timeList.add(time);
|
|
|
+ // 超短期
|
|
|
+// TimeAndDataDto cdqTimeAndDataDto = new TimeAndDataDto();
|
|
|
+// cdqTimeAndDataDto.setTime(time);
|
|
|
+ if (cdqMap.get(tempDateTime) != null) {
|
|
|
+ cdqList.add(cdqMap.get(tempDateTime));
|
|
|
+// cdqTimeAndDataDto.setVal();
|
|
|
+ } else {
|
|
|
+ cdqList.add(null);
|
|
|
+// cdqTimeAndDataDto.setVal(null);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 短期
|
|
|
+// TimeAndDataDto dqTimeAndDataDto = new TimeAndDataDto();
|
|
|
+// dqTimeAndDataDto.setTime(time);
|
|
|
+ if (dqMap.get(tempDateTime) != null) {
|
|
|
+ dqList.add(dqMap.get(tempDateTime));
|
|
|
+// dqTimeAndDataDto.setVal(dqMap.get(tempDateTime));
|
|
|
+ } else {
|
|
|
+ dqList.add(null);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 实际
|
|
|
+// TimeAndDataDto sjTimeAndDataDto = new TimeAndDataDto();
|
|
|
+// sjTimeAndDataDto.setTime(time);
|
|
|
+ if (sjMap.get(tempDateTime) != null) {
|
|
|
+ if (sjMap.get(tempDateTime) == -99) {
|
|
|
+ sjList.add(null);
|
|
|
+// sjTimeAndDataDto.setVal(null);
|
|
|
+ } else {
|
|
|
+ sjList.add(sjMap.get(tempDateTime));
|
|
|
+// sjTimeAndDataDto.setVal(sjMap.get(tempDateTime));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ sjList.add(null);
|
|
|
+// sjTimeAndDataDto.setVal(null);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 可用
|
|
|
+// TimeAndDataDto kyTimeAndDataDto = new TimeAndDataDto();
|
|
|
+// kyTimeAndDataDto.setTime(time);
|
|
|
+ if (kyMap.get(tempDateTime) != null) {
|
|
|
+ if (kyMap.get(tempDateTime) == -99) {
|
|
|
+ kyList.add(null);
|
|
|
+ } else {
|
|
|
+ kyList.add(kyMap.get(tempDateTime));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ kyList.add(null);
|
|
|
+ }
|
|
|
+// kyList.add(kyTimeAndDataDto);
|
|
|
+ // 理论
|
|
|
+// TimeAndDataDto llTimeAndDataDto = new TimeAndDataDto();
|
|
|
+// llTimeAndDataDto.setTime(time);
|
|
|
+ if (llMap.get(tempDateTime) != null) {
|
|
|
+ if (llMap.get(tempDateTime) == -99) {
|
|
|
+ llList.add(null);
|
|
|
+ } else {
|
|
|
+ llList.add(llMap.get(tempDateTime));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ llList.add(null);
|
|
|
+ }
|
|
|
+// llList.add(llTimeAndDataDto);
|
|
|
+ //轮毂高度风速
|
|
|
+ if (lggdfsMap.get(tempDateTime) != null){
|
|
|
+ if (lggdfsMap.get(tempDateTime) == -99){
|
|
|
+ lggdfsList.add(null);
|
|
|
+ } else {
|
|
|
+ lggdfsList.add(lggdfsMap.get(tempDateTime));
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ lggdfsList.add(null);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ Map resultMap = new HashMap();
|
|
|
+ resultMap.put("sjList", sjList);
|
|
|
+ resultMap.put("kyList", kyList);
|
|
|
+ resultMap.put("llList", llList);
|
|
|
+ resultMap.put("dqList", dqList);
|
|
|
+ resultMap.put("cdqList", cdqList);
|
|
|
+ resultMap.put("timeList", timeList);
|
|
|
+ resultMap.put("lggdfsList",lggdfsList);
|
|
|
+ // 默认显示可用、理论
|
|
|
+ String displayKyLl = "1";
|
|
|
+ String displayLggdfs = "0";
|
|
|
+ try {
|
|
|
+ displayKyLl = super.getSysParameter("DISPLAY_KY_LL", "1");
|
|
|
+ displayLggdfs = super.getSysParameter("DISPLAY_LGGDFS","0");
|
|
|
+ } catch (RuntimeException e) {
|
|
|
+ String errorInfo = "参数表DISPLAY_KY_LL或DISPLAY_LGGDFS获取失败";
|
|
|
+ log.error(errorInfo, e);
|
|
|
+ String name = "参数表DISPLAY_KY_LL或DISPLAY_LGGDFS获取失败";
|
|
|
+ String describe = "参数表DISPLAY_KY_LL或DISPLAY_LGGDFS获取失败";
|
|
|
+ String solution = "使用默认值1";
|
|
|
+ super.saveSysAlarm(AlarmTypeEnum.E1, name, describe, errorInfo, solution);
|
|
|
+ }
|
|
|
+ resultMap.put("displayKyLl", displayKyLl);
|
|
|
+ resultMap.put("displayLggdfs",displayLggdfs);
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 获取首页当天通道断开日志
|
|
|
*
|
|
|
* @return
|