From 55621908416cd328d013d2e23d0d7c2dcfb1f9b1 Mon Sep 17 00:00:00 2001 From: jinpengyong <jpy123456> Date: Tue, 28 Dec 2021 13:16:11 +0800 Subject: [PATCH] 行业贡献率 --- screen-api/src/main/java/com/moral/api/service/impl/HistoryDailyServiceImpl.java | 119 ++++++++++++++++++++++++++++++++--------------------------- 1 files changed, 64 insertions(+), 55 deletions(-) diff --git a/screen-api/src/main/java/com/moral/api/service/impl/HistoryDailyServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/HistoryDailyServiceImpl.java index b23ca13..d6fe2f6 100644 --- a/screen-api/src/main/java/com/moral/api/service/impl/HistoryDailyServiceImpl.java +++ b/screen-api/src/main/java/com/moral/api/service/impl/HistoryDailyServiceImpl.java @@ -14,8 +14,8 @@ import com.moral.api.utils.GetCenterPointFromListOfCoordinates; import com.moral.constant.Constants; import com.moral.util.DateUtils; - import com.moral.util.PollutantUtils; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.ObjectUtils; @@ -62,10 +62,10 @@ @Override public HistoryDaily getHistoryDailyByMacAndDate(String mac, Date date) { QueryWrapper<HistoryDaily> wrapper = new QueryWrapper<>(); - wrapper.eq("mac",mac); - wrapper.eq("time",date); + wrapper.eq("mac", mac); + wrapper.eq("time", date); List<HistoryDaily> historyDailies = historyDailyMapper.selectList(wrapper); - if(ObjectUtils.isEmpty(historyDailies)) + if (ObjectUtils.isEmpty(historyDailies)) return null; return historyDailies.get(0); } @@ -74,12 +74,12 @@ @Override public Map<String, HistoryDaily> getHistoryDailyByMacsAndDate(List<String> mac, Date date) { QueryWrapper<HistoryDaily> wrapper = new QueryWrapper<>(); - wrapper.in("mac",mac); - wrapper.eq("time",date); + wrapper.in("mac", mac); + wrapper.eq("time", date); List<HistoryDaily> historyDailies = historyDailyMapper.selectList(wrapper); - Map<String,HistoryDaily> map = new HashMap<>(); + Map<String, HistoryDaily> map = new HashMap<>(); for (HistoryDaily historyDaily : historyDailies) { - map.put(historyDaily.getMac(),historyDaily); + map.put(historyDaily.getMac(), historyDaily); } return map; } @@ -87,8 +87,8 @@ @Override public List<HistoryDaily> getHistoryDailyByMacAndTimeSlot(String mac, Date startDate, Date endDate) { QueryWrapper<HistoryDaily> wrapper = new QueryWrapper<>(); - wrapper.in("mac",mac); - wrapper.between("time",startDate,endDate); + wrapper.in("mac", mac); + wrapper.between("time", startDate, endDate); List<HistoryDaily> historyDailies = historyDailyMapper.selectList(wrapper); return historyDailies; } @@ -103,8 +103,8 @@ //������������ //��������������� List<Organization> allChildrenOrganization = organizationService.getChildrenOrganizationsById(orgId); - if (!ObjectUtils.isEmpty(allChildrenOrganization) || allChildrenOrganization.size() < 1){ - for (Organization organization:allChildrenOrganization) { + if (!ObjectUtils.isEmpty(allChildrenOrganization) || allChildrenOrganization.size() < 1) { + for (Organization organization : allChildrenOrganization) { allOrgId.add(organization.getId()); } } @@ -113,38 +113,38 @@ //������������list���������������mac List<String> deviceMacList = new ArrayList<>(); //������������map���Mac������key���device������value - Map<String,Device> deviceMap = new HashMap<>(); + Map<String, Device> deviceMap = new HashMap<>(); List<Double> longitudeList = new ArrayList<>(); List<Double> latitudeList = new ArrayList<>(); - for (Integer orgIdWithoutDuplicates:allOrgIdWithoutDuplicates) { + for (Integer orgIdWithoutDuplicates : allOrgIdWithoutDuplicates) { //������id������������������ QueryWrapper<Device> wrapper_device = new QueryWrapper<>(); - wrapper_device.eq("is_delete",Constants.NOT_DELETE).eq("organization_id",orgIdWithoutDuplicates); + wrapper_device.eq("is_delete", Constants.NOT_DELETE).eq("organization_id", orgIdWithoutDuplicates); List<Device> devices = new ArrayList<>(); devices = deviceMapper.selectList(wrapper_device); - if (devices.size()>0){ - for (Device device:devices) { + if (devices.size() > 0) { + for (Device device : devices) { String mac = device.getMac(); deviceMacList.add(mac); - deviceMap.put(mac,device); + deviceMap.put(mac, device); double longitude = device.getLongitude(); double latitude = device.getLatitude(); longitudeList.add(longitude); latitudeList.add(latitude); } - }else { + } else { continue; } } //������������ - String time = parameters.get("time").toString().substring(0,10)+" 00:00:00"; - resultMap.put("time",time); + String time = parameters.get("time").toString().substring(0, 10) + " 00:00:00"; + resultMap.put("time", time); QueryWrapper<HistoryDaily> historyDailyQueryWrapper = new QueryWrapper<>(); - historyDailyQueryWrapper.eq("time",time); + historyDailyQueryWrapper.eq("time", time); historyDailyQueryWrapper.in("mac", deviceMacList); List<HistoryDaily> historyDailies = historyDailyMapper.selectList(historyDailyQueryWrapper); List<Object> list = new ArrayList<>(); - for (HistoryDaily historyDailyData:historyDailies) { + for (HistoryDaily historyDailyData : historyDailies) { List<Object> list1 = new ArrayList<>(); String mac = historyDailyData.getMac(); Device device = deviceMap.get(mac); @@ -158,17 +158,17 @@ list1.add(level); list.add(list1); } - resultMap.put("list",list); - double latitudeMin = Collections.min(latitudeList)-0.0018; - double latitudeMax = Collections.max(latitudeList)+0.0018; - double longitudeMin = Collections.min(longitudeList)-0.2/(111*Math.cos(latitudeMin)); - double longitudeMax = Collections.max(longitudeList)+0.2/(111*Math.cos(latitudeMin)); + resultMap.put("list", list); + double latitudeMin = Collections.min(latitudeList) - 0.0018; + double latitudeMax = Collections.max(latitudeList) + 0.0018; + double longitudeMin = Collections.min(longitudeList) - 0.2 / (111 * Math.cos(latitudeMin)); + double longitudeMax = Collections.max(longitudeList) + 0.2 / (111 * Math.cos(latitudeMin)); List<Double> bound = new ArrayList<>(); bound.add(longitudeMin); bound.add(latitudeMin); bound.add(longitudeMax); bound.add(latitudeMax); - resultMap.put("bound",bound); + resultMap.put("bound", bound); List<List> bound1 = new ArrayList<>(); List<Double> left_up = new ArrayList<>(); left_up.add(latitudeMax); @@ -187,7 +187,7 @@ bound1.add(right_down); bound1.add(left_down); List<GeoCoordinate> geoCoordinates = new ArrayList<>(); - for (List bo:bound1) { + for (List bo : bound1) { GeoCoordinate g = new GeoCoordinate(); g.setLatitude(Double.parseDouble(bo.get(0).toString())); g.setLongitude(Double.parseDouble(bo.get(1).toString())); @@ -197,7 +197,7 @@ List centerPoint = new ArrayList(); centerPoint.add(centerPoint400.getLongitude()); centerPoint.add(centerPoint400.getLatitude()); - resultMap.put("centerPoint",centerPoint); + resultMap.put("centerPoint", centerPoint); return resultMap; } @@ -210,8 +210,8 @@ //������������ //��������������� List<Organization> allChildrenOrganization = organizationService.getChildrenOrganizationsById(orgId); - if (!ObjectUtils.isEmpty(allChildrenOrganization) || allChildrenOrganization.size() < 1){ - for (Organization organization:allChildrenOrganization) { + if (!ObjectUtils.isEmpty(allChildrenOrganization) || allChildrenOrganization.size() < 1) { + for (Organization organization : allChildrenOrganization) { allOrgId.add(organization.getId()); } } @@ -220,33 +220,33 @@ //������������list���������������mac List<String> deviceMacList = new ArrayList<>(); //������������map���Mac������key���device������value - Map<String,Device> deviceMap = new HashMap<>(); + Map<String, Device> deviceMap = new HashMap<>(); List<Double> longitudeList = new ArrayList<>(); List<Double> latitudeList = new ArrayList<>(); - for (Integer orgIdWithoutDuplicates:allOrgIdWithoutDuplicates) { + for (Integer orgIdWithoutDuplicates : allOrgIdWithoutDuplicates) { //������id������������������ QueryWrapper<Device> wrapper_device = new QueryWrapper<>(); - wrapper_device.eq("is_delete",Constants.NOT_DELETE).eq("organization_id",orgIdWithoutDuplicates); + wrapper_device.eq("is_delete", Constants.NOT_DELETE).eq("organization_id", orgIdWithoutDuplicates); List<Device> devices = new ArrayList<>(); devices = deviceMapper.selectList(wrapper_device); - if (devices.size()>0){ - for (Device device:devices) { + if (devices.size() > 0) { + for (Device device : devices) { String mac = device.getMac(); deviceMacList.add(mac); - deviceMap.put(mac,device); + deviceMap.put(mac, device); double longitude = device.getLongitude(); double latitude = device.getLatitude(); longitudeList.add(longitude); latitudeList.add(latitude); } - }else { + } else { continue; } } - double latitudeMin = Collections.min(latitudeList)-0.0018; - double latitudeMax = Collections.max(latitudeList)+0.0018; - double longitudeMin = Collections.min(longitudeList)-0.2/(111*Math.cos(latitudeMin)); - double longitudeMax = Collections.max(longitudeList)+0.2/(111*Math.cos(latitudeMin)); + double latitudeMin = Collections.min(latitudeList) - 0.0018; + double latitudeMax = Collections.max(latitudeList) + 0.0018; + double longitudeMin = Collections.min(longitudeList) - 0.2 / (111 * Math.cos(latitudeMin)); + double longitudeMax = Collections.max(longitudeList) + 0.2 / (111 * Math.cos(latitudeMin)); List<Double> bound = new ArrayList<>(); bound.add(longitudeMin); bound.add(latitudeMin); @@ -270,7 +270,7 @@ bound1.add(right_down); bound1.add(left_down); List<GeoCoordinate> geoCoordinates = new ArrayList<>(); - for (List bo:bound1) { + for (List bo : bound1) { GeoCoordinate g = new GeoCoordinate(); g.setLatitude(Double.parseDouble(bo.get(0).toString())); g.setLongitude(Double.parseDouble(bo.get(1).toString())); @@ -282,16 +282,16 @@ centerPoint.add(centerPoint400.getLatitude()); List<Map<String, Object>> resultList = new ArrayList<>(); //������������ - String endTime = parameters.get("endTime").toString().substring(0,10)+" 00:00:00"; + String endTime = parameters.get("endTime").toString().substring(0, 10) + " 00:00:00"; //������������ SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); int days = Integer.parseInt(parameters.get("days").toString()); Date newEndTime = new Date(); - for (int i=days;i>=0;i--){ + for (int i = days; i >= 0; i--) { Map<String, Object> resultMap = new HashMap<>(); //������������������������������ - resultMap.put("centerPoint",centerPoint); - resultMap.put("bound",bound); + resultMap.put("centerPoint", centerPoint); + resultMap.put("bound", bound); Calendar calendar = Calendar.getInstance(); try { newEndTime = df.parse(endTime); @@ -299,16 +299,16 @@ e.printStackTrace(); } calendar.setTime(newEndTime); - calendar.set(Calendar.DAY_OF_MONTH,calendar.get(Calendar.DAY_OF_MONTH)-i); - String time = df.format(calendar.getTime())+" 00:00:00"; + calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH) - i); + String time = df.format(calendar.getTime()) + " 00:00:00"; //������������ - resultMap.put("time",time); + resultMap.put("time", time); QueryWrapper<HistoryDaily> historyDailyQueryWrapper = new QueryWrapper<>(); - historyDailyQueryWrapper.eq("time",time); + historyDailyQueryWrapper.eq("time", time); historyDailyQueryWrapper.in("mac", deviceMacList); List<HistoryDaily> historyDailies = historyDailyMapper.selectList(historyDailyQueryWrapper); List<Object> list = new ArrayList<>(); - for (HistoryDaily historyDailyData:historyDailies) { + for (HistoryDaily historyDailyData : historyDailies) { List<Object> list1 = new ArrayList<>(); String mac = historyDailyData.getMac(); Device device = deviceMap.get(mac); @@ -322,11 +322,20 @@ list1.add(level); list.add(list1); } - resultMap.put("list",list); + resultMap.put("list", list); resultList.add(resultMap); } return resultList; } + @Override + public List<HistoryDaily> getValueByMacs(List<String> macs, String time) { + QueryWrapper<HistoryDaily> queryWrapper = new QueryWrapper<>(); + queryWrapper.select("time", "value") + .likeRight("time", time) + .in("mac", macs); + return historyDailyMapper.selectList(queryWrapper); + } + } -- Gitblit v1.8.0