From 8fb013a6d6707929799e9f7a8a82f311cbca29ae Mon Sep 17 00:00:00 2001 From: jinpengyong <jpy123456> Date: Wed, 23 Dec 2020 14:47:04 +0800 Subject: [PATCH] update大屏年,月数据查询接口 --- src/main/java/com/moral/controller/ScreenController.java | 228 ++++++++++++++++++++++++++++---------------------------- 1 files changed, 114 insertions(+), 114 deletions(-) diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java index e34c786..6721bcf 100644 --- a/src/main/java/com/moral/controller/ScreenController.java +++ b/src/main/java/com/moral/controller/ScreenController.java @@ -715,7 +715,6 @@ String time1 = (String) parameters.get("time"); time1 = time1.replaceAll(" ", ""); parameters.put("time", time1); - String mac1 = (String) parameters.get("mac"); List<Map<String, Object>> list = null; if (mac1 != null && mac1.equals("p5dnd7a0392018") && time1.substring(0, 4).equals("2019")) { @@ -730,38 +729,40 @@ ������������������24���������������23-24���������24������������������������0��������������� */ /*������������start-------------------------------------------------------------------------*/ - Iterator<Map<String, Object>> iterator = list.iterator(); - while (iterator.hasNext()) { - Map<String, Object> next = iterator.next(); - String hour = next.get("time").toString().substring(11, 13); - if ("00".equals(hour)) { - iterator.remove(); + Object type = parameters.get("type"); + if ("day".equals(type)) { + Iterator<Map<String, Object>> iterator = list.iterator(); + while (iterator.hasNext()) { + Map<String, Object> next = iterator.next(); + String hour = next.get("time").toString().substring(11, 13); + if ("00".equals(hour)) { + iterator.remove(); + } } - } - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd"); - //���������������������yyyy-MM-dd HH:mm:ss - time1 = time1 + " 00:00:00"; - Date date = sdf.parse(time1); - date = DateUtil.rollDay(date, 1); - //������������������������ - String time2 = sdf2.format(date); - parameters.put("time", time2); - /*���������������0������������������24���������������������������*/ - List<Map<String, Object>> nextDayList = historyMinutelyService.getMonitorPointOrDeviceAvgData(parameters); - if (!ObjectUtils.isEmpty(nextDayList)) { - time1 = time1.replaceAll(" 00:00:00", " 24"); - for (Map<String, Object> map : nextDayList) { - String time = map.get("time").toString().substring(11, 13); - if("00".equals(time)){ - map.put("time", time1); - list.add(map); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd"); + //���������������������yyyy-MM-dd HH:mm:ss + time1 = time1 + " 00:00:00"; + Date date = sdf.parse(time1); + date = DateUtil.rollDay(date, 1); + //������������������������ + String time2 = sdf2.format(date); + parameters.put("time", time2); + /*���������������0������������������24���������������������������*/ + List<Map<String, Object>> nextDayList = historyMinutelyService.getMonitorPointOrDeviceAvgData(parameters); + if (!ObjectUtils.isEmpty(nextDayList)) { + time1 = time1.replaceAll(" 00:00:00", " 24"); + for (Map<String, Object> map : nextDayList) { + String time = map.get("time").toString().substring(11, 13); + if ("00".equals(time)) { + map.put("time", time1); + list.add(map); + } } } } + /*������������end-------------------------------------------------------------------------*/ - - for (Map<String, Object> map : list) { String time = map.get("time").toString(); time = time.substring(time.length() - 2); @@ -3047,7 +3048,7 @@ @PostMapping("byAccountGetDevices") public List<Device> byAccountGetDevices(@RequestBody Map<String, Object> parameters) { - String id =parameters.get("id").toString(); + String id = parameters.get("id").toString(); List<Device> devicesList = deviceService.getDevicesByAccountId(id); return devicesList; } @@ -3067,165 +3068,164 @@ //��������������������������� List<Device> deviceList = deviceService.getDevicesByMonitorPointId(539); //��������������������� - Map<String,Object> pa = new HashMap<>(); + Map<String, Object> pa = new HashMap<>(); //��������������������������������� SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Calendar beforeTime = Calendar.getInstance(); Date newTime = beforeTime.getTime(); - beforeTime.add(Calendar.MINUTE,-5); + beforeTime.add(Calendar.MINUTE, -5); Date startTime = beforeTime.getTime(); - beforeTime.add(Calendar.MINUTE,6); + beforeTime.add(Calendar.MINUTE, 6); Date endTime = beforeTime.getTime(); //pa.put("sensorKey","e1"); - pa.put("yearAndMonth",sdf.format(newTime).substring(0,7).replace("-","")); - pa.put("startTime",startTime); - pa.put("endTime",endTime); + pa.put("yearAndMonth", sdf.format(newTime).substring(0, 7).replace("-", "")); + pa.put("startTime", startTime); + pa.put("endTime", endTime); List<String> macs = new ArrayList<>(); List<String> sensorKeys = new ArrayList<>(); - for (Device device:deviceList) { + for (Device device : deviceList) { macs.add(device.getMac()); } sensorKeys.add(sensorKey); sensorKeys.add("e18"); sensorKeys.add("e23"); - pa.put("macs",macs); - pa.put("sensorKeys",sensorKeys); - pa.put("macNumber",macs.size()); + pa.put("macs", macs); + pa.put("sensorKeys", sensorKeys); + pa.put("macNumber", macs.size()); List<Map<String, Object>> fiveMinuteDataList = historyFiveMinutelyService.getFiveMinutesDataByMacsAndTimeSolt(pa); //������������������������������������������ double[] allDeviceData = new double[fiveMinuteDataList.size()]; int i = 0; //������������ - List<Map<String,Object>> windList = new ArrayList<>(); - for (Map map:fiveMinuteDataList) { + List<Map<String, Object>> windList = new ArrayList<>(); + for (Map map : fiveMinuteDataList) { String[] wind_speed = map.get("e18").toString().split(","); - if (!map.containsKey("e23")){ + if (!map.containsKey("e23")) { continue; } String[] wind_direction = map.get("e23").toString().split(","); - Map<String,Object> windMap = new HashMap<>(); - windMap.put("wind_speed",wind_speed[0].substring(1,wind_speed[0].length())); - windMap.put("wind_direction",wind_direction[0].substring(1,wind_direction[0].length())); + Map<String, Object> windMap = new HashMap<>(); + windMap.put("wind_speed", wind_speed[0].substring(1, wind_speed[0].length())); + windMap.put("wind_direction", wind_direction[0].substring(1, wind_direction[0].length())); windList.add(windMap); String[] sensorArr = map.get(sensorKey).toString().split(","); - double sensorData = Double.parseDouble(sensorArr[0].substring(1,sensorArr[0].length())); + double sensorData = Double.parseDouble(sensorArr[0].substring(1, sensorArr[0].length())); allDeviceData[i] = sensorData; - i = i+1; + i = i + 1; } //��������������������������� - Map<String,Double> res = WindUtils.getWind_direction_speed(windList); + Map<String, Double> res = WindUtils.getWind_direction_speed(windList); //��������������������������������������������� - Map<String,Double> angleMap = new HashMap(); - MyLatLng pollutionSourcePoint_log_lat = new MyLatLng(pollutionSourcePoint.getLongitude(),pollutionSourcePoint.getLatitude()); - for (Device device:deviceList) { - MyLatLng device_log_lat = new MyLatLng(device.getLongitude(),device.getLatitude()); + Map<String, Double> angleMap = new HashMap(); + MyLatLng pollutionSourcePoint_log_lat = new MyLatLng(pollutionSourcePoint.getLongitude(), pollutionSourcePoint.getLatitude()); + for (Device device : deviceList) { + MyLatLng device_log_lat = new MyLatLng(device.getLongitude(), device.getLatitude()); //������������������������������������������������������ - double angle = mapUtils.getAngle(device_log_lat,pollutionSourcePoint_log_lat); - angleMap.put(device.getMac(),angle); + double angle = mapUtils.getAngle(device_log_lat, pollutionSourcePoint_log_lat); + angleMap.put(device.getMac(), angle); } - Map<String,Double> disparityMap = new HashMap<>(); - for (String key:angleMap.keySet()) { - double angleDisparity = Math.abs(angleMap.get(key)-res.get("wind_direction")); - if (angleDisparity>180){ - angleDisparity = 360-angleDisparity; + Map<String, Double> disparityMap = new HashMap<>(); + for (String key : angleMap.keySet()) { + double angleDisparity = Math.abs(angleMap.get(key) - res.get("wind_direction")); + if (angleDisparity > 180) { + angleDisparity = 360 - angleDisparity; } - disparityMap.put(key,angleDisparity); + disparityMap.put(key, angleDisparity); } Optional<Map.Entry<String, Double>> minDisparity = disparityMap.entrySet() .stream() .min(Map.Entry.comparingByValue()); //������������������������disparityMap������������minDisparity���������������key������������������������������������������ List<String> minAngleDisparityMacList = new ArrayList<>(); - for (String key:disparityMap.keySet()) { - if (disparityMap.get(key) == minDisparity.get().getValue()){ + for (String key : disparityMap.keySet()) { + if (disparityMap.get(key) == minDisparity.get().getValue()) { minAngleDisparityMacList.add(minDisparity.get().getKey()); } } //������������map������������������ - Map<String,Object> fiveMinuteDataMap = new HashMap(); - if (minAngleDisparityMacList.size()<2){//��������������� - for (Map fiveMinuteData:fiveMinuteDataList) { - if (fiveMinuteData.get("mac").toString().equals(minAngleDisparityMacList.get(0))){ + Map<String, Object> fiveMinuteDataMap = new HashMap(); + if (minAngleDisparityMacList.size() < 2) {//��������������� + for (Map fiveMinuteData : fiveMinuteDataList) { + if (fiveMinuteData.get("mac").toString().equals(minAngleDisparityMacList.get(0))) { fiveMinuteDataMap.putAll(fiveMinuteData); break; } } - }else { + } else { } Device referenceDevice = new Device(); - for (Device device:deviceList) { - if (device.getMac().equals(fiveMinuteDataMap.get("mac"))){ + for (Device device : deviceList) { + if (device.getMac().equals(fiveMinuteDataMap.get("mac"))) { referenceDevice = device; } } //��������������������� double sum = 0; - for (int j=0;j<allDeviceData.length;j++) { - sum = sum+allDeviceData[j]; + for (int j = 0; j < allDeviceData.length; j++) { + sum = sum + allDeviceData[j]; } - double deviceDataAvg = sum/allDeviceData.length; + double deviceDataAvg = sum / allDeviceData.length; //��������������������������������������������� - double distance = mapUtils.getDistance(pollutionSourcePoint.getLongitude(),pollutionSourcePoint.getLatitude(),referenceDevice.getLongitude(),referenceDevice.getLatitude()); + double distance = mapUtils.getDistance(pollutionSourcePoint.getLongitude(), pollutionSourcePoint.getLatitude(), referenceDevice.getLongitude(), referenceDevice.getLatitude()); //���������������������������x,y - double x = Math.cos(Math.toRadians(minDisparity.get().getValue()))*distance; - double y = Math.sin(Math.toRadians(minDisparity.get().getValue()))*distance; + double x = Math.cos(Math.toRadians(minDisparity.get().getValue())) * distance; + double y = Math.sin(Math.toRadians(minDisparity.get().getValue())) * distance; //��������������������� String[] fiveMinuteData = fiveMinuteDataMap.get(sensorKey).toString().split(","); - double c = Double.parseDouble(fiveMinuteData[0].substring(1,fiveMinuteData[0].length()))-deviceDataAvg; + double c = Double.parseDouble(fiveMinuteData[0].substring(1, fiveMinuteData[0].length())) - deviceDataAvg; //������������ - double pollutionSourceIntensity = EmissionDataUtil.getPollutionSourceIntensity(c,x,y,res.get("wind_speed")); + double pollutionSourceIntensity = EmissionDataUtil.getPollutionSourceIntensity(c, x, y, res.get("wind_speed")); //��������������������� - Map<String,Object> center = new HashMap<>(); - center.put("lng",120.997119); - center.put("lat",31.451714); + Map<String, Object> center = new HashMap<>(); + center.put("lng", 120.997119); + center.put("lat", 31.451714); //������������������������������������ - List<Map<String,Double>> numericalValueList = new ArrayList<>(); - Map<String,Double> numericalValueMap = new HashMap<>(); - numericalValueMap.put("lng",120.997119); - numericalValueMap.put("lat",31.451714); - numericalValueMap.put("count",0.027); + List<Map<String, Double>> numericalValueList = new ArrayList<>(); + Map<String, Double> numericalValueMap = new HashMap<>(); + numericalValueMap.put("lng", 120.997119); + numericalValueMap.put("lat", 31.451714); + numericalValueMap.put("count", 0.027); numericalValueList.add(numericalValueMap); - Map<String,Double> numericalValueMap2 = new HashMap<>(); - numericalValueMap2.put("lng",120.99516); - numericalValueMap2.put("lat",31.448664); - numericalValueMap2.put("count",0.029); + Map<String, Double> numericalValueMap2 = new HashMap<>(); + numericalValueMap2.put("lng", 120.99516); + numericalValueMap2.put("lat", 31.448664); + numericalValueMap2.put("count", 0.029); numericalValueList.add(numericalValueMap2); - Map<String,Double> numericalValueMap3 = new HashMap<>(); - numericalValueMap3.put("lng",120.998538); - numericalValueMap3.put("lat",31.449289); - numericalValueMap3.put("count",0.033); + Map<String, Double> numericalValueMap3 = new HashMap<>(); + numericalValueMap3.put("lng", 120.998538); + numericalValueMap3.put("lat", 31.449289); + numericalValueMap3.put("count", 0.033); numericalValueList.add(numericalValueMap3); - Map<String,Double> numericalValueMap4 = new HashMap<>(); - numericalValueMap4.put("lng",120.998628); - numericalValueMap4.put("lat",31.452027); - numericalValueMap4.put("count",0.025); + Map<String, Double> numericalValueMap4 = new HashMap<>(); + numericalValueMap4.put("lng", 120.998628); + numericalValueMap4.put("lat", 31.452027); + numericalValueMap4.put("count", 0.025); numericalValueList.add(numericalValueMap4); - Map<String,Double> numericalValueMap5 = new HashMap<>(); - numericalValueMap5.put("lng",121.000383); - numericalValueMap5.put("lat",31.451469); - numericalValueMap5.put("count",0.05); + Map<String, Double> numericalValueMap5 = new HashMap<>(); + numericalValueMap5.put("lng", 121.000383); + numericalValueMap5.put("lat", 31.451469); + numericalValueMap5.put("count", 0.05); numericalValueList.add(numericalValueMap5); - Map<String,Double> numericalValueMap6 = new HashMap<>(); - numericalValueMap6.put("lng",120.999908); - numericalValueMap6.put("lat",31.449389); - numericalValueMap6.put("count",0.04); + Map<String, Double> numericalValueMap6 = new HashMap<>(); + numericalValueMap6.put("lng", 120.999908); + numericalValueMap6.put("lat", 31.449389); + numericalValueMap6.put("count", 0.04); numericalValueList.add(numericalValueMap6); - Map<String,Double> numericalValueMap7 = new HashMap<>(); - numericalValueMap7.put("lng",120.998519); - numericalValueMap7.put("lat",31.450588); - numericalValueMap7.put("count",0.10); + Map<String, Double> numericalValueMap7 = new HashMap<>(); + numericalValueMap7.put("lng", 120.998519); + numericalValueMap7.put("lat", 31.450588); + numericalValueMap7.put("count", 0.10); numericalValueList.add(numericalValueMap7); JSONObject params = new JSONObject(); - params.put("accountId",190); - params.put("level",17); - params.put("center",center); - params.put("points",numericalValueList); - + params.put("accountId", 190); + params.put("level", 17); + params.put("center", center); + params.put("points", numericalValueList); //������������������ -- Gitblit v1.8.0