From 4107073950f459e051e5b9e828750ab57be3863b Mon Sep 17 00:00:00 2001
From: cjl <276999030@qq.com>
Date: Wed, 15 Nov 2023 16:03:53 +0800
Subject: [PATCH] fix:补充提交
---
screen-api/src/main/java/com/moral/api/service/impl/UAVServiceImpl.java | 276 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 274 insertions(+), 2 deletions(-)
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/UAVServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/UAVServiceImpl.java
index b45f922..52ef8f7 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/UAVServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/UAVServiceImpl.java
@@ -1,8 +1,11 @@
package com.moral.api.service.impl;
+import com.moral.api.pojo.dto.uav.UAVResultListDTO;
+import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Collections;
@@ -30,6 +33,76 @@
@Autowired
private HistorySecondUavMapper historySecondUavMapper;
+ @Override
+ public UAVResultListDTO getUavMore(Map<String, Object> params) {
+ UAVResultListDTO uavResultListDTO = new UAVResultListDTO();
+ String uvasize = params.get("uvasize").toString();
+ int size = Integer.parseInt(uvasize);
+ //������
+ ArrayList<Double> flyLatList = new ArrayList<>();
+ //������
+ ArrayList<Double> flyLonList = new ArrayList<>();
+ String type = params.get("type").toString();
+ params.put("type","$."+type);
+ List<UAVGetBD> historySecondUavs = historySecondUavMapper.reListDetail(params);
+ if (ObjectUtils.isEmpty(historySecondUavs)){
+ return null;
+ }
+ ArrayList<UAVGetBD> rsBDList = new ArrayList<>();
+ for (UAVGetBD historySecondUav : historySecondUavs) {
+ UAVGetBD uavGetBD = new UAVGetBD();
+ //WGS84 ��� ������������
+ double[] doubles = transformWGS84ToBD09(historySecondUav.getFlyLon(), historySecondUav.getFlyLat());
+ uavGetBD.setFlyLon(doubles[0]);
+ uavGetBD.setFlyLat(doubles[1]);
+ uavGetBD.setNum(historySecondUav.getNum());
+ rsBDList.add(uavGetBD);
+ flyLatList.add(doubles[1]);
+ flyLonList.add(doubles[0]);
+ }
+ //������������������������������
+ Double maxLat = Collections.max(flyLatList);
+ Double maxLon = Collections.max(flyLonList);
+ Double minLat = Collections.min(flyLatList);
+ Double minLon = Collections.min(flyLonList);
+ double distance1 = getDistance(maxLon, minLat, maxLon, maxLat);
+ //���������������������
+ double distance2 = getDistance(maxLon, minLat, minLon, minLat);
+ ArrayList<UAVGteForDTO> list = new ArrayList<>();
+ String[] youshang = calLocationByDistanceAndLocationAndDirection(90, minLon, maxLat, size);
+ //������2
+ String[] youxia = calLocationByDistanceAndLocationAndDirection(180, Double.parseDouble(youshang[0]), Double.parseDouble(youshang[1]), size);
+ //������2
+ String[] zuoxia = calLocationByDistanceAndLocationAndDirection(180, minLon, maxLat, size);
+ for (int i = 0; i <distance2 ; i+=size) {
+ UAVGteForDTO dto1 = new UAVGteForDTO();
+ String[] strings2 = calLocationByDistanceAndLocationAndDirection(90, minLon, maxLat, i);
+ String[] strings3 = calLocationByDistanceAndLocationAndDirection(90, Double.parseDouble(youshang[0].toString()), Double.parseDouble(youshang[1].toString()), i);
+ String[] strings4 = calLocationByDistanceAndLocationAndDirection(90, Double.parseDouble(youxia[0].toString()), Double.parseDouble(youxia[1].toString()), i);
+ String[] strings5 = calLocationByDistanceAndLocationAndDirection(90, Double.parseDouble(zuoxia[0].toString()), Double.parseDouble(zuoxia[1].toString()), i);
+ dto1.setLeftTop(strings2);
+ dto1.setRightTop(strings3);
+ dto1.setRightBottom(strings4);
+ dto1.setLeftBottom(strings5);
+ list.add(dto1);
+ for (int j = 0; j < distance1; j+=size) {
+ UAVGteForDTO dto2 = new UAVGteForDTO();
+ String[] strings6 = calLocationByDistanceAndLocationAndDirection(180, Double.parseDouble(strings2[0].toString()), Double.parseDouble(strings2[1].toString()), j);
+ String[] strings7 = calLocationByDistanceAndLocationAndDirection(180, Double.parseDouble(strings3[0].toString()), Double.parseDouble(strings3[1].toString()), j);
+ String[] strings8 = calLocationByDistanceAndLocationAndDirection(180, Double.parseDouble(strings4[0].toString()), Double.parseDouble(strings4[1].toString()), j);
+ String[] strings9 = calLocationByDistanceAndLocationAndDirection(180, Double.parseDouble(strings5[0].toString()), Double.parseDouble(strings5[1].toString()), j);
+ dto2.setLeftTop(strings6);
+ dto2.setRightTop(strings7);
+ dto2.setRightBottom(strings8);
+ dto2.setLeftBottom(strings9);
+ if (j!=0){
+ list.add(dto2);
+ }
+ }
+
+ }
+ return null;
+ }
@Override
public List<UAVResultDTO> getUav(Map<String, Object> params) {
@@ -169,6 +242,26 @@
rsMap.put(result,list1);
}
+ ArrayList<Double> TVOCArrayListNotMergedSum = new ArrayList<>();
+ ArrayList<Double> PM10ArrayListNotMergedSum = new ArrayList<>();
+ ArrayList<Double> PM25ArrayListNotMergedSum = new ArrayList<>();
+ ArrayList<Double> SOArrayListNotMergedSum = new ArrayList<>();
+ ArrayList<Double> NOArrayListNotMergedSum = new ArrayList<>();
+ ArrayList<Double> QYArrayListNotMergedSum = new ArrayList<>();
+ ArrayList<Double> COArrayListNotMergedSum = new ArrayList<>();
+ ArrayList<Double> WDArrayListNotMergedSum = new ArrayList<>();
+ ArrayList<Double> SHArrayListNotMergedSum = new ArrayList<>();
+ ArrayList<Double> O3ArrayListNotMergedSum = new ArrayList<>();
+ ArrayList<Double> TVOCArrayListMergedSum = new ArrayList<>();
+ ArrayList<Double> PM10ArrayListMergedSum = new ArrayList<>();
+ ArrayList<Double> PM25ArrayListMergedSum = new ArrayList<>();
+ ArrayList<Double> SOArrayListMergedSum = new ArrayList<>();
+ ArrayList<Double> NOArrayListMergedSum = new ArrayList<>();
+ ArrayList<Double> QYArrayListMergedSum = new ArrayList<>();
+ ArrayList<Double> COArrayListMergedSum = new ArrayList<>();
+ ArrayList<Double> WDArrayListMergedSum = new ArrayList<>();
+ ArrayList<Double> SHArrayListMergedSum = new ArrayList<>();
+ ArrayList<Double> O3ArrayListMergedSum = new ArrayList<>();
//���������������������������������������
ArrayList<UAVResultDTO> uavResultDTOS = new ArrayList<>();
Set<String> strings = rsMap.keySet();
@@ -194,53 +287,63 @@
Object a99054 = jsonObject.get("a99054");
if (!Objects.isNull(a99054)){
TVOCArrayList.add(Double.parseDouble(a99054.toString()));
+ TVOCArrayListNotMergedSum.add(Double.parseDouble(a99054.toString()));
}
//pm2.5
Object a34004 = jsonObject.get("a34004");
if (!Objects.isNull(a34004)){
PM25ArrayList.add(Double.parseDouble(a34004.toString()));
+ PM25ArrayListNotMergedSum.add(Double.parseDouble(a34004.toString()));
}
//������������
Object a21026 = jsonObject.get("a21026");
if (!Objects.isNull(a21026)){
SOArrayList.add(Double.parseDouble(a21026.toString()));
+ SOArrayListNotMergedSum.add(Double.parseDouble(a21026.toString()));
}
//������������
Object a21004 = jsonObject.get("a21004");
if (!Objects.isNull(a21004)){
NOArrayList.add(Double.parseDouble(a21004.toString()));
+ NOArrayListNotMergedSum.add(Double.parseDouble(a21004.toString()));
}
//������
Object a01006 = jsonObject.get("a01006");
if (!Objects.isNull(a01006)){
QYArrayList.add(Double.parseDouble(a01006.toString()));
+ QYArrayListNotMergedSum.add(Double.parseDouble(a01006.toString()));
}
//pm10
Object a34002 = jsonObject.get("a34002");
if (!Objects.isNull(a34002)){
PM10ArrayList.add(Double.parseDouble(a34002.toString()));
+ PM10ArrayListNotMergedSum.add(Double.parseDouble(a34002.toString()));
}
//co
Object a21005 = jsonObject.get("a21005");
if (!Objects.isNull(a21005)){
COArrayList.add(Double.parseDouble(a21005.toString()));
+ COArrayListNotMergedSum.add(Double.parseDouble(a21005.toString()));
}
//������
Object a01002 = jsonObject.get("a01002");
if (!Objects.isNull(a01002)){
- QYArrayList.add(Double.parseDouble(a01002.toString()));
+ SHArrayList.add(Double.parseDouble(a01002.toString()));
+ SHArrayListNotMergedSum.add(Double.parseDouble(a01002.toString()));
}
//������
Object a01001 = jsonObject.get("a01001");
if (!Objects.isNull(a01001)){
- QYArrayList.add(Double.parseDouble(a01001.toString()));
+ WDArrayList.add(Double.parseDouble(a01001.toString()));
+ WDArrayListNotMergedSum.add(Double.parseDouble(a01001.toString()));
}
//������
Object a05024 = jsonObject.get("a05024");
if (!Objects.isNull(a05024)){
O3ArrayList.add(Double.parseDouble(a05024.toString()));
+ O3ArrayListNotMergedSum.add(Double.parseDouble(a05024.toString()));
}
}
@@ -295,14 +398,183 @@
dto.setA01001(WDDouble);
dto.setA01002(SHDouble);
dto.setA01006(QYDouble);
+ TVOCArrayListMergedSum.add(TVODouble);
+ COArrayListMergedSum.add(CODouble);
+ NOArrayListMergedSum.add(NODouble);
+ O3ArrayListMergedSum.add(O3Double);
+ PM10ArrayListMergedSum.add(PM10Double);
+ PM25ArrayListMergedSum.add(PM25Double);
+ SOArrayListMergedSum.add(SODouble);
+ WDArrayListMergedSum.add(WDDouble);
+ SHArrayListMergedSum.add(SHDouble);
+ QYArrayListMergedSum.add(QYDouble);
String[] s = string.split("_");
dto.setFlyLat(Double.parseDouble(s[1]));
dto.setFlyLon(Double.parseDouble(s[0]));
uavResultDTOS.add(dto);
}
+ Double a21005CONotMergedAvg = resultDoubled(COArrayListNotMergedSum,1);
+ Double a2100CO5NotMergedHighest= resultDoubled(COArrayListNotMergedSum,2);
+ Double a2100CO5NotMergedLowest= resultDoubled(COArrayListNotMergedSum,3);
+ Double a21005COMergeAvg = resultDoubled(COArrayListMergedSum,1);
+ Double a21005COMergedHighest = resultDoubled(COArrayListMergedSum,2);
+ Double a21005COMergedLowest = resultDoubled(COArrayListMergedSum,3);
+
+ Double a21026SO2NotMergedAvg = resultDoubled(SOArrayListNotMergedSum,1);
+ Double a21026SO2NotMergedHighest= resultDoubled(SOArrayListNotMergedSum,2);
+ Double a21026SO2NotMergedLowest= resultDoubled(SOArrayListNotMergedSum,3);
+ Double a21026SO2MergeAvg = resultDoubled(SOArrayListMergedSum,1);
+ Double a21026SO2MergedHighest = resultDoubled(SOArrayListMergedSum,2);
+ Double a21026SO2MergedLowest = resultDoubled(SOArrayListMergedSum,3);
+
+ Double a21004NO2NotMergedAvg = resultDoubled(NOArrayListNotMergedSum,1);
+ Double a21004NO2NotMergedHighest= resultDoubled(NOArrayListNotMergedSum,2);
+ Double a21004NO2NotMergedLowest= resultDoubled(NOArrayListNotMergedSum,3);
+ Double a21004NO2MergeAvg = resultDoubled(NOArrayListMergedSum,1);
+ Double a21004NO2MergedHighest = resultDoubled(NOArrayListMergedSum,2);
+ Double a21004NO2MergedLowest = resultDoubled(NOArrayListMergedSum,3);
+
+ Double a34002PM10NotMergedAvg = resultDoubled(PM10ArrayListNotMergedSum,1);
+ Double a34002PM10NotMergedHighest= resultDoubled(PM10ArrayListNotMergedSum,2);
+ Double a34002PM10NotMergedLowest= resultDoubled(PM10ArrayListNotMergedSum,3);
+ Double a34002PM10MergeAvg = resultDoubled(PM10ArrayListMergedSum,1);
+ Double a34002PM10MergedHighest = resultDoubled(PM10ArrayListMergedSum,2);
+ Double a34002PM10MergedLowest = resultDoubled(PM10ArrayListMergedSum,3);
+
+ Double a34004PM25NotMergedAvg = resultDoubled(PM25ArrayListNotMergedSum,1);
+ Double a34004PM25NotMergedHighest= resultDoubled(PM25ArrayListNotMergedSum,2);
+ Double a34004PM25NotMergedLowest= resultDoubled(PM25ArrayListNotMergedSum,3);
+ Double a34004PM25MergeAvg = resultDoubled(PM25ArrayListMergedSum,1);
+ Double a34004PM25MergedHighest = resultDoubled(PM25ArrayListMergedSum,2);
+ Double a34004PM25MergedLowest = resultDoubled(PM25ArrayListMergedSum,3);
+
+ Double a99054TVOCNotMergedAvg = resultDoubled(TVOCArrayListNotMergedSum,1);
+ Double a99054TVOCNotMergedHighest= resultDoubled(TVOCArrayListNotMergedSum,2);
+ Double a99054TVOCNotMergedLowest= resultDoubled(TVOCArrayListNotMergedSum,3);
+ Double a99054TVOCMergeAvg = resultDoubled(TVOCArrayListMergedSum,1);
+ Double a99054TVOCMergedHighest = resultDoubled(TVOCArrayListMergedSum,2);
+ Double a99054TVOCMergedLowest = resultDoubled(TVOCArrayListMergedSum,3);
+
+ Double a05024O3NotMergedAvg = resultDoubled(O3ArrayListNotMergedSum,1);
+ Double a05024O3NotMergedHighest= resultDoubled(O3ArrayListNotMergedSum,2);
+ Double a05024O3NotMergedLowest= resultDoubled(O3ArrayListNotMergedSum,3);
+ Double a05024O3MergeAvg = resultDoubled(O3ArrayListMergedSum,1);
+ Double a05024O3MergedHighest = resultDoubled(O3ArrayListMergedSum,2);
+ Double a05024O3MergedLowest = resultDoubled(O3ArrayListMergedSum,2);
+
+ Double a01001TemNotMergedAvg = resultDoubled(WDArrayListNotMergedSum,1);
+ Double a01001TemNotMergedHighest= resultDoubled(WDArrayListNotMergedSum,2);
+ Double a01001TemNotMergedLowest= resultDoubled(WDArrayListNotMergedSum,3);
+ Double a01001TemMergeAvg = resultDoubled(WDArrayListMergedSum,1);
+ Double a01001TemMergedHighest = resultDoubled(WDArrayListMergedSum,2);
+ Double a01001TemMergedLowest = resultDoubled(WDArrayListMergedSum,2);
+
+ Double a01002HumNotMergedAvg = resultDoubled(SHArrayListNotMergedSum,1);
+ Double a01002HumNotMergedHighest= resultDoubled(SHArrayListNotMergedSum,2);
+ Double a01002HumNotMergedLowest= resultDoubled(SHArrayListNotMergedSum,3);
+ Double a010022HumMergeAvg = resultDoubled(SHArrayListMergedSum,1);
+ Double a01002HumMergedHighest = resultDoubled(SHArrayListMergedSum,2);
+ Double a01002HumMergedLowest = resultDoubled(SHArrayListMergedSum,2);
+
+ Double a01006PreNotMergedAvg = resultDoubled(QYArrayListNotMergedSum,1);
+ Double a01006PreNotMergedHighest= resultDoubled(QYArrayListNotMergedSum,2);
+ Double a01006PreNotMergedLowest= resultDoubled(QYArrayListNotMergedSum,3);
+ Double a01006PreMergeAvg = resultDoubled(QYArrayListMergedSum,1);
+ Double a01006PreMergedHighest = resultDoubled(QYArrayListMergedSum,2);
+ Double a01006PreMergedLowest = resultDoubled(QYArrayListMergedSum,2);
+ uavResultDTOS.forEach(it->{
+ it.setA21005CONotMergedAvg(a21005CONotMergedAvg);
+ it.setA21005CONotMergedHighest(a2100CO5NotMergedHighest);
+ it.setA21005CONotMergedLowest(a2100CO5NotMergedLowest);
+ it.setA21005COMergeAvg(a21005COMergeAvg);
+ it.setA21005COMergedHighest(a21005COMergedHighest);
+ it.setA21005COMergedLowest(a21005COMergedLowest);
+
+ it.setA21026SO2NotMergedAvg(a21026SO2NotMergedAvg);
+ it.setA21026SO2NotMergedHighest(a21026SO2NotMergedHighest);
+ it.setA21026SO2NotMergedLowest(a21026SO2NotMergedLowest);
+ it.setA21026SO2MergeAvg(a21026SO2MergeAvg);
+ it.setA21026SO2MergedHighest(a21026SO2MergedHighest);
+ it.setA21026SO2MergedLowest(a21026SO2MergedLowest);
+
+ it.setA21004NO2NotMergedAvg(a21004NO2NotMergedAvg);
+ it.setA21004NO2NotMergedHighest(a21004NO2NotMergedHighest);
+ it.setA21004NO2NotMergedLowest(a21004NO2NotMergedLowest);
+ it.setA21004NO2MergeAvg(a21004NO2MergeAvg);
+ it.setA21004NO2MergedHighest(a21004NO2MergedHighest);
+ it.setA21004NO2MergedLowest(a21004NO2MergedLowest);
+
+ it.setA34002PM10NotMergedAvg(a34002PM10NotMergedAvg);
+ it.setA34002PM10NotMergedHighest(a34002PM10NotMergedHighest);
+ it.setA34002PM10NotMergedLowest(a34002PM10NotMergedLowest);
+ it.setA34002PM10MergeAvg(a34002PM10MergeAvg);
+ it.setA34002PM10MergedHighest(a34002PM10MergedHighest);
+ it.setA34002PM10MergedLowest(a34002PM10MergedLowest);
+
+ it.setA34004PM25NotMergedAvg(a34004PM25NotMergedAvg);
+ it.setA34004PM25NotMergedHighest(a34004PM25NotMergedHighest);
+ it.setA34004PM25NotMergedLowest(a34004PM25NotMergedLowest);
+ it.setA34004PM25MergeAvg(a34004PM25MergeAvg);
+ it.setA34004PM25MergedHighest(a34004PM25MergedHighest);
+ it.setA34004PM25MergedLowest(a34004PM25MergedLowest);
+
+ it.setA99054TVOCNotMergedAvg(a99054TVOCNotMergedAvg);
+ it.setA99054TVOCNotMergedHighest(a99054TVOCNotMergedHighest);
+ it.setA99054TVOCNotMergedLowest(a99054TVOCNotMergedLowest);
+ it.setA99054TVOCMergeAvg(a99054TVOCMergeAvg);
+ it.setA99054TVOCMergedHighest(a99054TVOCMergedHighest);
+ it.setA99054TVOCMergedLowest(a99054TVOCMergedLowest);
+
+ it.setA05024O3NotMergedAvg(a05024O3NotMergedAvg);
+ it.setA05024O3NotMergedHighest(a05024O3NotMergedHighest);
+ it.setA05024O3NotMergedLowest(a05024O3NotMergedLowest);
+ it.setA05024O3MergeAvg(a05024O3MergeAvg);
+ it.setA05024O3MergedHighest(a05024O3MergedHighest);
+ it.setA05024O3MergedLowest(a05024O3MergedLowest);
+
+ it.setA01001TemNotMergedAvg(a01001TemNotMergedAvg);
+ it.setA01001TemNotMergedHighest(a01001TemNotMergedHighest);
+ it.setA01001TemNotMergedLowest(a01001TemNotMergedLowest);
+ it.setA01001TemMergeAvg(a01001TemMergeAvg);
+ it.setA01001TemMergedHighest(a01001TemMergedHighest);
+ it.setA01001TemMergedLowest(a01001TemMergedLowest);
+
+ it.setA01002HumNotMergedAvg(a01002HumNotMergedAvg);
+ it.setA01002HumNotMergedHighest(a01002HumNotMergedHighest);
+ it.setA01002HumNotMergedLowest(a01002HumNotMergedLowest);
+ it.setA01002HumMergeAvg(a010022HumMergeAvg);
+ it.setA01002HumMergedHighest(a01002HumMergedHighest);
+ it.setA01002HumMergedLowest(a01002HumMergedLowest);
+
+ it.setA01006PreNotMergedAvg(a01006PreNotMergedAvg);
+ it.setA01006PreNotMergedHighest(a01006PreNotMergedHighest);
+ it.setA01006PreNotMergedLowest(a01006PreNotMergedLowest);
+ it.setA01006PreMergeAvg(a01006PreMergeAvg);
+ it.setA01006PreMergedHighest(a01006PreMergedHighest);
+ it.setA01006PreMergedLowest(a01006PreMergedLowest);
+
+ });
+
+
+
return uavResultDTOS;
}
+ private Double resultDoubled(List<Double> doubles,int type){
+ if(CollectionUtils.isEmpty(doubles)){
+ return 0d;
+ }
+ double one = 0d;
+ if(type == 1){
+ one = doubles.stream().mapToDouble(Double::doubleValue).average().getAsDouble();
+ }else if(type == 2){
+ one = doubles.stream().mapToDouble(Double::doubleValue).max().getAsDouble();
+ }else if(type == 3){
+ one = doubles.stream().mapToDouble(Double::doubleValue).min().getAsDouble();
+ }
+ BigDecimal two = new BigDecimal(one);
+ return two.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
+ }
private static final double EARTH_RADIUS = 6378137;
--
Gitblit v1.8.0