From c21d973977a9f1d00d26179de764687ddd0ec56c Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期三, 24 四月 2024 14:59:41 +0800 Subject: [PATCH] 修复收到catalog消息是更新导致是否有音频的设置失效的BUG --- src/main/java/com/genersoft/iot/vmp/gb28181/utils/XmlUtil.java | 67 +++++++++++++++++++++++++++++---- 1 files changed, 58 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/utils/XmlUtil.java b/src/main/java/com/genersoft/iot/vmp/gb28181/utils/XmlUtil.java index e614b9f..6596f53 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/utils/XmlUtil.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/utils/XmlUtil.java @@ -3,11 +3,12 @@ import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.genersoft.iot.vmp.common.CivilCodePo; -import com.genersoft.iot.vmp.conf.CivilCodeFileConf; import com.genersoft.iot.vmp.gb28181.bean.Device; import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; import com.genersoft.iot.vmp.gb28181.event.subscribe.catalog.CatalogEvent; +import com.genersoft.iot.vmp.utils.CivilCodeUtil; import com.genersoft.iot.vmp.utils.DateUtil; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import org.dom4j.Attribute; import org.dom4j.Document; @@ -74,6 +75,50 @@ Element e = em.element(tag); // return null == e ? null : e.getText().trim(); + } + + /** + * 鑾峰彇element瀵硅薄鐨則ext鐨勫�� + * + * @param em 鑺傜偣鐨勫璞� + * @param tag 鑺傜偣鐨則ag + * @return 鑺傜偣 + */ + public static Double getDouble(Element em, String tag) { + if (null == em) { + return null; + } + Element e = em.element(tag); + if (null == e) { + return null; + } + String text = e.getText().trim(); + if (ObjectUtils.isEmpty(text) || !NumberUtils.isParsable(text)) { + return null; + } + return Double.parseDouble(text); + } + + /** + * 鑾峰彇element瀵硅薄鐨則ext鐨勫�� + * + * @param em 鑺傜偣鐨勫璞� + * @param tag 鑺傜偣鐨則ag + * @return 鑺傜偣 + */ + public static Integer getInteger(Element em, String tag) { + if (null == em) { + return null; + } + Element e = em.element(tag); + if (null == e) { + return null; + } + String text = e.getText().trim(); + if (ObjectUtils.isEmpty(text) || !NumberUtils.isParsable(text)) { + return null; + } + return Integer.parseInt(text); } /** @@ -195,7 +240,7 @@ CivilCode, BusinessGroup,VirtualOrganization,Other } - public static DeviceChannel channelContentHandler(Element itemDevice, Device device, String event, CivilCodeFileConf civilCodeFileConf){ + public static DeviceChannel channelContentHandler(Element itemDevice, Device device, String event){ DeviceChannel deviceChannel = new DeviceChannel(); deviceChannel.setDeviceId(device.getDeviceId()); Element channdelIdElement = itemDevice.element("DeviceID"); @@ -214,12 +259,15 @@ return deviceChannel; } Element nameElement = itemDevice.element("Name"); - if (nameElement != null) { + // 褰撻�氶亾鍚嶇О涓虹┖鏃讹紝璁剧疆閫氶亾鍚嶇О涓洪�氶亾缂栫爜锛岄伩鍏嶇骇鑱旀椂鍥犻�氶亾鍚嶇О涓虹┖瀵艰嚧涓婄骇鎺ユ敹閫氶亾澶辫触 + if (nameElement != null && StringUtils.isNotBlank(nameElement.getText())) { deviceChannel.setName(nameElement.getText()); + } else { + deviceChannel.setName(channelId); } if(channelId.length() <= 8) { deviceChannel.setHasAudio(false); - CivilCodePo parentCode = civilCodeFileConf.getParentCode(channelId); + CivilCodePo parentCode = CivilCodeUtil.INSTANCE.getParentCode(channelId); if (parentCode != null) { deviceChannel.setParentId(parentCode.getCode()); deviceChannel.setCivilCode(parentCode.getCode()); @@ -484,16 +532,17 @@ String status = getText(itemDevice, "Status"); if (status != null) { // ONLINE OFFLINE HIKVISION DS-7716N-E4 NVR鐨勫吋瀹规�у鐞� - if (status.equals("ON") || status.equals("On") || status.equals("ONLINE") || status.equals("OK")) { + if (status.equalsIgnoreCase("ON") || status.equalsIgnoreCase("On") || status.equalsIgnoreCase("ONLINE") || status.equalsIgnoreCase("OK")) { deviceChannel.setStatus(true); } - if (status.equals("OFF") || status.equals("Off") || status.equals("OFFLINE")) { + if (status.equalsIgnoreCase("OFF") || status.equalsIgnoreCase("Off") || status.equalsIgnoreCase("OFFLINE")) { deviceChannel.setStatus(false); } }else { deviceChannel.setStatus(true); } - +// logger.info("鐘舵�佸瓧绗︿覆锛� {}", status); +// logger.info("鐘舵�佺粨鏋滐細 {}", deviceChannel.isStatus()); // 缁忓害 String longitude = getText(itemDevice, "Longitude"); if (NumericUtil.isDouble(longitude)) { @@ -520,14 +569,14 @@ String ptzTypeFromInfo = XmlUtil.getText(info, "PTZType"); if(!ObjectUtils.isEmpty(ptzTypeFromInfo)){ try { - deviceChannel.setPTZType(Integer.parseInt(ptzTypeFromInfo)); + deviceChannel.setPtzType(Integer.parseInt(ptzTypeFromInfo)); }catch (NumberFormatException e){ logger.warn("[xml瑙f瀽] 浠庨�氶亾鏁版嵁info涓幏鍙朠TZType澶辫触锛� {}", ptzTypeFromInfo); } } } else { try { - deviceChannel.setPTZType(Integer.parseInt(ptzType)); + deviceChannel.setPtzType(Integer.parseInt(ptzType)); }catch (NumberFormatException e){ logger.warn("[xml瑙f瀽] 浠庨�氶亾鏁版嵁涓幏鍙朠TZType澶辫触锛� {}", ptzType); } -- Gitblit v1.8.0