jinpengyong
2024-02-01 661e56eb85e3bd0e35e94fca2d2ec59e77772da5
fix:补充提交
3 files modified
63 ■■■■■ changed files
screen-api/src/main/java/com/moral/api/dto/OnlineRatePageCond.java 2 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java 53 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/vo/OnlineRateVo.java 8 ●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/dto/OnlineRatePageCond.java
@@ -38,6 +38,8 @@
    private  String endTime;
    @ApiModelProperty(value = "状态")
    private Integer state;
    @ApiModelProperty(value = "小时状态")
    private  String hourState;
}
screen-api/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
@@ -557,13 +557,16 @@
        long diff = end.getTime() - start.getTime(); //获取毫秒
        long hour = (diff / nh)+1; //获取间隔几个小时
        Map<String, List<OnlineRateVo>> collectList=new HashMap<>();
        List<OnlineRateVo> OnlineRateVoList = deviceMapper.getLists(onlineRatePageCond.getOrganizationId(),onlineRatePageCond.getState());
        if (!ObjectUtils.isEmpty(OnlineRateVoList)){
            collectList = OnlineRateVoList.stream().collect(Collectors.groupingBy(OnlineRateVo::getHourState));
            for (OnlineRateVo onlineRateVo : OnlineRateVoList) {
                List<HistoryHourly> valueByMacAndTime = historyHourlyService.getValueByMacAndTime(onlineRateVo.getMac(), start, end);
                ArrayList<Date> dates = new ArrayList<>();
                //离线时间
                ArrayList<Date> dates1 = new ArrayList<>();
                //上线时间
                ArrayList<Date> dates2 = new ArrayList<>();
                ArrayList<Integer> list = new ArrayList<>();
                Date start1 = DateUtils.getDate(startTime, DateUtils.yyyy_MM_dd_HH_EN);
@@ -601,18 +604,30 @@
                        }
                        start1 = DateUtils.getDateAddHour(start1,1);
                    }
                    if (!ObjectUtils.isEmpty(dates2)){
                        onlineRateVo.setStartTime(DateUtils.dateToDateString(dates2.get(dates2.size()-1)));
                    }
                    if (!ObjectUtils.isEmpty(dates1)){
                        onlineRateVo.setEndTime(DateUtils.dateToDateString(dates1.get(dates1.size()-1)));
                        if (dates1.size()>dates2.size()){
                            onlineRateVo.setEndTime(DateUtils.dateToDateString(dates1.get(dates1.size()-1)));
                            onlineRateVo.setStartTime("-");
                            onlineRateVo.setHourState("0");
                        }else {
                            onlineRateVo.setStartTime(DateUtils.dateToDateString(dates2.get(dates2.size()-1)));
                            onlineRateVo.setEndTime(DateUtils.dateToDateString(dates1.get(dates1.size()-1)));
                            onlineRateVo.setHourState("1");
                        }
                    }else {
                        onlineRateVo.setHourState("1");
                    }
//               it.setEndTime(DateUtils.dateToDateString(dates1.get(dates1.size()-1)));
//                    if (!ObjectUtils.isEmpty(dates2)){
//                        onlineRateVo.setStartTime(DateUtils.dateToDateString(dates2.get(dates2.size()-1)));
//                    }
//                    if (!ObjectUtils.isEmpty(dates1)){
//                        onlineRateVo.setEndTime(DateUtils.dateToDateString(dates1.get(dates1.size()-1)));
//                    }
                    onlineRateVo.setNum(dates1.size()+"");
                    onlineRateVo.setOnlineTime(collects.size());
                    double number = (double) collects.size() / hour * 100;
                    String result = String.format("%.2f", number);
                    onlineRateVo.setOnlineRate(result+"%");
                    onlineRateVo.setOnlineRate(result);
                }
            }
@@ -670,7 +685,8 @@
                }
            });
        }*/
        return OnlineRateVoList;
        return ObjectUtils.isEmpty(onlineRatePageCond.getHourState())?OnlineRateVoList:collectList.get(onlineRatePageCond.getHourState());
    }
    /**
@@ -757,13 +773,7 @@
                        }
                    }
//                    if (!ObjectUtils.isEmpty(StartDates)){
//                        long l = EndDates.get(i).getTime() - StartDates.get(i).getTime();
//                        onlineRateLogsForm.setMun(Long.toString(l/nh));
//                        StartDates.remove(i);
//                    }else {
//                        onlineRateLogsForm.setMun("-");
//                    }
                    onlineRateLogsForm.setDate("小时");
                    OrfList.add(onlineRateLogsForm);
                }
@@ -785,7 +795,8 @@
            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));
//            rsMap.put("code","共"+map.size()+"小时,"+"在线"+dates.size()+"小时,"+"在线率"+(result.equals("NaN")?"0":result));
            rsMap.put("sum",map.size());
        } else if (type.equals("day")){
            Date start = DateUtils.getDate(startTime, DateUtils.yyyy_MM_dd_EN);
@@ -868,7 +879,8 @@
            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));
//            rsMap.put("code","共"+map.size()+"天,"+"在线"+dates.size()+"天,"+"在线率"+(result.equals("NaN")?"0":result));
            rsMap.put("sum",map.size());
        }else {
            Date start = DateUtils.getDate(startTime,DateUtils.yyyy_MM_dd_HH_mm_EN);
            Date end = DateUtils.getDate(endTime, DateUtils.yyyy_MM_dd_HH_mm_EN);
@@ -944,11 +956,12 @@
            rsMap.put("tabulation",OrfList);
            //离线多少天
            int endNumber = map.size() - dates.size();
            double number = (double) dates.size() / map.size() * 100;
            String result = String.format("%.2f", number);
//            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));
//            rsMap.put("code","共"+map.size()+"分钟,"+"在线"+dates.size()+"分钟,"+"在线率"+(result.equals("NaN")?"0":result));
            rsMap.put("sum",map.size());
        }
        return rsMap;
    }
screen-api/src/main/java/com/moral/api/vo/OnlineRateVo.java
@@ -41,9 +41,13 @@
    @ApiModelProperty(value = "状态")
    private  String  state;
    private  String  hourState;
    private  String  mac;
    public String getHourState(){
        return Objects.isNull(this.hourState)?"0":this.hourState;
    }
    public String getEndTime(){
        return Objects.isNull(this.endTime)?"-":this.endTime;
@@ -57,7 +61,7 @@
    }
    public String getOnlineRate(){
        return Objects.isNull(this.onlineRate)?"0%":this.onlineRate;
        return Objects.isNull(this.onlineRate)?"0":this.onlineRate;
    }
    public Integer getOnlineTime(){