From 96d2a27d41784215799f22ff66743e6d8f1d2e38 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期二, 20 六月 2023 14:25:01 +0800
Subject: [PATCH] 添加sql字段
---
src/main/java/com/genersoft/iot/vmp/gb28181/utils/XmlUtil.java | 541 ++++++++++++++++++++++++++++++++++-------------------
1 files changed, 344 insertions(+), 197 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 d51ab9f..7914ffa 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
@@ -2,6 +2,8 @@
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;
@@ -192,7 +194,7 @@
CivilCode, BusinessGroup,VirtualOrganization,Other
}
- public static DeviceChannel channelContentHander(Element itemDevice, Device device, String event){
+ public static DeviceChannel channelContentHandler(Element itemDevice, Device device, String event, CivilCodeFileConf civilCodeFileConf){
DeviceChannel deviceChannel = new DeviceChannel();
deviceChannel.setDeviceId(device.getDeviceId());
Element channdelIdElement = itemDevice.element("DeviceID");
@@ -210,208 +212,353 @@
// 闄や簡ADD鍜寀pdate鎯呭喌涓嬮渶瑕佽瘑鍒叏閮ㄥ唴瀹癸紝
return deviceChannel;
}
-
- ChannelType channelType = ChannelType.Other;
- if (channelId.length() <= 8) {
- channelType = ChannelType.CivilCode;
+ Element nameElement = itemDevice.element("Name");
+ if (nameElement != null) {
+ deviceChannel.setName(nameElement.getText());
+ }
+ if(channelId.length() <= 8) {
deviceChannel.setHasAudio(false);
- }else {
- if (channelId.length() == 20) {
- int code = Integer.parseInt(channelId.substring(10, 13));
- switch (code){
- case 215:
- channelType = ChannelType.BusinessGroup;
- deviceChannel.setHasAudio(false);
- break;
- case 216:
- channelType = ChannelType.VirtualOrganization;
- deviceChannel.setHasAudio(false);
- break;
- case 136:
- case 137:
- case 138:
- deviceChannel.setHasAudio(true);
- break;
- default:
- deviceChannel.setHasAudio(false);
- break;
-
- }
- }
- }
-
- Element channdelNameElement = itemDevice.element("Name");
- String channelName = channdelNameElement != null ? channdelNameElement.getTextTrim() : "";
- deviceChannel.setName(channelName);
-
- String civilCode = XmlUtil.getText(itemDevice, "CivilCode");
- deviceChannel.setCivilCode(civilCode);
- if (channelType == ChannelType.CivilCode && civilCode == null) {
- deviceChannel.setParental(1);
- // 琛屾斂鍖哄垝濡傛灉娌℃湁浼犻�掑叿浣撳�硷紝鍒欐帹娴嬩竴涓�
- if (channelId.length() > 2) {
- deviceChannel.setCivilCode(channelId.substring(0, channelId.length() - 2));
- }
- }
- if (channelType.equals(ChannelType.CivilCode)) {
- // 琛屾斂鍖哄垝鍏朵粬瀛楁娌″繀瑕佽瘑鍒簡锛岄粯璁ゅ湪绾垮嵆鍙�
- deviceChannel.setStatus(1);
- deviceChannel.setParental(1);
- deviceChannel.setCreateTime(DateUtil.getNow());
- deviceChannel.setUpdateTime(DateUtil.getNow());
- return deviceChannel;
- }
- /**
- * 琛屾斂鍖哄垝灞曠ず璁惧鏍戜笌涓氬姟鍒嗙粍灞曠ず璁惧鏍戞槸涓ょ涓嶅悓鐨勬ā寮�
- * 琛屾斂鍖哄垝灞曠ず璁惧鏍� 鍚勪釜鐩綍涔嬮棿涓昏闈燿eviceId鍋氬叧鑱�,鎽勫儚澶撮�氳繃CivilCode鎸囧畾鍏跺睘浜庨偅涓鏀垮尯鍒�;閮芥槸涓嶈秴杩囧崄浣嶇殑缂栧彿; 缁撴瀯濡備笅:
- * 娌冲寳鐪�
- * --> 鐭冲搴勫競
- * --> 鎽勫儚澶�
- *String parentId = XmlUtil.getText(itemDevice, "ParentID");
- if (parentId != null) {
- if (parentId.contains("/")) {
- String lastParentId = parentId.substring(parentId.lastIndexOf("/") + 1);
- String businessGroup = parentId.substring(0, parentId.indexOf("/"));
- deviceChannel.setParentId(lastParentId);
- }else {
- deviceChannel.setParentId(parentId);
- }
- }
- deviceCh --> 姝e畾鍘�
- * --> 鎽勫儚澶�
- * --> 鎽勫儚澶�
- *
- * 涓氬姟鍒嗙粍灞曠ず璁惧鏍戞槸椤剁骇鏄笟鍔″垎缁�,鍏朵笅鐨勮櫄鎷熺粍缁囬潬BusinessGroupID鎸囧畾鍏舵墍灞炵殑涓氬姟鍒嗙粍;鎽勫儚澶撮�氳繃ParentId鏉ユ寚瀹氬叾鎵�灞炰簬鐨勮櫄鎷熺粍缁�:
- * 涓氬姟鍒嗙粍
- * --> 铏氭嫙缁勭粐
- * --> 鎽勫儚澶�
- * --> 铏氭嫙缁勭粐
- * --> 鎽勫儚澶�
- * --> 鎽勫儚澶�
- */
- String parentId = XmlUtil.getText(itemDevice, "ParentID");
- String businessGroupID = XmlUtil.getText(itemDevice, "BusinessGroupID");
- if (parentId != null) {
- if (parentId.contains("/")) {
- String lastParentId = parentId.substring(parentId.lastIndexOf("/") + 1);
- if (businessGroupID == null) {
- businessGroupID = parentId.substring(0, parentId.indexOf("/"));
- }
- deviceChannel.setParentId(lastParentId);
+ CivilCodePo parentCode = civilCodeFileConf.getParentCode(channelId);
+ if (parentCode != null) {
+ deviceChannel.setParentId(parentCode.getCode());
+ deviceChannel.setCivilCode(parentCode.getCode());
}else {
- deviceChannel.setParentId(parentId);
+ logger.warn("[xml瑙f瀽] 鏃犳硶纭畾琛屾斂鍖哄垝{}鐨勪笂绾ц鏀垮尯鍒�", channelId);
}
- // 鍏煎璁惧閫氶亾淇℃伅涓嚜宸变负鑷繁鐖惰妭鐐圭殑鎯呭喌
- if (deviceChannel.getParentId().equals(deviceChannel.getChannelId())) {
- deviceChannel.setParentId(null);
- }
- }
- deviceChannel.setBusinessGroupId(businessGroupID);
- if (channelType.equals(ChannelType.BusinessGroup) || channelType.equals(ChannelType.VirtualOrganization)) {
- // 涓氬姟鍒嗙粍鍜岃櫄鎷熺粍缁� 鍏朵粬瀛楁娌″繀瑕佽瘑鍒簡锛岄粯璁ゅ湪绾垮嵆鍙�
- deviceChannel.setStatus(1);
- deviceChannel.setParental(1);
- deviceChannel.setCreateTime(DateUtil.getNow());
- deviceChannel.setUpdateTime(DateUtil.getNow());
+ deviceChannel.setStatus(true);
return deviceChannel;
- }
-
- Element statusElement = itemDevice.element("Status");
-
- if (statusElement != null) {
- String status = statusElement.getTextTrim().trim();
- // ONLINE OFFLINE HIKVISION DS-7716N-E4 NVR鐨勫吋瀹规�у鐞�
- if (status.equals("ON") || status.equals("On") || status.equals("ONLINE") || status.equals("OK")) {
- deviceChannel.setStatus(1);
- }
- if (status.equals("OFF") || status.equals("Off") || status.equals("OFFLINE")) {
- deviceChannel.setStatus(0);
- }
}else {
- deviceChannel.setStatus(1);
- }
- // 璇嗗埆鑷甫鐨勭洰褰曟爣璇�
- String parental = XmlUtil.getText(itemDevice, "Parental");
- // 鐢变簬娴峰悍浼氶敊璇殑鍙戦��65535浣滀负杩欓噷鐨勫彇鍊�,鎵�浠ヨ繖閲岄櫎闈炴槸0鍚﹀垯璁や负鏄�1
- if (!ObjectUtils.isEmpty(parental) && parental.length() == 1 && Integer.parseInt(parental) == 0) {
- deviceChannel.setParental(0);
- }else {
- deviceChannel.setParental(1);
- }
-
-
- deviceChannel.setManufacture(XmlUtil.getText(itemDevice, "Manufacturer"));
- deviceChannel.setModel(XmlUtil.getText(itemDevice, "Model"));
- deviceChannel.setOwner(XmlUtil.getText(itemDevice, "Owner"));
- deviceChannel.setCertNum(XmlUtil.getText(itemDevice, "CertNum"));
- deviceChannel.setBlock(XmlUtil.getText(itemDevice, "Block"));
- deviceChannel.setAddress(XmlUtil.getText(itemDevice, "Address"));
- deviceChannel.setPassword(XmlUtil.getText(itemDevice, "Password"));
-
- String safetyWay = XmlUtil.getText(itemDevice, "SafetyWay");
- if (ObjectUtils.isEmpty(safetyWay)) {
- deviceChannel.setSafetyWay(0);
- } else {
- deviceChannel.setSafetyWay(Integer.parseInt(safetyWay));
- }
-
- String registerWay = XmlUtil.getText(itemDevice, "RegisterWay");
- if (ObjectUtils.isEmpty(registerWay)) {
- deviceChannel.setRegisterWay(1);
- } else {
- deviceChannel.setRegisterWay(Integer.parseInt(registerWay));
- }
-
- if (XmlUtil.getText(itemDevice, "Certifiable") == null
- || XmlUtil.getText(itemDevice, "Certifiable") == "") {
- deviceChannel.setCertifiable(0);
- } else {
- deviceChannel.setCertifiable(Integer.parseInt(XmlUtil.getText(itemDevice, "Certifiable")));
- }
-
- if (XmlUtil.getText(itemDevice, "ErrCode") == null
- || XmlUtil.getText(itemDevice, "ErrCode") == "") {
- deviceChannel.setErrCode(0);
- } else {
- deviceChannel.setErrCode(Integer.parseInt(XmlUtil.getText(itemDevice, "ErrCode")));
- }
-
- deviceChannel.setEndTime(XmlUtil.getText(itemDevice, "EndTime"));
- deviceChannel.setSecrecy(XmlUtil.getText(itemDevice, "Secrecy"));
- deviceChannel.setIpAddress(XmlUtil.getText(itemDevice, "IPAddress"));
- if (XmlUtil.getText(itemDevice, "Port") == null || XmlUtil.getText(itemDevice, "Port") == "") {
- deviceChannel.setPort(0);
- } else {
- deviceChannel.setPort(Integer.parseInt(XmlUtil.getText(itemDevice, "Port")));
- }
-
-
- String longitude = XmlUtil.getText(itemDevice, "Longitude");
- if (NumericUtil.isDouble(longitude)) {
- deviceChannel.setLongitude(Double.parseDouble(longitude));
- } else {
- deviceChannel.setLongitude(0.00);
- }
- String latitude = XmlUtil.getText(itemDevice, "Latitude");
- if (NumericUtil.isDouble(latitude)) {
- deviceChannel.setLatitude(Double.parseDouble(latitude));
- } else {
- deviceChannel.setLatitude(0.00);
- }
-
- deviceChannel.setGpsTime(DateUtil.getNow());
-
-
- if (XmlUtil.getText(itemDevice, "PTZType") == null || "".equals(XmlUtil.getText(itemDevice, "PTZType"))) {
- //鍏煎INFO涓殑淇℃伅
- Element info = itemDevice.element("Info");
- if(XmlUtil.getText(info, "PTZType") == null || "".equals(XmlUtil.getText(info, "PTZType"))){
- deviceChannel.setPTZType(0);
- }else{
- deviceChannel.setPTZType(Integer.parseInt(XmlUtil.getText(info, "PTZType")));
+ if(channelId.length() != 20) {
+ logger.warn("[xml瑙f瀽] 澶辫触锛岀紪鍙蜂笉绗﹀悎鍥芥爣28181瀹氫箟锛� {}", channelId);
+ return null;
}
- } else {
- deviceChannel.setPTZType(Integer.parseInt(XmlUtil.getText(itemDevice, "PTZType")));
+
+ int code = Integer.parseInt(channelId.substring(10, 13));
+ if (code == 136 || code == 137 || code == 138) {
+ deviceChannel.setHasAudio(true);
+ }else {
+ deviceChannel.setHasAudio(false);
+ }
+ // 璁惧鍘傚晢
+ String manufacturer = getText(itemDevice, "Manufacturer");
+ // 璁惧鍨嬪彿
+ String model = getText(itemDevice, "Model");
+ // 璁惧褰掑睘
+ String owner = getText(itemDevice, "Owner");
+ // 琛屾斂鍖哄煙
+ String civilCode = getText(itemDevice, "CivilCode");
+ // 铏氭嫙缁勭粐鎵�灞炵殑涓氬姟鍒嗙粍ID,涓氬姟鍒嗙粍鏍规嵁鐗瑰畾鐨勪笟鍔¢渶姹傚埗瀹�,涓�涓笟鍔″垎缁勫寘鍚竴缁勭壒瀹氱殑铏氭嫙缁勭粐
+ String businessGroupID = getText(itemDevice, "BusinessGroupID");
+ // 鐖惰澶�/鍖哄煙/绯荤粺ID
+ String parentID = getText(itemDevice, "ParentID");
+ if (parentID != null && parentID.equalsIgnoreCase("null")) {
+ parentID = null;
+ }
+ // 娉ㄥ唽鏂瑰紡(蹇呴��)缂虹渷涓�1;1:绗﹀悎IETFRFC3261鏍囧噯鐨勮璇佹敞鍐屾ā寮�;2:鍩轰簬鍙d护鐨勫弻鍚戣璇佹敞鍐屾ā寮�;3:鍩轰簬鏁板瓧璇佷功鐨勫弻鍚戣璇佹敞鍐屾ā寮�
+ String registerWay = getText(itemDevice, "RegisterWay");
+ // 淇濆瘑灞炴��(蹇呴��)缂虹渷涓�0;0:涓嶆秹瀵�,1:娑夊瘑
+ String secrecy = getText(itemDevice, "Secrecy");
+ // 瀹夎鍦板潃
+ String address = getText(itemDevice, "Address");
+
+ switch (code){
+ case 200:
+ // 绯荤粺鐩綍
+ if (!ObjectUtils.isEmpty(manufacturer)) {
+ deviceChannel.setManufacture(manufacturer);
+ }
+ if (!ObjectUtils.isEmpty(model)) {
+ deviceChannel.setModel(model);
+ }
+ if (!ObjectUtils.isEmpty(owner)) {
+ deviceChannel.setOwner(owner);
+ }
+ if (!ObjectUtils.isEmpty(civilCode)) {
+ deviceChannel.setCivilCode(civilCode);
+ deviceChannel.setParentId(civilCode);
+ }else {
+ if (!ObjectUtils.isEmpty(parentID)) {
+ deviceChannel.setParentId(parentID);
+ }
+ }
+ if (!ObjectUtils.isEmpty(address)) {
+ deviceChannel.setAddress(address);
+ }
+ deviceChannel.setStatus(true);
+ if (!ObjectUtils.isEmpty(registerWay)) {
+ try {
+ deviceChannel.setRegisterWay(Integer.parseInt(registerWay));
+ }catch (NumberFormatException exception) {
+ logger.warn("[xml瑙f瀽] 浠庨�氶亾鏁版嵁鑾峰彇registerWay澶辫触锛� {}", registerWay);
+ }
+ }
+ if (!ObjectUtils.isEmpty(secrecy)) {
+ deviceChannel.setSecrecy(secrecy);
+ }
+ return deviceChannel;
+ case 215:
+ // 涓氬姟鍒嗙粍
+ deviceChannel.setStatus(true);
+ if (!ObjectUtils.isEmpty(parentID)) {
+ if (!parentID.trim().equalsIgnoreCase(device.getDeviceId())) {
+ deviceChannel.setParentId(parentID);
+ }
+ }else {
+ logger.warn("[xml瑙f瀽] 涓氬姟鍒嗙粍鏁版嵁涓己灏戝叧閿俊鎭�->ParentId");
+ if (!ObjectUtils.isEmpty(civilCode)) {
+ deviceChannel.setCivilCode(civilCode);
+ }
+ }
+ break;
+ case 216:
+ // 铏氭嫙缁勭粐
+ deviceChannel.setStatus(true);
+ if (!ObjectUtils.isEmpty(businessGroupID)) {
+ deviceChannel.setBusinessGroupId(businessGroupID);
+ }
+
+
+ if (!ObjectUtils.isEmpty(parentID)) {
+ if (parentID.contains("/")) {
+ String[] parentIdArray = parentID.split("/");
+ parentID = parentIdArray[parentIdArray.length - 1];
+ }
+ deviceChannel.setParentId(parentID);
+ }else {
+ if (!ObjectUtils.isEmpty(businessGroupID)) {
+ deviceChannel.setParentId(businessGroupID);
+ }
+ }
+ break;
+ default:
+ // 璁惧鐩綍
+ if (!ObjectUtils.isEmpty(manufacturer)) {
+ deviceChannel.setManufacture(manufacturer);
+ }
+ if (!ObjectUtils.isEmpty(model)) {
+ deviceChannel.setModel(model);
+ }
+ if (!ObjectUtils.isEmpty(owner)) {
+ deviceChannel.setOwner(owner);
+ }
+ if (!ObjectUtils.isEmpty(civilCode)) {
+ deviceChannel.setCivilCode(civilCode);
+ }
+ if (!ObjectUtils.isEmpty(businessGroupID)) {
+ deviceChannel.setBusinessGroupId(businessGroupID);
+ }
+
+ // 璀﹀尯
+ String block = getText(itemDevice, "Block");
+ if (!ObjectUtils.isEmpty(block)) {
+ deviceChannel.setBlock(block);
+ }
+ if (!ObjectUtils.isEmpty(address)) {
+ deviceChannel.setAddress(address);
+ }
+
+ if (!ObjectUtils.isEmpty(secrecy)) {
+ deviceChannel.setSecrecy(secrecy);
+ }
+
+ // 褰撲负璁惧鏃�,鏄惁鏈夊瓙璁惧(蹇呴��)1鏈�,0娌℃湁
+ String parental = getText(itemDevice, "Parental");
+ if (!ObjectUtils.isEmpty(parental)) {
+ try {
+ // 鐢变簬娴峰悍浼氶敊璇殑鍙戦��65535浣滀负杩欓噷鐨勫彇鍊�,鎵�浠ヨ繖閲岄櫎闈炴槸0鍚﹀垯璁や负鏄�1
+ if (!ObjectUtils.isEmpty(parental) && parental.length() == 1 && Integer.parseInt(parental) == 0) {
+ deviceChannel.setParental(0);
+ }else {
+ deviceChannel.setParental(1);
+ }
+ }catch (NumberFormatException e) {
+ logger.warn("[xml瑙f瀽] 浠庨�氶亾鏁版嵁鑾峰彇 parental澶辫触锛� {}", parental);
+ }
+ }
+ // 鐖惰澶�/鍖哄煙/绯荤粺ID
+ String realParentId = parentID;
+ if (!ObjectUtils.isEmpty(parentID)) {
+ if (parentID.contains("/")) {
+ String[] parentIdArray = parentID.split("/");
+ realParentId = parentIdArray[parentIdArray.length - 1];
+ }
+ deviceChannel.setParentId(realParentId);
+ }else {
+ if (!ObjectUtils.isEmpty(businessGroupID)) {
+ deviceChannel.setParentId(businessGroupID);
+ }else {
+ if (!ObjectUtils.isEmpty(civilCode)) {
+ deviceChannel.setParentId(civilCode);
+ }
+ }
+ }
+ // 娉ㄥ唽鏂瑰紡
+ if (!ObjectUtils.isEmpty(registerWay)) {
+ try {
+ int registerWayInt = Integer.parseInt(registerWay);
+ deviceChannel.setRegisterWay(registerWayInt);
+ }catch (NumberFormatException exception) {
+ logger.warn("[xml瑙f瀽] 浠庨�氶亾鏁版嵁鑾峰彇registerWay澶辫触锛� {}", registerWay);
+ deviceChannel.setRegisterWay(1);
+ }
+ }else {
+ deviceChannel.setRegisterWay(1);
+ }
+
+ // 淇′护瀹夊叏妯″紡(鍙��)缂虹渷涓�0; 0:涓嶉噰鐢�;2:S/MIME 绛惧悕鏂瑰紡;3:S/MIME鍔犲瘑绛惧悕鍚屾椂閲囩敤鏂瑰紡;4:鏁板瓧鎽樿鏂瑰紡
+ String safetyWay = getText(itemDevice, "SafetyWay");
+ if (!ObjectUtils.isEmpty(safetyWay)) {
+ try {
+ deviceChannel.setSafetyWay(Integer.parseInt(safetyWay));
+ }catch (NumberFormatException e) {
+ logger.warn("[xml瑙f瀽] 浠庨�氶亾鏁版嵁鑾峰彇 safetyWay澶辫触锛� {}", safetyWay);
+ }
+ }
+
+ // 璇佷功搴忓垪鍙�(鏈夎瘉涔︾殑璁惧蹇呴��)
+ String certNum = getText(itemDevice, "CertNum");
+ if (!ObjectUtils.isEmpty(certNum)) {
+ deviceChannel.setCertNum(certNum);
+ }
+
+ // 璇佷功鏈夋晥鏍囪瘑(鏈夎瘉涔︾殑璁惧蹇呴��)缂虹渷涓�0;璇佷功鏈夋晥鏍囪瘑:0:鏃犳晥 1:鏈夋晥
+ String certifiable = getText(itemDevice, "Certifiable");
+ if (!ObjectUtils.isEmpty(certifiable)) {
+ try {
+ deviceChannel.setCertifiable(Integer.parseInt(certifiable));
+ }catch (NumberFormatException e) {
+ logger.warn("[xml瑙f瀽] 浠庨�氶亾鏁版嵁鑾峰彇 Certifiable澶辫触锛� {}", certifiable);
+ }
+ }
+
+ // 鏃犳晥鍘熷洜鐮�(鏈夎瘉涔︿笖璇佷功鏃犳晥鐨勮澶囧繀閫�)
+ String errCode = getText(itemDevice, "ErrCode");
+ if (!ObjectUtils.isEmpty(errCode)) {
+ try {
+ deviceChannel.setErrCode(Integer.parseInt(errCode));
+ }catch (NumberFormatException e) {
+ logger.warn("[xml瑙f瀽] 浠庨�氶亾鏁版嵁鑾峰彇 ErrCode澶辫触锛� {}", errCode);
+ }
+ }
+
+ // 璇佷功缁堟鏈夋晥鏈�(鏈夎瘉涔︾殑璁惧蹇呴��)
+ String endTime = getText(itemDevice, "EndTime");
+ if (!ObjectUtils.isEmpty(endTime)) {
+ deviceChannel.setEndTime(endTime);
+ }
+
+
+ // 璁惧/鍖哄煙/绯荤粺IP鍦板潃
+ String ipAddress = getText(itemDevice, "IPAddress");
+ if (!ObjectUtils.isEmpty(ipAddress)) {
+ deviceChannel.setIpAddress(ipAddress);
+ }
+
+ // 璁惧/鍖哄煙/绯荤粺绔彛
+ String port = getText(itemDevice, "Port");
+ if (!ObjectUtils.isEmpty(port)) {
+ try {
+ deviceChannel.setPort(Integer.parseInt(port));
+ }catch (NumberFormatException e) {
+ logger.warn("[xml瑙f瀽] 浠庨�氶亾鏁版嵁鑾峰彇 Port澶辫触锛� {}", port);
+ }
+ }
+
+ // 璁惧鍙d护
+ String password = getText(itemDevice, "Password");
+ if (!ObjectUtils.isEmpty(password)) {
+ deviceChannel.setPassword(password);
+ }
+
+
+ // 璁惧鐘舵��
+ 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")) {
+ deviceChannel.setStatus(true);
+ }
+ if (status.equals("OFF") || status.equals("Off") || status.equals("OFFLINE")) {
+ deviceChannel.setStatus(false);
+ }
+ }else {
+ deviceChannel.setStatus(true);
+ }
+
+ // 缁忓害
+ String longitude = getText(itemDevice, "Longitude");
+ if (NumericUtil.isDouble(longitude)) {
+ deviceChannel.setLongitude(Double.parseDouble(longitude));
+ } else {
+ deviceChannel.setLongitude(0.00);
+ }
+
+ // 绾害
+ String latitude = getText(itemDevice, "Latitude");
+ if (NumericUtil.isDouble(latitude)) {
+ deviceChannel.setLatitude(Double.parseDouble(latitude));
+ } else {
+ deviceChannel.setLatitude(0.00);
+ }
+
+ deviceChannel.setGpsTime(DateUtil.getNow());
+
+ // -鎽勫儚鏈虹被鍨嬫墿灞�,鏍囪瘑鎽勫儚鏈虹被鍨�:1-鐞冩満;2-鍗婄悆;3-鍥哄畾鏋満;4-閬ユ帶鏋満銆傚綋鐩綍椤逛负鎽勫儚鏈烘椂鍙��
+ String ptzType = getText(itemDevice, "PTZType");
+ if (ObjectUtils.isEmpty(ptzType)) {
+ //鍏煎INFO涓殑淇℃伅
+ Element info = itemDevice.element("Info");
+ String ptzTypeFromInfo = XmlUtil.getText(info, "PTZType");
+ if(!ObjectUtils.isEmpty(ptzTypeFromInfo)){
+ try {
+ deviceChannel.setPTZType(Integer.parseInt(ptzTypeFromInfo));
+ }catch (NumberFormatException e){
+ logger.warn("[xml瑙f瀽] 浠庨�氶亾鏁版嵁info涓幏鍙朠TZType澶辫触锛� {}", ptzTypeFromInfo);
+ }
+ }
+ } else {
+ try {
+ deviceChannel.setPTZType(Integer.parseInt(ptzType));
+ }catch (NumberFormatException e){
+ logger.warn("[xml瑙f瀽] 浠庨�氶亾鏁版嵁涓幏鍙朠TZType澶辫触锛� {}", ptzType);
+ }
+ }
+
+ // TODO 鎽勫儚鏈轰綅缃被鍨嬫墿灞曘��
+ // 1-鐪侀檯妫�鏌ョ珯銆�
+ // 2-鍏氭斂鏈哄叧銆�
+ // 3-杞︾珯鐮佸ご銆�
+ // 4-涓績骞垮満銆�
+ // 5-浣撹偛鍦洪銆�
+ // 6-鍟嗕笟涓績銆�
+ // 7-瀹楁暀鍦烘墍銆�
+ // 8-鏍″洯鍛ㄨ竟銆�
+ // 9-娌诲畨澶嶆潅鍖哄煙銆�
+ // 10-浜ら�氬共绾裤��
+ // String positionType = getText(itemDevice, "PositionType");
+
+ // TODO 鎽勫儚鏈哄畨瑁呬綅缃澶栥�佸鍐呭睘鎬с��1-瀹ゅ銆�2-瀹ゅ唴銆�
+ // String roomType = getText(itemDevice, "RoomType");
+ // TODO 鎽勫儚鏈虹敤閫斿睘鎬�
+ // String useType = getText(itemDevice, "UseType");
+ // TODO 鎽勫儚鏈鸿ˉ鍏夊睘鎬с��1-鏃犺ˉ鍏夈��2-绾㈠琛ュ厜銆�3-鐧藉厜琛ュ厜
+ // String supplyLightType = getText(itemDevice, "SupplyLightType");
+ // TODO 鎽勫儚鏈虹洃瑙嗘柟浣嶅睘鎬с��1-涓溿��2-瑗裤��3-鍗椼��4-鍖椼��5-涓滃崡銆�6-涓滃寳銆�7-瑗垮崡銆�8-瑗垮寳銆�
+ // String directionType = getText(itemDevice, "DirectionType");
+ // TODO 鎽勫儚鏈烘敮鎸佺殑鍒嗚鲸鐜�,鍙湁澶氫釜鍒嗚鲸鐜囧��,鍚勪釜鍙栧�奸棿浠モ��/鈥濆垎闅斻�傚垎杈ㄧ巼鍙栧�煎弬瑙侀檮褰� F涓璖DPf瀛楁瑙勫畾
+ // String resolution = getText(itemDevice, "Resolution");
+
+ // TODO 涓嬭浇鍊嶉�熻寖鍥�(鍙��),鍚勫彲閫夊弬鏁颁互鈥�/鈥濆垎闅�,濡傝澶囨敮鎸�1,2,4鍊嶉�熶笅杞藉垯搴斿啓涓衡��1/2/4
+ // String downloadSpeed = getText(itemDevice, "DownloadSpeed");
+ // TODO 绌哄煙缂栫爜鑳藉姏,鍙栧��0:涓嶆敮鎸�;1:1绾у寮�(1涓寮哄眰);2:2绾у寮�(2涓寮哄眰);3:3绾у寮�(3涓寮哄眰)
+ // String svcSpaceSupportMode = getText(itemDevice, "SVCSpaceSupportMode");
+ // TODO 鏃跺煙缂栫爜鑳藉姏,鍙栧��0:涓嶆敮鎸�;1:1绾у寮�;2:2绾у寮�;3:3绾у寮�
+ // String svcTimeSupportMode = getText(itemDevice, "SVCTimeSupportMode");
+
+
+ deviceChannel.setSecrecy(secrecy);
+ break;
+ }
}
return deviceChannel;
--
Gitblit v1.8.0