Quellcode durchsuchen

恶劣天气修改

songhaodong vor 2 Jahren
Ursprung
Commit
d3a26d0ce0

+ 129 - 162
ipfcst/ipfcst-console/src/main/java/com/jiayue/ipfcst/console/service/mts/ForecastPowerShortTermGeneratorService.java

@@ -88,35 +88,49 @@ public class ForecastPowerShortTermGeneratorService extends BaseService {
    *
    * 马头山查询nwp数据生成短期预测文件
    */
-  //@Scheduled(fixedRate = 1000*60)
-  //  30 30 5 * * ? 0/1 * * * * ?
-  //  30 10,25,30 5,17 * * ?  0/1 */2 * * * ?
-  @Scheduled(cron = "0/1 */1 * * * ?")
   public void createDqFile() {
     log.info("时间 【" + DateTimeUtil.dateToStrLong(new Date()) + "】 马头山短期数据生成开始");
-    // 用户主目录
-    String userHome = System.getProperties().getProperty("user.home");
-    System.out.println("用户主目录:"+userHome);
     // 1.读取配置
-    readDataForParams();
+    try {
+      readDataForParams();
+    } catch (Exception e) {
+      throw new RuntimeException(e);
+    }
     //2.修改nwp数据
-    List<Nwp> nwpDatas = moldRepair();
+    List<Nwp> nwpDatas = null;
+    try {
+      nwpDatas = moldRepair();
+    } catch (Exception e) {
+      throw new RuntimeException(e);
+    }
     //3.持续强北风
-    beginWestWindUp();
-    //4.查询nwp数据
-    // getNwpDatas();
+    try {
+      beginWestWindUp();
+    } catch (Exception e) {
+      throw new RuntimeException(e);
+    }
     //5.计算短期预测
-    List<ForecastPowerShortTerm> forecastPowerShortTerms = caculateDqs(nwpDatas);
-    // forecastPowerShortTermRepository.saveAll(forecastPowerShortTerms);
+    List<ForecastPowerShortTerm> forecastPowerShortTerms = null;
+    try {
+      forecastPowerShortTerms = caculateDqs(nwpDatas);
+    } catch (Exception e) {
+      throw new RuntimeException(e);
+    }
     //6.恶劣天气
-    yesOrNoStartIcingShutdown(forecastPowerShortTerms, nwpDatas);
+    try {
+      yesOrNoStartIcingShutdown(forecastPowerShortTerms, nwpDatas);
+    } catch (Exception e) {
+      throw new RuntimeException(e);
+    }
     // 7.短期数据范围
     yesOrNoDataRange();
+
     log.info("时间 【" + DateTimeUtil.dateToStrLong(new Date()) + "】 马头山短期数据生成完成");
   }
   /**
    * 读取excel中配置参数
    */
+
   private void readDataForParams() {
     // 机组信息读取
     List<FanUnitInfo> fanUnitInfoList = readFanUnitInfo();
@@ -146,8 +160,6 @@ public class ForecastPowerShortTermGeneratorService extends BaseService {
   private List<Nwp>  getNwpDatas() {
     long startTimes = getMillisecondsSubDay();
     long endTimes = startTimes + dayNum * 24 * 60 * 60 * 1000 - 15 * 60 * 1000;
-    // long endTimes = DateUtil.beginOfDay(DateUtil.tomorrow()).getTime();
-    // List<Nwp> nwpData = nwpService.getNwpData(startTimes, endTimes);
     List<Nwp> nwpData = nwpRepository.findByPreTimeBetween(startTimes, endTimes);
     List<NwpSpeedModified> nwpSpeedModifieds = nwpSpeedModifiedRespository.findByPreTimeBetween(startTimes, endTimes);
     // 用修改后的风速值替换原值
@@ -205,63 +217,55 @@ public class ForecastPowerShortTermGeneratorService extends BaseService {
       List<String> fanKeys = removeOverhaulFansMaps.get(fengxiangId + "-" + modleFanId + "-" + speed);
       if(null == fanKeys){
         System.out.println(fengxiangId + "-" + modleFanId + "-" + speed);
-      }else {
-        for (String fanKey : fanKeys) {
-          //切出风机ID查询风机具体配置信息
-          FanUnitInfo fanInfo = fanInfoMap.get(fanKey.split("-")[0]);
-          //小于满发风速
-          if (speed < fanInfo.getFullWindSpeed()) {
-            //根据风机曲线点表获取功率值
-            totalPower += windTurbinePowerCurveMaps.get(fanInfo.getFanId() + "").get(Convert.toFloat(fanKey.split("-")[1]));
-            continue;
-          }
-          if (speed >= fanInfo.getCutOutSpeed()) {
-            //风速大于切出,发电为0
-            totalPower += 0;
-            continue;
-          }
-          //大于满发风速
-          if (speed >= fanInfo.getFullWindSpeed())   {
-            //满发和切出之间的功率值
-            Float totalPowerTemp = 0f;
-            //在满发和切出之间,看具体机组信息和风速
-            for (CutOutSpeedSpecifyInfo cutOutSpeedSpecifyInfo : fanInfo.getCutOutSpeedSpecifyInfos()
-            ) {
-              //
-              if (speed >= cutOutSpeedSpecifyInfo.getLowerWindSpeedLimit()
-                && speed < cutOutSpeedSpecifyInfo.getHighWindSpeedLimit()) {
-                //当前风速的发电功率
-                totalPowerTemp += cutOutSpeedSpecifyInfo.getPowerGeneration();
-              }
-            }
-            //满发风速和切出 之间无发电则是在满发状态
-            if(totalPowerTemp == 0){
-              totalPower += fanInfo.getFanUnitCapacity();
-            }else{
-              totalPower += totalPowerTemp;
+      }
+      for (String fanKey : fanKeys) {
+        // 切出风机ID查询风机具体配置信息
+        FanUnitInfo fanInfo = fanInfoMap.get(fanKey.split("-")[0]);
+        // 小于满发风速
+        if (speed < fanInfo.getFullWindSpeed()) {
+          // 根据风机曲线点表获取功率值
+          totalPower += windTurbinePowerCurveMaps.get(fanInfo.getFanId() + "").get(Convert.toFloat(fanKey.split("-")[1]));
+          continue;
+        }
+        if (speed >= fanInfo.getCutOutSpeed()) {
+          // 风速大于切出,发电为0
+          totalPower += 0;
+          continue;
+        }
+        // 大于满发风速
+        if (speed >= fanInfo.getFullWindSpeed()) {
+          // 满发和切出之间的功率值
+          Float totalPowerTemp = 0f;
+          // 在满发和切出之间,看具体机组信息和风速
+          for (CutOutSpeedSpecifyInfo cutOutSpeedSpecifyInfo : fanInfo.getCutOutSpeedSpecifyInfos()
+          ) {
+            //
+            if (speed >= cutOutSpeedSpecifyInfo.getLowerWindSpeedLimit()
+              && speed < cutOutSpeedSpecifyInfo.getHighWindSpeedLimit()) {
+              // 当前风速的发电功率
+              totalPowerTemp += cutOutSpeedSpecifyInfo.getPowerGeneration();
             }
           }
+          // 满发风速和切出 之间无发电则是在满发状态
+          if (totalPowerTemp == 0) {
+            totalPower += fanInfo.getFanUnitCapacity();
+          } else {
+            totalPower += totalPowerTemp;
+          }
         }
-        ForecastPowerShortTerm forecastPowerShortTerm = new ForecastPowerShortTerm();
-        forecastPowerShortTerm.setForecastTime(nwp.getPreTime());
-        forecastPowerShortTerm.setFpValue(NumberUtil.round(totalPower/1000,2).setScale(2,RoundingMode.HALF_UP));
-        forecastPowerShortTerm.setGenDate(new Date());
-        forecastPowerShortTerm.setPredictionModelEnum(PredictionModelEnum.E1);
-
-        // 计算超装机容量
-        if(forecastPowerShortTerm.getFpValue().compareTo(new BigDecimal(60))> 0 ){
-          forecastPowerShortTerm.setFpValue(BigDecimal.valueOf(random(50, 60)).setScale(2,RoundingMode.HALF_UP));
-        }
-        // // 计算低于15
-        // if(forecastPowerShortTerm.getFpValue().compareTo(new BigDecimal(15)) < 0 ){
-        //   forecastPowerShortTerm.setFpValue(BigDecimal.valueOf(random(15, 25)).setScale(2,RoundingMode.HALF_UP));
-        // }
-
-        // dataRange(forecastPowerShortTerm);
-
-        forecastPowerShortTermList.add(forecastPowerShortTerm);
-
       }
+      ForecastPowerShortTerm forecastPowerShortTerm = new ForecastPowerShortTerm();
+      forecastPowerShortTerm.setForecastTime(nwp.getPreTime());
+      forecastPowerShortTerm.setFpValue(NumberUtil.round(totalPower / 1000, 2).setScale(2, RoundingMode.HALF_UP));
+      forecastPowerShortTerm.setGenDate(new Date());
+      forecastPowerShortTerm.setPredictionModelEnum(PredictionModelEnum.E1);
+
+      // 计算超装机容量
+      if (forecastPowerShortTerm.getFpValue().compareTo(new BigDecimal(60)) > 0) {
+        forecastPowerShortTerm.setFpValue(BigDecimal.valueOf(random(58, 62)).setScale(2, RoundingMode.HALF_UP));
+      }
+
+      forecastPowerShortTermList.add(forecastPowerShortTerm);
 
     }
     List<ForecastPowerShortTerm> forecastPowerShortTerms = modifyShorterData(forecastPowerShortTermList);
@@ -462,13 +466,8 @@ public class ForecastPowerShortTermGeneratorService extends BaseService {
         }
         // 计算超装机容量 60
         if(f.getFpValue().compareTo(new BigDecimal(60)) > 0){
-          f.setFpValue(new BigDecimal(random(50, 60)).setScale(2,RoundingMode.HALF_UP));
+          f.setFpValue(new BigDecimal(random(58, 62)).setScale(2,RoundingMode.HALF_UP));
         }
-        // // 计算小于15
-        // if(f.getFpValue().compareTo(new BigDecimal(15)) < 0){
-        //   f.setFpValue(new BigDecimal(random(15, 25)).setScale(2,RoundingMode.HALF_UP));
-        // }
-        // dataRange(f);
       }
     }
     log.info("执行修改短期系数方法结束,系统时间:"+ DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
@@ -510,7 +509,7 @@ public class ForecastPowerShortTermGeneratorService extends BaseService {
         e.printStackTrace();
       }
       // 九点的时候 小于2 设置为2
-      if (f.getForecastTime() > nDate.getTime() && f.getForecastTime() < nHDate.getTime() && f.getFpValue().compareTo(new BigDecimal(2)) > 0) {
+      if (f.getForecastTime() > nDate.getTime() && f.getForecastTime() < nHDate.getTime() && f.getFpValue().compareTo(new BigDecimal(2)) < 0) {
         f.setFpValue(new BigDecimal(2).setScale(2,RoundingMode.HALF_UP));
       }
       if(dateFormat.format(f.getForecastTime()).equals(ntDate) && f.getFpValue().compareTo(new BigDecimal(3)) < 0) {
@@ -552,9 +551,6 @@ public class ForecastPowerShortTermGeneratorService extends BaseService {
 
     // 是否开启了结冰停机
     if(yesorno_open_severe_weather.equals("1")){
-      // 15天
-      long startTimes = getMillisecondsSubDay();
-      long endTimes = startTimes + dayNum * 24 * 60 * 60 * 1000 - 15 * 60 * 1000;
       // 停机数据
       List<IcingShutdown> icingShutdowns = parkedWindTurbine(nwpDatas);
 
@@ -572,11 +568,12 @@ public class ForecastPowerShortTermGeneratorService extends BaseService {
             }
           }
         }
+        forecastPowerShortTermRepository.saveAll(byForecastTimeBetween);
+        // 读取停机数量
+        int shut_down_number = Integer.parseInt(super.getSysParameter("SHUT_DOWN_NUMBER", "0"));
 
         // 解冰开机
-        long startTime = icingShutdowns.get(0).getStartTime();
-        List<IcingShutdown> icingShutdowns1 = thawBoot(startTime, endTimes);
-
+        List<IcingShutdown> icingShutdowns1 = thawBoot(nwpDatas);
         for(IcingShutdown icingShutdown: icingShutdowns1){
           for(ForecastPowerShortTerm forecastPowerShortTerm: byForecastTimeBetween){
             // 短期数据在停机数据时间内
@@ -585,18 +582,15 @@ public class ForecastPowerShortTermGeneratorService extends BaseService {
             }
             // 计算超装机容量 60
             if(forecastPowerShortTerm.getFpValue().compareTo(new BigDecimal(60))> 0 ){
-              forecastPowerShortTerm.setFpValue(BigDecimal.valueOf(random(50,60)).setScale(2,RoundingMode.HALF_UP));
+              forecastPowerShortTerm.setFpValue(BigDecimal.valueOf(random(58,62)).setScale(2,RoundingMode.HALF_UP));
             }
           }
         }
 
-        // 读取停机数量
-        int shut_down_number = Integer.parseInt(super.getSysParameter("SHUT_DOWN_NUMBER", "0"));
-
-        long endTime = icingShutdowns.get(icingShutdowns.size() - 1).getEndTime();
-        long startTime1 = icingShutdowns1.get(0).getStartTime();
+        long startTime = icingShutdowns1.get(0).getStartTime();
+        long endTime = icingShutdowns1.get(icingShutdowns1.size() - 1).getEndTime();
         for(ForecastPowerShortTerm forecastPowerShortTerm: byForecastTimeBetween){
-          if(forecastPowerShortTerm.getForecastTime() >= endTime && forecastPowerShortTerm.getForecastTime() < startTime1){
+          if(forecastPowerShortTerm.getForecastTime() >= startTime && forecastPowerShortTerm.getForecastTime() < endTime){
             forecastPowerShortTerm.setFpValue(forecastPowerShortTerm.getFpValue().subtract( new BigDecimal(2 * shut_down_number)));
           }
           // 如果小于0 则等于0
@@ -607,7 +601,6 @@ public class ForecastPowerShortTermGeneratorService extends BaseService {
 
         // 保存修改后短期数据
         forecastPowerShortTermRepository.saveAll(byForecastTimeBetween);
-
       }
     }
   }
@@ -665,7 +658,7 @@ public class ForecastPowerShortTermGeneratorService extends BaseService {
         }
       }
 
-      if(endTime != 0 && startTime != 0){
+      if(endTime != 0 && startTime != 0 && nwpDatas.size() - i > 4){
         IcingShutdown icingShutdown = new IcingShutdown();
         icingShutdown.setStartTime(startTime);
         icingShutdown.setEndTime(endTime);
@@ -710,6 +703,7 @@ public class ForecastPowerShortTermGeneratorService extends BaseService {
     }else if(shut_down_number_time_interval_m > 105 && shut_down_number_time_interval_m <= 120){
       dm = 8;
     }
+
     duration_of_snow_j *= dj;
     duration_of_snow_m *= dm;
     int shutDownJ = 0;
@@ -717,22 +711,19 @@ public class ForecastPowerShortTermGeneratorService extends BaseService {
     for(IcingShutdown icingShutdown:icingShutdowns1){
       long l = (icingShutdown.getEndTime() - icingShutdown.getStartTime()) / 1000 / 60 / 15 + 1;
 
-
-      if(l / 4 > 2){
-        long kkk = l / dj;
-        long l11 = l % 4;
-        if(l11 > 0 ){
-          kkk += 1;
-        }
-        kkk -= duration_of_snow_j / dj;
-        if(l11 == 0 && kkk < 0){
-          kkk = 1;
+      // 将军山
+      if(l > duration_of_snow_j){
+        long kk = l / dj;
+        long l1 = l % 4;
+        if(l1 > 0 ){
+          kk += 1;
         }
+        kk -= duration_of_snow_j / dj;
         // 推移时间
-        long l22 = icingShutdowns1.get(0).getStartTime() + 1000l * 60 * 15 * duration_of_snow_j;
+        long l2 = icingShutdowns1.get(0).getStartTime() + 1000l * 60 * 15 * duration_of_snow_j;
         // 开始停机时间
-        icingShutdown.setStartTime(l22);
-        for(int i = 0; i < kkk; i++){
+        icingShutdown.setStartTime(l2);
+        for(int i = 0; i < kk; i++){
           shutDownJ += 1;
           IcingShutdown icingShutdown1 = new IcingShutdown();
           icingShutdown1.setStartTime(DateUtil.offsetMinute(new Date(icingShutdown.getStartTime()),i * shut_down_number_time_interval_j).getTime());
@@ -742,34 +733,8 @@ public class ForecastPowerShortTermGeneratorService extends BaseService {
           icingShutdown1.setShutDownNumber(shutDownJ);
           icingShutdowns.add(icingShutdown1);
         }
-      }
 
-
-      // 将军山
-      // if(l > duration_of_snow_j){
-      //   long kkk = l / dj;
-      //   long l11 = l % 4;
-      //   if(l11 > 0 ){
-      //     kkk += 1;
-      //   }
-      //   kkk -= duration_of_snow_j / dj;
-      //   // 推移时间
-      //   long l22 = icingShutdowns1.get(0).getStartTime() + 1000l * 60 * 15 * duration_of_snow_j;
-      //   // 开始停机时间
-      //   icingShutdown.setStartTime(l22);
-      //     for(int i = 0; i < kkk; i++){
-      //       shutDownJ += 1;
-      //       IcingShutdown icingShutdown1 = new IcingShutdown();
-      //       icingShutdown1.setStartTime(DateUtil.offsetMinute(new Date(icingShutdown.getStartTime()),i * shut_down_number_time_interval_j).getTime());
-      //       long endTimes = DateUtil.offsetMinute(new Date(icingShutdown.getStartTime()),(i + 1) * shut_down_number_time_interval_j ).getTime();
-      //       if(endTimes > icingShutdown.getEndTime())endTimes = icingShutdown.getEndTime() + 1000l;
-      //       icingShutdown1.setEndTime(endTimes);
-      //       icingShutdown1.setShutDownNumber(shutDownJ);
-      //       icingShutdowns.add(icingShutdown1);
-      //   }
-
-
-      // }
+      }
 
       // 马头山
       if(l > duration_of_snow_m){
@@ -817,7 +782,7 @@ public class ForecastPowerShortTermGeneratorService extends BaseService {
    *
    * @return
    */
-  public List<IcingShutdown> thawBoot(Long startTime, Long endTime){
+  public List<IcingShutdown> thawBoot(List<Nwp> nwpDatas){
     // 解冻间隔时间 马头山
     Integer thawing_interval_m = Integer.parseInt(super.getSysParameter("THAWING_INTERVAL_M", "60"));
     // 解冻间隔时间 将军山
@@ -827,7 +792,7 @@ public class ForecastPowerShortTermGeneratorService extends BaseService {
     // 停机数量
     int shut_down_number = Integer.parseInt(super.getSysParameter("SHUT_DOWN_NUMBER", "-1"));
     // 获取nwp数据
-    List<Nwp> nwpData = nwpService.getNwpData(startTime, endTime);
+    // List<Nwp> nwpData = nwpRepository.findByPreTimeBetween(startTime, endTime);
     // 返回集合
     List<IcingShutdown> icingShutdowns = new ArrayList<>();
     // 马头山集合
@@ -871,7 +836,7 @@ public class ForecastPowerShortTermGeneratorService extends BaseService {
     int nextM = 0;
     // 停机台数大于0
     if(shut_down_number > 0) {
-      for (int i = 0; i < nwpData.size(); i++) {
+      for (int i = 0; i < nwpDatas.size(); i++) {
         // 临时对象
         IcingShutdown icingShutdown = new IcingShutdown();
         IcingShutdown icingShutdownM = new IcingShutdown();
@@ -882,9 +847,9 @@ public class ForecastPowerShortTermGeneratorService extends BaseService {
         if (shut_down_number > 0) {
 
           // 当前温度高于解冻温度
-          if(nwpData.get(i).getT().compareTo(new BigDecimal(thawing_interval_temperature)) > 0) {
+          if(nwpDatas.get(i).getT().compareTo(new BigDecimal(thawing_interval_temperature)) > 0) {
             // 高于解冻温度的nwp数据时间点
-            icingShutdown.setStartTime(nwpData.get(i).getPreTime());
+            icingShutdown.setStartTime(nwpDatas.get(i).getPreTime());
 
             // 解冰集合有值
             if(icingShutdownsJ.size() > 0){
@@ -892,12 +857,12 @@ public class ForecastPowerShortTermGeneratorService extends BaseService {
               if(nextJ == i){
                 // 将军山
                 for (int j = i; j <= i + forJ; j++) {
-                  if (nwpData.get(j).getT().compareTo(new BigDecimal(thawing_interval_temperature)) > 0) {
+                  if (nwpDatas.get(j).getT().compareTo(new BigDecimal(thawing_interval_temperature)) > 0) {
 
                     // 当是最后一次循环 记录时间点 则代表当前数据点之后的几个点位温度都满足解冰条件
                     if (j == i + forJ) {
                       ifOfCount = ifOfCount + 1;
-                      icingShutdown.setEndTime(nwpData.get(j).getPreTime());
+                      icingShutdown.setEndTime(nwpDatas.get(j).getPreTime());
                       icingShutdown.setShutDownNumber(ifOfCount);
                       icingShutdownsJ.add(icingShutdown);
                       // 下一个解冻时间点
@@ -912,12 +877,12 @@ public class ForecastPowerShortTermGeneratorService extends BaseService {
 
               // 将军山
               for (int j = i; j <= i + forJ; j++) {
-                if (nwpData.get(j).getT().compareTo(new BigDecimal(thawing_interval_temperature)) > 0) {
+                if (nwpDatas.get(j).getT().compareTo(new BigDecimal(thawing_interval_temperature)) > 0) {
 
                   // 当是最后一次循环 记录时间点 则代表当前数据点之后的几个点位温度都满足解冰条件
                   if (j == i + forJ) {
                     ifOfCount = ifOfCount + 1;
-                    icingShutdown.setEndTime(nwpData.get(j).getPreTime());
+                    icingShutdown.setEndTime(nwpDatas.get(j).getPreTime());
                     icingShutdown.setShutDownNumber(ifOfCount);
                     icingShutdownsJ.add(icingShutdown);
                     // 下一个解冻时间点
@@ -929,14 +894,29 @@ public class ForecastPowerShortTermGeneratorService extends BaseService {
             }
 
             // 马头山
-            icingShutdownM.setStartTime(nwpData.get(i).getPreTime());
-            if(icingShutdownsM.size()> 0){
-              if(nextM == i){
+            if(shut_down_number != 1){
+              icingShutdownM.setStartTime(nwpDatas.get(i).getPreTime());
+              if(icingShutdownsM.size()> 0){
+                if(nextM == i){
+                  for (int k = i; k <= i + forM; k++) {
+                    if (nwpDatas.get(k).getT().compareTo(new BigDecimal(thawing_interval_temperature)) > 0) {
+                      if(k == i + forM){
+                        ifOfCountM = ifOfCountM + 1;
+                        icingShutdownM.setEndTime(nwpDatas.get(k).getPreTime());
+                        icingShutdownM.setShutDownNumber(ifOfCount);
+                        icingShutdownsM.add(icingShutdownM);
+                        nextM = i + forM + 1;
+                        count++;
+                      }
+                    }
+                  }
+                }
+              }else{
                 for (int k = i; k <= i + forM; k++) {
-                  if (nwpData.get(k).getT().compareTo(new BigDecimal(thawing_interval_temperature)) > 0) {
+                  if (nwpDatas.get(k).getT().compareTo(new BigDecimal(thawing_interval_temperature)) > 0) {
                     if(k == i + forM){
                       ifOfCountM = ifOfCountM + 1;
-                      icingShutdownM.setEndTime(nwpData.get(k).getPreTime());
+                      icingShutdownM.setEndTime(nwpDatas.get(k).getPreTime());
                       icingShutdownM.setShutDownNumber(ifOfCount);
                       icingShutdownsM.add(icingShutdownM);
                       nextM = i + forM + 1;
@@ -945,19 +925,6 @@ public class ForecastPowerShortTermGeneratorService extends BaseService {
                   }
                 }
               }
-            }else{
-              for (int k = i; k <= i + forM; k++) {
-                if (nwpData.get(k).getT().compareTo(new BigDecimal(thawing_interval_temperature)) > 0) {
-                  if(k == i + forM){
-                    ifOfCountM = ifOfCountM + 1;
-                    icingShutdownM.setEndTime(nwpData.get(k).getPreTime());
-                    icingShutdownM.setShutDownNumber(ifOfCount);
-                    icingShutdownsM.add(icingShutdownM);
-                    nextM = i + forM + 1;
-                    count++;
-                  }
-                }
-              }
             }
 
           }
@@ -1093,6 +1060,7 @@ public class ForecastPowerShortTermGeneratorService extends BaseService {
         }
       }
     }
+    log.info("修改了" +nwpList.size() +"条nwp");
     nwpService.saveAll(nwpList);
     if(nwpList.size() <= 0){
       nwpList = listTemperature;
@@ -1418,11 +1386,11 @@ public class ForecastPowerShortTermGeneratorService extends BaseService {
 
     // 计算超装机容量 60
     if(forecastPowerShortTerm.getFpValue().compareTo(new BigDecimal(60)) > 0){
-      forecastPowerShortTerm.setFpValue(new BigDecimal(random(50, 60)).setScale(2,RoundingMode.HALF_UP));
+      forecastPowerShortTerm.setFpValue(new BigDecimal(random(58, 62)).setScale(2,RoundingMode.HALF_UP));
     }
     // 计算小于15
     if(forecastPowerShortTerm.getFpValue().compareTo(new BigDecimal(15)) < 0){
-      forecastPowerShortTerm.setFpValue(new BigDecimal(random(50, 60)).setScale(2,RoundingMode.HALF_UP));
+      forecastPowerShortTerm.setFpValue(new BigDecimal(random(14, 16)).setScale(2,RoundingMode.HALF_UP));
     }
     return forecastPowerShortTerm;
   }
@@ -1435,7 +1403,6 @@ public class ForecastPowerShortTermGeneratorService extends BaseService {
   private void yesOrNoDataRange(){
     String power_range = super.getSysParameter("POWER_RANGE", "1");
     if(power_range.equals("1")){
-      // List<ForecastPowerShortTerm> byForecastTimeBetween = forecastPowerShortTermRepository.findByForecastTimeBetween(DateUtil.beginOfDay(DateUtil.tomorrow()).getTime(), DateUtil.endOfDay(DateUtil.tomorrow()).getTime());
       List<ForecastPowerShortTerm> forecastPowerShortTermRepositoryAll = forecastPowerShortTermRepository.findAll();
       for(ForecastPowerShortTerm forecastPowerShortTerm:forecastPowerShortTermRepositoryAll){
         dataRange(forecastPowerShortTerm);