xusl 1 년 전
부모
커밋
efcf02b7aa

+ 207 - 0
ipfcst/ipfcst-common/ipfcst-common-data/src/main/java/com/jiayue/ipfcst/common/data/entity/PowerStationStatusDataOne.java

@@ -0,0 +1,207 @@
+package com.jiayue.ipfcst.common.data.entity;
+
+import com.jiayue.ipfcst.common.data.abst.equipmentstatus.AbstractEquipmentStatusData;
+import lombok.Data;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.validation.constraints.Digits;
+import java.math.BigDecimal;
+
+/**
+ * 场站功率状态抽象实体
+ *
+ * @author zzy
+ * @version 1.0
+ * @since 2019/8/2 9:34
+ */
+@Entity
+@Data
+public class PowerStationStatusDataOne extends AbstractEquipmentStatusData {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 时间
+	 */
+  /*  @Id
+    @Temporal(TemporalType.TIMESTAMP)
+    @Column
+    private Date time;*/
+	/**
+	 * 人工判断是否限电
+	 * 0  以系统判断结果为准
+	 * 1 限电
+	 * 2 不限电
+	 */
+	@Column
+	Integer isRationingByManualControl;
+	/**
+	 * 系统自动判断是否限电
+	 */
+	@Column
+	Boolean isRationingByAutoControl;
+	/**
+	 * 实际功率(MW)
+	 */
+	@Digits(integer = 10, fraction = 2)
+	@Column
+	private BigDecimal realValue = new BigDecimal(-99);
+	/**
+	 * 可用功率(MW)
+	 */
+	@Digits(integer = 10, fraction = 2)
+	@Column
+	private BigDecimal ableValue = new BigDecimal(-99);
+	/**
+	 * 理论功率(MW)
+	 */
+	@Digits(integer = 10, fraction = 2)
+	@Column
+	private BigDecimal theoryValue = new BigDecimal(-99);
+	/**
+	 * 样板机参照功率(MW)  理论
+	 */
+	@Digits(integer = 10, fraction = 2)
+	@Column
+	private BigDecimal referencePowerBySample = new BigDecimal(-99);
+	/**
+	 * 测风/光法 参照功率(MW) 理论
+	 */
+	@Digits(integer = 10, fraction = 2)
+	@Column
+	private BigDecimal referencePowerByMeasuring = new BigDecimal(-99);
+
+	/**
+	 * 机头风速法参照功率(MW) 理论
+	 */
+	@Digits(integer = 10, fraction = 2)
+	@Column
+	private BigDecimal referencePowerByHubSpeed = new BigDecimal(-99);
+	/**
+	 * 样板机法功率(MW) 可用
+	 */
+	@Digits(integer = 10, fraction = 2)
+	@Column
+	private BigDecimal ablePowerBySample = new BigDecimal(-99);
+	/**
+	 * 测风/光法 (MW) 可用
+	 */
+	@Digits(integer = 10, fraction = 2)
+	@Column
+	private BigDecimal ablePowerByMeasuring = new BigDecimal(-99);
+
+
+	/**
+	 * 机头风速法参照功率(MW) 可用
+	 */
+	@Digits(integer = 10, fraction = 2)
+	@Column
+	private BigDecimal ablePowerByHubSpeed = new BigDecimal(-99);
+	/**
+	 * 样板机法的异常值
+	 */
+	@Digits(integer = 10, fraction = 2)
+	@Column
+	private BigDecimal abnormalOfSample = new BigDecimal(-99);
+	/**
+	 * 测风光法的异常值
+	 */
+	@Digits(integer = 10, fraction = 2)
+	@Column
+	private BigDecimal abnormalOfMeasuring = new BigDecimal(-99);
+
+
+	/**
+	 * 机头风速光法的异常值
+	 */
+	@Digits(integer = 10, fraction = 2)
+	@Column
+	private BigDecimal abnormalOfHubSpeed = new BigDecimal(-99);
+	/**
+	 * 开机容量(MW)
+	 */
+	@Digits(integer = 10, fraction = 2)
+	@Column
+	private BigDecimal openCapacity = new BigDecimal(-99);
+	/**
+	 * 装机容量(MW)
+	 */
+	@Digits(integer = 10, fraction = 2)
+	@Column
+	private BigDecimal capacity = new BigDecimal(-99);
+	/**
+	 * 站内受阻功率(MW)
+	 */
+	@Digits(integer = 10, fraction = 2)
+	@Column
+	private BigDecimal onSiteObstructed = new BigDecimal(-99);
+	/**
+	 * 日发电量(MW)
+	 */
+	@Digits(integer = 10, fraction = 2)
+	@Column
+	private BigDecimal dailyOutPut = new BigDecimal(-99);
+	/**
+	 * 日上网电量(MW)
+	 * Power Grid  电网
+	 */
+	@Digits(integer = 10, fraction = 2)
+	@Column
+	private BigDecimal dailyGridOutPut = new BigDecimal(-99);
+	/**
+	 * 站外受阻功率(MW)
+	 */
+	@Digits(integer = 10, fraction = 2)
+	@Column
+	private BigDecimal offSiteObstructed = new BigDecimal(-99);
+
+
+	/**
+	 * 并网设备数(个)
+	 */
+	@Column
+	private Integer onGridNum;
+
+	public void setAbleValue(BigDecimal ableValue) {
+		if (ableValue == null) {
+			this.ableValue = null;
+			return;
+		}
+		if (this.openCapacity == null || this.openCapacity.compareTo(BigDecimal.valueOf(-99)) == 0) {
+			this.ableValue = ableValue;
+		} else {
+			if (this.openCapacity.compareTo(ableValue) < 0) {
+				this.ableValue = this.openCapacity;
+			} else {
+				this.ableValue = ableValue;
+			}
+		}
+		if (this.capacity == null || this.capacity.compareTo(BigDecimal.valueOf(-99)) == 0) {
+			this.ableValue = ableValue;
+		} else {
+			if (this.capacity.compareTo(ableValue) < 0) {
+				this.ableValue = this.capacity;
+			} else {
+				this.ableValue = ableValue;
+			}
+		}
+	}
+
+	public void setTheoryValue(BigDecimal theoryValue) {
+		if (theoryValue == null) {
+			this.theoryValue = null;
+			return;
+		}
+		if (this.capacity.compareTo(BigDecimal.valueOf(-99)) == 0) {
+			this.theoryValue = theoryValue;
+		} else {
+			if (this.capacity.compareTo(theoryValue) < 0) {
+				this.theoryValue = this.capacity;
+			} else {
+				this.theoryValue = theoryValue;
+			}
+		}
+	}
+
+}

+ 33 - 0
ipfcst/ipfcst-common/ipfcst-common-data/src/main/java/com/jiayue/ipfcst/common/data/repository/PowerStationStatusDataOneRepository.java

@@ -0,0 +1,33 @@
+package com.jiayue.ipfcst.common.data.repository;
+
+
+import com.jiayue.ipfcst.common.data.entity.PowerStationStatusDataOne;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 实际功率仓储
+ *
+ * @author zzy
+ * @version 1.0
+ * @since 2019/8/6 12:42
+ */
+public interface PowerStationStatusDataOneRepository extends BaseRepository<PowerStationStatusDataOne, Integer> {
+	/**
+	 * 按时间段查询数据
+	 *
+	 * @param startTime 开始时间
+	 * @param endTime 结束时间
+	 * @return 结果集
+	 */
+
+	List<PowerStationStatusDataOne> findByTimeBetween(Date startTime, Date endTime);
+	/**
+	 * 按时间段查询数据
+	 *
+	 * @param queryTime 开始时间
+	 * @return 结果集
+	 */
+	PowerStationStatusDataOne findByTime(Date queryTime);
+}

+ 5 - 5
ipfcst/ipfcst-console/src/main/java/com/jiayue/ipfcst/dataexchange/service/SaveEquipmentStatusData.java

@@ -171,7 +171,7 @@ public class SaveEquipmentStatusData {
   /**
    * 保存场站数据  1分钟间隔
    */
-  @Scheduled(fixedRate = 60000)
+//  @Scheduled(fixedRate = 60000)
   public void saveStationData() {
 
     if (powerStationDataPacker != null) {
@@ -187,7 +187,7 @@ public class SaveEquipmentStatusData {
   /**
    * 保存气象站数据  1分钟间隔
    */
-  @Scheduled(fixedRate = 60000)
+//  @Scheduled(fixedRate = 60000)
   public void saveWeatherStationData() {
     if (weatherStationPackers != null && weatherStationPackers.size() > 0) {
       for (AbstractDataPacker<WeatherStationStatusData> p : weatherStationPackers) {
@@ -208,7 +208,7 @@ public class SaveEquipmentStatusData {
   /**
    * 保存测风塔数据  1分钟间隔
    */
-  @Scheduled(fixedRate = 60000)
+//  @Scheduled(fixedRate = 60000)
   public void saveWindTowerData() {
     if (windTowerPackers != null && windTowerPackers.size() > 0) {
       for (AbstractDataPacker<WindTowerStatusData> p : windTowerPackers) {
@@ -253,7 +253,7 @@ public class SaveEquipmentStatusData {
   /**
    * 保存风机数据  5分钟间隔 每五分钟执行
    */
-  @Scheduled(cron = "0 0/5 * * * *")
+//  @Scheduled(cron = "0 0/5 * * * *")
   public void saveWindTurbineData() {
     if (windTurbinePackers != null && windTurbinePackers.size() > 0) {
       DateTime d = DateTime.now();
@@ -281,7 +281,7 @@ public class SaveEquipmentStatusData {
   /**
    * 保存逆变器数据  5分钟间隔 每五分钟执行
    */
-  @Scheduled(cron = "0 0/5 * * * *")
+//  @Scheduled(cron = "0 0/5 * * * *")
   public void saveInverterData() {
     if (inverterPackers != null && inverterPackers.size() > 0) {
       DateTime d = DateTime.now();

+ 7 - 7
ipfcst/ipfcst-reportquery/src/main/frontend/router/modules/statisticsQuery.js

@@ -40,13 +40,13 @@ const statisticsQueryRouter = {
       meta: { title: '准确率月统计查询', noCache: true },
       sign: 'currency'
     },
-    {
-      path: 'comprehensiveStatistics',
-      component: () => import('@/views/statisticsQuery/comprehensiveStatistics'),
-      name: 'comprehensiveStatistics',
-      meta: { title: '预测发电量统计', noCache: true },
-      sign: 'currency'
-    },
+    // {
+    //   path: 'comprehensiveStatistics',
+    //   component: () => import('@/views/statisticsQuery/comprehensiveStatistics'),
+    //   name: 'comprehensiveStatistics',
+    //   meta: { title: '预测发电量统计', noCache: true },
+    //   sign: 'currency'
+    // },
     {
       path: 'comprehensiveStatisticsQuery',
       component: () => import('@/views/statisticsQuery/CESQuery'),

+ 6 - 1
ipfcst/ipfcst-reportquery/src/main/java/com/jiayue/ipfcst/controller/DashboardController.java

@@ -74,7 +74,12 @@ public class DashboardController {
    */
   @RequestMapping(value = "/getCompositeData/{efiType}")
   public ResponseVO getCompositeData(@PathVariable final String efiType) {
-    return ResponseVO.success(dashboardService.getCompositeData(efiType));
+    if ("E1".equals(efiType)){
+      return ResponseVO.success(dashboardService.getCompositeData());
+    }
+    else{
+      return ResponseVO.success(dashboardService.getCompositeDataOne());
+    }
   }
 
   /**

+ 189 - 2
ipfcst/ipfcst-reportquery/src/main/java/com/jiayue/ipfcst/service/DashboardService.java

@@ -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