Kaynağa Gözat

风切变修改

hxf 1 yıl önce
ebeveyn
işleme
465d51e24c

+ 2 - 2
neim-biz/src/main/java/com/jiayue/biz/controller/RealTimeDisplayController.java

@@ -87,9 +87,9 @@ public class RealTimeDisplayController extends BaseController {
 
     //获取风切变指数(风向玫瑰图)
     @GetMapping(value = "/getWindShear")
-    public AjaxResult getWindShear(Long startTime, Long endTime, String equipmentId, String height) {
+    public AjaxResult getWindShear(Long startTime, Long endTime, String equipmentId, String height,String heightMin) {
 
-        return AjaxResult.success(realTimeDisplayService.getWindShear(startTime, endTime, equipmentId, height));
+        return AjaxResult.success(realTimeDisplayService.getWindShear(startTime, endTime, equipmentId, height,heightMin));
     }
 
     //获取湍流(风向玫瑰图)

+ 2 - 2
neim-biz/src/main/java/com/jiayue/biz/controller/WindTowerCalculationDataController.java

@@ -36,8 +36,8 @@ public class WindTowerCalculationDataController extends BaseController {
      * @throws Exception
      */
     @GetMapping(value = "/getWindShearByEqidAndAverageAndTime")
-    public AjaxResult getWindShearByEqidAndAverageAndTime(Long time, String height, String eqId) {
-        return AjaxResult.success(windTowerCalculationDataService.getWindShearByEqidAndAverageAndTime(time, height, eqId));
+    public AjaxResult getWindShearByEqidAndAverageAndTime(Long startTime,Long endTime, String height, String eqId) {
+        return AjaxResult.success(windTowerCalculationDataService.getWindShearByEqidAndAverageAndTime(startTime,endTime, height, eqId));
     }
 
     /**

+ 1 - 1
neim-biz/src/main/java/com/jiayue/biz/service/RealTimeDisplayService.java

@@ -36,7 +36,7 @@ public interface RealTimeDisplayService {
     public List<Map<String, Object>> getStartTimeAndEndTime();
 
     //获取风切变指数(风向玫瑰图)
-    List<Map<String, Object>> getWindShear(Long startTime, Long endTime, String eqId, String height);
+    List<Map<String, Object>> getWindShear(Long startTime, Long endTime, String eqId, String height,String heightMin);
 
     //获取湍流(风向玫瑰图)
     List<Map<String, Object>> getTurbulenceIntensity(Long startTime, Long endTime, String eqId, String height);

+ 1 - 1
neim-biz/src/main/java/com/jiayue/biz/service/WindTowerCalculationDataService.java

@@ -14,7 +14,7 @@ public interface WindTowerCalculationDataService extends IService<WindTowerCalcu
     //计算风功率密度
     List<WindTowerCalculationData> calculateWindPowerDensity(Long startTime, Long endTime, String equipmentNo, List<ProphaseAnemometryData> prophaseAnemometryDataList, List<ProphaseWeatherData> prophaseWeatherDataList, List<EquipmentAttribute> equipmentAttributeList, List<WindTowerCalculationData> windTowerCalculationDataList);
 
-    List getWindShearByEqidAndAverageAndTime(Long time, String height, String eqId);
+    List getWindShearByEqidAndAverageAndTime(Long startTime,Long endTime, String height, String eqId);
 
     //风速
     List getWindSpeed(Long startTime, Long endTime, String height, String eqId, String uid);

+ 13 - 14
neim-biz/src/main/java/com/jiayue/biz/service/impl/RealTimeDisplayServiceImpl.java

@@ -695,19 +695,18 @@ public class RealTimeDisplayServiceImpl implements RealTimeDisplayService {
      * @param eqId
      * @param height
      */
-    public List<Map<String, Object>> getWindShear(Long startTime, Long endTime, String eqId, String height) {
+    public List<Map<String, Object>> getWindShear(Long startTime, Long endTime, String eqId, String height,String heightMin) {
         List<ProphaseAnemometryData> anemometryData = prophaseAnemometryDataService.selectWdAveAndWdAveAndWsSta(eqId, new Timestamp(startTime), new Timestamp(endTime));
-        String[] heights = windTowerInfoService.getByEquipmentNo(eqId).get(0).getHeights().split(",");
-        ArrayList<String> heightAll = new ArrayList<>(Arrays.asList(heights));
-        //获取最小层高
-        List<Integer> collect = heightAll.stream().map(h -> {
-            return Integer.parseInt(CalculationUtil.getNumberFromString(h));
-        }).sorted().collect(Collectors.toList());
-        Integer heightMin = collect.get(0);
-        String finalHeight = height;
-        if (height.contains("A")) {
-            finalHeight = height.substring(0, height.length() - 1);
-        }
+//        String[] heights = windTowerInfoService.getByEquipmentNo(eqId).get(0).getHeights().split(",");
+//        ArrayList<String> heightAll = new ArrayList<>(Arrays.asList(heights));
+//        //获取最小层高
+//        List<Integer> collect = heightAll.stream().map(h -> {
+//            return Integer.parseInt(CalculationUtil.getNumberFromString(h));
+//        }).sorted().collect(Collectors.toList());
+//        String finalHeight = height;
+//        if (height.contains("A")) {
+//            finalHeight = height.substring(0, height.length() - 1);
+//        }
 
 
         BigDecimal zero = new BigDecimal(0);
@@ -719,10 +718,10 @@ public class RealTimeDisplayServiceImpl implements RealTimeDisplayService {
             //获取平均风速
             BigDecimal avgWindSpeed = CalculationUtil.getAvgWind(CalculationUtil.getWsForHeight(heightAndWindDirectionEnum, height));
 
-            BigDecimal avgWindSpeed10 = CalculationUtil.getAvgWind(CalculationUtil.getWsForHeight(heightAndWindDirectionEnum, heightMin.toString()));
+            BigDecimal avgWindSpeed10 = CalculationUtil.getAvgWind(CalculationUtil.getWsForHeight(heightAndWindDirectionEnum, heightMin));
             BigDecimal bigDecimal = new BigDecimal(-99);
             if (avgWindSpeed10.compareTo(BigDecimal.ZERO) != 0) {
-                bigDecimal = CalculationUtil.caWindShear(avgWindSpeed, avgWindSpeed10, new BigDecimal(finalHeight), new BigDecimal(heightMin));
+                bigDecimal = CalculationUtil.caWindShear(avgWindSpeed, avgWindSpeed10, new BigDecimal(height), new BigDecimal(heightMin));
             }
 
             map.put(value.name(), bigDecimal.equals(new BigDecimal(-99)) ? zero : bigDecimal);

+ 4 - 4
neim-biz/src/main/java/com/jiayue/biz/service/impl/WindTowerCalculationDataServiceImpl.java

@@ -2006,24 +2006,24 @@ public class WindTowerCalculationDataServiceImpl extends ServiceImpl<WindTowerCa
     /**
      * 根据 时间,层高,设备id 查询风切变数据
      *
-     * @param time   时间
+     * @param startTime   开始时间
+     * @param endTime   结束时间
      * @param height 层高
      * @param eqId   设备id
      * @return map: 一天一条
      */
     @Override
-    public List<Map<String, Object>> getWindShearByEqidAndAverageAndTime(Long time, String height, String eqId) {
+    public List<Map<String, Object>> getWindShearByEqidAndAverageAndTime(Long startTime,Long endTime, String height, String eqId) {
         List<Map<String, Object>> list = new ArrayList<>();
         List<Map<String, Object>> tableList = new ArrayList<>();
         Map<String, Object> map = new TreeMap<>();
         String shearFieldName = "windShearDay";
         List<EquipmentAttribute> shearFieldNameList = equipmentAttributeService.lambdaQuery().eq(EquipmentAttribute::getFieldName, shearFieldName).list();
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
-        Date currentDate = new Date(time);
         if (!shearFieldNameList.isEmpty()) {
             String ebId = shearFieldNameList.get(0).getId(); //属性id
             //查询风切变 月平均数据 根据时间,层高,设备id 并根据时间升序排列
-            List<WindTowerCalculationData> windTowerCalculationDataLists = getByBetweenTimeAndEquipmentId(SEDateUtil.getStartTimeOfCurrentMonth(currentDate), SEDateUtil.getEndTimeOfCurrentMonth(currentDate), eqId);
+            List<WindTowerCalculationData> windTowerCalculationDataLists = getByBetweenTimeAndEquipmentId(new Date(startTime), new Date(endTime), eqId);
             List<WindTowerCalculationData> windTowerCalculationDataList = windTowerCalculationDataLists.stream().filter(w -> ebId.equals(w.getEbId())).sorted(Comparator.comparing(WindTowerCalculationData::getTime)).collect(Collectors.toList());
             BigDecimal sum = BigDecimal.ZERO;
             BigDecimal avgShear = BigDecimal.ZERO;