From baa4cacbf4cc35ea3c7bf3cc5c5944af9eeb1880 Mon Sep 17 00:00:00 2001
From: cjl <276999030@qq.com>
Date: Mon, 18 Sep 2023 11:17:44 +0800
Subject: [PATCH] fix:测试无人机提交

---
 screen-api/src/main/java/com/moral/api/service/impl/HistorySecondUavServiceImpl.java |   43 +++++++++++++++++++++
 screen-api/src/main/java/com/moral/api/service/HistorySecondUavService.java          |    2 +
 screen-api/src/main/java/com/moral/api/service/impl/ProfessionServiceImpl.java       |   15 ++-----
 screen-api/src/main/java/com/moral/api/service/impl/CityAqiMonthlyServiceImpl.java   |   19 +++------
 screen-api/src/main/java/com/moral/api/controller/UAVController.java                 |   12 +++--
 5 files changed, 63 insertions(+), 28 deletions(-)

diff --git a/screen-api/src/main/java/com/moral/api/controller/UAVController.java b/screen-api/src/main/java/com/moral/api/controller/UAVController.java
index 2323049..8763106 100644
--- a/screen-api/src/main/java/com/moral/api/controller/UAVController.java
+++ b/screen-api/src/main/java/com/moral/api/controller/UAVController.java
@@ -26,14 +26,11 @@
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.web.bind.annotation.CrossOrigin;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.awt.geom.GeneralPath;
 import java.awt.geom.Point2D;
+import java.math.BigDecimal;
 import java.text.DecimalFormat;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -135,5 +132,10 @@
         return new ResultMessage(ResponseCodeEnum.SUCCESS.getCode(), ResponseCodeEnum.SUCCESS.getMsg(),vo);
     }
 
+    @GetMapping("UAVTest")
+    public ResultMessage UAVTest(BigDecimal lat, BigDecimal lon, String batch){
+        historySecondUavService.UAVTest(lat, lon, batch);
+        return new ResultMessage();
+    }
 
 }
diff --git a/screen-api/src/main/java/com/moral/api/service/HistorySecondUavService.java b/screen-api/src/main/java/com/moral/api/service/HistorySecondUavService.java
index 9c5a01c..7209030 100644
--- a/screen-api/src/main/java/com/moral/api/service/HistorySecondUavService.java
+++ b/screen-api/src/main/java/com/moral/api/service/HistorySecondUavService.java
@@ -5,6 +5,7 @@
 import com.moral.api.pojo.dto.uav.UAVQueryTimeSlotDTO;
 import com.moral.api.pojo.form.uav.UAVQueryTimeSlotForm;
 
+import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
 
@@ -46,4 +47,5 @@
     List<HistorySecondUav> queryDataByBatch(String batch);
 
 
+    boolean UAVTest(BigDecimal lat, BigDecimal lon, String batch);
 }
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/CityAqiMonthlyServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/CityAqiMonthlyServiceImpl.java
index d3822e4..4e81d4e 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/CityAqiMonthlyServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/CityAqiMonthlyServiceImpl.java
@@ -25,14 +25,7 @@
 
 import java.text.DecimalFormat;
 import java.time.Duration;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.OptionalDouble;
+import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.DoubleStream;
 
@@ -126,7 +119,7 @@
         CityAqiMonthly cityAqiMonthly = cityAqiMonthlyMapper.selectOne(cityAqiMonthlyQueryWrapper);
         Double compositeIndex = null;
         String compositeIndexYearOnYear = null;
-        Integer pm25 = null;
+        Double pm25 = null;
         String pm25YearOnYear = null;
         if (cityAqiMonthly != null) {
             Map<String, Object> aqiMap = JSONObject.parseObject(cityAqiMonthly.getValue(), Map.class);
@@ -145,7 +138,7 @@
 
             //3.PM2.5������
             if (aqiMap.get("PM2_5") != null) {
-                pm25 = Integer.parseInt(aqiMap.get("PM2_5").toString());
+                pm25 = Objects.nonNull(aqiMap.get("PM2_5"))?Double.parseDouble(aqiMap.get("PM2_5").toString()):0d;
             }
             currentRankingResult.put("PM2_5", pm25 + "ug/m��");
 
@@ -183,7 +176,7 @@
         Map<Integer, Map<String, Object>> monthlyCumulativeResult = null;
         Double cityCompositeIndex = null;
         String cityCompositeIndexYearOnYear = null;
-        Integer cityPM25 = null;
+        Double cityPM25 = null;
         String cityPM25YearOnYear = null;
         if (!"1".equals(month)) {
             Map<String, Object> cumulativeRankingResult = new HashMap<>();
@@ -201,7 +194,7 @@
                         cityCompositeIndexYearOnYear = cityMap.get("compositeIndex_yearOnYear").toString();
                     }
                     //���������PM2.5
-                    cityPM25 = (int) Double.parseDouble(cityMap.get("PM2_5").toString());
+                    cityPM25 = Double.parseDouble(cityMap.get("PM2_5").toString());
                     if (cityMap.get("PM2_5_yearOnYear") != null) {
                         cityPM25YearOnYear = cityMap.get("PM2_5_yearOnYear").toString();
                     }
@@ -944,7 +937,7 @@
      * @param pm25YearOnYear           ���������������������������pm2.5������
      * @description ���������������������������������������������������������������������������
      */
-    private Map<String, Object> getAreaCurrentMonthResult(Map<Integer, String> areasMap, List<CityAqiMonthly> areaData, Double compositeIndex, String compositeIndexYearOnYear, Integer pm25, String pm25YearOnYear) {
+    private Map<String, Object> getAreaCurrentMonthResult(Map<Integer, String> areasMap, List<CityAqiMonthly> areaData, Double compositeIndex, String compositeIndexYearOnYear, Double pm25, String pm25YearOnYear) {
         Map<String, Object> result = new HashMap<>();
         result.put("compositeIndex", compositeIndex);
         result.put("compositeIndexYearOnYear", compositeIndexYearOnYear);
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/HistorySecondUavServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/HistorySecondUavServiceImpl.java
index 10b8016..627b26a 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/HistorySecondUavServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/HistorySecondUavServiceImpl.java
@@ -1,6 +1,7 @@
 package com.moral.api.service.impl;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.moral.api.entity.*;
 import com.moral.api.mapper.HistorySecondUavMapper;
@@ -349,4 +350,46 @@
         }
     }
 
+    @Override
+    public boolean UAVTest(BigDecimal lat, BigDecimal lon, String batch) {
+        List<HistorySecondUav> list = new ArrayList<>();
+
+        QueryWrapper<HistorySecondUav> wrapper = new QueryWrapper<>();
+        wrapper.eq("batch", batch);
+        wrapper.select("value,mac,time,organization_id");
+        wrapper.orderByAsc("time");
+        List<HistorySecondUav> datas = historySecondUavMapper.selectList(wrapper);
+        Date time =DateUtils.addDays(datas.get(2).getTime(),0);
+        //String bat = "2023-08-08 14:42:20";
+        for(HistorySecondUav g : datas){
+            HistorySecondUav historySecondUav = new HistorySecondUav();
+            historySecondUav.setTime(DateUtils.addDays(g.getTime(),0));
+            historySecondUav.setMac(g.getMac());
+            historySecondUav.setBatch(time);
+            historySecondUav.setOrganizationId(g.getOrganizationId());
+            Map<String, Object> data = JSON.parseObject(g.getValue(), Map.class);
+            Map<String, Object> dataResult = new HashMap<>();
+            dataResult = data;
+            dataResult.put("flylat",Objects.isNull(data.get("flylat"))||data.get("flylat").toString().equals("0")?0d:Double.parseDouble(String.format("%.10f",Double.parseDouble(data.get("flylat").toString())+lat.doubleValue())));
+            dataResult.put("flylon",Objects.isNull(data.get("flylon"))||data.get("flylon").toString().equals("0")?0d:Double.parseDouble(String.format("%.10f",Double.parseDouble(data.get("flylon").toString())+lon.doubleValue())));
+            /*if(Objects.nonNull(data.get("a21026"))&& !data.get("a21026").toString().equals("0")){
+                Double a21026D = Double.parseDouble(data.get("a21026").toString());
+                if( a21026D>15){
+                    a21026D = a21026D -10;
+                }
+                dataResult.put("a21026",Double.parseDouble(String.format("%.4f",a21026D)));
+            }
+            if(Objects.nonNull(data.get("a21004"))&& !data.get("a21004").toString().equals("0")){
+                Double a21024D = Double.parseDouble(data.get("a21004").toString());
+                if( a21024D>100){
+                    a21024D = a21024D -100;
+                }
+                dataResult.put("a21004",Double.parseDouble(String.format("%.4f",a21024D)));
+            }*/
+            historySecondUav.setValue(JSONObject.toJSONString(dataResult));
+            list.add(historySecondUav);
+        }
+        this.saveBatch(list);
+        return true;
+    }
 }
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/ProfessionServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/ProfessionServiceImpl.java
index 2608c7b..18ae1e2 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/ProfessionServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/ProfessionServiceImpl.java
@@ -6,14 +6,7 @@
 import org.springframework.util.ObjectUtils;
 
 import java.text.NumberFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 import java.util.stream.Collectors;
 
 import com.alibaba.fastjson.JSONObject;
@@ -103,8 +96,10 @@
         List<Map<String, Object>> devices = deviceService.getDevicesByOrganizationId(organizationId);
         Set<Map<String, Object>> result = new HashSet<>();
         for (Map<String, Object> device : devices) {
-            List<Map<String, Object>> professions = (List<Map<String, Object>>) device.get("professions");
-            result.addAll(professions);
+            if(Objects.nonNull(device)&&Objects.nonNull(device.get("professions"))&&device.containsKey("professions")){
+                List<Map<String, Object>> professions = (List<Map<String, Object>>) device.get("professions");
+                result.addAll(professions);
+            }
         }
         return result;
     }

--
Gitblit v1.8.0