Browse Source

风速对比页面修正

songhaodong 2 years ago
parent
commit
deef11c9f9

+ 4 - 3
ipfcst/ipfcst-common/ipfcst-common-data/src/main/java/com/jiayue/ipfcst/common/data/entity/NwpSpeedModified.java

@@ -1,5 +1,6 @@
 package com.jiayue.ipfcst.common.data.entity;
 
+import com.jiayue.ipfcst.common.data.abst.AbstractForecastPowerBase;
 import lombok.Data;
 import org.hibernate.annotations.GenericGenerator;
 import org.springframework.core.annotation.Order;
@@ -19,7 +20,7 @@ import java.util.Date;
  */
 @Entity
 @Data
-public class NwpSpeedModified implements Serializable {
+public class NwpSpeedModified extends AbstractForecastPowerBase implements Serializable {
     public NwpSpeedModified() {
 
     }
@@ -44,10 +45,10 @@ public class NwpSpeedModified implements Serializable {
     private Integer id;
 
     /**
-     * 修改时间
+     * 预测时间
      */
     @Column
-    private Long modifyTime;
+    private Long preTime;
 
     /**
      * 10米风速

+ 2 - 2
ipfcst/ipfcst-common/ipfcst-common-data/src/main/java/com/jiayue/ipfcst/common/data/repository/NwpSpeedModifiedRespository.java

@@ -20,8 +20,8 @@ public interface NwpSpeedModifiedRespository extends BaseRepository<NwpSpeedModi
 	 * @param startTime
 	 * @param endTime
 	 */
-	List<NwpSpeedModified> findBymodifyTimeBetween(Long startTime, Long endTime);
+	List<NwpSpeedModified> findByPreTimeBetween(Long startTime, Long endTime);
 
-	void deleteBymodifyTimeBetween(Long startTime, Long endTime);
+	void deleteByPreTimeBetween(Long startTime, Long endTime);
 
 }

+ 4 - 0
ipfcst/ipfcst-common/ipfcst-common-data/src/main/java/com/jiayue/ipfcst/common/data/repository/WindTowerStatusDataRepository.java

@@ -33,4 +33,8 @@ public interface WindTowerStatusDataRepository extends JpaRepository<WindTowerSt
 	 * @return
 	 */
 	List<WindTowerStatusData> findByTimeBetween( Date startTime, Date endTime);
+
+	List<WindTowerStatusData> findByTimeBetweenOrderByTimeAsc( Date startTime, Date endTime);
+
+
 }

+ 14 - 2
ipfcst/ipfcst-reportquery/src/main/frontend/views/parameterConfiguration/windModify/index.vue

@@ -90,6 +90,8 @@ export default {
           this.loading = false
         }
         this.$message.error('查询实时预测短期echarts出错' + error)
+      }).finally(()=>{
+        this.modify =0
       })
     },
     dateQuery(){
@@ -120,6 +122,7 @@ export default {
           this.startTime = this.queryStartTime
           this.endTime = this.queryEndTime
           this.loading = false
+          this.modify =0
           return
         }
         if(this.endTime-this.startTime> 60 * 60 * 24 * 1000*31){
@@ -127,6 +130,7 @@ export default {
           this.endTime = this.queryEndTime
           this.$message.error("只能最多查询31天的数据哦")
           this.loading = false
+          this.modify =0
           return
         }
         this.queryStartTime = this.startTime
@@ -134,8 +138,16 @@ export default {
         this.getDraw(this.queryStartTime,this.queryEndTime)
     },
     confirmModifyDateQuery(){
-      this.modify = 1
-      this.modifyDateQuery()
+      this.$XModal.confirm('确认修改?').then(type => {
+        if (type === 'confirm') {
+          this.modify = 1
+          this.modifyDateQuery()
+          this.$message.success("修改成功")
+        }
+      })
+
+
+
     }
   }
 }

+ 1 - 0
ipfcst/ipfcst-reportquery/src/main/frontend/views/realTimeQuery/nwp/charts/index.vue

@@ -681,6 +681,7 @@
           nsValue.data = nDatas[key]
           // sValue.areaStyle = this.lineStyle[index].areaStyle
           nsValue.itemStyle = this.lineStyle[index].itemStyle
+          console.log(nsValue)
           option.series.push(nsValue)
           index++;
         }

+ 3 - 0
ipfcst/ipfcst-reportquery/src/main/java/com/jiayue/ipfcst/controller/NwpController.java

@@ -8,6 +8,8 @@ import com.jiayue.ipfcst.service.ForecastPowerShortTermService;
 import com.jiayue.ipfcst.service.NwpService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RestController;
@@ -162,6 +164,7 @@ public class NwpController {
   }
 
   @GetMapping(value="/nwp/modifySpeedPreview/{startTime}/{endTime}/{num}/{modify}")
+  @Transactional
   public ResponseVO modifySpeedPreview(@PathVariable("startTime") Long startTime,
                                    @PathVariable("endTime") Long endTime,
                                    @PathVariable("num") String num,

+ 1 - 1
ipfcst/ipfcst-reportquery/src/main/java/com/jiayue/ipfcst/controller/WindSpeedPointInfoServiceController.java → ipfcst/ipfcst-reportquery/src/main/java/com/jiayue/ipfcst/controller/WindSpeedPointInfoController.java

@@ -17,7 +17,7 @@ import java.util.Map;
  */
 @RestController
 @RequestMapping("/windSpeedPointInfo")
-public class WindSpeedPointInfoServiceController {
+public class WindSpeedPointInfoController {
 
   @Autowired
   private WindSpeedPointInfoService windSpeedPointInfoService;

+ 176 - 201
ipfcst/ipfcst-reportquery/src/main/java/com/jiayue/ipfcst/service/NwpService.java

@@ -166,7 +166,6 @@ public class NwpService extends BaseService {
       }
     }
 
-
     map.put("cName",map1);
     map.put("times",times);
     map.put("datas",datas);
@@ -184,13 +183,11 @@ public class NwpService extends BaseService {
    * @return
    * @throws BusinessException
    */
-  public Map<String,Object> findRealNwpByTimeBetween(Long startTime, Long endTime) throws BusinessException {
+  public Map<String,Object> findRealNwpByTimeBetween(Long startTime, Long endTime){
     Map<String,Object> map = new HashMap<>();
-    List<WindTowerStatusData> list = new ArrayList<>();
     List<WindTowerStatusData> checkList = new ArrayList<>();
     Map<String,Object> datas = new LinkedHashMap<>();
-    list = windTowerStatusDataRepository.findByTimeBetween(new Date(startTime), new Date(endTime));
-    list.sort(Comparator.comparing(WindTowerStatusData::getTime));
+    List<WindTowerStatusData> list = windTowerStatusDataRepository.findByTimeBetweenOrderByTimeAsc(new Date(startTime), new Date(endTime));
     long startTimeLong  = startTime;
     long endTimeLong  = endTime;
     long timeStep = 900000L;
@@ -208,62 +205,57 @@ public class NwpService extends BaseService {
       }
     }
     this.defaultRealReplace(checkList);
-
-    ElectricField electricField = this.getElectricField();
-    List<BigDecimal> ws10Collect = new ArrayList<>();
-    List<BigDecimal> ws30Collect= new ArrayList<>();
-    List<BigDecimal> ws50Collect= new ArrayList<>();
-    List<BigDecimal> ws70Collect= new ArrayList<>();
-    List<BigDecimal> ws80Collect= new ArrayList<>();
-    List<BigDecimal> ws90Collect= new ArrayList<>();
-    List<BigDecimal> ws100Collect= new ArrayList<>();
-    List<BigDecimal> ws170Collect= new ArrayList<>();
-    Map<String,String> map1 = new HashMap<>();
-
-    ws10Collect = checkList.stream().map(WindTowerStatusData::getWsInst10).collect(Collectors.toList());
-    ws30Collect = checkList.stream().map(WindTowerStatusData::getWsInst30).collect(Collectors.toList());
-    ws50Collect = checkList.stream().map(WindTowerStatusData::getWsInst50).collect(Collectors.toList());
-    ws70Collect = checkList.stream().map(WindTowerStatusData::getWsInst70).collect(Collectors.toList());
-    ws80Collect = checkList.stream().map(WindTowerStatusData::getWsInst80).collect(Collectors.toList());
-    ws90Collect = checkList.stream().map(WindTowerStatusData::getWsInst90).collect(Collectors.toList());
-    ws100Collect = checkList.stream().map(WindTowerStatusData::getWsInst100).collect(Collectors.toList());
-    ws170Collect = checkList.stream().map(WindTowerStatusData::getWsInst110).collect(Collectors.toList());
-    datas.put("wsInst10",ws10Collect);
-    datas.put("wsInst30",ws30Collect);
-    datas.put("wsInst50",ws50Collect);
-    datas.put("wsInst70",ws70Collect);
-    datas.put("wsInst80",ws80Collect);
-    datas.put("wsInst90",ws90Collect);
-    datas.put("wsInst100",ws100Collect);
-    datas.put("wsInst170",ws170Collect);
-
-    map1.put("wsInst10","实时10米风速");
-    map1.put("wsInst30","实时30米风速");
-    map1.put("wsInst50","实时50米风速");
-    map1.put("wsInst70","实时70米风速");
-    map1.put("wsInst80","实时80米风速");
-    map1.put("wsInst90","实时90米风速");
-    map1.put("wsInst100","实时100米风速");
-    map1.put("wsInst170","实时170米风速");
+    Map<String, String> map1 = new HashMap<>();
+
+    List<BigDecimal> ws10Collect = checkList.stream().map(WindTowerStatusData::getWsInst10).collect(Collectors.toList());
+    List<BigDecimal> ws30Collect = checkList.stream().map(WindTowerStatusData::getWsInst30).collect(Collectors.toList());
+    List<BigDecimal> ws50Collect = checkList.stream().map(WindTowerStatusData::getWsInst50).collect(Collectors.toList());
+    List<BigDecimal> ws70Collect = checkList.stream().map(WindTowerStatusData::getWsInst70).collect(Collectors.toList());
+    List<BigDecimal> ws80Collect = checkList.stream().map(WindTowerStatusData::getWsInst80).collect(Collectors.toList());
+    List<BigDecimal> ws90Collect = checkList.stream().map(WindTowerStatusData::getWsInst90).collect(Collectors.toList());
+    List<BigDecimal> ws100Collect = checkList.stream().map(WindTowerStatusData::getWsInst100).collect(Collectors.toList());
+    List<BigDecimal> ws170Collect = checkList.stream().map(WindTowerStatusData::getWsInst110).collect(Collectors.toList());
+    datas.put("wsInst10", ws10Collect);
+    datas.put("wsInst30", ws30Collect);
+    datas.put("wsInst50", ws50Collect);
+    datas.put("wsInst70", ws70Collect);
+    datas.put("wsInst80", ws80Collect);
+    datas.put("wsInst90", ws90Collect);
+    datas.put("wsInst100", ws100Collect);
+    datas.put("wsInst170", ws170Collect);
+
+    map1.put("wsInst10", "实时10米风速");
+    map1.put("wsInst30", "实时30米风速");
+    map1.put("wsInst50", "实时50米风速");
+    map1.put("wsInst70", "实时70米风速");
+    map1.put("wsInst80", "实时80米风速");
+    map1.put("wsInst90", "实时90米风速");
+    map1.put("wsInst100", "实时100米风速");
+    map1.put("wsInst170", "实时170米风速");
 
     map.put("nDatas", datas);
     map.put("ncName", map1);
   return map;
-
   }
 
-
-  //todo 注释,方法作用 用于何处,写清楚
+  /**
+   * 风向玫瑰图接口 风向对比
+   *
+   * @param startTime
+   * @param endTime
+   * @return
+   * @throws BusinessException
+   */
   public Map<String, Object> getWindCompare(Long startTime, Long endTime) throws BusinessException {
+    // 返回值集合
     Map<String,Object> map = new HashMap<>();
-
-
+    //nwp 集合
     List<Nwp> nwpList = new ArrayList<>();
+    // 返回值nwp
     Map<String,Object> nwpDatas = new LinkedHashMap<>();
+    // 间隔15分钟的nwp
     List<Nwp> nwpCheckList = new ArrayList<>();
-    //todo 排序可以在查询中做
-    nwpList = nwpRepository.findByPreTimeBetween(startTime, endTime);
-    nwpList.sort(Comparator.comparing(Nwp::getPreTime));
+    nwpList = findByTimeBetween(startTime, endTime);
 
     List<WindTowerStatusData> windTowerStatusDataList = new ArrayList<>();
     Map<String,Object> windTowerStatusDataDatas = new LinkedHashMap<>();
@@ -277,8 +269,8 @@ public class NwpService extends BaseService {
     long startTimeLong  = startTime;
     long endTimeLong  = endTime;
     long timeStep = 900000L;
-    if(startTimeLong%timeStep !=0){
-      startTimeLong = startTimeLong -(startTimeLong%timeStep);
+    if(startTimeLong % timeStep !=0){
+      startTimeLong = startTimeLong - (startTimeLong%timeStep);
     }
 
     for(long i = startTimeLong;i<endTimeLong;i=i+timeStep){
@@ -304,36 +296,22 @@ public class NwpService extends BaseService {
     this.defaultRealReplace(windTowerStatusDataCheckList);
 
     ElectricField electricField = this.getElectricField();
-
-    //TODO 这一堆放上面有意义吗?
-    List<BigDecimal> wd10 = new ArrayList<>();
-    List<BigDecimal> wd30 = new ArrayList<>();
-    List<BigDecimal> wd50 = new ArrayList<>();
-    List<BigDecimal> wd70 = new ArrayList<>();
-    List<BigDecimal> wd80 = new ArrayList<>();
-    List<BigDecimal> wd90 = new ArrayList<>();
-    List<BigDecimal> wd100 = new ArrayList<>();
-    List<BigDecimal> wd170 = new ArrayList<>();
-
-    List<BigDecimal> wdInst10 = new ArrayList<>();
-    List<BigDecimal> wdInst30 = new ArrayList<>();
-    List<BigDecimal> wdInst50 = new ArrayList<>();
-    List<BigDecimal> wdInst70 = new ArrayList<>();
-    List<BigDecimal> wdInst80 = new ArrayList<>();
-    List<BigDecimal> wdInst90 = new ArrayList<>();
-    List<BigDecimal> wdInst100 = new ArrayList<>();
-    List<BigDecimal> wdInst170 = new ArrayList<>();
-
-    //TODO 此处判断意义?光伏站什么情况-页面为空?合理吗
-    if(electricField.getElectricFieldTypeEnum().getCode() == 2){
-      wd10 = nwpCheckList.stream().map(Nwp::getWd10).collect(Collectors.toList());
-      wd30 = nwpCheckList.stream().map(Nwp::getWd30).collect(Collectors.toList());
-      wd50 = nwpCheckList.stream().map(Nwp::getWd50).collect(Collectors.toList());
-      wd70 = nwpCheckList.stream().map(Nwp::getWd70).collect(Collectors.toList());
-      wd80 = nwpCheckList.stream().map(Nwp::getWd80).collect(Collectors.toList());
-      wd90 = nwpCheckList.stream().map(Nwp::getWd90).collect(Collectors.toList());
-      wd100 = nwpCheckList.stream().map(Nwp::getWd100).collect(Collectors.toList());
-      wd170 = nwpCheckList.stream().map(Nwp::getWd170).collect(Collectors.toList());
+    if(electricField.getElectricFieldTypeEnum().getCode() == 1){
+      List<BigDecimal> swrCollect = nwpCheckList.stream().map(Nwp::getSwr).collect(Collectors.toList());
+      List<BigDecimal> diffuseRadiationCollect = nwpCheckList.stream().map(Nwp::getDiffuseRadiation).collect(Collectors.toList());
+      List<BigDecimal> directRadiationCollect = nwpCheckList.stream().map(Nwp::getDirectRadiation).collect(Collectors.toList());
+      nwpDatas.put("swr",swrCollect);
+      nwpDatas.put("diffuseRadiation",diffuseRadiationCollect);
+      nwpDatas.put("directRadiation",directRadiationCollect);
+    }else {
+      List<BigDecimal> wd10 = nwpCheckList.stream().map(Nwp::getWd10).collect(Collectors.toList());
+      List<BigDecimal> wd30 = nwpCheckList.stream().map(Nwp::getWd30).collect(Collectors.toList());
+      List<BigDecimal> wd50 = nwpCheckList.stream().map(Nwp::getWd50).collect(Collectors.toList());
+      List<BigDecimal> wd70 = nwpCheckList.stream().map(Nwp::getWd70).collect(Collectors.toList());
+      List<BigDecimal> wd80 = nwpCheckList.stream().map(Nwp::getWd80).collect(Collectors.toList());
+      List<BigDecimal> wd90 = nwpCheckList.stream().map(Nwp::getWd90).collect(Collectors.toList());
+      List<BigDecimal> wd100 = nwpCheckList.stream().map(Nwp::getWd100).collect(Collectors.toList());
+      List<BigDecimal> wd170 = nwpCheckList.stream().map(Nwp::getWd170).collect(Collectors.toList());
 
       Integer[] wd10Integers = windFrequency(wd10);
       Integer[] wd30Integers = windFrequency(wd30);
@@ -353,14 +331,14 @@ public class NwpService extends BaseService {
       nwpDatas.put("wd100Integers",wd100Integers);
       nwpDatas.put("wd170Integers",wd170Integers);
 
-      wdInst10 = windTowerStatusDataCheckList.stream().map(WindTowerStatusData::getWdInst10).collect(Collectors.toList());
-      wdInst30 = windTowerStatusDataCheckList.stream().map(WindTowerStatusData::getWdInst30).collect(Collectors.toList());
-      wdInst50 = windTowerStatusDataCheckList.stream().map(WindTowerStatusData::getWdInst50).collect(Collectors.toList());
-      wdInst70 = windTowerStatusDataCheckList.stream().map(WindTowerStatusData::getWdInst70).collect(Collectors.toList());
-      wdInst80 = windTowerStatusDataCheckList.stream().map(WindTowerStatusData::getWdInst80).collect(Collectors.toList());
-      wdInst90 = windTowerStatusDataCheckList.stream().map(WindTowerStatusData::getWdInst90).collect(Collectors.toList());
-      wdInst100 = windTowerStatusDataCheckList.stream().map(WindTowerStatusData::getWdInst100).collect(Collectors.toList());
-      wdInst170 = windTowerStatusDataCheckList.stream().map(WindTowerStatusData::getWdInst110).collect(Collectors.toList());
+      List<BigDecimal> wdInst10 = windTowerStatusDataCheckList.stream().map(WindTowerStatusData::getWdInst10).collect(Collectors.toList());
+      List<BigDecimal> wdInst30 = windTowerStatusDataCheckList.stream().map(WindTowerStatusData::getWdInst30).collect(Collectors.toList());
+      List<BigDecimal> wdInst50 = windTowerStatusDataCheckList.stream().map(WindTowerStatusData::getWdInst50).collect(Collectors.toList());
+      List<BigDecimal> wdInst70 = windTowerStatusDataCheckList.stream().map(WindTowerStatusData::getWdInst70).collect(Collectors.toList());
+      List<BigDecimal> wdInst80 = windTowerStatusDataCheckList.stream().map(WindTowerStatusData::getWdInst80).collect(Collectors.toList());
+      List<BigDecimal> wdInst90 = windTowerStatusDataCheckList.stream().map(WindTowerStatusData::getWdInst90).collect(Collectors.toList());
+      List<BigDecimal> wdInst100 = windTowerStatusDataCheckList.stream().map(WindTowerStatusData::getWdInst100).collect(Collectors.toList());
+      List<BigDecimal> wdInst170 = windTowerStatusDataCheckList.stream().map(WindTowerStatusData::getWdInst110).collect(Collectors.toList());
 
       Integer[] wdInst10Integers = windFrequency(wdInst10);
       Integer[] wdInst30Integers = windFrequency(wdInst30);
@@ -383,7 +361,7 @@ public class NwpService extends BaseService {
     }
 
     //todo 页面显示标题?是否可转为中文展示
-    String[] nameList = {"N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW"};
+    String[] nameList = {"北", "北北东", "北东", "东北东", "东", "东南东", "南东", "南南东", "南", "南南西", "南西", "西南西", "西", "西北西", "北西", "北北西"};
 
     map.put("nwpDatas", nwpDatas);
     map.put("windTowerStatusDataDatas", windTowerStatusDataDatas);
@@ -401,7 +379,7 @@ public class NwpService extends BaseService {
    * @return
    * @throws BusinessException
    */
-  @Transactional(propagation = Propagation.NOT_SUPPORTED, readOnly = true)
+  @Transactional
   public Map<String,Object> modifySpeedPreview(Long startTime, Long endTime, String num, Integer modify) throws BusinessException {
 
     // 返回值 map
@@ -420,8 +398,8 @@ public class NwpService extends BaseService {
     list = nwpRepository.findByPreTimeBetween(startTime, endTime);
     list.sort(Comparator.comparing(Nwp::getPreTime));
     // 修改后nwp时间区间数据并排序
-    modifiedList = nwpSpeedModifiedRespository.findBymodifyTimeBetween(startTime,endTime);
-    modifiedList.sort(Comparator.comparing(NwpSpeedModified::getModifyTime));
+    modifiedList = nwpSpeedModifiedRespository.findByPreTimeBetween(startTime,endTime);
+    modifiedList.sort(Comparator.comparing(NwpSpeedModified::getPreTime));
     // 时间区间
     long startTimeLong  = startTime;
     long endTimeLong  = endTime;
@@ -465,31 +443,31 @@ public class NwpService extends BaseService {
 
     //  保存修改后的值
     if(modify == 1){
+      nwpSpeedModifiedRespository.deleteByPreTimeBetween(startTime, endTime);
       nwpSpeedModifiedRespository.saveAll(modifiedList);
     }
 
     ElectricField electricField = this.getElectricField();
-    List<BigDecimal> ws10Collect = new ArrayList<>();
-    List<BigDecimal> ws30Collect= new ArrayList<>();
-    List<BigDecimal> ws50Collect= new ArrayList<>();
-    List<BigDecimal> ws70Collect= new ArrayList<>();
-    List<BigDecimal> ws80Collect= new ArrayList<>();
-    List<BigDecimal> ws90Collect= new ArrayList<>();
-    List<BigDecimal> ws100Collect= new ArrayList<>();
-    List<BigDecimal> ws170Collect= new ArrayList<>();
     // 曲线名
     Map<String,String> map1 = new HashMap<>();
     Map<String,String> modifyMap = new HashMap<>();
 
-    if(electricField.getElectricFieldTypeEnum().getCode() == 2){
-      ws10Collect = checkList.stream().map(Nwp::getWs10).collect(Collectors.toList());
-      ws30Collect = checkList.stream().map(Nwp::getWs30).collect(Collectors.toList());
-      ws50Collect = checkList.stream().map(Nwp::getWs50).collect(Collectors.toList());
-      ws70Collect = checkList.stream().map(Nwp::getWs70).collect(Collectors.toList());
-      ws80Collect = checkList.stream().map(Nwp::getWs80).collect(Collectors.toList());
-      ws90Collect = checkList.stream().map(Nwp::getWs90).collect(Collectors.toList());
-      ws100Collect = checkList.stream().map(Nwp::getWs100).collect(Collectors.toList());
-      ws170Collect = checkList.stream().map(Nwp::getWs170).collect(Collectors.toList());
+    if(electricField.getElectricFieldTypeEnum().getCode() == 1) {
+      List<BigDecimal> swrCollect = checkList.stream().map(Nwp::getSwr).collect(Collectors.toList());
+      List<BigDecimal> diffuseRadiationCollect = checkList.stream().map(Nwp::getDiffuseRadiation).collect(Collectors.toList());
+      List<BigDecimal> directRadiationCollect = checkList.stream().map(Nwp::getDirectRadiation).collect(Collectors.toList());
+      datas.put("swr", swrCollect);
+      datas.put("diffuseRadiation", diffuseRadiationCollect);
+      datas.put("directRadiation", directRadiationCollect);
+    }else {
+      List<BigDecimal> ws10Collect = checkList.stream().map(Nwp::getWs10).collect(Collectors.toList());
+      List<BigDecimal> ws30Collect = checkList.stream().map(Nwp::getWs30).collect(Collectors.toList());
+      List<BigDecimal> ws50Collect = checkList.stream().map(Nwp::getWs50).collect(Collectors.toList());
+      List<BigDecimal> ws70Collect = checkList.stream().map(Nwp::getWs70).collect(Collectors.toList());
+      List<BigDecimal> ws80Collect = checkList.stream().map(Nwp::getWs80).collect(Collectors.toList());
+      List<BigDecimal> ws90Collect = checkList.stream().map(Nwp::getWs90).collect(Collectors.toList());
+      List<BigDecimal> ws100Collect = checkList.stream().map(Nwp::getWs100).collect(Collectors.toList());
+      List<BigDecimal> ws170Collect = checkList.stream().map(Nwp::getWs170).collect(Collectors.toList());
       datas.put("ws10",ws10Collect);
       datas.put("ws30",ws30Collect);
       datas.put("ws50",ws50Collect);
@@ -517,37 +495,8 @@ public class NwpService extends BaseService {
       modifyDatas.put("ws100Modify", ws100ModifyList);
       modifyDatas.put("ws170Modify", ws170ModifyList);
 
-      try {
-        SysParameter sysParameter = sysParameterRepository.findBySysKeyEquals("NWP_CHANGE_WIND");
-        if (sysParameter != null) {
-          String nwpChangeWind = sysParameter.getSysValue();
-          String[] windChangeName = nwpChangeWind.split(",");
-          if (windChangeName.length == 16) {
-            map1.put("ws10",windChangeName[0]+"米风速");
-            map1.put("ws30",windChangeName[1]+"米风速");
-            map1.put("ws50",windChangeName[2]+"米风速");
-            map1.put("ws70",windChangeName[3]+"米风速");
-            map1.put("ws80",windChangeName[4]+"米风速");
-            map1.put("ws90",windChangeName[5]+"米风速");
-            map1.put("ws100",windChangeName[6]+"米风速");
-            map1.put("ws170",windChangeName[7]+"米风速");
-          }
-        }
-
-      } catch (RuntimeException e) {
-        String errorInfo = "NWP风速风向别名参数获取失败" + CommonUtil.printStackTraceToString(e);
-        log.error(errorInfo, e);
-      }
-      if (map1.isEmpty()){
-        map1.put("ws10","10米风速");
-        map1.put("ws30","30米风速");
-        map1.put("ws50","50米风速");
-        map1.put("ws70","70米风速");
-        map1.put("ws80","80米风速");
-        map1.put("ws90","90米风速");
-        map1.put("ws100","100米风速");
-        map1.put("ws170","170米风速");
-      }
+      // NWP风速风向别名参数获取
+      map1 = getNwpName();
       modifyMap.put("ws10Modify","修改后10米风速");
       modifyMap.put("ws30Modify","修改后30米风速");
       modifyMap.put("ws50Modify","修改后50米风速");
@@ -567,6 +516,48 @@ public class NwpService extends BaseService {
   }
 
   /**
+   * NWP风速风向别名参数获取
+   *
+   * @return map1
+   */
+  public Map<String,String> getNwpName(){
+
+    Map<String,String> map1 = new HashMap<>();
+    try {
+      SysParameter sysParameter = sysParameterRepository.findBySysKeyEquals("NWP_CHANGE_WIND");
+      if (sysParameter != null) {
+        String nwpChangeWind = sysParameter.getSysValue();
+        String[] windChangeName = nwpChangeWind.split(",");
+        if (windChangeName.length == 16) {
+          map1.put("ws10",windChangeName[0]+"米风速");
+          map1.put("ws30",windChangeName[1]+"米风速");
+          map1.put("ws50",windChangeName[2]+"米风速");
+          map1.put("ws70",windChangeName[3]+"米风速");
+          map1.put("ws80",windChangeName[4]+"米风速");
+          map1.put("ws90",windChangeName[5]+"米风速");
+          map1.put("ws100",windChangeName[6]+"米风速");
+          map1.put("ws170",windChangeName[7]+"米风速");
+        }
+      }
+
+    } catch (RuntimeException e) {
+      String errorInfo = "NWP风速风向别名参数获取失败" + CommonUtil.printStackTraceToString(e);
+      log.error(errorInfo, e);
+    }
+    if (map1.isEmpty()){
+      map1.put("ws10","10米风速");
+      map1.put("ws30","30米风速");
+      map1.put("ws50","50米风速");
+      map1.put("ws70","70米风速");
+      map1.put("ws80","80米风速");
+      map1.put("ws90","90米风速");
+      map1.put("ws100","100米风速");
+      map1.put("ws170","170米风速");
+    }
+
+    return map1;
+  }
+  /**
    * 修改风速
    * @param nwp
    * @param num
@@ -575,54 +566,34 @@ public class NwpService extends BaseService {
   public NwpSpeedModified caculateSpeed(Nwp nwp, String num){
     NwpSpeedModified nwpSpeedModified = new NwpSpeedModified();
     if(nwp.getWs10().compareTo(BigDecimal.ZERO) == 1){
-      nwpSpeedModified.setWs10(nwp.getWs10().multiply(new BigDecimal(num)));
+      nwpSpeedModified.setWs10(nwp.getWs10().multiply(new BigDecimal(num)).setScale(2,BigDecimal.ROUND_HALF_UP));
     }
     if(nwp.getWs30().compareTo(BigDecimal.ZERO) == 1){
-      nwpSpeedModified.setWs30(nwp.getWs30().multiply(new BigDecimal(num)));
+      nwpSpeedModified.setWs30(nwp.getWs30().multiply(new BigDecimal(num)).setScale(2,BigDecimal.ROUND_HALF_UP));
     }
     if(nwp.getWs50().compareTo(BigDecimal.ZERO) == 1){
-      nwpSpeedModified.setWs50(nwp.getWs50().multiply(new BigDecimal(num)));
+      nwpSpeedModified.setWs50(nwp.getWs50().multiply(new BigDecimal(num)).setScale(2,BigDecimal.ROUND_HALF_UP));
     }
     if(nwp.getWs70().compareTo(BigDecimal.ZERO) == 1){
-      nwpSpeedModified.setWs70(nwp.getWs70().multiply(new BigDecimal(num)));
+      nwpSpeedModified.setWs70(nwp.getWs70().multiply(new BigDecimal(num)).setScale(2,BigDecimal.ROUND_HALF_UP));
     }
     if(nwp.getWs80().compareTo(BigDecimal.ZERO) == 1){
-      nwpSpeedModified.setWs80(nwp.getWs80().multiply(new BigDecimal(num)));
+      nwpSpeedModified.setWs80(nwp.getWs80().multiply(new BigDecimal(num)).setScale(2,BigDecimal.ROUND_HALF_UP));
     }
     if(nwp.getWs90().compareTo(BigDecimal.ZERO) == 1){
-      nwpSpeedModified.setWs90(nwp.getWs90().multiply(new BigDecimal(num)));
+      nwpSpeedModified.setWs90(nwp.getWs90().multiply(new BigDecimal(num)).setScale(2,BigDecimal.ROUND_HALF_UP));
     }
     if(nwp.getWs100().compareTo(BigDecimal.ZERO) == 1){
-      nwpSpeedModified.setWs100(nwp.getWs100().multiply(new BigDecimal(num)));
+      nwpSpeedModified.setWs100(nwp.getWs100().multiply(new BigDecimal(num)).setScale(2,BigDecimal.ROUND_HALF_UP));
     }
     if(nwp.getWs170().compareTo(BigDecimal.ZERO) == 1){
-      nwpSpeedModified.setWs170(nwp.getWs170().multiply(new BigDecimal(num)));
+      nwpSpeedModified.setWs170(nwp.getWs170().multiply(new BigDecimal(num)).setScale(2,BigDecimal.ROUND_HALF_UP));
     }
-    nwpSpeedModified.setModifyTime(nwp.getPreTime());
+    nwpSpeedModified.setPreTime(nwp.getPreTime());
     return nwpSpeedModified;
   }
 
   /**
-   * 计算修改风速
-   *
-   * @param nwpList
-   * @param num
-   * @return
-   */
-  public List<BigDecimal> getModifyDatas(List<BigDecimal> nwpList, String num){
-    List<BigDecimal> tempList = new ArrayList<>();
-    for (BigDecimal collect : nwpList) {
-
-      if(collect != null){
-        BigDecimal multiply = collect.multiply(new BigDecimal(num));
-        tempList.add(multiply);
-      }
-
-    }
-    return tempList;
-  }
-
-  /**
    * 根据时间 分页查询 NWP数据 yh
    *
    * @param startTime 开始时间
@@ -843,73 +814,73 @@ public class NwpService extends BaseService {
   public void defaultReplace(List<Nwp> datas){
     BigDecimal nullBig =  new BigDecimal(-99);
     for(Nwp i :datas){
-      if(i.getT().compareTo(nullBig)==0){
+      if(i.getT()!=null && i.getT().compareTo(nullBig)==0){
         i.setT(null);
       }
-      if(i.getRh().compareTo(nullBig)==0){
+      if(i.getRh()!=null && i.getRh().compareTo(nullBig)==0){
         i.setRh(null);
       }
-      if(i.getPressure().compareTo(nullBig)==0){
+      if(i.getPressure()!=null && i.getPressure().compareTo(nullBig)==0){
         i.setPressure(null);
       }
-      if(i.getSwr().compareTo(nullBig)==0){
+      if(i.getSwr()!=null && i.getSwr().compareTo(nullBig)==0){
         i.setSwr(null);
       }
-      if(i.getDirectRadiation().compareTo(nullBig)==0){
+      if(i.getDirectRadiation()!=null && i.getDirectRadiation().compareTo(nullBig)==0){
         i.setDirectRadiation(null);
       }
-      if(i.getDiffuseRadiation().compareTo(nullBig)==0){
+      if(i.getDiffuseRadiation()!=null && i.getDiffuseRadiation().compareTo(nullBig)==0){
         i.setDiffuseRadiation(null);
       }
-      if(i.getSenf().compareTo(nullBig)==0){
+      if(i.getSenf()!=null && i.getSenf().compareTo(nullBig)==0){
         i.setSenf(null);
       }
-      if(i.getWs10().compareTo(nullBig)==0){
+      if(i.getWs10()!=null && i.getWs10().compareTo(nullBig)==0){
         i.setWs10(null);
       }
-      if(i.getWs30().compareTo(nullBig)==0){
+      if(i.getWs30()!=null && i.getWs30().compareTo(nullBig)==0){
         i.setWs30(null);
       }
-      if(i.getWs50().compareTo(nullBig)==0){
+      if(i.getWs50()!=null && i.getWs50().compareTo(nullBig)==0){
         i.setWs50(null);
       }
-      if(i.getWs70().compareTo(nullBig)==0){
+      if(i.getWs70()!=null && i.getWs70().compareTo(nullBig)==0){
         i.setWs70(null);
       }
-      if(i.getWs80().compareTo(nullBig)==0){
+      if(i.getWs80()!=null && i.getWs80().compareTo(nullBig)==0){
         i.setWs80(null);
       }
-      if(i.getWs90().compareTo(nullBig)==0){
+      if(i.getWs90()!=null && i.getWs90().compareTo(nullBig)==0){
         i.setWs90(null);
       }
-      if(i.getWs100().compareTo(nullBig)==0){
+      if(i.getWs100()!=null && i.getWs100().compareTo(nullBig)==0){
         i.setWs100(null);
       }
-      if(i.getWs170().compareTo(nullBig)==0){
+      if(i.getWs170()!=null && i.getWs170().compareTo(nullBig)==0){
         i.setWs170(null);
       }
-      if(i.getWd10().compareTo(nullBig)==0){
+      if(i.getWd10()!=null && i.getWd10().compareTo(nullBig)==0){
         i.setWd10(null);
       }
-      if(i.getWd30().compareTo(nullBig)==0){
+      if(i.getWd30()!=null && i.getWd30().compareTo(nullBig)==0){
         i.setWd30(null);
       }
-      if(i.getWd50().compareTo(nullBig)==0){
+      if(i.getWd50()!=null && i.getWd50().compareTo(nullBig)==0){
         i.setWd50(null);
       }
-      if(i.getWd70().compareTo(nullBig)==0){
+      if(i.getWd70()!=null && i.getWd70().compareTo(nullBig)==0){
         i.setWd70(null);
       }
-      if(i.getWd80().compareTo(nullBig)==0){
+      if(i.getWd80()!=null && i.getWd80().compareTo(nullBig)==0){
         i.setWd80(null);
       }
-      if(i.getWd90().compareTo(nullBig)==0){
+      if(i.getWd90()!=null && i.getWd90().compareTo(nullBig)==0){
         i.setWd90(null);
       }
-      if(i.getWd100().compareTo(nullBig)==0){
+      if(i.getWd100()!=null && i.getWd100().compareTo(nullBig)==0){
         i.setWd100(null);
       }
-      if(i.getWd170().compareTo(nullBig)==0){
+      if(i.getWd170()!=null && i.getWd170().compareTo(nullBig)==0){
         i.setWd170(null);
       }
     }
@@ -1144,13 +1115,13 @@ public class NwpService extends BaseService {
     return resultList;
   }
 
-
-
-
   /**
    * 用于实时对比查询
    * 实时nwp数据
-   *
+   * @param startTime
+   * @param endTime
+   * @param timeStep
+   * @return
    */
   public List<Nwp> findByPreTimeBetween(Long startTime, Long endTime, Long timeStep){
     List<Nwp> list = new ArrayList<>();
@@ -1194,9 +1165,13 @@ public class NwpService extends BaseService {
     return nwpDays;
   }
 
-  // 风频计算
+  /**
+   *  风频计算
+   *
+   * @param bigDecimals
+   * @return
+   */
   public Integer[] windFrequency(List<BigDecimal> bigDecimals){
-
     BigDecimal b0 = new BigDecimal(0);
     BigDecimal b225 = new BigDecimal(22.5);
     BigDecimal b45 = new BigDecimal(45);
@@ -1269,7 +1244,7 @@ public class NwpService extends BaseService {
         }
       }
     }
-    // 16
+    // 十六个风向风频值
     Integer[] integers = {N,NNE,NE,ENE,E,ESE,SE,SSE,S,SSW,SW,WSW,W,WNW,NW,NNW};
     return integers;
   }

+ 2 - 3
ipfcst/ipfcst-reportquery/src/main/java/com/jiayue/ipfcst/service/NwpSpeedModifiedService.java

@@ -3,7 +3,6 @@ package com.jiayue.ipfcst.service;
 import com.jiayue.ipfcst.common.data.repository.NwpSpeedModifiedRespository;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 
 /**
@@ -20,8 +19,8 @@ public class NwpSpeedModifiedService {
     this.nwpSpeedModifiedRespository = nwpSpeedModifiedRespository;
   }
 
-  @Transactional(propagation = Propagation.NOT_SUPPORTED, readOnly = true)
+  @Transactional
   public void delete(Long startTime, Long endTime){
-    this.nwpSpeedModifiedRespository.deleteBymodifyTimeBetween(startTime,endTime);
+    this.nwpSpeedModifiedRespository.deleteByPreTimeBetween(startTime,endTime);
   }
 }