From 8ef8f346231992fbbdae8a4eff5f7feb467616a2 Mon Sep 17 00:00:00 2001 From: cjl <276999030@qq.com> Date: Wed, 01 Nov 2023 16:17:23 +0800 Subject: [PATCH] fix:补充提交 --- screen-manage/src/main/resources/application-dev.yml | 2 screen-job/src/main/resources/application-dev.yml | 2 screen-api/src/main/resources/mapper/HistorySecondUavMapper.xml | 8 ++++ screen-api/src/main/java/com/moral/api/service/UAVService.java | 3 + screen-api/src/main/java/com/moral/api/service/impl/UAVServiceImpl.java | 71 +++++++++++++++++++++++++++++++++++ screen-api/src/main/java/com/moral/api/mapper/HistorySecondUavMapper.java | 3 + screen-api/src/main/java/com/moral/api/controller/UAVController.java | 13 ++++++ screen-api/src/main/java/com/moral/api/pojo/dto/uav/UAVGetBD.java | 2 + 8 files changed, 102 insertions(+), 2 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 e5d19a1..ed30ab6 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 @@ -88,6 +88,19 @@ return new ResultMessage(ResponseCodeEnum.SUCCESS.getCode(), ResponseCodeEnum.SUCCESS.getMsg(),uavResultDTOS); } + @PostMapping("getUavMore") + public ResultMessage getUavMore(@RequestBody Map<String, Object> params){ + //������������������������ + if (!params.containsKey("mac") || !params.containsKey("batch") || !params.containsKey("height1")|| !params.containsKey("uvasize")|| !params.containsKey("height2")) { + return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); + } + List<UAVResultDTO> uavResultDTOS = uavService.getUav(params); + if (ObjectUtils.isEmpty(uavResultDTOS)){ + return new ResultMessage(ResponseCodeEnum.SENSOR_IS_NOT_EXIST,"null"); + } + return new ResultMessage(ResponseCodeEnum.SUCCESS.getCode(), ResponseCodeEnum.SUCCESS.getMsg(),uavResultDTOS); + } + /** * @Description: ������������������������������������������������������������ diff --git a/screen-api/src/main/java/com/moral/api/mapper/HistorySecondUavMapper.java b/screen-api/src/main/java/com/moral/api/mapper/HistorySecondUavMapper.java index 8a2f291..3038b67 100644 --- a/screen-api/src/main/java/com/moral/api/mapper/HistorySecondUavMapper.java +++ b/screen-api/src/main/java/com/moral/api/mapper/HistorySecondUavMapper.java @@ -5,6 +5,7 @@ import com.moral.api.entity.HistorySecondUav; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.moral.api.pojo.dto.uav.UAVGetBD; import com.moral.api.pojo.dto.uav.UAVResultDTO; /** @@ -19,4 +20,6 @@ List<HistorySecondUav> reList(Map<String,Object> map); + + List<UAVGetBD> reListDetail(Map<String,Object> map); } diff --git a/screen-api/src/main/java/com/moral/api/pojo/dto/uav/UAVGetBD.java b/screen-api/src/main/java/com/moral/api/pojo/dto/uav/UAVGetBD.java index eeca63a..3b2ddaa 100644 --- a/screen-api/src/main/java/com/moral/api/pojo/dto/uav/UAVGetBD.java +++ b/screen-api/src/main/java/com/moral/api/pojo/dto/uav/UAVGetBD.java @@ -21,4 +21,6 @@ private String value; + + private Double num; } diff --git a/screen-api/src/main/java/com/moral/api/service/UAVService.java b/screen-api/src/main/java/com/moral/api/service/UAVService.java index dee6115..338253a 100644 --- a/screen-api/src/main/java/com/moral/api/service/UAVService.java +++ b/screen-api/src/main/java/com/moral/api/service/UAVService.java @@ -5,9 +5,12 @@ import java.util.Map; import com.moral.api.pojo.dto.uav.UAVResultDTO; +import com.moral.api.pojo.dto.uav.UAVResultListDTO; public interface UAVService { List<UAVResultDTO> getUav(Map<String, Object> params); + + UAVResultListDTO getUavMore(Map<String, Object> params); } 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 3529481..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,5 +1,6 @@ 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; @@ -33,6 +34,76 @@ 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) { String uvasize = params.get("uvasize").toString(); diff --git a/screen-api/src/main/resources/mapper/HistorySecondUavMapper.xml b/screen-api/src/main/resources/mapper/HistorySecondUavMapper.xml index ce67a21..7f36d45 100644 --- a/screen-api/src/main/resources/mapper/HistorySecondUavMapper.xml +++ b/screen-api/src/main/resources/mapper/HistorySecondUavMapper.xml @@ -18,4 +18,12 @@ HAVING abs(`value`->>'$.flyhig') <![CDATA[>=]]> #{height1} and abs(`value`->>'$.flyhig') <![CDATA[<=]]> #{height2} </select> + + <select id="reListDetail" resultType="com.moral.api.pojo.dto.uav.UAVGetBD"> + SELECT history_second_uav.time,value->>#{type} as num,value->>'$.flylon' as flyLon,value->>'$.flylat' as flyLat + FROM history_second_uav WHERE mac = #{mac} + AND batch = #{batch} + HAVING abs(`value`->>'$.flyhig') <![CDATA[>=]]> #{height1} + and abs(`value`->>'$.flyhig') <![CDATA[<=]]> #{height2} + </select> </mapper> \ No newline at end of file diff --git a/screen-job/src/main/resources/application-dev.yml b/screen-job/src/main/resources/application-dev.yml index 12414b3..c05e54a 100644 --- a/screen-job/src/main/resources/application-dev.yml +++ b/screen-job/src/main/resources/application-dev.yml @@ -110,4 +110,4 @@ date: changshu: P5DND7A0245358,P5DND7A0245364,P5DND7A0245413,P5DND7A0245355,P5DND7A0245416,P5DND7A0245426,P5DND7A0245398,P5DND7A0245441,P5DND7A0245429,P5DND7A0245435,P5DND7A0245372,P5DND7A0245397,P5DND7A0245415,P5DND7A0245411,P5DND7A0245407,P5DND7A0245418,P5DND7A0245430,P5DND7A0245493,P5DND7A0245414,P5DND7A0245366,P5DND7A0245442,P5DND7A0245386,P5DND7A0245431,P5DND7A0245394,P5DND7A0245380,P5DND7A0245420,P5DND7A0245440,P5DND7A0245432,P5DND7A0391974,P5DND7A0391989,P5DND7A0245481,P5DND7A0392001,P5DND7A0391991,P5DND7A0391978,P5DND7A0245499 device: - list: p5dnd7a0245499,p5dnd7a0391962 + list: p5dnd7a0245499,p5dnd7a0391962,HJS00002156B89 diff --git a/screen-manage/src/main/resources/application-dev.yml b/screen-manage/src/main/resources/application-dev.yml index 4fe23d1..1ea060c 100644 --- a/screen-manage/src/main/resources/application-dev.yml +++ b/screen-manage/src/main/resources/application-dev.yml @@ -127,6 +127,6 @@ foh3wi2ooghiCh5 result: device: - list: p5dnd7a0245499,p5dnd7a0391962 + list: p5dnd7a0245499,p5dnd7a0391962,HJS00002156B89 -- Gitblit v1.8.0