kaiyu
2020-10-20 ec192d94be582e5fa504cb355090ce98e0880e65
src/main/java/com/moral/controller/WebController.java
@@ -256,8 +256,33 @@
        parameters.put("yearAndMonth",yearAndMonth);
        parameters.put("macs",macs);
        List<Map<String, Object>> datas = historyMinutelyService.getFiveMinutesDataByMacsAndTime(parameters);
        datas = insertDeviceInfo(datas,devices);
        return new ResultBean<List<Map<String, Object>>>(datas);
    }
    /**
    * @Description: 返回结果添加设备经纬度以及state
            * @Param: [datas, devices]
            * @return: java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
            * @Author: 下雨听风
            * @Date: 2020/10/19
            */
    public List<Map<String, Object>> insertDeviceInfo(List<Map<String, Object>> datas,List<Device> devices ){
        Map<String,Device> map = new HashMap<>();
        devices.forEach(p->{
            map.put(p.getMac(),p);
        });
        datas.forEach(p->{
            String mac = (String) p.get("mac");
            Device device = map.get(mac);
            List list = LatLngTransformation.Convert_BD09_To_GCJ02(device.getLatitude(), device.getLongitude());
            p.put("longitude",list.get(0));
            p.put("latitude",list.get(1));
            p.put("state",device.getState());
        });
        return datas;
    }
    /**
@@ -277,11 +302,12 @@
        String yearAndMonth = "";
        String startTime = "";
        Integer endMinute = Integer.parseInt(String.valueOf(minute.charAt(minute.length() - 1)));
        if (endMinute >= 5) {
        if (endMinute >= 6||endMinute==0) {//分钟结尾如果是 6 7 8 9 0   比如12:16,12:20进入, 则获取12:10-12:15的数据
            date = DateUtil.rollMinute(date, -1);
            StringBuilder time = new StringBuilder(sdf.format(date));
            startTime = time.replace(15, 19, "0:00").toString();
        } else {
            date = DateUtil.rollMinute(date, -5);
        }else {// 分钟结尾如果是1 2 3 4 5 则获取上个五分钟数据 比如12:11分钟进入 则获取12:05-12:10的数据
            date = DateUtil.rollMinute(date, -9);
            StringBuilder time = new StringBuilder(sdf.format(date));
            startTime = time.replace(15, 19, "5:00").toString();
        }