|
@@ -36,93 +36,101 @@ public class ConsumerCarLoaction {
|
|
|
|
|
|
JSONObject receiveMessage = JSONUtil.parseObj(decrypt);
|
|
|
|
|
|
- /**
|
|
|
- * {
|
|
|
- * "accState": 1, ACC状态 0:关 1:开
|
|
|
- * "alititude": 1183, 海拔高度
|
|
|
- * "direction": 307, 方向
|
|
|
- * "directionDesc": "", 车辆方向文字描述
|
|
|
- * "latitude": "40.31111", 维度
|
|
|
- * "longitude": "99.087273", 经度
|
|
|
- * "mileage": 297681, 行驶里程
|
|
|
- * "onlineStatus": "", 车辆在线状态 0:离线,1:在线
|
|
|
- * "plateColor": 2, 车牌颜色
|
|
|
- * "positionTime": 1720585609, 产生位置时间
|
|
|
- * "transportStatus": "", 运输状态 0:空闲;1:在运输
|
|
|
- * "vec": 0, 速度
|
|
|
- * "vehicleNO": "甘F36477"
|
|
|
- * }
|
|
|
- */
|
|
|
-
|
|
|
- JSONObject sendMessage = new JSONObject();
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * [
|
|
|
- * {
|
|
|
- * "locaterCode": "1",
|
|
|
- * "longitude": "87.520656",
|
|
|
- * "latitude": "44.274526 ",
|
|
|
- * "positioningTime": "2024-06-26 15:01:18",
|
|
|
- * "address": "车辆门口",
|
|
|
- * "speed": "10",
|
|
|
- * "vehicleNO": "豫BDH225",
|
|
|
- * "plateColor": "2",
|
|
|
- * "altitude": "397.0",
|
|
|
- * "mileage": "374631.0"
|
|
|
- * "direction": "108"
|
|
|
- * "accState": "1"
|
|
|
- * "positionTime": "1719385278"
|
|
|
- * "directionDesc": "偏东"
|
|
|
- * "vec": "10.0"
|
|
|
- * "online_status": "1"
|
|
|
- * "transport_status": "1"
|
|
|
- * },
|
|
|
- * ]
|
|
|
- */
|
|
|
- sendMessage.putOnce("locaterCode", receiveMessage.get("vehicleNO"));
|
|
|
- sendMessage.putOnce("longitude", receiveMessage.get("longitude"));
|
|
|
- sendMessage.putOnce("latitude", receiveMessage.get("latitude"));
|
|
|
- Integer positionTime = (Integer) receiveMessage.get("positionTime");
|
|
|
-
|
|
|
- long time = positionTime*1000L;
|
|
|
-
|
|
|
- // 使用Instant.ofEpochMilli()方法将时间戳转换为Instant对象
|
|
|
- Instant instant = Instant.ofEpochMilli(time);
|
|
|
-
|
|
|
- // 指定时区,例如使用UTC时区
|
|
|
- ZonedDateTime zonedDateTime = instant.atZone(ZoneId.systemDefault());
|
|
|
-
|
|
|
- // 创建DateTimeFormatter对象,并指定输出的日期格式
|
|
|
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
-
|
|
|
- // 使用DateTimeFormatter对象将ZonedDateTime对象转换为字符串
|
|
|
- String formattedDate = zonedDateTime.format(formatter);
|
|
|
-
|
|
|
- sendMessage.putOnce("positioningTime", formattedDate);
|
|
|
- sendMessage.putOnce("address", "-");
|
|
|
- sendMessage.putOnce("speed", receiveMessage.get("vec"));
|
|
|
- sendMessage.putOnce("vehicleNO", receiveMessage.get("vehicleNO"));
|
|
|
- sendMessage.putOnce("plateColor", receiveMessage.get("plateColor"));
|
|
|
- sendMessage.putOnce("altitude", receiveMessage.get("alititude"));
|
|
|
- sendMessage.putOnce("mileage", receiveMessage.get("mileage"));
|
|
|
- sendMessage.putOnce("direction", receiveMessage.get("direction"));
|
|
|
- sendMessage.putOnce("accState", receiveMessage.get("accState"));
|
|
|
- sendMessage.putOnce("positionTime", receiveMessage.get("positionTime"));
|
|
|
- sendMessage.putOnce("directionDesc", receiveMessage.get("directionDesc"));
|
|
|
- sendMessage.putOnce("vec", receiveMessage.get("vec"));
|
|
|
- sendMessage.putOnce("online_status", receiveMessage.get("onlineStatus"));
|
|
|
- sendMessage.putOnce("transport_status", receiveMessage.get("transportStatus"));
|
|
|
-
|
|
|
- JSONArray jsonArray = JSONUtil.createArray();
|
|
|
-
|
|
|
- jsonArray.add(JSONUtil.parse(sendMessage));
|
|
|
-
|
|
|
- kafkaTemplate.send("vehicleLocation", jsonArray.toString());
|
|
|
- log.info("send message:{}", jsonArray);
|
|
|
-
|
|
|
- //记录
|
|
|
- isolatedVehicleLocationMonitorService.saveSendMessage(sendMessage);
|
|
|
+ if (receiveMessage.containsKey("alarmType")){
|
|
|
+
|
|
|
+ //车辆报警
|
|
|
+ kafkaTemplate.send("alarmLog", receiveMessage.toString());
|
|
|
+ }else {
|
|
|
+ /**
|
|
|
+ * {
|
|
|
+ * "accState": 1, ACC状态 0:关 1:开
|
|
|
+ * "alititude": 1183, 海拔高度
|
|
|
+ * "direction": 307, 方向
|
|
|
+ * "directionDesc": "", 车辆方向文字描述
|
|
|
+ * "latitude": "40.31111", 维度
|
|
|
+ * "longitude": "99.087273", 经度
|
|
|
+ * "mileage": 297681, 行驶里程
|
|
|
+ * "onlineStatus": "", 车辆在线状态 0:离线,1:在线
|
|
|
+ * "plateColor": 2, 车牌颜色
|
|
|
+ * "positionTime": 1720585609, 产生位置时间
|
|
|
+ * "transportStatus": "", 运输状态 0:空闲;1:在运输
|
|
|
+ * "vec": 0, 速度
|
|
|
+ * "vehicleNO": "甘F36477"
|
|
|
+ * }
|
|
|
+ */
|
|
|
+
|
|
|
+ JSONObject sendMessage = new JSONObject();
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * [
|
|
|
+ * {
|
|
|
+ * "locaterCode": "1",
|
|
|
+ * "longitude": "87.520656",
|
|
|
+ * "latitude": "44.274526 ",
|
|
|
+ * "positioningTime": "2024-06-26 15:01:18",
|
|
|
+ * "address": "车辆门口",
|
|
|
+ * "speed": "10",
|
|
|
+ * "vehicleNO": "豫BDH225",
|
|
|
+ * "plateColor": "2",
|
|
|
+ * "altitude": "397.0",
|
|
|
+ * "mileage": "374631.0"
|
|
|
+ * "direction": "108"
|
|
|
+ * "accState": "1"
|
|
|
+ * "positionTime": "1719385278"
|
|
|
+ * "directionDesc": "偏东"
|
|
|
+ * "vec": "10.0"
|
|
|
+ * "online_status": "1"
|
|
|
+ * "transport_status": "1"
|
|
|
+ * },
|
|
|
+ * ]
|
|
|
+ */
|
|
|
+ sendMessage.putOnce("locaterCode", receiveMessage.get("vehicleNO"));
|
|
|
+ sendMessage.putOnce("longitude", receiveMessage.get("longitude"));
|
|
|
+ sendMessage.putOnce("latitude", receiveMessage.get("latitude"));
|
|
|
+ Integer positionTime = (Integer) receiveMessage.get("positionTime");
|
|
|
+
|
|
|
+ long time = positionTime*1000L;
|
|
|
+
|
|
|
+ // 使用Instant.ofEpochMilli()方法将时间戳转换为Instant对象
|
|
|
+ Instant instant = Instant.ofEpochMilli(time);
|
|
|
+
|
|
|
+ // 指定时区,例如使用UTC时区
|
|
|
+ ZonedDateTime zonedDateTime = instant.atZone(ZoneId.systemDefault());
|
|
|
+
|
|
|
+ // 创建DateTimeFormatter对象,并指定输出的日期格式
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
+
|
|
|
+ // 使用DateTimeFormatter对象将ZonedDateTime对象转换为字符串
|
|
|
+ String formattedDate = zonedDateTime.format(formatter);
|
|
|
+
|
|
|
+ sendMessage.putOnce("positioningTime", formattedDate);
|
|
|
+ sendMessage.putOnce("address", "-");
|
|
|
+ sendMessage.putOnce("speed", receiveMessage.get("vec"));
|
|
|
+ sendMessage.putOnce("vehicleNO", receiveMessage.get("vehicleNO"));
|
|
|
+ sendMessage.putOnce("plateColor", receiveMessage.get("plateColor"));
|
|
|
+ sendMessage.putOnce("altitude", receiveMessage.get("alititude"));
|
|
|
+ sendMessage.putOnce("mileage", receiveMessage.get("mileage"));
|
|
|
+ sendMessage.putOnce("direction", receiveMessage.get("direction"));
|
|
|
+ sendMessage.putOnce("accState", receiveMessage.get("accState"));
|
|
|
+ sendMessage.putOnce("positionTime", receiveMessage.get("positionTime"));
|
|
|
+ sendMessage.putOnce("directionDesc", receiveMessage.get("directionDesc"));
|
|
|
+ sendMessage.putOnce("vec", receiveMessage.get("vec"));
|
|
|
+ sendMessage.putOnce("online_status", receiveMessage.get("onlineStatus"));
|
|
|
+ sendMessage.putOnce("transport_status", receiveMessage.get("transportStatus"));
|
|
|
+
|
|
|
+ JSONArray jsonArray = JSONUtil.createArray();
|
|
|
+
|
|
|
+ jsonArray.add(JSONUtil.parse(sendMessage));
|
|
|
+
|
|
|
+ kafkaTemplate.send("vehicleLocation", jsonArray.toString());
|
|
|
+ log.info("send message:{}", jsonArray);
|
|
|
+
|
|
|
+ //记录
|
|
|
+ isolatedVehicleLocationMonitorService.saveSendMessage(sendMessage);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|