Commit 705ac5c54374b1e73b87e095e3b24dc57ee0a5f0

Authored by guzijian
1 parent 36b0e040

feat: 车载设备新增过滤条件

src/main/java/com/genersoft/iot/vmp/vehicle/controller/VehicleController.java
... ... @@ -18,8 +18,9 @@ public class VehicleController {
18 18  
19 19  
20 20 @GetMapping("/query")
21   - public VehicleVo queryVehicleList(@RequestParam("pageNo") Integer pageNo, @RequestParam("pageSize") Integer pageSize) {
22   - return vehicleDeviceService.queryVehicleList(pageNo,pageSize);
  21 + public VehicleVo queryVehicleList(@RequestParam("pageNo") Integer pageNo, @RequestParam("pageSize") Integer pageSize,
  22 + @RequestParam(value = "online",required = false) String online,@RequestParam(value = "filterOld",required = false) Boolean filterOld) {
  23 + return vehicleDeviceService.queryVehicleList(pageNo,pageSize,online, filterOld);
23 24 }
24 25  
25 26  
... ...
src/main/java/com/genersoft/iot/vmp/vehicle/service/VehicleDeviceService.java
... ... @@ -2,10 +2,8 @@ package com.genersoft.iot.vmp.vehicle.service;
2 2  
3 3 import com.genersoft.iot.vmp.vehicle.pojo.vo.VehicleVo;
4 4  
5   -import java.util.List;
6   -
7 5 public interface VehicleDeviceService {
8   - VehicleVo queryVehicleList(Integer pageNo, Integer pageSize);
  6 + VehicleVo queryVehicleList(Integer pageNo, Integer pageSize, String online, Boolean filterOld);
9 7  
10 8 String onPlay(String deviceId, String channel);
11 9 }
12 10 \ No newline at end of file
... ...
src/main/java/com/genersoft/iot/vmp/vehicle/service/impl/VehicleDeviceServiceImpl.java
... ... @@ -5,6 +5,7 @@ import com.genersoft.iot.vmp.utils.redis.RedisTool;
5 5 import com.genersoft.iot.vmp.vehicle.pojo.response.VehicleNvrDeviceRes;
6 6 import com.genersoft.iot.vmp.vehicle.pojo.vo.VehicleVo;
7 7 import com.genersoft.iot.vmp.vehicle.service.VehicleDeviceService;
  8 +import org.apache.commons.lang3.StringUtils;
8 9 import org.springframework.beans.factory.annotation.Autowired;
9 10 import org.springframework.core.ParameterizedTypeReference;
10 11 import org.springframework.http.HttpMethod;
... ... @@ -12,11 +13,7 @@ import org.springframework.http.ResponseEntity;
12 13 import org.springframework.stereotype.Service;
13 14 import org.springframework.web.client.RestTemplate;
14 15  
15   -import java.util.ArrayList;
16   -import java.util.Date;
17   -import java.util.List;
18   -import java.util.Set;
19   -import java.util.concurrent.TimeUnit;
  16 +import java.util.*;
20 17 import java.util.stream.Collectors;
21 18  
22 19 @Service
... ... @@ -26,22 +23,15 @@ public class VehicleDeviceServiceImpl implements VehicleDeviceService {
26 23 private RedisTool redisTool;
27 24  
28 25 @Override
29   - public VehicleVo queryVehicleList(Integer pageNo, Integer pageSize) {
30   - String key = "vehicle";
  26 + public VehicleVo queryVehicleList(Integer pageNo, Integer pageSize, String online, Boolean filterOld) {
  27 +// String key = "vehicle";
31 28 VehicleNvrDeviceRes nvrDeviceRes = getVehicleNvrDeviceRes();
32 29 // if (nvrDeviceRes == null) {
33 30 //
34 31 // redisTool.setCacheObject(key, nvrDeviceRes,30, TimeUnit.MINUTES);
35 32 // }
36 33 List<VehicleNvrDeviceRes.ResData> list = nvrDeviceRes.getData();
37   - int total = list.size();
38   - int remainder = total % pageSize;
39   - int currentPage = pageNo > 0 ? (pageNo - 1) * pageSize : pageNo * pageSize;
40   - // 怕页码超出界限了 超出界限就通过currenPage (3 * 10) > total (25) ? currentPage (20) - (pageSize (10) - remainder (3)) : currentPage
41   - int startPage = currentPage > total ? currentPage - (pageSize - remainder) : currentPage;
42   - int endPage = Math.min(startPage + pageSize, total);
43   - List<VehicleNvrDeviceRes.ResData> resData = list.subList(startPage, endPage);
44   - for (VehicleNvrDeviceRes.ResData data : resData) {
  34 + for (VehicleNvrDeviceRes.ResData data : list) {
45 35 // 模糊匹配
46 36 if (data.getInsideCode().contains("离线")) {
47 37 data.setStatus("离线");
... ... @@ -54,6 +44,21 @@ public class VehicleDeviceServiceImpl implements VehicleDeviceService {
54 44 data.setOldDevice(false);
55 45 }
56 46 }
  47 + if (StringUtils.isNotEmpty(online)) {
  48 + list = list.stream().filter(item->!item.getStatus().equals(online)).collect(Collectors.toList());
  49 + }
  50 + if (filterOld != null) {
  51 + list = list.stream().filter(item->item.getOldDevice().equals(filterOld)).collect(Collectors.toList());
  52 + }
  53 + int total = list.size();
  54 + int remainder = total % pageSize;
  55 + int currentPage = pageNo > 0 ? (pageNo - 1) * pageSize : pageNo * pageSize;
  56 + // 怕页码超出界限了 超出界限就通过currenPage (3 * 10) > total (25) ? currentPage (20) - (pageSize (10) - remainder (3)) : currentPage
  57 + int startPage = currentPage > total ? currentPage - (pageSize - remainder) : currentPage;
  58 + int endPage = Math.min(startPage + pageSize, total);
  59 + list.sort(Comparator.comparing(VehicleNvrDeviceRes.ResData::getOldDevice));
  60 + List<VehicleNvrDeviceRes.ResData> resData = list.subList(startPage, endPage);
  61 +
57 62 VehicleVo vo = new VehicleVo();
58 63 vo.setList(resData);
59 64 vo.setTotal(total);
... ...