浏览代码

车辆报警

liuyongxin 9 月之前
父节点
当前提交
42d3ba0a0f
共有 1 个文件被更改,包括 95 次插入87 次删除
  1. 95 87
      src/main/java/com/lutao/carlocation/kafka/ConsumerCarLoaction.java

+ 95 - 87
src/main/java/com/lutao/carlocation/kafka/ConsumerCarLoaction.java

@@ -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);
+                }
+
+
             }