From 1ef1640c9eebf928b28befa55c5f3e3f8fece4b9 Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Thu, 01 Feb 2024 10:12:59 +0800
Subject: [PATCH] fix:代码优化测试提交
---
screen-api/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java | 119 +++++++++++++++++++++++++++++++++++++++
screen-api/src/main/java/com/moral/api/service/DeviceService.java | 3 +
2 files changed, 122 insertions(+), 0 deletions(-)
diff --git a/screen-api/src/main/java/com/moral/api/service/DeviceService.java b/screen-api/src/main/java/com/moral/api/service/DeviceService.java
index c6ff674..a83e217 100644
--- a/screen-api/src/main/java/com/moral/api/service/DeviceService.java
+++ b/screen-api/src/main/java/com/moral/api/service/DeviceService.java
@@ -85,4 +85,7 @@
* @return
*/
Map<String,Object> detail(String mac,String startTime,String endTime, String type);
+
+
+ Map<String,Object> detailV1(String mac,String startTime,String endTime, String type);
}
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
index 9c13d09..19ce094 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
@@ -966,6 +966,67 @@
return rsMap;
}
+ @Override
+ public Map<String, Object> detailV1(String mac, String startTime, String endTime, String type) {
+ HashMap<String, Object> rsMap = new HashMap<>();
+ Map<String, Object> map = new TreeMap<>(
+ new Comparator<String>() {
+ @Override
+ public int compare(String o1, String o2) {
+ return o1.compareTo(o2);
+ }
+ }
+ );
+ //������������
+ ArrayList<Date> EndDates = new ArrayList<>();
+ //������������
+ ArrayList<Date> StartDates = new ArrayList<>();
+ ArrayList<Date> dates = new ArrayList<>();
+ if (type.equals("hour")){
+ Date start = DateUtils.getDate(startTime, DateUtils.yyyy_MM_dd_HH_EN);
+ Date end = DateUtils.getDate(endTime, DateUtils.yyyy_MM_dd_HH_EN);
+ List<HistoryHourly> valueByMacAndTime = historyHourlyService.getValueByMacAndTime(mac, start, end);
+ if (!ObjectUtils.isEmpty(valueByMacAndTime)){
+ //������������
+ ArrayList<HistoryHourly> collect = valueByMacAndTime.stream().collect(
+ Collectors.collectingAndThen(Collectors.toCollection(
+ () -> new TreeSet<>(Comparator.comparing(p -> p.getTime()))), ArrayList::new)
+ );
+ for (HistoryHourly historyHourly : collect) {
+ map.put(DateUtils.dateToDateString(historyHourly.getTime()),1);
+ dates.add(historyHourly.getTime());
+ }
+ setCode(end,start,dates,StartDates,EndDates,map,type);
+ }
+ //������
+ List<OnlineRateLogsForm> OrfList = getList(EndDates, StartDates, type);
+ //���������
+ ArrayList<String> list1 = new ArrayList<>();
+ ArrayList<Integer> list2 = new ArrayList<>();
+ Set<String> strings = map.keySet();
+ for (String string : strings) {
+ list1.add(string);
+ list2.add(Integer.parseInt(map.get(string).toString()));
+ }
+ rsMap.put("lineChart1",list1);
+ rsMap.put("lineChart2",list2);
+ rsMap.put("tabulation",OrfList);
+ //���������������������
+ int endNumber = map.size() - dates.size();
+ double number = (double) dates.size() / map.size() * 100;
+ String result = String.format("%.2f", number);
+ rsMap.put("pieChart1",endNumber);
+ rsMap.put("pieChart2",dates.size());
+ rsMap.put("code","���"+map.size()+"���������"+"������"+dates.size()+"���������"+"���������"+(result.equals("NaN")?"0":result));
+
+ }else if (type.equals("day")){
+
+ }else {
+
+ }
+ return null;
+ }
+
private Device getDeviceUnitAlramInforByMacFromDb(String mac){
QueryWrapper<Device> wrapper = new QueryWrapper<>();
wrapper.eq("mac",mac);
@@ -1033,4 +1094,62 @@
}
+ private void setCode(Date end,Date start,ArrayList<Date> dates,ArrayList<Date> StartDates,ArrayList<Date> EndDates,Map<String,Object> map,String type){
+ boolean flag= true;
+ while (DateUtils.isTimeBeforE(end,start)){
+ if (dates.contains(start)){
+ if (!flag){
+ StartDates.add(start);
+ flag= true;
+ }
+ }else {
+ if (flag){
+ EndDates.add(start);
+ flag=false;
+ }
+ map.put(DateUtils.dateToDateString(start),0);
+ }
+ if (type.equals("hour")){
+ start = DateUtils.getDateAddHour(start,1);
+ }else if (type.equals("day")){
+ start = DateUtils.getDateOfDay(start,1);
+ }else {
+ start = DateUtils.getDateOfMin(start,1);
+ }
+ }
+ }
+
+ private List<OnlineRateLogsForm> getList(ArrayList<Date> EndDates,ArrayList<Date> StartDates,String type){
+ int nh = 1000 * 60 * 60;
+ long nd = 1000 * 24 * 60 * 60;
+ long nm = 1000 * 60;
+ ArrayList<OnlineRateLogsForm> OrfList = new ArrayList<>();
+ if (!ObjectUtils.isEmpty(EndDates)){
+ for (int i = 0; i < EndDates.size(); i++) {
+ OnlineRateLogsForm onlineRateLogsForm = new OnlineRateLogsForm();
+ onlineRateLogsForm.setEndTime(DateUtils.dateToDateString(EndDates.get(i)));
+ if (ObjectUtils.isEmpty(StartDates)){
+ onlineRateLogsForm.setStartTime("-");
+ onlineRateLogsForm.setMun("-");
+ }else {
+ if (EndDates.size()>StartDates.size()&& i==EndDates.size()-1){
+ onlineRateLogsForm.setStartTime("-");
+ onlineRateLogsForm.setMun("-");
+ }else {
+ onlineRateLogsForm.setStartTime(DateUtils.dateToDateString(StartDates.get(i)));
+ long l = EndDates.get(i).getTime() - StartDates.get(i).getTime();
+ if (type.equals("hour")){
+ onlineRateLogsForm.setMun(Long.toString(Math.abs(l/nh)));
+ }else if (type.equals("day")){
+ onlineRateLogsForm.setMun(Long.toString(Math.abs(l/nd)));
+ }else {
+ onlineRateLogsForm.setMun(Long.toString(Math.abs(l/nm)));
+ }
+ }
+ }
+ OrfList.add(onlineRateLogsForm);
+ }
+ }
+ return OrfList;
+ }
}
--
Gitblit v1.8.0