Эх сурвалжийг харах

1、全图监控接口调整;

zk 2 жил өмнө
parent
commit
7d4f5bc823

+ 1 - 1
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfFleetController.java

@@ -134,7 +134,7 @@ public class KwfFleetController {
      * @date 2023/8/4
      **/
     @PostMapping("/findTruckList")
-    public HttpResult findTruckList(@RequestBody Map params) throws SystemException {
+    public HttpResult findTruckList(@RequestBody Map<String, Object> params) throws SystemException {
         return HttpResult.ok(fleetService.findTruckList(params));
     }
 }

+ 2 - 16
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfTruckController.java

@@ -251,20 +251,7 @@ public class KwfTruckController {
             return HttpResult.ok();
         }
 
-        List<Map<String, Object>> data = new ArrayList();
-        for (String truckNo:truckNos) {
-            int aaa = new Random().nextInt(10) / 3;
-            int bbb = new Random().nextInt(10) / 4;
-            data.add(new HashMap<>(Global.NUMERICAL_SIXTEEN){{
-                put("truckNo", truckNo);
-                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());}});
-        }
-        return HttpResult.ok(data);
+        return HttpResult.ok(truckService.findTruckGps(truckNos));
     }
 
     /**
@@ -342,7 +329,7 @@ public class KwfTruckController {
 
     /**
      * @param truckNo 车牌号
-     * @description 车牌号查询车辆关联数据
+     * @desc 车牌号查询车辆关联数据
      * @author zk
      * @date 2023/8/2
      **/
@@ -361,5 +348,4 @@ public class KwfTruckController {
         return HttpResult.ok(detail);
     }
 
-
 }

+ 4 - 3
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dao/KwfTruckMapper.java

@@ -57,14 +57,15 @@ public interface KwfTruckMapper extends BaseMapper<KwfTruck> {
 
     /**
      * 查询企业车辆
-     * @param entId 企业id
+     * @param {entId 企业ID(必填), truckNo 车牌号}
      * @return
      */
-    List<KwfTruckMonitorVo> findTruckByEnt(@Param("entId") Long entId);
+    List<KwfTruckMonitorVo> findTruckByEnt(Map<String, Object> params);
 
     /**
      * 查询全部车辆
+     * @param {truckNo 车牌号}
      * @return
      */
-    List<KwfTruckMonitorVo> findTruckByAll();
+    List<KwfTruckMonitorVo> findTruckByAll(Map<String, Object> params);
 }

+ 1 - 1
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/dto/KwfTruckDto.java

@@ -46,7 +46,7 @@ public class KwfTruckDto {
     /**
      * 外廓尺寸
      */
-    @Size(max=10, message = "外廓尺寸长度不能大于10个字符!")
+    @Size(max=20, message = "外廓尺寸长度不能大于20个字符!")
     private String spec;
 
     /**

+ 135 - 27
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfTruckService.java

@@ -14,6 +14,7 @@ import com.sckw.core.model.enums.SystemTypeEnum;
 import com.sckw.core.model.file.FileInfo;
 import com.sckw.core.utils.*;
 import com.sckw.core.web.constant.HttpStatus;
+import com.sckw.core.web.context.LoginEntHolder;
 import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.core.web.request.HttpClientUtil;
 import com.sckw.core.web.response.HttpResult;
@@ -138,7 +139,6 @@ public class KwfTruckService {
         /**数据处理**/
         Map<String, Integer> authStatusMap = new HashMap(){{put("正常", 1); put("临时", 2); put("异常", 3);}};
         for(Map.Entry<String, Integer> entry:authStatusMap.entrySet()){
-            System.out.println(entry.getKey()+"--->"+entry.getValue());
             KwfTableTopCount count = new KwfTableTopCount();
             for (KwfTableTopCount topCount:counts) {
                 if (Integer.parseInt(topCount.getValue()) == entry.getValue()) {
@@ -224,7 +224,7 @@ public class KwfTruckService {
 
     /**
      * @param {}
-     * @description 导出
+     * @desc 导出
      * @author zk
      * @date 2023/07/11
      **/
@@ -592,23 +592,18 @@ public class KwfTruckService {
      * @author zk
      * @date 2023/9/5
      **/
-    public List<KwfTruckMonitorVo> findTruck(Map<String, Object> params){
+    public List<KwfTruckMonitorVo> findTruck(Map params){
         /**车辆查询**/
-        List<KwfTruckMonitorVo> trucks = new ArrayList<>();
-        if (LoginUserHolder.getSystemType() == SystemTypeEnum.COMPANY.getCode()) {
-            trucks = truckDao.findTruckByEnt(LoginUserHolder.getEntId());
-        }
-        if (LoginUserHolder.getSystemType() == SystemTypeEnum.MANAGE.getCode()) {
-            trucks = truckDao.findTruckByAll();
-        }
-        if (trucks == null || trucks.size() == 0) {
-            return trucks;
+        Map queryParams = new HashMap<>(Global.NUMERICAL_SIXTEEN){{ put("truckNo", params.get("truckNo"));}};
+        List<KwfTruckMonitorVo> truckList = findTruckMonitor(queryParams);
+        if (truckList == null || truckList.size() == 0) {
+            return truckList;
         }
 
         /**数据配置**/
         List<Long> entIds = new ArrayList<>();
         List<String> truckNos = new ArrayList<>();
-        for (KwfTruckMonitorVo truck:trucks) {
+        for (KwfTruckMonitorVo truck:truckList) {
             entIds.add(truck.getEntId());
             truckNos.add(truck.getTruckNo());
         }
@@ -620,16 +615,97 @@ public class KwfTruckService {
         Map<String, KwfTruckGpsVo> truckGpsMap = findTruckLocateHandle(truckNos);
 
         /**数据组装**/
-        for (KwfTruckMonitorVo truck:trucks) {
+        for (KwfTruckMonitorVo truck:truckList) {
             EntCacheResDto ent = ents == null ? null : ents.get(truck.getEntId());
             KwfTruckGpsVo truckGps = truckGpsMap != null ? truckGpsMap.get(truck.getTruckNo()) : null;
             truck.setFirmName(ent != null ? ent.getFirmName() : null);
             truck.setRunStatus(truckGps != null ? truckGps.getRunStatus() : null);
         }
 
+        return truckList;
+    }
+
+    /**
+     * @param truckNos 車牌號集
+     * @description 车辆查询GPS(业务关联 + 归属车辆)
+     * @author zk
+     * @date 2023/9/6
+     **/
+    public List<KwfTruckGpsVo> findTruckGps(List<String> truckNos) {
+        /**车辆查询**/
+        List<KwfTruckGpsVo> truckGpsList = new ArrayList<>();
+        Map queryParams = new HashMap<>(Global.NUMERICAL_SIXTEEN){{ put("truckNos", truckNos);}};
+        List<KwfTruckMonitorVo> truckList = findTruckMonitor(queryParams);
+        if (truckList == null || truckList.size() == 0) {
+            return truckGpsList;
+        }
+
+        //车辆定位数据集
+        Map<String, KwfTruckGpsVo> truckGpsMap = findTruckLocateHandle(truckNos);
+
+        /**数据组装**/
+        for (KwfTruckMonitorVo truck:truckList) {
+            KwfTruckGpsVo truckGps = truckGpsMap != null ? truckGpsMap.get(truck.getTruckNo()) : null;
+            if (truckGps == null) {
+                continue;
+            }
+            truckGps.setTruckNo(truck.getTruckNo());
+            truckGps.setBusinessStatus(truck.getBusinessStatus());
+            truckGpsList.add(truckGps);
+        }
+
+        return truckGpsList;
+    }
+
+    /**
+     * @param params 参数
+     * @desc 车辆查询(业务关联 + 归属车辆)
+     * @author zk
+     * @date 2023/9/6
+     **/
+    public List<KwfTruckMonitorVo> findTruckMonitor(Map params) {
+        List<KwfTruckMonitorVo> trucks = new ArrayList<>();
+        if (LoginUserHolder.getSystemType() == SystemTypeEnum.COMPANY.getCode()) {
+            params.put("entId", LoginUserHolder.getEntId());
+            trucks = truckDao.findTruckByEnt(params);
+        }
+        if (LoginUserHolder.getSystemType() == SystemTypeEnum.MANAGE.getCode()) {
+            trucks = truckDao.findTruckByAll(params);
+        }
         return trucks;
     }
 
+    /**
+     * @param truckNo 车牌号
+     * @desc 车牌号查询车辆关联数据
+     * @author zk
+     * @date 2023/9/6
+     **/
+    public Map<String, Object> findDetailByTruckNo(String truckNo) {
+        Map<String, Object> detail = new HashMap<>(Global.NUMERICAL_SIXTEEN);
+        detail.put("truckNo", truckNo);
+        detail.put("firmName", LoginEntHolder.getFirmName());
+        /*
+        鲁EH2975 承运单位:东营启正运输有限公司
+        当前位置:山东省东营市垦利区昊隆路西100米
+        GPS状态:77km/h
+        定位时间:2023-01-01  13:21:47
+        张晓波 18508243826
+        车辆轨迹 运单开始时间-结束时间
+        关联订单:202305010001*/
+
+        /*detail.put("truckNo", truckNo);
+        detail.put("driverName", "赵先生");
+        detail.put("driverPhone", "17358629955");
+        detail.put("firmName", "东旭物流有限公司");
+        detail.put("detailAddress", "四川省成都市xxx路10号");
+        detail.put("lat", "29.48"+new Random().nextInt(10000));
+        detail.put("lng", "103.53"+new Random().nextInt(10000));
+        detail.put("speed", new Random().nextInt(100));
+        detail.put("gpsTime", DateUtils.getCurrentTime());*/
+        return detail;
+    }
+
     /**
      * @param params 参数
      * @desc 校验车辆是否有证书
@@ -788,16 +864,17 @@ public class KwfTruckService {
                 if (result.getInteger("code") != null && result.getInteger("code") != 200) {
                     return truckGpsMap;
                 } else {
-                    System.out.println(result);
+
                 }
                 JSONArray trucks = result.getJSONArray("data");
+                System.out.println((trucks != null ? trucks.size() : 0) + "==="+ truckNos.size() + "===" + truckNos);
                 for (int i=0; trucks != null && i < trucks.size(); i++) {
                     JSONObject truck = trucks.getJSONObject(i);
                     JSONObject locateInfo = truck.getJSONObject("locateInfo");
                     KwfTruckGpsVo truckGps = new KwfTruckGpsVo();
                     truckGps.setTruckNo(truck.getString("vehicleNo"));
-                    truckGps.setLat(locateInfo.getString("lng"));
-                    truckGps.setLng(locateInfo.getString("vehicleNo"));
+                    truckGps.setLat(locateInfo.getString("lat"));
+                    truckGps.setLng(locateInfo.getString("lng"));
                     truckGps.setSpeed(locateInfo.getDouble("speed"));
                     truckGps.setGpsTime(locateInfo.getString("createTime"));
                     truckGps.setRunStatus(runStatus(truckGps.getGpsTime(), truckGps.getSpeed()));
@@ -810,6 +887,47 @@ public class KwfTruckService {
         return truckGpsMap;
     }
 
+    /**
+     * @param truckNos 车牌号
+     * @desc 查询车辆定位数据
+     * @author zk
+     * @date 2023/9/5
+     **/
+    public KwfTruckGpsVo findTruckLocate(String truckNo){
+        if (StringUtils.isBlank(truckNo)) {
+            return null;
+        }
+
+        try {
+            Map<String, Object> params = new HashMap<>(Global.NUMERICAL_SIXTEEN) {{
+                put("vehicleNoList", new ArrayList<>(){{add(truckNo);}});
+            }};
+            String httpResult = HttpClientUtil.post(queryLocate, JSON.toJSONString(params));
+            if (StringUtils.isNotBlank(httpResult)) {
+                JSONObject result = JSONObject.parseObject(httpResult);
+                if (result.getInteger("code") != null && result.getInteger("code") != 200) {
+                    return null;
+                }
+                JSONArray trucks = result.getJSONArray("data");
+                if (trucks != null && trucks.size() > 0) {
+                    JSONObject truck = trucks.getJSONObject(Global.NUMERICAL_ZERO);
+                    JSONObject locateInfo = truck.getJSONObject("locateInfo");
+                    KwfTruckGpsVo truckGps = new KwfTruckGpsVo();
+                    truckGps.setTruckNo(truck.getString("vehicleNo"));
+                    truckGps.setLat(locateInfo.getString("lat"));
+                    truckGps.setLng(locateInfo.getString("lng"));
+                    truckGps.setSpeed(locateInfo.getDouble("speed"));
+                    truckGps.setGpsTime(locateInfo.getString("createTime"));
+                    truckGps.setRunStatus(runStatus(truckGps.getGpsTime(), truckGps.getSpeed()));
+                    return truckGps;
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
     /**
      * @param gpsTimeStr 地位时间
      * @param speed 速度
@@ -832,14 +950,4 @@ public class KwfTruckService {
         return compareTo < 0 ? 2 : (speed == null || speed == 0) ? 1 : 0;
     }
 
-    public static void main(String[] args) {
-        String url = "http://10.10.10.224:27802/openapi/vehicleLocate/queryLocateByDesignatedTime";
-        Map<String, Object> params = new HashMap<>(Global.NUMERICAL_SIXTEEN){{put("vehicleNo", "川L01819D");}};
-        String result = HttpClientUtil.post(url, JSON.toJSONString(params));
-        System.out.println(result);
-
-
-
-    }
-
 }

+ 6 - 0
sckw-modules/sckw-fleet/src/main/resources/mapper/KwfTruckMapper.xml

@@ -241,6 +241,9 @@
         left join kwf_truck_ent kte on kte.truck_id = kt.id
         where kt.del_flag = 0 and kte.del_flag = 0
         and kte.ent_id = #{entId, jdbcType=BIGINT}
+        <if test="truckNo != null and truckNo != ''">
+            and kt.truck_no = #{truckNo, jdbcType=VARCHAR}
+        </if>
     </select>
 
     <select id="findTruckByAll" resultType="com.sckw.fleet.model.vo.KwfTruckMonitorVo" >
@@ -248,6 +251,9 @@
         kt.truck_no, kt.business_status businessStatus, kt.ent_id entId
         from kwf_truck kt
         where kt.del_flag = 0
+        <if test="truckNo != null and truckNo != ''">
+            and kt.truck_no = #{truckNo, jdbcType=VARCHAR}
+        </if>
     </select>
 
 </mapper>