java private JSONObject statistic(List query, String ksrq, String jsrq) { JSONObject object = new JSONObject(); // 日期数组 List dateList = new ArrayList<>(); // 出入口数据map Map<String, Map<String, List>> entranceMap = new HashMap<>(); // 将输入的日期字符串转换为LocalDate对象 LocalDate startDate = LocalDate.parse(ksrq); LocalDate endDate = LocalDate.parse(jsrq); // 遍历日期范围内的每一天 while (!startDate.isAfter(endDate)) { String currentDate = startDate.toString(); dateList.add(currentDate); // 遍历出入口数据 for (EntranceTrafficVO entranceTrafficVO : query) { // 如果出入口数据日期为空,则将该出入口信息添加到map中,各数量为0 if (Objects.isNull(entranceTrafficVO.getYear()) || Objects.isNull(entranceTrafficVO.getMonth()) || Objects.isNull(entranceTrafficVO.getDay())) { String entranceName = entranceTrafficVO.getEntranceName(); if (!entranceMap.containsKey(entranceName)) { Map<String, List> dataMap = new HashMap<>(); List rkList = new ArrayList<>(); List ckList = new ArrayList<>(); rkList.add(0); ckList.add(0); dataMap.put("dataRk", rkList); dataMap.put("dataCk", ckList); entranceMap.put(entranceName, dataMap); } } else if (startDate.getYear() == entranceTrafficVO.getYear() && startDate.getMonthValue() == entranceTrafficVO.getMonth() && startDate.getDayOfMonth() == entranceTrafficVO.getDay()) { // 如果出入口数据日期与当前日期相同,则将数据添加到对应的map中 // 获取当前出入口名称 String entranceName = entranceTrafficVO.getEntranceName(); // 根据出入口名称获取对应的map Map<String, List> dataMap = entranceMap.getOrDefault(entranceName, new HashMap<>()); // 如果当前map不存在,则创建一个新的map if (dataMap.isEmpty()) { List rkList = new ArrayList<>(); List ckList = new ArrayList<>(); rkList.add(entranceTrafficVO.getRksl()); ckList.add(entranceTrafficVO.getCksl()); dataMap.put("dataRk", rkList); dataMap.put("dataCk", ckList); entranceMap.put(entranceName, dataMap); } else { // 如果当前map存在,则将当前日期的入口流量和出口流量添加到对应数组中 List rkList = dataMap.getOrDefault("dataRk", new ArrayList<>()); List ckList = dataMap.getOrDefault("dataCk", new ArrayList<>()); rkList.add(entranceTrafficVO.getRksl()); ckList.add(entranceTrafficVO.getCksl()); dataMap.put("dataRk", rkList); dataMap.put("dataCk", ckList); entranceMap.put(entranceName, dataMap); } } } // 处理下一天 startDate = startDate.plusDays(1); } // 根据出入口名称数组,创建对应的出入口数据数组 List<Map<String, Object>> yList = new ArrayList<>(); for (String entranceName : entranceMap.keySet()) { Map<String, Object> seriesMap = new HashMap<>(); List rkList = entranceMap.get(entranceName).getOrDefault("dataRk", new ArrayList<>()); List ckList = entranceMap.get(entranceName).getOrDefault("dataCk", new ArrayList<>()); seriesMap.put("name", entranceName); seriesMap.put("dataRk", rkList); seriesMap.put("dataCk", ckList); yList.add(seriesMap); } object.put("xAxis", dateList); object.put("series", yList); return object;

java private JSONObject statisticListEntranceTrafficVO query String ksrq String jsrq JSONObject object = new JSONObject; 日期数组 ListString dateList = new ArrayList; 出入口数

原文地址: http://www.cveoy.top/t/topic/hw1B 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录