| | |
| | | @ApiImplicitParam(name = "mac", value = "设备mac", required = true, paramType = "query", dataType = "String"), |
| | | @ApiImplicitParam(name = "time1", value = "时间,2021-08-18", required = true, paramType = "query", dataType = "String"), |
| | | @ApiImplicitParam(name = "time2", value = "时间,2021-08-18", required = true, paramType = "query", dataType = "String"), |
| | | @ApiImplicitParam(name = "type", value = "采集因子", required = true, paramType = "query", dataType = "String") |
| | | @ApiImplicitParam(name = "type", value = "采集因子", required = true, paramType = "query", dataType = "String"), |
| | | @ApiImplicitParam(name = "range", value = "范围", required = true, paramType = "query", dataType = "int") |
| | | }) |
| | | public ResultMessage carTrajectoryNewAvg(HttpServletRequest request) { |
| | | Map<String, Object> params = WebUtils.getParametersStartingWith(request, null); |
| | | if (!params.containsKey("mac") || !params.containsKey("time1")|| !params.containsKey("type")|| !params.containsKey("time2")) { |
| | | if (!params.containsKey("mac") || !params.containsKey("time1")||!params.containsKey("range")|| !params.containsKey("type")|| !params.containsKey("time2")) { |
| | | return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); |
| | | } |
| | | List<HistorySecondCruiserResultDTO> response = specialDeviceService.carTrajectoryNewAvg(params); |
| | |
| | | |
| | | @Override |
| | | public List<HistorySecondCruiserResultDTO> carTrajectoryNewAvg(Map<String, Object> params) { |
| | | double range = Double.valueOf(params.get("range").toString()); |
| | | params.put("dateFormat", "%Y-%m-%d %H:%i:%s"); |
| | | Map<String, Object> userInfo = (Map<String, Object>) TokenUtils.getUserInfo(); |
| | | Map<String, Object> orgInfo = (Map<String, Object>) userInfo.get("organization"); |
| | |
| | | if(CollectionUtils.isEmpty(data)){ |
| | | return null; |
| | | } |
| | | return filterDataNew(data); |
| | | return filterDataNew(data,range); |
| | | } |
| | | @Override |
| | | public SpecialDevice getSpecialDeviceMapByMac(String mac) { |
| | |
| | | return list; |
| | | } |
| | | //根据距离筛选数据 |
| | | private List<HistorySecondCruiserResultDTO> filterDataNew(List<HistorySecondCruiserListDTO> data) { |
| | | private List<HistorySecondCruiserResultDTO> filterDataNew(List<HistorySecondCruiserListDTO> data,double range) { |
| | | List<HistorySecondCruiserListDTO> list = new ArrayList<>(); |
| | | Map<Integer, HistorySecondCruiserResultCountDTO> map = new HashMap<>(); |
| | | Map<String, BigDecimal> mapTest = new HashMap<>(); |
| | |
| | | boolean flag = true; |
| | | for (HistorySecondCruiserListDTO l : list) { |
| | | double distance = GeodesyUtils.getDistance(d.getFlyLat(), d.getFlyLon(), l.getFlyLat(), l.getFlyLon()); |
| | | if (distance < DIS_NEW) { |
| | | if (distance < range) { |
| | | flag = false; |
| | | if(integer.equals(list.size())&& !mapTest.containsKey(d.getFlyLon()+"_"+d.getFlyLat())){ |
| | | HistorySecondCruiserResultCountDTO countResultDTO = Objects.isNull(map.get(integer))?new HistorySecondCruiserResultCountDTO():map.get(integer); |
| | |
| | | |
| | | } |
| | | |
| | | private List<HistorySecondCruiserResultDTO> filterDataNew(List<HistorySecondCruiserListDTO> data, List<HistorySecondCruiserListDTO> list) { |
| | | private List<HistorySecondCruiserResultDTO> filterDataNew(List<HistorySecondCruiserListDTO> data, List<HistorySecondCruiserListDTO> list,double range) { |
| | | List<HistorySecondCruiserResultDTO> listResult = new ArrayList<>(); |
| | | List<HistorySecondCruiserListDTO> filter = new ArrayList<>(); |
| | | for (HistorySecondCruiserListDTO d : data) { |
| | |
| | | if (filter.contains(d)) { |
| | | break; |
| | | } |
| | | if (distance < DIS_NEW ) { |
| | | if (distance < range ) { |
| | | List<BigDecimal> numList = new ArrayList<>(CollectionUtils.isEmpty(l.getNumList()) ? Arrays.asList(l.getNum()) : l.getNumList()); |
| | | numList.add(d.getNum()); |
| | | l.setNumList(numList); |