瀏覽代碼

增加保存定位原始数据到数据库。

zhengqiang 4 年之前
父節點
當前提交
da635efd15

+ 15 - 1
common/src/main/java/com/jpsoft/bus/modules/bus/callback/GpsDataCallbackImpl.java

@@ -69,7 +69,7 @@ public class GpsDataCallbackImpl implements GpsDataCallback {
     private RabbitTemplate rabbitTemplate;
 
     @Override
-    public void receive(String deviceNo, String longitude, String latitude,boolean manual) {
+    public void receive(String deviceNo, String longitude, String latitude,String rawData,boolean manual) {
         log.warn("保存实时数据:{},{},{}", deviceNo, longitude, latitude);
 
         valueOperations.set(deviceNo + "_gps", longitude + "," + latitude, 1, TimeUnit.HOURS);
@@ -141,6 +141,7 @@ public class GpsDataCallbackImpl implements GpsDataCallback {
                 v.setLatestAddress(address);
                 v.setLongitude(longitude);//经度
                 v.setLatitude(latitude);//纬度
+                v.setRawData(rawData);
 
                 vehicleInfoService.updateGps(v);
 
@@ -193,4 +194,17 @@ public class GpsDataCallbackImpl implements GpsDataCallback {
             }
         }
     }
+
+    @Override
+    public void online(String deviceNo, String rawData) {
+        VehicleInfo vehicleInfo = vehicleInfoService.findByGpsDeviceNo(deviceNo);
+
+        if (vehicleInfo!=null){
+            vehicleInfo.setOnline(true);
+            vehicleInfo.setGpsUploadTime(new Date());
+            vehicleInfo.setRawData(rawData);
+
+            vehicleInfoService.update(vehicleInfo);
+        }
+    }
 }

+ 4 - 1
common/src/main/java/com/jpsoft/bus/modules/bus/entity/VehicleInfo.java

@@ -71,11 +71,14 @@ public class VehicleInfo {
     @ApiModelProperty(value = "车主ID")
     private String accountId;
     @ApiModelProperty(value = "定位信号最后上传时间")
-    private String gpsUploadTime;
+    private Date gpsUploadTime;
     @ApiModelProperty(value = "app版本号")
     private String appVersion;
     @ApiModelProperty(value = "基座版本号")
     private String baseVersion;
+    @ApiModelProperty(value = "原始数据")
+    private String rawData;
+
     @Transient
     private String accountName;
 

+ 8 - 0
common/src/main/resources/mapper/bus/VehicleInfo.xml

@@ -32,6 +32,7 @@
         <result property="gpsUploadTime" column="gps_upload_time" />
         <result property="appVersion" column="app_version" />
         <result property="baseVersion" column="base_version" />
+        <result property="rawData" column="raw_data" />
     </resultMap>
     <insert id="insert" parameterType="com.jpsoft.bus.modules.bus.entity.VehicleInfo">
         <!--
@@ -73,6 +74,7 @@
 			,#{gpsUploadTime, jdbcType= TIMESTAMP}
 			,#{appVersion,jdbcType=VARCHAR}
 			,#{baseVersion,jdbcType=VARCHAR}
+			,#{rawData,jdbcType=VARCHAR}
 		)
 	]]>
     </insert>
@@ -157,6 +159,9 @@
             <if test="baseVersion!=null">
                 base_version=#{baseVersion,jdbcType=VARCHAR},
             </if>
+            <if test="rawData!=null">
+                raw_data=#{rawData,jdbcType=VARCHAR},
+            </if>
         </set>
         where id_=#{id}
     </update>
@@ -229,6 +234,9 @@
             <if test="latestAddress!=null">
                 latest_address=#{latestAddress,jdbcType=VARCHAR},
             </if>
+            <if test="rawData!=null">
+                raw_data=#{rawData,jdbcType=VARCHAR},
+            </if>
         </set>
         where id_=#{id}
     </update>

+ 2 - 1
gps/src/main/java/com/jpsoft/gps/callback/GpsDataCallback.java

@@ -1,5 +1,6 @@
 package com.jpsoft.gps.callback;
 
 public interface GpsDataCallback {
-    void receive(String deviceNo,String longitude,String latitude,boolean manual);
+    void receive(String deviceNo,String longitude,String latitude,String rawData,boolean manual);
+    void online(String deviceNo,String rawData);
 }

+ 9 - 2
gps/src/main/java/com/jpsoft/gps/handler/ProcessHandler.java

@@ -32,7 +32,7 @@ public class ProcessHandler extends SimpleChannelInboundHandler<String> {
             if (subArr.length==3){
                 //测试用不进行转换
                 if (this.callback != null) {
-                    this.callback.receive(deviceNo, lng, lat,false);
+                    this.callback.receive(deviceNo, lng, lat,msg,false);
                 }
             }
             else {
@@ -49,7 +49,14 @@ public class ProcessHandler extends SimpleChannelInboundHandler<String> {
 
                     if (this.callback != null) {
                         new Thread(()->{
-                            this.callback.receive(deviceNo, df.format(gcj[1]), df.format(gcj[0]),false);
+                            this.callback.receive(deviceNo, df.format(gcj[1]), df.format(gcj[0]),msg,false);
+                        }).start();
+                    }
+                }
+                else{
+                    if (this.callback != null) {
+                        new Thread(()->{
+                            this.callback.online(deviceNo,msg);
                         }).start();
                     }
                 }