Bladeren bron

1、车辆历史轨迹查询调整;

zk 2 jaren geleden
bovenliggende
commit
6b39b96b8f

+ 3 - 21
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfTruckController.java

@@ -262,26 +262,8 @@ public class KwfTruckController {
      **/
     @PostMapping("/findGpsByTruckNo")
     public HttpResult findGpsByTruckNo(@RequestBody @Valid GpsByTruckNoDto params) {
-        Long hours = (params.getEndTime().getTime() - params.getStartTime().getTime()) /1000/60;
+        /*Long hours = (params.getEndTime().getTime() - params.getStartTime().getTime()) /1000/60;
         List data = new ArrayList();
-        /*data.add(new HashMap(){{put("truckNo", params.getTruckNo()); put("speed", 95.0);
-            put("lng", "103.53"); put("lat", "29.48");
-            put("gpsTime", DateUtils.format(params.getStartTime(), DateUtils.DATE_TIME_PATTERN));}});
-        for (long i=0; i<hours; i++) {
-            int aaa = new Random().nextInt(10) / 3;
-            int bbb = new Random().nextInt(10) / 4;
-            data.add(new HashMap(){{
-                put("truckNo", params.getTruckNo());
-                put("speed", new Random().nextInt(100));
-                put("lat", "29.48"+new Random().nextInt(10000));
-                put("lng", "103.53"+new Random().nextInt(10000));
-                put("businessStatus", aaa == 0 ? 0 : 1);
-                put("runStatus", bbb == 0 ? 0 : bbb == 1 ? 1 : 2);
-                put("gpsTime", DateUtils.getCurrentTime());}});
-        }
-        data.add(new HashMap(){{put("truckNo", params.getTruckNo()); put("speed", 95.0);
-            put("lat", "29.48"); put("lng", "103.53");
-            put("gpsTime", DateUtils.format(params.getEndTime(), DateUtils.DATE_TIME_PATTERN));}});*/
         String str = new KwfTruckController().ReadFile();
         JSONArray array = JSON.parseArray(str);
         for (int i=0; i<array.size(); i++) {
@@ -292,8 +274,8 @@ public class KwfTruckController {
             obj.put("businessStatus", aaa == 0 ? 0 : 1);
             obj.put("runStatus", bbb == 0 ? 0 : bbb == 1 ? 1 : 2);
             data.add(obj);
-        }
-        return HttpResult.ok(data);
+        }*/
+        return HttpResult.ok(truckService.queryLocateTrack(params));
     }
 
     /**

+ 80 - 4
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfTruckService.java

@@ -971,6 +971,8 @@ public class KwfTruckService {
 
     @Value("${external.openapi.queryLocate}")
     private String queryLocate;
+    @Value("${external.openapi.queryLocateTrack}")
+    private String queryLocateTrack;
 
     /**
      * @param truckNos 车牌号
@@ -991,17 +993,14 @@ public class KwfTruckService {
 
             long begTime = System.currentTimeMillis();
             String httpResult = HttpClientUtil.post(queryLocate, JSON.toJSONString(params));
-            System.out.println(httpResult);
             long entTime = System.currentTimeMillis();
             if (StringUtils.isNotBlank(httpResult)) {
                 JSONObject result = JSONObject.parseObject(httpResult);
                 if (result.getInteger("code") != null && result.getInteger("code") != 200) {
                     return truckGpsMap;
-                } else {
-
                 }
                 JSONArray trucks = result.getJSONArray("data");
-                log.info("车牌号数量="+ truckNos.size() + " GPS数量=" + (trucks != null ? trucks.size() : 0) + " 响应时间="+(entTime - begTime));
+                //log.info("车牌号数量="+ truckNos.size() + " GPS数量=" + (trucks != null ? trucks.size() : 0) + " 响应时间="+(entTime - begTime));
                 for (int i=0; trucks != null && i < trucks.size(); i++) {
                     JSONObject truck = trucks.getJSONObject(i);
                     JSONObject locateInfo = truck.getJSONObject("locateInfo");
@@ -1021,6 +1020,83 @@ public class KwfTruckService {
         return truckGpsMap;
     }
 
+    /**
+     * @param params {truckNos 車牌號集, startTime 開始實際, endTime 結束時間}
+     * @desc 车辆查询GPS(通过车牌号查询)
+     * @author zk
+     * @date 2023/9/27
+     **/
+    public List<KwfTruckGpsVo> queryLocateTrack(GpsByTruckNoDto params) {
+        List<KwfTruckGpsVo>  truckGpsList = new ArrayList<>();
+        long page = 1, pageSize = 1000, size = 0, pages = 0;
+        Map queryParams = new HashMap<>(Global.NUMERICAL_SIXTEEN){{
+            put("vehicleNo", params.getTruckNo());
+            put("startTime", params.getStartTime());
+            put("endTime", params.getEndTime());
+            put("page", page);
+            put("pageSize", pageSize);
+        }};
+
+        String httpResult = HttpClientUtil.post(queryLocateTrack, JSON.toJSONString(queryParams));
+        if (StringUtils.isNotBlank(httpResult)) {
+            JSONObject result = JSONObject.parseObject(httpResult);
+            if (result.getInteger("code") != null && result.getInteger("code") != 200) {
+                return truckGpsList;
+            }
+            JSONObject data = result.getJSONObject("data");
+            if (data == null) {
+                return truckGpsList;
+            }
+            size = data.getLong("size");
+            pages = size/pageSize + (size%pageSize > 0 ? 1 : 0);
+            JSONArray trucks = data.getJSONArray("list");
+            for (int i=0; trucks != null && i < trucks.size(); i++) {
+                JSONObject truck = trucks.getJSONObject(i);
+                KwfTruckGpsVo truckGps = new KwfTruckGpsVo();
+                truckGps.setLat(truck.getString("lat"));
+                truckGps.setLng(truck.getString("lng"));
+                truckGps.setSpeed(truck.getDouble("speed"));
+                truckGps.setGpsTime(truck.getString("createTime"));
+                truckGps.setRunStatus(runStatus(truckGps.getGpsTime(), truckGps.getSpeed()));
+                truckGpsList.add(truckGps);
+            }
+
+            if (pages <= 1) {
+                return truckGpsList;
+            }
+
+            for (long i=2; i <= pages; i++) {
+                queryParams.put("page", i);
+                httpResult = HttpClientUtil.post(queryLocate, JSON.toJSONString(queryParams));
+                if (StringUtils.isNotBlank(httpResult)) {
+                    result = JSONObject.parseObject(httpResult);
+                    if (result.getInteger("code") != null && result.getInteger("code") != 200) {
+                        continue;
+                    }
+                    data = result.getJSONObject("data");
+                    if (data == null) {
+                        continue;
+                    }
+                    trucks = data.getJSONArray("list");
+                    for (int j=0; trucks != null && j < trucks.size(); j++) {
+                        JSONObject truck = trucks.getJSONObject(j);
+                        KwfTruckGpsVo truckGps = new KwfTruckGpsVo();
+                        truckGps.setTruckNo(truck.getString("vehicleNo"));
+                        truckGps.setLat(truck.getString("lat"));
+                        truckGps.setLng(truck.getString("lng"));
+                        truckGps.setSpeed(truck.getDouble("speed"));
+                        truckGps.setGpsTime(truck.getString("createTime"));
+                        truckGps.setRunStatus(runStatus(truckGps.getGpsTime(), truckGps.getSpeed()));
+                        truckGpsList.add(truckGps);
+                    }
+                }
+            }
+
+        }
+        return truckGpsList;
+    }
+
+
     /**
      * @param truckNos 车牌号
      * @desc 查询车辆定位数据-单车牌号