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

新增4.0提供车辆信息实时经纬度查询接口

donglang 3 сар өмнө
parent
commit
62b2af92d9

+ 8 - 0
iot-platform-manager/src/main/java/com/platform/api/controller/TransferController.java

@@ -47,5 +47,13 @@ public class TransferController {
         return transferVehicleManage.pageVehicleDataList(request);
     }
 
+    /**
+     * 通过车牌查询实时经纬度
+     */
+    @PostMapping("/queryRealTimeLocation")
+    public BaseResult<VehicleDataResp> queryRealTimeLocation(String carNo) {
+        return BaseResult.success(transferVehicleManage.queryRealTimeLocation(carNo));
+    }
+
 
 }

+ 18 - 2
iot-platform-manager/src/main/java/com/platform/api/manager/TransferVehicleManage.java

@@ -138,11 +138,11 @@ public class TransferVehicleManage implements ApplicationContextAware {
         List<VehicleTimeSeriesData> timeSeriesData;
         //通过运单号查询车辆信息
         if (StringUtils.isNotEmpty(request.getWOrderNo())) {
-            timeSeriesData = taosMapper.selectByWOrderNo(request.getWOrderNo(),request.getStartTime(), request.getEndTime());
+            timeSeriesData = taosMapper.selectByWOrderNo(request.getWOrderNo(), request.getStartTime(), request.getEndTime());
         } else {
             //通过车牌查询车辆信息
             String subTableName = "vehicle_data_" + request.getCarNo().trim();
-            timeSeriesData = taosMapper.selectByCarNo(subTableName, request.getCarNo(),request.getStartTime(), request.getEndTime());
+            timeSeriesData = taosMapper.selectByCarNo(subTableName, request.getCarNo(), request.getStartTime(), request.getEndTime());
         }
 
         //参数转换
@@ -151,4 +151,20 @@ public class TransferVehicleManage implements ApplicationContextAware {
 
         return PageResult.of(vehicleDataRespList.size(), request.getPageNum(), request.getPageSize(), vehicleDataRespList);
     }
+
+
+    /**
+     * 通过车牌查询实时经纬度
+     */
+    public VehicleDataResp queryRealTimeLocation(String carNo) {
+        if (StringUtils.isEmpty(carNo)) {
+            throw new IotException(ErrorCodeEnum.ILLEGAL_PARAM, "接口参数为null!");
+        }
+
+        String subTableName = "vehicle_data_" + carNo.trim();
+        VehicleTimeSeriesData realTimeLocation = taosMapper.selectRealTimeLocation(subTableName, carNo);
+
+        //参数转换
+        return VehicleDataResp.toIotPageResp(realTimeLocation);
+    }
 }

+ 9 - 0
iot-platform-manager/src/main/java/com/platform/mapper/TaosMapper.java

@@ -48,6 +48,15 @@ public interface TaosMapper {
                                               @Param("startTime") LocalDateTime startTime,
                                               @Param("endTime") LocalDateTime endTime);
 
+    /**
+     * 通过车牌查询时序数据
+
+     * @param carNo 车辆数据实体
+     * @return 返回的车辆数据
+     */
+    VehicleTimeSeriesData selectRealTimeLocation(@Param("subTableName") String subTableName,
+                                                   @Param("carNo") String carNo);
+
 
     /**
      * 创建水表子表

+ 13 - 0
iot-platform-manager/src/main/resources/mapper/TaosMapper.xml

@@ -106,6 +106,19 @@
     </select>
 
 
+    <!-- 查询最新经纬度:取子表中时间戳最大的一条数据 -->
+    <select id="selectRealTimeLocation" resultType="com.platform.entity.VehicleTimeSeriesData">
+        SELECT
+            longitude,
+            latitude,
+            ts AS latestTs,
+            #{carNo} AS carNo
+        FROM ${subTableName}
+        ORDER BY ts DESC
+            LIMIT 1
+    </select>
+
+
 
     <!-- 创建水表子表-->
     <update id="createWaterMeterSubTable">