From 54038486f4792dce478bca6698f3cd9b55d0ae90 Mon Sep 17 00:00:00 2001
From: chenzhangyue <chenzhangyue01@weidian.com>
Date: 星期二, 12 九月 2023 20:23:14 +0800
Subject: [PATCH] generate @param
---
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/MobilePositionNotifyMessageHandler.java | 48 +++++++++++++++++++++++-------------------------
1 files changed, 23 insertions(+), 25 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/MobilePositionNotifyMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/MobilePositionNotifyMessageHandler.java
old mode 100644
new mode 100755
index 82cd552..9a82b8a
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/MobilePositionNotifyMessageHandler.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/MobilePositionNotifyMessageHandler.java
@@ -1,16 +1,18 @@
package com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.notify.cmd;
-import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson2.JSONObject;
import com.genersoft.iot.vmp.conf.UserSetting;
import com.genersoft.iot.vmp.gb28181.bean.*;
import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorParent;
import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.IMessageHandler;
import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.notify.NotifyMessageHandler;
import com.genersoft.iot.vmp.gb28181.utils.NumericUtil;
+import com.genersoft.iot.vmp.gb28181.utils.SipUtils;
import com.genersoft.iot.vmp.service.IDeviceChannelService;
import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
import com.genersoft.iot.vmp.utils.DateUtil;
+import gov.nist.javax.sip.message.SIPRequest;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.slf4j.Logger;
@@ -21,7 +23,6 @@
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.stereotype.Component;
import org.springframework.util.ObjectUtils;
-import org.springframework.util.StringUtils;
import javax.sip.InvalidArgumentException;
import javax.sip.RequestEvent;
@@ -56,8 +57,6 @@
@Autowired
private IDeviceChannelService deviceChannelService;
- private boolean taskQueueHandlerRun = false;
-
private ConcurrentLinkedQueue<SipMsgInfo> taskQueue = new ConcurrentLinkedQueue<>();
@Qualifier("taskExecutor")
@@ -72,21 +71,22 @@
@Override
public void handForDevice(RequestEvent evt, Device device, Element rootElement) {
+ boolean isEmpty = taskQueue.isEmpty();
taskQueue.offer(new SipMsgInfo(evt, device, rootElement));
- if (!taskQueueHandlerRun) {
- taskQueueHandlerRun = true;
+ // 鍥炲200 OK
+ try {
+ responseAck((SIPRequest) evt.getRequest(), Response.OK);
+ } catch (SipException | InvalidArgumentException | ParseException e) {
+ logger.error("[鍛戒护鍙戦�佸け璐 绉诲姩浣嶇疆閫氱煡鍥炲: {}", e.getMessage());
+ }
+ if (isEmpty) {
taskExecutor.execute(() -> {
while (!taskQueue.isEmpty()) {
SipMsgInfo sipMsgInfo = taskQueue.poll();
try {
Element rootElementAfterCharset = getRootElement(sipMsgInfo.getEvt(), sipMsgInfo.getDevice().getCharset());
if (rootElementAfterCharset == null) {
- try {
- logger.warn("[ 绉诲姩璁惧浣嶇疆鏁版嵁閫氱煡 ] content cannot be null, {}", sipMsgInfo.getEvt().getRequest());
- responseAck(getServerTransaction(sipMsgInfo.getEvt()), Response.BAD_REQUEST);
- } catch (SipException | InvalidArgumentException | ParseException e) {
- logger.error("[鍛戒护鍙戦�佸け璐 绉诲姩璁惧浣嶇疆鏁版嵁閫氱煡 鍐呭涓虹┖: {}", e.getMessage());
- }
+ logger.warn("[绉诲姩浣嶇疆閫氱煡] {}澶勭悊澶辫触锛屾湭璇嗗埆鍒颁俊鎭綋", device.getDeviceId());
continue;
}
MobilePosition mobilePosition = new MobilePosition();
@@ -96,7 +96,12 @@
}
mobilePosition.setDeviceId(sipMsgInfo.getDevice().getDeviceId());
mobilePosition.setChannelId(getText(rootElementAfterCharset, "DeviceID"));
- mobilePosition.setTime(getText(rootElementAfterCharset, "Time"));
+ String time = getText(rootElementAfterCharset, "Time");
+ if (ObjectUtils.isEmpty(time)){
+ mobilePosition.setTime(DateUtil.getNow());
+ }else {
+ mobilePosition.setTime(SipUtils.parseTime(time));
+ }
mobilePosition.setLongitude(Double.parseDouble(getText(rootElementAfterCharset, "Longitude")));
mobilePosition.setLatitude(Double.parseDouble(getText(rootElementAfterCharset, "Latitude")));
if (NumericUtil.isDouble(getText(rootElementAfterCharset, "Speed"))) {
@@ -136,16 +141,10 @@
storager.insertMobilePosition(mobilePosition);
}
storager.updateChannelPosition(deviceChannel);
- //鍥炲 200 OK
- try {
- responseAck(getServerTransaction(sipMsgInfo.getEvt()), Response.OK);
- } catch (SipException | InvalidArgumentException | ParseException e) {
- logger.error("[鍛戒护鍙戦�佸け璐 绉诲姩璁惧浣嶇疆鏁版嵁鍥炲200: {}", e.getMessage());
- }
// 鍙戦�乺edis娑堟伅銆� 閫氱煡浣嶇疆淇℃伅鐨勫彉鍖�
JSONObject jsonObject = new JSONObject();
- jsonObject.put("time", mobilePosition.getTime());
+ jsonObject.put("time", DateUtil.yyyy_MM_dd_HH_mm_ssToISO8601(mobilePosition.getTime()));
jsonObject.put("serial", deviceChannel.getDeviceId());
jsonObject.put("code", deviceChannel.getChannelId());
jsonObject.put("longitude", mobilePosition.getLongitude());
@@ -156,15 +155,14 @@
redisCatchStorage.sendMobilePositionMsg(jsonObject);
} catch (DocumentException e) {
- e.printStackTrace();
+ logger.error("鏈鐞嗙殑寮傚父 ", e);
+ } catch (Exception e) {
+ logger.warn("[绉诲姩浣嶇疆閫氱煡] 鍙戠幇鏈鐞嗙殑寮傚父, \r\n{}", evt.getRequest());
+ logger.error("[绉诲姩浣嶇疆閫氱煡] 寮傚父鍐呭锛� ", e);
}
-
}
- taskQueueHandlerRun = false;
});
}
-
-
}
@Override
--
Gitblit v1.8.0