/**

  • 统计过车记录中某段时间内不同类型车辆的数量及总数
  • @param list 过车记录集合List
  • @param ksrq 开始日期,格式yyyy-MM-dd String类型
  • @param jsrq 结束日期,格式yyyy-MM-dd String类型
  • @return 返回格式为Map<String, Object>,包含日期集合和数量数据数组 */ public Map<String, Object> countVehicle(List list, String ksrq, String jsrq) { // 定义返回结果Map Map<String, Object> result = new HashMap<>(); // 定义日期集合 List dateList = new ArrayList<>(); // 定义数量数据集合 List<Map<String, Object>> dataList = new ArrayList<>(); // 将开始日期和结束日期转化为日期类型 LocalDate startDate = LocalDate.parse(ksrq, DateTimeFormatter.ofPattern("yyyy-MM-dd")); LocalDate endDate = LocalDate.parse(jsrq, DateTimeFormatter.ofPattern("yyyy-MM-dd")); // 循环遍历每一天 for (LocalDate date = startDate; date.isBefore(endDate.plusDays(1)); date = date.plusDays(1)) { // 将当前日期转化为字符串类型 String dateString = date.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); // 将当前日期加入日期集合中 dateList.add(dateString); // 定义小型汽车数量、大型汽车数量、新J开头车牌数量、其他车牌数量、过车总数 int xxsl = 0; int dxsl = 0; int bdcsl = 0; int wdcsl = 0; int totalCount = 0; // 循环遍历过车记录集合 for (AnalysisJudgmentVehicleVO vehicle : list) { // 如果过车时间与当前日期相同 if (vehicle.getGcsj().startsWith(dateString)) { // 过车总数加1 totalCount++; // 判断车牌号码类型 if (vehicle.getHpzl().equals("小型汽车")) { xxsl++; } else if (vehicle.getHpzl().equals("大型汽车")) { dxsl++; } else if (vehicle.getHphm().startsWith("新J")) { bdcsl++; } else { wdcsl++; } } } // 将数量数据加入数量数据集合中 Map<String, Object> dataMap = new HashMap<>(); dataMap.put("name", "xxsl"); List dataListForDate = new ArrayList<>(); dataListForDate.add(xxsl); dataMap.put("data", dataListForDate); dataList.add(dataMap); } // 将日期集合和数量数据集合加入返回结果Map中 result.put("date", dateList); result.put("data", dataList); // 返回结果Map return result; }
统计过车记录中某段时间内不同类型车辆数量 - Java 代码实现

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

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