From 6b3732b8c43165342b7521b1e3ea788e471d58e8 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期一, 19 六月 2023 20:19:31 +0800
Subject: [PATCH] Merge branch '2.6.8' into wvp-28181-2.0

---
 src/main/java/com/genersoft/iot/vmp/common/CivilCodePo.java                                                                     |   42 
 src/main/java/com/genersoft/iot/vmp/conf/CivilCodeFileConf.java                                                                 |  101 +
 web_src/src/components/dialog/catalogEdit.vue                                                                                   |   44 
 src/main/java/com/genersoft/iot/vmp/service/impl/DeviceChannelServiceImpl.java                                                  |    4 
 web_src/src/components/dialog/chooseChannelForCatalog.vue                                                                       |    9 
 src/main/java/com/genersoft/iot/vmp/conf/SipPlatformRunner.java                                                                 |    2 
 src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java                                                  |  152 +
 web_src/src/components/dialog/deviceEdit.vue                                                                                    |    6 
 src/main/java/com/genersoft/iot/vmp/conf/UserSetting.java                                                                       |   30 
 src/main/java/com/genersoft/iot/vmp/conf/DynamicTask.java                                                                       |    1 
 src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java                                                         |  166 -
 web_src/src/components/dialog/platformEdit.vue                                                                                  |   18 
 src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestForCatalogProcessor.java                   |   11 
 src/main/java/com/genersoft/iot/vmp/gb28181/utils/XmlUtil.java                                                                  |  541 ++++--
 src/main/java/com/genersoft/iot/vmp/service/impl/PlatformServiceImpl.java                                                       |   85 
 src/main/resources/civilCode.csv                                                                                                | 3220 ++++++++++++++++++++++++++++++++++++++++
 web_src/src/components/ParentPlatformList.vue                                                                                   |    2 
 src/main/resources/all-application.yml                                                                                          |    4 
 src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/CatalogResponseMessageHandler.java |    7 
 src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java                             |    2 
 /dev/null                                                                                                                       |   10 
 web_src/src/components/dialog/chooseChannel.vue                                                                                 |    6 
 src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java                                           |    8 
 src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java                                      |  186 +
 src/main/java/com/genersoft/iot/vmp/service/impl/PlatformChannelServiceImpl.java                                                |   13 
 src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java                             |    6 
 src/main/java/com/genersoft/iot/vmp/service/impl/GbStreamServiceImpl.java                                                       |   43 
 src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java                                                       |   10 
 28 files changed, 4,126 insertions(+), 603 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/common/CivilCodePo.java b/src/main/java/com/genersoft/iot/vmp/common/CivilCodePo.java
new file mode 100644
index 0000000..452c12e
--- /dev/null
+++ b/src/main/java/com/genersoft/iot/vmp/common/CivilCodePo.java
@@ -0,0 +1,42 @@
+package com.genersoft.iot.vmp.common;
+
+public class CivilCodePo {
+
+    private String code;
+
+    private String name;
+
+    private String parentCode;
+
+    public static CivilCodePo getInstance(String[] infoArray) {
+        CivilCodePo civilCodePo = new CivilCodePo();
+        civilCodePo.setCode(infoArray[0]);
+        civilCodePo.setName(infoArray[1]);
+        civilCodePo.setParentCode(infoArray[2]);
+        return civilCodePo;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getParentCode() {
+        return parentCode;
+    }
+
+    public void setParentCode(String parentCode) {
+        this.parentCode = parentCode;
+    }
+}
diff --git a/src/main/java/com/genersoft/iot/vmp/conf/CivilCodeFileConf.java b/src/main/java/com/genersoft/iot/vmp/conf/CivilCodeFileConf.java
new file mode 100644
index 0000000..39e0a70
--- /dev/null
+++ b/src/main/java/com/genersoft/iot/vmp/conf/CivilCodeFileConf.java
@@ -0,0 +1,101 @@
+package com.genersoft.iot.vmp.conf;
+
+import com.genersoft.iot.vmp.common.CivilCodePo;
+import org.ehcache.impl.internal.concurrent.ConcurrentHashMap;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.CommandLineRunner;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.core.annotation.Order;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.util.ObjectUtils;
+
+import java.io.*;
+import java.nio.file.Files;
+import java.util.Map;
+
+/**
+ * 鍚姩鏃惰鍙栬鏀垮尯鍒掕〃
+ */
+@Configuration
+@Order(value=14)
+public class CivilCodeFileConf implements CommandLineRunner {
+
+    private final static Logger logger = LoggerFactory.getLogger(CivilCodeFileConf.class);
+
+    private final Map<String, CivilCodePo> civilCodeMap= new ConcurrentHashMap<>();
+
+    @Autowired
+    @Lazy
+    private UserSetting userSetting;
+
+    @Override
+    public void run(String... args) throws Exception {
+        if (ObjectUtils.isEmpty(userSetting.getCivilCodeFile())) {
+            logger.warn("[琛屾斂鍖哄垝] 鏂囦欢鏈缃紝鍙兘閫犳垚鐩綍鍒锋柊缁撴灉涓嶅畬鏁�");
+            return;
+        }
+        InputStream inputStream;
+        if (userSetting.getCivilCodeFile().startsWith("classpath:")){
+            String filePath = userSetting.getCivilCodeFile().substring("classpath:".length());
+            ClassPathResource civilCodeFile = new ClassPathResource(filePath);
+            if (!civilCodeFile.exists()) {
+                logger.warn("[琛屾斂鍖哄垝] 鏂囦欢<{}>涓嶅瓨鍦紝鍙兘閫犳垚鐩綍鍒锋柊缁撴灉涓嶅畬鏁�", userSetting.getCivilCodeFile());
+                return;
+            }
+            inputStream = civilCodeFile.getInputStream();
+
+        }else {
+            File civilCodeFile = new File(userSetting.getCivilCodeFile());
+            if (!civilCodeFile.exists()) {
+                logger.warn("[琛屾斂鍖哄垝] 鏂囦欢<{}>涓嶅瓨鍦紝鍙兘閫犳垚鐩綍鍒锋柊缁撴灉涓嶅畬鏁�", userSetting.getCivilCodeFile());
+                return;
+            }
+            inputStream = Files.newInputStream(civilCodeFile.toPath());
+        }
+
+        BufferedReader inputStreamReader = new BufferedReader(new InputStreamReader(inputStream));
+        int index = -1;
+        String line;
+        while ((line = inputStreamReader.readLine()) != null) {
+            index ++;
+            if (index == 0) {
+                continue;
+            }
+            String[] infoArray = line.split(",");
+            CivilCodePo civilCodePo = CivilCodePo.getInstance(infoArray);
+            civilCodeMap.put(civilCodePo.getCode(), civilCodePo);
+        }
+        inputStreamReader.close();
+        inputStream.close();
+        if (civilCodeMap.size() == 0) {
+            logger.warn("[琛屾斂鍖哄垝] 鏂囦欢鍐呭涓虹┖锛屽彲鑳介�犳垚鐩綍鍒锋柊缁撴灉涓嶅畬鏁�");
+        }else {
+            logger.info("[琛屾斂鍖哄垝] 鍔犺浇鎴愬姛锛屽叡鍔犺浇鏁版嵁{}鏉�", civilCodeMap.size());
+        }
+    }
+
+    public CivilCodePo getParentCode(String code) {
+        if (code.length() > 8) {
+            return null;
+        }
+        if (code.length() == 8) {
+            String parentCode = code.substring(0, 6);
+            return civilCodeMap.get(parentCode);
+        }else {
+            CivilCodePo civilCodePo = civilCodeMap.get(code);
+            if (civilCodePo == null){
+                return null;
+            }
+            String parentCode = civilCodePo.getParentCode();
+            if (parentCode == null) {
+                return null;
+            }
+            return civilCodeMap.get(parentCode);
+        }
+
+    }
+
+}
diff --git a/src/main/java/com/genersoft/iot/vmp/conf/DynamicTask.java b/src/main/java/com/genersoft/iot/vmp/conf/DynamicTask.java
index 041d738..95a2499 100644
--- a/src/main/java/com/genersoft/iot/vmp/conf/DynamicTask.java
+++ b/src/main/java/com/genersoft/iot/vmp/conf/DynamicTask.java
@@ -45,6 +45,7 @@
      * @return
      */
     public void startCron(String key, Runnable task, int cycleForCatalog) {
+        System.out.println(cycleForCatalog);
         ScheduledFuture<?> future = futureMap.get(key);
         if (future != null) {
             if (future.isCancelled()) {
diff --git a/src/main/java/com/genersoft/iot/vmp/conf/SipPlatformRunner.java b/src/main/java/com/genersoft/iot/vmp/conf/SipPlatformRunner.java
index 55363ef..eb1b157 100644
--- a/src/main/java/com/genersoft/iot/vmp/conf/SipPlatformRunner.java
+++ b/src/main/java/com/genersoft/iot/vmp/conf/SipPlatformRunner.java
@@ -56,7 +56,7 @@
             }
 
             // 璁剧疆鎵�鏈夊钩鍙扮绾�
-            platformService.offline(parentPlatform, true);
+            platformService.offline(parentPlatform, false);
         }
     }
 }
diff --git a/src/main/java/com/genersoft/iot/vmp/conf/UserSetting.java b/src/main/java/com/genersoft/iot/vmp/conf/UserSetting.java
index 0b35a9d..515f3e7 100644
--- a/src/main/java/com/genersoft/iot/vmp/conf/UserSetting.java
+++ b/src/main/java/com/genersoft/iot/vmp/conf/UserSetting.java
@@ -62,11 +62,17 @@
 
     private String thirdPartyGBIdReg = "[\\s\\S]*";
 
+    private String civilCodeFile = "classpath:civilCode.csv";
+
     private List<String> interfaceAuthenticationExcludes = new ArrayList<>();
 
     private List<String> allowedOrigins = new ArrayList<>();
 
     private int maxNotifyCountQueue = 10000;
+
+    private int registerAgainAfterTime = 60;
+
+    private boolean registerKeepIntDialog = false;
 
     public Boolean getSavePositionHistory() {
         return savePositionHistory;
@@ -295,4 +301,28 @@
     public void setSqlLog(Boolean sqlLog) {
         this.sqlLog = sqlLog;
     }
+
+    public String getCivilCodeFile() {
+        return civilCodeFile;
+    }
+
+    public void setCivilCodeFile(String civilCodeFile) {
+        this.civilCodeFile = civilCodeFile;
+    }
+
+    public int getRegisterAgainAfterTime() {
+        return registerAgainAfterTime;
+    }
+
+    public void setRegisterAgainAfterTime(int registerAgainAfterTime) {
+        this.registerAgainAfterTime = registerAgainAfterTime;
+    }
+
+    public boolean isRegisterKeepIntDialog() {
+        return registerKeepIntDialog;
+    }
+
+    public void setRegisterKeepIntDialog(boolean registerKeepIntDialog) {
+        this.registerKeepIntDialog = registerKeepIntDialog;
+    }
 }
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/TreeType.java b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/TreeType.java
deleted file mode 100644
index bb684e1..0000000
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/TreeType.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package com.genersoft.iot.vmp.gb28181.bean;
-
-/**
- * 鐩綍缁撴瀯绫诲瀷
- * @author lin
- */
-public class TreeType {
-    public static final String BUSINESS_GROUP = "BusinessGroup";
-    public static final String CIVIL_CODE = "CivilCode";
-}
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java
index b1e2196..d39a01c 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java
@@ -209,59 +209,149 @@
                 // 琛屾斂鍖哄垝鍒嗙粍鍙渶瑕佽繖涓ら」灏卞彲浠�
                 catalogXml.append("<DeviceID>" + channel.getChannelId() + "</DeviceID>\r\n");
                 catalogXml.append("<Name>" + channel.getName() + "</Name>\r\n");
-                if (channel.getParentId() != null) {
-                    // 涓氬姟鍒嗙粍鍔犱笂杩欎竴椤瑰嵆鍙紝鎻愰珮鍏煎鎬э紝
-                    catalogXml.append("<ParentID>" + channel.getParentId() + "</ParentID>\r\n");
-//                    catalogXml.append("<ParentID>" + parentPlatform.getDeviceGBId() + "/" + channel.getParentId() + "</ParentID>\r\n");
-                }
-                if (channel.getChannelId().length() == 20 && Integer.parseInt(channel.getChannelId().substring(10, 13)) == 216) {
-                    // 铏氭嫙缁勭粐澧炲姞BusinessGroupID瀛楁
-                    catalogXml.append("<BusinessGroupID>" + channel.getParentId() + "</BusinessGroupID>\r\n");
-                }
-                if (!channel.getChannelId().equals(parentPlatform.getDeviceGBId())) {
-                    catalogXml.append("<Parental>" + channel.getParental() + "</Parental>\r\n");
-                    if (channel.getParental() == 0) {
-                        catalogXml.append("<Status>" + (channel.isStatus() ? "ON" : "OFF") + "</Status>\r\n");
+                if (channel.getChannelId().length() <= 8) {
+                    catalogXml.append("</Item>\r\n");
+                    continue;
+                }else {
+                    if (channel.getChannelId().length() != 20) {
+                        continue;
                     }
-                }
-                if (channel.getParental() == 0) {
-                    // 閫氶亾椤�
-                    catalogXml.append("<Manufacturer>" + channel.getManufacture() + "</Manufacturer>\r\n");
-                    catalogXml.append("<Secrecy>" + channel.getSecrecy() + "</Secrecy>\r\n");
-                    catalogXml.append("<RegisterWay>" + channel.getRegisterWay() + "</RegisterWay>\r\n");
-                    String civilCode = channel.getCivilCode() == null?parentPlatform.getAdministrativeDivision() : channel.getCivilCode();
-                    if (channel.getChannelType() != 2) {  // 涓氬姟鍒嗙粍/铏氭嫙缁勭粐/琛屾斂鍖哄垝 涓嶈缃互涓嬪睘鎬�
-                        catalogXml.append("<Model>" + channel.getModel() + "</Model>\r\n");
-                        catalogXml.append("<Owner>" + parentPlatform.getDeviceGBId()+ "</Owner>\r\n");
-                        catalogXml.append("<CivilCode>" + civilCode + "</CivilCode>\r\n");
-                        if (channel.getAddress() == null) {
-                            catalogXml.append("<Address></Address>\r\n");
-                        }else {
-                            catalogXml.append("<Address>" + channel.getAddress() + "</Address>\r\n");
-                        }
-                        catalogXml.append("<Block>" + channel.getBlock() + "</Block>\r\n");
-                        catalogXml.append("<SafetyWay>" + channel.getSafetyWay() + "</SafetyWay>\r\n");
-                        catalogXml.append("<CertNum>" + channel.getCertNum() + "</CertNum>\r\n");
-                        catalogXml.append("<Certifiable>" + channel.getCertifiable() + "</Certifiable>\r\n");
-                        catalogXml.append("<ErrCode>" + channel.getErrCode() + "</ErrCode>\r\n");
-                        catalogXml.append("<EndTime>" + channel.getEndTime() + "</EndTime>\r\n");
-                        catalogXml.append("<Secrecy>" + channel.getSecrecy() + "</Secrecy>\r\n");
-                        catalogXml.append("<IPAddress>" + channel.getIpAddress() + "</IPAddress>\r\n");
-                        catalogXml.append("<Port>" + channel.getPort() + "</Port>\r\n");
-                        catalogXml.append("<Password>" + channel.getPort() + "</Password>\r\n");
-                        catalogXml.append("<PTZType>" + channel.getPTZType() + "</PTZType>\r\n");
-                        catalogXml.append("<Status>" + (channel.isStatus() ? "ON":"OFF") + "</Status>\r\n");
-                        catalogXml.append("<Longitude>" +
-                                (channel.getLongitudeWgs84() != 0? channel.getLongitudeWgs84():channel.getLongitude())
-                                + "</Longitude>\r\n");
-                        catalogXml.append("<Latitude>" +
-                                (channel.getLatitudeWgs84() != 0? channel.getLatitudeWgs84():channel.getLatitude())
-                                + "</Latitude>\r\n");
+                    switch (Integer.parseInt(channel.getChannelId().substring(10, 13))){
+                        case 200:
+//                            catalogXml.append("<Manufacturer>涓夋案鍗庨��</Manufacturer>\r\n");
+//                            GitUtil gitUtil = SpringBeanFactory.getBean("gitUtil");
+//                            String model = (gitUtil == null || gitUtil.getBuildVersion() == null)?"1.0": gitUtil.getBuildVersion();
+//                            catalogXml.append("<Model>" + model + "</Manufacturer>\r\n");
+//                            catalogXml.append("<Owner>涓夋案鍗庨��</Owner>\r\n");
+                             if (channel.getCivilCode() != null) {
+                                 catalogXml.append("<CivilCode>"+channel.getCivilCode()+"</CivilCode>\r\n");
+                             }else {
+                                 catalogXml.append("<CivilCode></CivilCode>\r\n");
+                             }
 
+                            catalogXml.append("<RegisterWay>1</RegisterWay>\r\n");
+                            catalogXml.append("<Secrecy>0</Secrecy>\r\n");
+                            break;
+                        case 215:
+                            if (!ObjectUtils.isEmpty(channel.getParentId())) {
+                                catalogXml.append("<ParentID>" + channel.getParentId() + "</ParentID>\r\n");
+                            }
+
+                            break;
+                        case 216:
+                            if (!ObjectUtils.isEmpty(channel.getParentId())) {
+                                catalogXml.append("<ParentID>" + channel.getParentId() + "</ParentID>\r\n");
+                            }else {
+                                catalogXml.append("<ParentID></ParentID>\r\n");
+                            }
+                            if (!ObjectUtils.isEmpty(channel.getBusinessGroupId())) {
+                                catalogXml.append("<BusinessGroupID>" + channel.getBusinessGroupId() + "</BusinessGroupID>\r\n");
+                            }else {
+                                catalogXml.append("<BusinessGroupID></BusinessGroupID>\r\n");
+                            }
+                            break;
+                        default:
+                            // 閫氶亾椤�
+                            if (channel.getManufacture() != null) {
+                                catalogXml.append("<Manufacturer>" + channel.getManufacture() + "</Manufacturer>\r\n");
+                            }else {
+                                catalogXml.append("<Manufacturer></Manufacturer>\r\n");
+                            }
+                            if (channel.getSecrecy() != null) {
+                                catalogXml.append("<Secrecy>" + channel.getSecrecy() + "</Secrecy>\r\n");
+                            }else {
+                                catalogXml.append("<Secrecy></Secrecy>\r\n");
+                            }
+                            catalogXml.append("<RegisterWay>" + channel.getRegisterWay() + "</RegisterWay>\r\n");
+                            if (channel.getModel() != null) {
+                                catalogXml.append("<Model>" + channel.getModel() + "</Model>\r\n");
+                            }else {
+                                catalogXml.append("<Model></Model>\r\n");
+                            }
+                            if (channel.getOwner() != null) {
+                                catalogXml.append("<Owner>" + channel.getOwner()+ "</Owner>\r\n");
+                            }else {
+                                catalogXml.append("<Owner></Owner>\r\n");
+                            }
+                            if (channel.getCivilCode() != null) {
+                                catalogXml.append("<CivilCode>" + channel.getCivilCode() + "</CivilCode>\r\n");
+                            }else {
+                                catalogXml.append("<CivilCode></CivilCode>\r\n");
+                            }
+                            if (channel.getAddress() == null) {
+                                catalogXml.append("<Address></Address>\r\n");
+                            }else {
+                                catalogXml.append("<Address>" + channel.getAddress() + "</Address>\r\n");
+                            }
+                            if (!ObjectUtils.isEmpty(channel.getParentId())) {
+                                catalogXml.append("<ParentID>" + channel.getParentId() + "</ParentID>\r\n");
+                            }else {
+                                catalogXml.append("<ParentID></ParentID>\r\n");
+                            }
+                            if (!ObjectUtils.isEmpty(channel.getBlock())) {
+                                catalogXml.append("<Block>" + channel.getBlock() + "</Block>\r\n");
+                            }else {
+                                catalogXml.append("<Block></Block>\r\n");
+                            }
+                            if (!ObjectUtils.isEmpty(channel.getSafetyWay())) {
+                                catalogXml.append("<SafetyWay>" + channel.getSafetyWay() + "</SafetyWay>\r\n");
+                            }else {
+                                catalogXml.append("<SafetyWay></SafetyWay>\r\n");
+                            }
+                            if (!ObjectUtils.isEmpty(channel.getCertNum())) {
+                                catalogXml.append("<CertNum>" + channel.getCertNum() + "</CertNum>\r\n");
+                            }else {
+                                catalogXml.append("<CertNum></CertNum>\r\n");
+                            }
+                            if (!ObjectUtils.isEmpty(channel.getCertifiable())) {
+                                catalogXml.append("<Certifiable>" + channel.getCertifiable() + "</Certifiable>\r\n");
+                            }else {
+                                catalogXml.append("<Certifiable></Certifiable>\r\n");
+                            }
+                            if (!ObjectUtils.isEmpty(channel.getErrCode())) {
+                                catalogXml.append("<ErrCode>" + channel.getErrCode() + "</ErrCode>\r\n");
+                            }else {
+                                catalogXml.append("<ErrCode></ErrCode>\r\n");
+                            }
+                            if (!ObjectUtils.isEmpty(channel.getEndTime())) {
+                                catalogXml.append("<EndTime>" + channel.getEndTime() + "</EndTime>\r\n");
+                            }else {
+                                catalogXml.append("<EndTime></EndTime>\r\n");
+                            }
+                            if (!ObjectUtils.isEmpty(channel.getSecrecy())) {
+                                catalogXml.append("<Secrecy>" + channel.getSecrecy() + "</Secrecy>\r\n");
+                            }else {
+                                catalogXml.append("<Secrecy></Secrecy>\r\n");
+                            }
+                            if (!ObjectUtils.isEmpty(channel.getIpAddress())) {
+                                catalogXml.append("<IPAddress>" + channel.getIpAddress() + "</IPAddress>\r\n");
+                            }else {
+                                catalogXml.append("<IPAddress></IPAddress>\r\n");
+                            }
+                            catalogXml.append("<Port>" + channel.getPort() + "</Port>\r\n");
+                            if (!ObjectUtils.isEmpty(channel.getPassword())) {
+                                catalogXml.append("<Password>" + channel.getPassword() + "</Password>\r\n");
+                            }else {
+                                catalogXml.append("<Password></Password>\r\n");
+                            }
+                            if (!ObjectUtils.isEmpty(channel.getPTZType())) {
+                                catalogXml.append("<PTZType>" + channel.getPTZType() + "</PTZType>\r\n");
+                            }else {
+                                catalogXml.append("<PTZType></PTZType>\r\n");
+                            }
+                            catalogXml.append("<Status>" + (channel.getStatus() == 1?"ON":"OFF") + "</Status>\r\n");
+
+                            catalogXml.append("<Longitude>" +
+                                    (channel.getLongitudeWgs84() != 0? channel.getLongitudeWgs84():channel.getLongitude())
+                                    + "</Longitude>\r\n");
+                            catalogXml.append("<Latitude>" +
+                                    (channel.getLatitudeWgs84() != 0? channel.getLatitudeWgs84():channel.getLatitude())
+                                    + "</Latitude>\r\n");
+                            break;
 
                     }
+                    catalogXml.append("</Item>\r\n");
                 }
-                catalogXml.append("</Item>\r\n");
             }
         }
 
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java
index e21dfd6..635c3ca 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java
@@ -188,6 +188,8 @@
                                     logger.error("[鍛戒护鍙戦�佸け璐 invite GONE: {}", e.getMessage());
                                 }
                                 return;
+                            }else {
+                                 // TODO 鍙兘婕忓洖澶嶆秷鎭�
                             }
                         }
                     } else {
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestForCatalogProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestForCatalogProcessor.java
index c0b1be4..e2aee4a 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestForCatalogProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestForCatalogProcessor.java
@@ -1,5 +1,6 @@
 package com.genersoft.iot.vmp.gb28181.transmit.event.request.impl;
 
+import com.genersoft.iot.vmp.conf.CivilCodeFileConf;
 import com.genersoft.iot.vmp.conf.DynamicTask;
 import com.genersoft.iot.vmp.conf.UserSetting;
 import com.genersoft.iot.vmp.gb28181.bean.Device;
@@ -20,7 +21,10 @@
 
 import javax.sip.RequestEvent;
 import javax.sip.header.FromHeader;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.CopyOnWriteArrayList;
 
@@ -55,6 +59,9 @@
 
 	@Autowired
 	private DynamicTask dynamicTask;
+
+	@Autowired
+	private CivilCodeFileConf civilCodeFileConf;
 
 	private final static String talkKey = "notify-request-for-catalog-task";
 
@@ -96,7 +103,7 @@
 					}else {
 						event = eventElement.getText().toUpperCase();
 					}
-					DeviceChannel channel = XmlUtil.channelContentHander(itemDevice, device, event);
+					DeviceChannel channel = XmlUtil.channelContentHandler(itemDevice, device, event, civilCodeFileConf);
 
 					channel.setDeviceId(device.getDeviceId());
 					logger.info("[鏀跺埌鐩綍璁㈤槄]锛歿}/{}", device.getDeviceId(), channel.getChannelId());
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java
index e97b720..bc34bbd 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java
@@ -1,6 +1,7 @@
 package com.genersoft.iot.vmp.gb28181.transmit.event.request.impl;
 
 import com.alibaba.fastjson2.JSONObject;
+import com.genersoft.iot.vmp.conf.CivilCodeFileConf;
 import com.genersoft.iot.vmp.conf.SipConfig;
 import com.genersoft.iot.vmp.conf.UserSetting;
 import com.genersoft.iot.vmp.gb28181.bean.*;
@@ -78,6 +79,9 @@
 
 	@Autowired
 	private NotifyRequestForCatalogProcessor notifyRequestForCatalogProcessor;
+
+	@Autowired
+	private CivilCodeFileConf civilCodeFileConf;
 
 	private ConcurrentLinkedQueue<HandlerCatchData> taskQueue = new ConcurrentLinkedQueue<>();
 
@@ -408,7 +412,7 @@
 					}else {
 						event = eventElement.getText().toUpperCase();
 					}
-					DeviceChannel channel = XmlUtil.channelContentHander(itemDevice, device, event);
+					DeviceChannel channel = XmlUtil.channelContentHandler(itemDevice, device, event, civilCodeFileConf);
 					channel.setDeviceId(device.getDeviceId());
 					logger.info("[鏀跺埌鐩綍璁㈤槄]锛歿}/{}", device.getDeviceId(), channel.getChannelId());
 					switch (event) {
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/CatalogResponseMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/CatalogResponseMessageHandler.java
index eb8555a..2d8af9b 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/CatalogResponseMessageHandler.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/CatalogResponseMessageHandler.java
@@ -1,5 +1,6 @@
 package com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.response.cmd;
 
+import com.genersoft.iot.vmp.conf.CivilCodeFileConf;
 import com.genersoft.iot.vmp.gb28181.bean.*;
 import com.genersoft.iot.vmp.gb28181.session.CatalogDataCatch;
 import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorParent;
@@ -53,6 +54,9 @@
     @Autowired
     private ThreadPoolTaskExecutor taskExecutor;
 
+    @Autowired
+    private CivilCodeFileConf civilCodeFileConf;
+
     @Override
     public void afterPropertiesSet() throws Exception {
         responseMessageHandler.addHandler(cmdType, this);
@@ -100,6 +104,7 @@
                             Iterator<Element> deviceListIterator = deviceListElement.elementIterator();
                             if (deviceListIterator != null) {
                                 List<DeviceChannel> channelList = new ArrayList<>();
+                                List<String> parentChannelIds = new ArrayList<>();
                                 // 閬嶅巻DeviceList
                                 while (deviceListIterator.hasNext()) {
                                     Element itemDevice = deviceListIterator.next();
@@ -107,7 +112,7 @@
                                     if (channelDeviceElement == null) {
                                         continue;
                                     }
-                                    DeviceChannel deviceChannel = XmlUtil.channelContentHander(itemDevice, device, null);
+                                    DeviceChannel deviceChannel = XmlUtil.channelContentHandler(itemDevice, device, null, civilCodeFileConf);
                                     deviceChannel = SipUtils.updateGps(deviceChannel, device.getGeoCoordSys());
                                     deviceChannel.setDeviceId(take.getDevice().getDeviceId());
 
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 750cd8b..2117c1d 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(true);
-            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(true);
-            deviceChannel.setParental(1);
-            deviceChannel.setCreateTime(DateUtil.getNow());
-            deviceChannel.setUpdateTime(DateUtil.getNow());
+            deviceChannel.setStatus(1);
             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(true);
-            }
-            if (status.equals("OFF") || status.equals("Off") || status.equals("OFFLINE")) {
-                deviceChannel.setStatus(false);
-            }
         }else {
-            deviceChannel.setStatus(true);
-        }
-        // 璇嗗埆鑷甫鐨勭洰褰曟爣璇�
-        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(1);
+                    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(1);
+                    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(1);
+                    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(1);
+                        }
+                        if (status.equals("OFF") || status.equals("Off") || status.equals("OFFLINE")) {
+                            deviceChannel.setStatus(0);
+                        }
+                    }else {
+                        deviceChannel.setStatus(1);
+                    }
+
+                    // 缁忓害
+                    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;
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceChannelServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceChannelServiceImpl.java
index 45405f7..76a5087 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceChannelServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceChannelServiceImpl.java
@@ -50,8 +50,6 @@
                 device = deviceMapper.getDeviceByDeviceId(deviceChannel.getDeviceId());
             }
 
-
-
             if ("WGS84".equals(device.getGeoCoordSys())) {
                 deviceChannel.setLongitudeWgs84(deviceChannel.getLongitude());
                 deviceChannel.setLatitudeWgs84(deviceChannel.getLatitude());
@@ -262,4 +260,6 @@
             }
         }
     }
+
+
 }
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java
index 55a2f0d..8a6257f 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java
@@ -380,63 +380,11 @@
         if (device == null) {
             return null;
         }
-        if (parentId == null || parentId.equals(deviceId)) {
-            // 瀛楁牴鑺傜偣寮�濮嬫煡璇�
-            List<DeviceChannel> rootNodes = getRootNodes(deviceId, TreeType.CIVIL_CODE.equals(device.getTreeType()), true, !onlyCatalog);
-            return transportChannelsToTree(rootNodes, "");
+        if (ObjectUtils.isEmpty(parentId) || parentId.equals(deviceId)) {
+            parentId = null;
         }
-
-        if (TreeType.CIVIL_CODE.equals(device.getTreeType())) {
-            if (parentId.length()%2 != 0) {
-                return null;
-            }
-            // 浣跨敤琛屾斂鍖哄垝灞曠ず鏍�
-//            if (parentId.length() > 10) {
-//                // TODO 鍙兘鏄鏀垮尯鍒掍笌涓氬姟鍒嗙粍娣锋潅鐨勬儏褰�
-//                return null;
-//            }
-
-            if (parentId.length() == 10 ) {
-                if (onlyCatalog) {
-                    return null;
-                }
-                // parentId涓鸿涓氱紪鐮侊紝 鍏朵笅涓嶄細鍐嶆湁琛屾斂鍖哄垝
-                List<DeviceChannel> channels = deviceChannelMapper.getChannelsByCivilCode(deviceId, parentId);
-                List<BaseTree<DeviceChannel>> trees = transportChannelsToTree(channels, parentId);
-                return trees;
-            }
-            // 鏌ヨ鍏朵笅鐨勮鏀垮尯鍒掑拰鎽勫儚鏈�
-            List<DeviceChannel> channelsForCivilCode = deviceChannelMapper.getChannelsWithCivilCodeAndLength(deviceId, parentId, parentId.length() + 2);
-            if (!onlyCatalog) {
-                List<DeviceChannel> channels = deviceChannelMapper.getChannelsByCivilCode(deviceId, parentId);
-
-                for(DeviceChannel channel : channels) {
-                    boolean flag = false;
-                    for(DeviceChannel deviceChannel : channelsForCivilCode) {
-                        if(channel.getChannelId().equals(deviceChannel.getChannelId())) {
-                            flag = true;
-                        }
-                    }
-                    if(!flag) {
-                        channelsForCivilCode.add(channel);
-                    }
-                }
-            }
-            List<BaseTree<DeviceChannel>> trees = transportChannelsToTree(channelsForCivilCode, parentId);
-            return trees;
-
-        }
-        // 浣跨敤涓氬姟鍒嗙粍灞曠ず鏍�
-        if (TreeType.BUSINESS_GROUP.equals(device.getTreeType())) {
-            if (parentId.length() < 14 ) {
-                return null;
-            }
-            List<DeviceChannel> deviceChannels = deviceChannelMapper.queryChannels(deviceId, parentId, null, null, null,null);
-            List<BaseTree<DeviceChannel>> trees = transportChannelsToTree(deviceChannels, parentId);
-            return trees;
-        }
-
-        return null;
+        List<DeviceChannel> rootNodes = deviceChannelMapper.getSubChannelsByDeviceId(deviceId, parentId, onlyCatalog);
+        return transportChannelsToTree(rootNodes, "");
     }
 
     @Override
@@ -445,42 +393,11 @@
         if (device == null) {
             return null;
         }
-        if (parentId == null || parentId.equals(deviceId)) {
-            // 瀛楁牴鑺傜偣寮�濮嬫煡璇�
-            List<DeviceChannel> rootNodes = getRootNodes(deviceId, TreeType.CIVIL_CODE.equals(device.getTreeType()), false, true);
-            return rootNodes;
+        if (ObjectUtils.isEmpty(parentId) || parentId.equals(deviceId)) {
+            return deviceChannelMapper.getSubChannelsByDeviceId(deviceId, null, false);
+        }else {
+            return deviceChannelMapper.getSubChannelsByDeviceId(deviceId, parentId, false);
         }
-
-        if (TreeType.CIVIL_CODE.equals(device.getTreeType())) {
-            if (parentId.length()%2 != 0) {
-                return null;
-            }
-            // 浣跨敤琛屾斂鍖哄垝灞曠ず鏍�
-            if (parentId.length() > 10) {
-                // TODO 鍙兘鏄鏀垮尯鍒掍笌涓氬姟鍒嗙粍娣锋潅鐨勬儏褰�
-                return null;
-            }
-
-            if (parentId.length() == 10 ) {
-                // parentId涓鸿涓氱紪鐮侊紝 鍏朵笅涓嶄細鍐嶆湁琛屾斂鍖哄垝
-                List<DeviceChannel> channels = deviceChannelMapper.getChannelsByCivilCode(deviceId, parentId);
-                return channels;
-            }
-            // 鏌ヨ鍏朵笅鐨勮鏀垮尯鍒掑拰鎽勫儚鏈�
-            List<DeviceChannel> channels = deviceChannelMapper.getChannelsByCivilCode(deviceId, parentId);
-            return channels;
-
-        }
-        // 浣跨敤涓氬姟鍒嗙粍灞曠ず鏍�
-        if (TreeType.BUSINESS_GROUP.equals(device.getTreeType())) {
-            if (parentId.length() < 14 ) {
-                return null;
-            }
-            List<DeviceChannel> deviceChannels = deviceChannelMapper.queryChannels(deviceId, parentId, null, null, null,null);
-            return deviceChannels;
-        }
-
-        return null;
     }
 
     private List<BaseTree<DeviceChannel>> transportChannelsToTree(List<DeviceChannel> channels, String parentId) {
@@ -500,65 +417,26 @@
             node.setPid(parentId);
             node.setBasicData(channel);
             node.setParent(false);
-            if (channel.getChannelId().length() > 8) {
-                if (channel.getChannelId().length() > 13) {
-                    String gbCodeType = channel.getChannelId().substring(10, 13);
-                    node.setParent(gbCodeType.equals(ChannelIdType.BUSINESS_GROUP) || gbCodeType.equals(ChannelIdType.VIRTUAL_ORGANIZATION) );
-                }
-            }else {
+            if (channel.getChannelId().length() <= 8) {
                 node.setParent(true);
+            }else {
+                if (channel.getChannelId().length() != 20) {
+                    node.setParent(channel.getParental() == 1);
+                }else {
+                    try {
+                        int type = Integer.parseInt(channel.getChannelId().substring(10, 13));
+                        if (type == 215 || type == 216 || type == 200) {
+                            node.setParent(true);
+                        }
+                    }catch (NumberFormatException e) {
+                        node.setParent(false);
+                    }
+                }
             }
             treeNotes.add(node);
         }
         Collections.sort(treeNotes);
         return treeNotes;
-    }
-
-    private List<DeviceChannel> getRootNodes(String deviceId, boolean isCivilCode, boolean haveCatalog, boolean haveChannel) {
-        if (!haveCatalog && !haveChannel) {
-            return null;
-        }
-        List<DeviceChannel> result = new ArrayList<>();
-        if (isCivilCode) {
-            // 浣跨敤琛屾斂鍖哄垝
-            Integer length= deviceChannelMapper.getChannelMinLength(deviceId);
-            if (length == null) {
-                return null;
-            }
-            if (length <= 10) {
-                if (haveCatalog) {
-                    List<DeviceChannel> provinceNode = deviceChannelMapper.getChannelsWithCivilCodeAndLength(deviceId, null, length);
-                    if (provinceNode != null && provinceNode.size() > 0) {
-                        result.addAll(provinceNode);
-                    }
-                }
-
-                if (haveChannel) {
-                    // 鏌ヨ閭d簺civilCode涓嶅湪閫氶亾涓殑涓嶈鑼冮�氶亾锛屾斁缃湪鏍圭洰褰�
-                    List<DeviceChannel> nonstandardNode = deviceChannelMapper.getChannelWithoutCivilCode(deviceId);
-                    if (nonstandardNode != null && nonstandardNode.size() > 0) {
-                        result.addAll(nonstandardNode);
-                    }
-                }
-            }else {
-                if (haveChannel) {
-                    List<DeviceChannel> deviceChannels = deviceChannelMapper.queryChannels(deviceId, null, null, null, null,null);
-                    if (deviceChannels != null && deviceChannels.size() > 0) {
-                        result.addAll(deviceChannels);
-                    }
-                }
-            }
-
-        }else {
-            // 浣跨敤涓氬姟鍒嗙粍+铏氭嫙缁勭粐
-
-            // 鍙幏鍙栦笟鍔″垎缁�
-            List<DeviceChannel> deviceChannels = deviceChannelMapper.getBusinessGroups(deviceId, ChannelIdType.BUSINESS_GROUP);
-            if (deviceChannels != null && deviceChannels.size() > 0) {
-                result.addAll(deviceChannels);
-            }
-        }
-        return result;
     }
 
     @Override
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/GbStreamServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/GbStreamServiceImpl.java
index 0cde5fe..3fb2f93 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/GbStreamServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/GbStreamServiceImpl.java
@@ -113,20 +113,15 @@
         deviceChannel.setStatus(gbStream.isStatus());
 
         deviceChannel.setRegisterWay(1);
-        deviceChannel.setCivilCode(platform.getAdministrativeDivision());
 
-        if (platform.getTreeType().equals(TreeType.CIVIL_CODE)){
-            deviceChannel.setCivilCode(catalogId);
-        }else if (platform.getTreeType().equals(TreeType.BUSINESS_GROUP)){
-            PlatformCatalog catalog = catalogMapper.select(catalogId);
-            if (catalog == null) {
-                deviceChannel.setParentId(platform.getDeviceGBId());
-                deviceChannel.setBusinessGroupId(null);
-            }else {
-                deviceChannel.setParentId(catalog.getId());
-                deviceChannel.setBusinessGroupId(catalog.getBusinessGroupId());
-            }
-
+        PlatformCatalog catalog = catalogMapper.select(catalogId);
+        if (catalog != null) {
+            deviceChannel.setCivilCode(catalog.getCivilCode());
+            deviceChannel.setParentId(catalog.getParentId());
+            deviceChannel.setBusinessGroupId(catalog.getBusinessGroupId());
+        }else {
+            deviceChannel.setCivilCode(platform.getAdministrativeDivision());
+            deviceChannel.setParentId(platform.getDeviceGBId());
         }
 
         deviceChannel.setModel("live");
@@ -221,20 +216,14 @@
         deviceChannel.setStatus(status != null && status);
 
         deviceChannel.setRegisterWay(1);
-        deviceChannel.setCivilCode(platform.getAdministrativeDivision());
-
-        if (platform.getTreeType().equals(TreeType.CIVIL_CODE)){
-            deviceChannel.setCivilCode(catalogId);
-        }else if (platform.getTreeType().equals(TreeType.BUSINESS_GROUP)){
-            PlatformCatalog catalog = catalogMapper.select(catalogId);
-            if (catalog == null) {
-                deviceChannel.setParentId(platform.getDeviceGBId());
-                deviceChannel.setBusinessGroupId(null);
-            }else {
-                deviceChannel.setParentId(catalog.getId());
-                deviceChannel.setBusinessGroupId(catalog.getBusinessGroupId());
-            }
-
+        PlatformCatalog catalog = catalogMapper.select(catalogId);
+        if (catalog != null) {
+            deviceChannel.setCivilCode(catalog.getCivilCode());
+            deviceChannel.setParentId(catalog.getParentId());
+            deviceChannel.setBusinessGroupId(catalog.getBusinessGroupId());
+        }else {
+            deviceChannel.setCivilCode(platform.getAdministrativeDivision());
+            deviceChannel.setParentId(platform.getDeviceGBId());
         }
 
         deviceChannel.setModel("live");
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/PlatformChannelServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/PlatformChannelServiceImpl.java
index 7d827d7..eeea29a 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/PlatformChannelServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/PlatformChannelServiceImpl.java
@@ -126,22 +126,17 @@
         List<DeviceChannel> deviceChannelList = new ArrayList<>();
         if (channelReduces.size() > 0){
             PlatformCatalog catalog = catalogManager.select(catalogId);
-            if (catalog == null && !catalogId.equals(platform.getDeviceGBId())) {
+            if (catalog == null || !catalogId.equals(platform.getDeviceGBId())) {
                 logger.warn("鏈煡璇㈠埌鐩綍{}鐨勪俊鎭�", catalogId);
                 return null;
             }
             for (ChannelReduce channelReduce : channelReduces) {
                 DeviceChannel deviceChannel = deviceChannelMapper.queryChannel(channelReduce.getDeviceId(), channelReduce.getChannelId());
                 deviceChannel.setParental(0);
+                deviceChannel.setCivilCode(catalog.getCivilCode());
+                deviceChannel.setParentId(catalog.getParentId());
+                deviceChannel.setBusinessGroupId(catalog.getBusinessGroupId());
                 deviceChannelList.add(deviceChannel);
-                if (platform.getTreeType().equals(TreeType.CIVIL_CODE)){
-                    deviceChannel.setCivilCode(catalogId);
-                }else if (platform.getTreeType().equals(TreeType.BUSINESS_GROUP)){
-                    deviceChannel.setParentId(catalogId);
-                    if (catalog != null) {
-                        deviceChannel.setBusinessGroupId(catalog.getBusinessGroupId());
-                    }
-                }
             }
         }
         return deviceChannelList;
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/PlatformServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/PlatformServiceImpl.java
index 63999b7..5a84dee 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/PlatformServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/PlatformServiceImpl.java
@@ -35,6 +35,8 @@
 public class PlatformServiceImpl implements IPlatformService {
 
     private final static String REGISTER_KEY_PREFIX = "platform_register_";
+
+    private final static String REGISTER_FAIL_AGAIN_KEY_PREFIX = "platform_register_fail_again_";
     private final static String KEEPALIVE_KEY_PREFIX = "platform_keepalive_";
 
     private final static Logger logger = LoggerFactory.getLogger(PlatformServiceImpl.class);
@@ -128,18 +130,12 @@
     @Override
     public boolean update(ParentPlatform parentPlatform) {
         logger.info("[鍥芥爣绾ц仈]鏇存柊骞冲彴 {}", parentPlatform.getDeviceGBId());
+        // TODO 鍚庣画鐗堟湰鍘婚櫎
+        parentPlatform.setTreeType("");
         parentPlatform.setCharacterSet(parentPlatform.getCharacterSet().toUpperCase());
         ParentPlatform parentPlatformOld = platformMapper.getParentPlatById(parentPlatform.getId());
         ParentPlatformCatch parentPlatformCatchOld = redisCatchStorage.queryPlatformCatchInfo(parentPlatformOld.getServerGBId());
         parentPlatform.setUpdateTime(DateUtil.getNow());
-        if (!parentPlatformOld.getTreeType().equals(parentPlatform.getTreeType())) {
-            // 鐩綍缁撴瀯鍙戠敓鍙樺寲锛屾竻绌轰箣鍓嶇殑鍏宠仈鍏崇郴
-            logger.info("淇濆瓨骞冲彴{}鏃跺彂鐜扮洰褰曠粨鏋勫彉鍖栵紝娓呯┖鍏宠仈鍏崇郴", parentPlatform.getDeviceGBId());
-            catalogMapper.delByPlatformId(parentPlatformOld.getServerGBId());
-            platformChannelMapper.delByPlatformId(parentPlatformOld.getServerGBId());
-            platformGbStreamMapper.delByPlatformId(parentPlatformOld.getServerGBId());
-        }
-
 
         // 鍋滄蹇冭烦瀹氭椂
         final String keepaliveTaskKey = KEEPALIVE_KEY_PREFIX + parentPlatformOld.getServerGBId();
@@ -150,12 +146,11 @@
         // 娉ㄩ攢鏃х殑
         try {
             if (parentPlatformOld.isStatus()) {
-                logger.info("淇濆瓨骞冲彴{}鏃跺彂鐜版晳骞冲彴鍦ㄧ嚎锛屽彂閫佹敞閿�鍛戒护", parentPlatformOld.getServerGBId());
+                logger.info("淇濆瓨骞冲彴{}鏃跺彂鐜版棫骞冲彴鍦ㄧ嚎锛屽彂閫佹敞閿�鍛戒护", parentPlatformOld.getServerGBId());
                 commanderForPlatform.unregister(parentPlatformOld, parentPlatformCatchOld.getSipTransactionInfo(), null, eventResult -> {
                     logger.info("[鍥芥爣绾ц仈] 娉ㄩ攢鎴愬姛锛� 骞冲彴锛歿}", parentPlatformOld.getServerGBId());
                 });
             }
-
         } catch (InvalidArgumentException | ParseException | SipException e) {
             logger.error("[鍛戒护鍙戦�佸け璐 鍥芥爣绾ц仈 娉ㄩ攢: {}", e.getMessage());
         }
@@ -188,9 +183,6 @@
                 logger.error("[鍛戒护鍙戦�佸け璐 鍥芥爣绾ц仈: {}", e.getMessage());
             }
         }
-        // 閲嶆柊寮�鍚畾鏃舵敞鍐岋紝 浣跨敤缁娑堟伅
-        // 閲嶆柊寮�濮嬪績璺充繚娲�
-
 
         return false;
     }
@@ -199,6 +191,9 @@
     @Override
     public void online(ParentPlatform parentPlatform, SipTransactionInfo sipTransactionInfo) {
         logger.info("[鍥芥爣绾ц仈]锛歿}, 骞冲彴涓婄嚎", parentPlatform.getServerGBId());
+        final String registerFailAgainTaskKey = REGISTER_FAIL_AGAIN_KEY_PREFIX + parentPlatform.getServerGBId();
+        dynamicTask.stop(registerFailAgainTaskKey);
+
         platformMapper.updateParentPlatformStatus(parentPlatform.getServerGBId(), true);
         ParentPlatformCatch parentPlatformCatch = redisCatchStorage.queryPlatformCatchInfo(parentPlatform.getServerGBId());
         if (parentPlatformCatch == null) {
@@ -239,15 +234,9 @@
                                     // 姝ゆ椂鏄涓夋蹇冭烦瓒呮椂锛� 骞冲彴绂荤嚎
                                     if (platformCatch.getKeepAliveReply()  == 2) {
                                         // 璁剧疆骞冲彴绂荤嚎锛屽苟閲嶆柊娉ㄥ唽
-                                        logger.info("[鍥芥爣绾ц仈] {}锛屼笁娆″績璺宠秴鏃跺悗鍐嶆鍙戣捣娉ㄥ唽", parentPlatform.getServerGBId());
-                                        try {
-                                            commanderForPlatform.register(parentPlatform, eventResult1 -> {
-                                                logger.info("[鍥芥爣绾ц仈] {}锛屼笁娆″績璺宠秴鏃跺悗鍐嶆鍙戣捣娉ㄥ唽浠嶇劧澶辫触锛屽紑濮嬪畾鏃跺彂璧锋敞鍐岋紝闂撮殧涓�1鍒嗛挓", parentPlatform.getServerGBId());
-                                                offline(parentPlatform, false);
-                                            }, null);
-                                        } catch (InvalidArgumentException | ParseException | SipException e) {
-                                            logger.error("[鍛戒护鍙戦�佸け璐 鍥芥爣绾ц仈 娉ㄥ唽: {}", e.getMessage());
-                                        }
+                                        logger.info("[鍥芥爣绾ц仈] 涓夋蹇冭烦瓒呮椂, 骞冲彴{}({})绂荤嚎", parentPlatform.getName(), parentPlatform.getServerGBId());
+                                        offline(parentPlatform, false);
+
                                     }
 
                                 }else {
@@ -273,21 +262,22 @@
 
     private void registerTask(ParentPlatform parentPlatform, SipTransactionInfo sipTransactionInfo){
         try {
-            // 璁剧疆瓒呮椂閲嶅彂锛� 鍚庣画浠庡簳灞傛敮鎸佹秷鎭噸鍙�
-            String key = KEEPALIVE_KEY_PREFIX + parentPlatform.getServerGBId() + "_timeout";
-            if (dynamicTask.isAlive(key)) {
-                return;
+            // 涓嶅湪鍚屼竴涓細璇濅腑缁鍒欐瘡娆″叏鏂版敞鍐�
+            if (!userSetting.isRegisterKeepIntDialog()) {
+                sipTransactionInfo = null;
             }
-            dynamicTask.startDelay(key, ()->{
-                registerTask(parentPlatform, sipTransactionInfo);
-            }, 1000);
-            logger.info("[鍥芥爣绾ц仈] 骞冲彴锛歿}娉ㄥ唽鍗冲皢鍒版湡锛屽紑濮嬬画璁�", parentPlatform.getServerGBId());
+
+            if (sipTransactionInfo == null) {
+                logger.info("[鍥芥爣绾ц仈] 骞冲彴锛歿}娉ㄥ唽鍗冲皢鍒版湡锛屽紑濮嬮噸鏂版敞鍐�", parentPlatform.getServerGBId());
+            }else {
+                logger.info("[鍥芥爣绾ц仈] 骞冲彴锛歿}娉ㄥ唽鍗冲皢鍒版湡锛屽紑濮嬬画璁�", parentPlatform.getServerGBId());
+            }
+
             commanderForPlatform.register(parentPlatform, sipTransactionInfo,  eventResult -> {
-                dynamicTask.stop(key);
+                logger.info("[鍥芥爣绾ц仈] 骞冲彴锛歿}娉ㄥ唽澶辫触锛寋}:{}", parentPlatform.getServerGBId(),
+                        eventResult.statusCode, eventResult.msg);
                 offline(parentPlatform, false);
-            },eventResult -> {
-                dynamicTask.stop(key);
-            });
+            }, null);
         } catch (InvalidArgumentException | ParseException | SipException e) {
             logger.error("[鍛戒护鍙戦�佸け璐 鍥芥爣绾ц仈瀹氭椂娉ㄥ唽: {}", e.getMessage());
         }
@@ -308,24 +298,35 @@
         // 鍋滄鎵�鏈夋帹娴�
         logger.info("[骞冲彴绂荤嚎] {}, 鍋滄鎵�鏈夋帹娴�", parentPlatform.getServerGBId());
         stopAllPush(parentPlatform.getServerGBId());
-        if (stopRegister) {
-            // 娓呴櫎娉ㄥ唽瀹氭椂
-            logger.info("[骞冲彴绂荤嚎] {}, 鍋滄瀹氭椂娉ㄥ唽浠诲姟", parentPlatform.getServerGBId());
-            final String registerTaskKey = REGISTER_KEY_PREFIX + parentPlatform.getServerGBId();
-            if (dynamicTask.contains(registerTaskKey)) {
-                dynamicTask.stop(registerTaskKey);
-            }
+
+        // 娓呴櫎娉ㄥ唽瀹氭椂
+        logger.info("[骞冲彴绂荤嚎] {}, 鍋滄瀹氭椂娉ㄥ唽浠诲姟", parentPlatform.getServerGBId());
+        final String registerTaskKey = REGISTER_KEY_PREFIX + parentPlatform.getServerGBId();
+        if (dynamicTask.contains(registerTaskKey)) {
+            dynamicTask.stop(registerTaskKey);
         }
         // 娓呴櫎蹇冭烦瀹氭椂
         logger.info("[骞冲彴绂荤嚎] {}, 鍋滄瀹氭椂鍙戦�佸績璺充换鍔�", parentPlatform.getServerGBId());
         final String keepaliveTaskKey = KEEPALIVE_KEY_PREFIX + parentPlatform.getServerGBId();
         if (dynamicTask.contains(keepaliveTaskKey)) {
-            // 娣诲姞蹇冭烦浠诲姟
+            // 娓呴櫎蹇冭烦浠诲姟
             dynamicTask.stop(keepaliveTaskKey);
         }
         // 鍋滄鐩綍璁㈤槄鍥炲
         logger.info("[骞冲彴绂荤嚎] {}, 鍋滄璁㈤槄鍥炲", parentPlatform.getServerGBId());
         subscribeHolder.removeAllSubscribe(parentPlatform.getServerGBId());
+        // 鍙戣捣瀹氭椂鑷姩閲嶆柊娉ㄥ唽
+        if (!stopRegister) {
+            // 璁剧疆涓�60绉掕嚜鍔ㄥ皾璇曢噸鏂版敞鍐�
+            final String registerFailAgainTaskKey = REGISTER_FAIL_AGAIN_KEY_PREFIX + parentPlatform.getServerGBId();
+            ParentPlatform platform = platformMapper.getParentPlatById(parentPlatform.getId());
+            if (platform.isEnable()) {
+                dynamicTask.startCron(registerFailAgainTaskKey,
+                        ()-> registerTask(platform, null),
+                        userSetting.getRegisterAgainAfterTime() * 1000);
+            }
+
+        }
     }
 
     private void stopAllPush(String platformId) {
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java
index 22b95c2..bd0d74f 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java
@@ -450,4 +450,14 @@
 
     @Select("select count(1) from wvp_device_channel")
     int getAllChannelCount();
+
+    @Select(value = {" <script>" +
+            "select * " +
+            "from device_channel " +
+            "where device_id=#{deviceId}" +
+            " <if test='parentId != null '> and parent_id = #{parentId} </if>" +
+            " <if test='parentId == null '> and parent_id is null </if>" +
+            " <if test='onlyCatalog == true '> and parental = 1 </if>" +
+            " </script>"})
+    List<DeviceChannel> getSubChannelsByDeviceId(String deviceId, String parentId, boolean onlyCatalog);
 }
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java
index f73339d..9239747 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java
@@ -128,51 +128,50 @@
 		List<DeviceChannel> addChannels = new ArrayList<>();
 		StringBuilder stringBuilder = new StringBuilder();
 		Map<String, Integer> subContMap = new HashMap<>();
-		if (deviceChannelList.size() > 0) {
-			// 鏁版嵁鍘婚噸
-			Set<String> gbIdSet = new HashSet<>();
-			for (DeviceChannel deviceChannel : deviceChannelList) {
-				if (!gbIdSet.contains(deviceChannel.getChannelId())) {
-					gbIdSet.add(deviceChannel.getChannelId());
-					deviceChannel.setUpdateTime(DateUtil.getNow());
-					if (allChannelMap.containsKey(deviceChannel.getChannelId())) {
-						deviceChannel.setStreamId(allChannelMap.get(deviceChannel.getChannelId()).getStreamId());
-						deviceChannel.setHasAudio(allChannelMap.get(deviceChannel.getChannelId()).isHasAudio());
-						if (allChannelMap.get(deviceChannel.getChannelId()).isStatus() !=deviceChannel.isStatus()){
-							List<String> strings = platformChannelMapper.queryParentPlatformByChannelId(deviceChannel.getChannelId());
-							if (!CollectionUtils.isEmpty(strings)){
-								strings.forEach(platformId->{
-									eventPublisher.catalogEventPublish(platformId, deviceChannel, deviceChannel.isStatus()?CatalogEvent.ON:CatalogEvent.OFF);
-								});
-							}
-						}
-						updateChannels.add(deviceChannel);
-					}else {
-						deviceChannel.setCreateTime(DateUtil.getNow());
-						addChannels.add(deviceChannel);
-					}
-					channels.add(deviceChannel);
-					if (!ObjectUtils.isEmpty(deviceChannel.getParentId())) {
-						if (subContMap.get(deviceChannel.getParentId()) == null) {
-							subContMap.put(deviceChannel.getParentId(), 1);
-						}else {
-							Integer count = subContMap.get(deviceChannel.getParentId());
-							subContMap.put(deviceChannel.getParentId(), count++);
-						}
-					}
-				}else {
-					stringBuilder.append(deviceChannel.getChannelId()).append(",");
-				}
-			}
-			if (channels.size() > 0) {
-				for (DeviceChannel channel : channels) {
-					if (subContMap.get(channel.getChannelId()) != null){
-						channel.setSubCount(subContMap.get(channel.getChannelId()));
-					}
-				}
-			}
 
+		// 鏁版嵁鍘婚噸
+		Set<String> gbIdSet = new HashSet<>();
+		for (DeviceChannel deviceChannel : deviceChannelList) {
+			if (gbIdSet.contains(deviceChannel.getChannelId())) {
+				stringBuilder.append(deviceChannel.getChannelId()).append(",");
+				continue;
+			}
+			gbIdSet.add(deviceChannel.getChannelId());
+			if (allChannelMap.containsKey(deviceChannel.getChannelId())) {
+				deviceChannel.setStreamId(allChannelMap.get(deviceChannel.getChannelId()).getStreamId());
+				deviceChannel.setHasAudio(allChannelMap.get(deviceChannel.getChannelId()).isHasAudio());
+				if (allChannelMap.get(deviceChannel.getChannelId()).getStatus() !=deviceChannel.getStatus()){
+					List<String> strings = platformChannelMapper.queryParentPlatformByChannelId(deviceChannel.getChannelId());
+					if (!CollectionUtils.isEmpty(strings)){
+						strings.forEach(platformId->{
+							eventPublisher.catalogEventPublish(platformId, deviceChannel, deviceChannel.getStatus()==1?CatalogEvent.ON:CatalogEvent.OFF);
+						});
+					}
+
+				}
+			}
+			channels.add(deviceChannel);
+			if (!ObjectUtils.isEmpty(deviceChannel.getParentId())) {
+				if (subContMap.get(deviceChannel.getParentId()) == null) {
+					subContMap.put(deviceChannel.getParentId(), 1);
+				}else {
+					Integer count = subContMap.get(deviceChannel.getParentId());
+					subContMap.put(deviceChannel.getParentId(), count++);
+				}
+			}
 		}
+		if (channels.size() > 0) {
+			for (DeviceChannel channel : channels) {
+				if (subContMap.get(channel.getChannelId()) != null){
+					Integer count = subContMap.get(channel.getChannelId());
+					if (count > 0) {
+						channel.setSubCount(count);
+						channel.setParental(1);
+					}
+				}
+			}
+		}
+
 		if (stringBuilder.length() > 0) {
 			logger.info("[鐩綍鏌ヨ]鏀跺埌鐨勬暟鎹瓨鍦ㄩ噸澶嶏細 {}" , stringBuilder);
 		}
@@ -795,25 +794,49 @@
 		if (platform == null) {
 			return 0;
 		}
-		if (platform.getTreeType().equals(TreeType.BUSINESS_GROUP)) {
-			if (platform.getDeviceGBId().equals(platformCatalog.getParentId())) {
-				// 绗竴灞傝妭鐐�
-				platformCatalog.setBusinessGroupId(platformCatalog.getId());
-				platformCatalog.setParentId(platform.getDeviceGBId());
-			}else {
-				// 鑾峰彇椤跺眰鐨�
-				PlatformCatalog topCatalog = getTopCatalog(platformCatalog.getParentId(), platform.getDeviceGBId());
-				platformCatalog.setBusinessGroupId(topCatalog.getId());
+		if (platformCatalog.getId().length() <= 8) {
+			platformCatalog.setCivilCode(platformCatalog.getParentId());
+		}else {
+			if (platformCatalog.getId().length() != 20) {
+				return 0;
+			}
+			if (platformCatalog.getParentId() != null) {
+				switch (Integer.parseInt(platformCatalog.getId().substring(10, 13))){
+					case 200:
+					case 215:
+						if (platformCatalog.getParentId().length() <= 8) {
+							platformCatalog.setCivilCode(platformCatalog.getParentId());
+						}else {
+							PlatformCatalog catalog = catalogMapper.select(platformCatalog.getParentId());
+							if (catalog != null) {
+								platformCatalog.setCivilCode(catalog.getCivilCode());
+							}
+						}
+						break;
+					case 216:
+						if (platformCatalog.getParentId().length() <= 8) {
+							platformCatalog.setCivilCode(platformCatalog.getParentId());
+						}else {
+							PlatformCatalog catalog = catalogMapper.select(platformCatalog.getParentId());
+							if (catalog == null) {
+								logger.warn("[娣诲姞鐩綍] 鏃犳硶鑾峰彇鐩綍{}鐨凜ivilCode鍜孊usinessGroupId", platformCatalog.getPlatformId());
+								break;
+							}
+							platformCatalog.setCivilCode(catalog.getCivilCode());
+							if (Integer.parseInt(platformCatalog.getParentId().substring(10, 13)) == 215) {
+								platformCatalog.setBusinessGroupId(platformCatalog.getParentId());
+							}else {
+								if (Integer.parseInt(platformCatalog.getParentId().substring(10, 13)) == 216) {
+									platformCatalog.setBusinessGroupId(catalog.getBusinessGroupId());
+								}
+							}
+						}
+						break;
+					default:
+						break;
+				}
 			}
 		}
-		if (platform.getTreeType().equals(TreeType.CIVIL_CODE)) {
-			platformCatalog.setCivilCode(platformCatalog.getId());
-			if (platformCatalog.getPlatformId().equals(platformCatalog.getParentId())) {
-				// 绗竴灞傝妭鐐�
-				platformCatalog.setParentId(platform.getDeviceGBId());
-			}
-		}
-
 		int result = catalogMapper.add(platformCatalog);
 		if (result > 0) {
 			DeviceChannel deviceChannel = getDeviceChannelByCatalog(platformCatalog);
@@ -937,19 +960,14 @@
 		DeviceChannel deviceChannel = new DeviceChannel();
 		deviceChannel.setChannelId(catalog.getId());
 		deviceChannel.setName(catalog.getName());
-		deviceChannel.setLongitude(0.0);
-		deviceChannel.setLatitude(0.0);
 		deviceChannel.setDeviceId(platform.getDeviceGBId());
 		deviceChannel.setManufacture("wvp-pro");
 		deviceChannel.setStatus(true);
 		deviceChannel.setParental(1);
 
 		deviceChannel.setRegisterWay(1);
-		// 琛屾斂鍖哄垝搴旇鏄疍omain鐨勫墠鍏綅
-		if (platform.getTreeType().equals(TreeType.BUSINESS_GROUP)) {
-			deviceChannel.setParentId(catalog.getParentId());
-			deviceChannel.setBusinessGroupId(catalog.getBusinessGroupId());
-		}
+		deviceChannel.setParentId(catalog.getParentId());
+		deviceChannel.setBusinessGroupId(catalog.getBusinessGroupId());
 
 		deviceChannel.setModel("live");
 		deviceChannel.setOwner("wvp-pro");
diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java
index 1b2a8f3..7cf78e9 100644
--- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java
+++ b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java
@@ -403,8 +403,12 @@
         if (platform == null) {
             throw new ControllerException(ErrorCode.ERROR100.getCode(), "骞冲彴鏈壘鍒�");
         }
-        if (platformId.equals(parentId)) {
-            parentId = platform.getDeviceGBId();
+//        if (platformId.equals(parentId)) {
+//            parentId = platform.getDeviceGBId();
+//        }
+
+        if (platformId.equals(platform.getDeviceGBId())) {
+            parentId = null;
         }
 
         return storager.getChildrenCatalogByPlatform(platformId, parentId);
diff --git a/src/main/resources/all-application.yml b/src/main/resources/all-application.yml
index d67eac5..0b079f1 100644
--- a/src/main/resources/all-application.yml
+++ b/src/main/resources/all-application.yml
@@ -202,6 +202,10 @@
     device-status-notify: false
     # 涓婄骇骞冲彴鐐规挱鏃朵笉浣跨敤涓婄骇骞冲彴鎸囧畾鐨剆src锛屼娇鐢ㄨ嚜瀹氫箟鐨剆src锛屽弬鑰冨浗鏍囨枃妗�-鐐规挱澶栧煙璁惧濯掍綋娴丼SRC澶勭悊鏂瑰紡
     use-custom-ssrc-for-parent-invite: true
+    # 鍥芥爣绾ц仈绂荤嚎鍚庡涔呴噸璇曚竴娆℃敞鍐�
+    register-again-after-time: 60
+    # 鍥芥爣缁鏂瑰紡锛宼rue涓虹画璁紝姣忔娉ㄥ唽鍦ㄥ悓涓�涓細璇濋噷锛宖alse涓洪噸鏂版敞鍐岋紝姣忔浣跨敤鏂扮殑浼氳瘽
+    register-keep-int-dialog: false
     # 璺ㄥ煙閰嶇疆锛岄厤缃綘璁块棶鍓嶇椤甸潰鐨勫湴鍧�鍗冲彲锛� 鍙互閰嶇疆澶氫釜
     allowed-origins:
         - http://localhost:8008
diff --git a/src/main/resources/civilCode.csv b/src/main/resources/civilCode.csv
new file mode 100644
index 0000000..7785924
--- /dev/null
+++ b/src/main/resources/civilCode.csv
@@ -0,0 +1,3220 @@
+缂栧彿,鍚嶇О,涓婄骇
+11,鍖椾含甯�, 
+110101,涓滃煄鍖�,11
+110102,瑗垮煄鍖�,11
+110105,鏈濋槼鍖�,11
+110106,涓板彴鍖�,11
+110107,鐭虫櫙灞卞尯,11
+110108,娴锋穩鍖�,11
+110109,闂ㄥご娌熷尯,11
+110111,鎴垮北鍖�,11
+110112,閫氬窞鍖�,11
+110113,椤轰箟鍖�,11
+110114,鏄屽钩鍖�,11
+110115,澶у叴鍖�,11
+110116,鎬�鏌斿尯,11
+110117,骞宠胺鍖�,11
+110118,瀵嗕簯鍖�,11
+110119,寤跺簡鍖�,11
+12,澶╂触甯�, 
+120101,鍜屽钩鍖�,12
+120102,娌充笢鍖�,12
+120103,娌宠タ鍖�,12
+120104,鍗楀紑鍖�,12
+120105,娌冲寳鍖�,12
+120106,绾㈡ˉ鍖�,12
+120110,涓滀附鍖�,12
+120111,瑗块潚鍖�,12
+120112,娲ュ崡鍖�,12
+120113,鍖楄景鍖�,12
+120114,姝︽竻鍖�,12
+120115,瀹濆澔鍖�,12
+120116,婊ㄦ捣鏂板尯,12
+120117,瀹佹渤鍖�,12
+120118,闈欐捣鍖�,12
+120119,钃熷窞鍖�,12
+13,娌冲寳鐪�, 
+1301,鐭冲搴勫競,13
+130102,闀垮畨鍖�,1301
+130104,妗ヨタ鍖�,1301
+130105,鏂板崕鍖�,1301
+130107,浜曢檳鐭垮尯,1301
+130108,瑁曞崕鍖�,1301
+130109,钘佸煄鍖�,1301
+130110,楣挎硥鍖�,1301
+130111,鏍惧煄鍖�,1301
+130121,浜曢檳鍘�,1301
+130123,姝e畾鍘�,1301
+130125,琛屽攼鍘�,1301
+130126,鐏靛鍘�,1301
+130127,楂橀倯鍘�,1301
+130128,娣辨辰鍘�,1301
+130129,璧炵殗鍘�,1301
+130130,鏃犳瀬鍘�,1301
+130131,骞冲北鍘�,1301
+130132,鍏冩皬鍘�,1301
+130133,璧靛幙,1301
+130181,杈涢泦甯�,1301
+130183,鏅嬪窞甯�,1301
+130184,鏂颁箰甯�,1301
+1302,鍞愬北甯�,13
+130202,璺崡鍖�,1302
+130203,璺寳鍖�,1302
+130204,鍙ゅ喍鍖�,1302
+130205,寮�骞冲尯,1302
+130207,涓板崡鍖�,1302
+130208,涓版鼎鍖�,1302
+130209,鏇瑰鐢稿尯,1302
+130224,婊﹀崡鍘�,1302
+130225,涔愪涵鍘�,1302
+130227,杩佽タ鍘�,1302
+130229,鐜夌敯鍘�,1302
+130281,閬靛寲甯�,1302
+130283,杩佸畨甯�,1302
+130284,婊﹀窞甯�,1302
+1303,绉︾殗宀涘競,13
+130302,娴锋腐鍖�,1303
+130303,灞辨捣鍏冲尯,1303
+130304,鍖楁埓娌冲尯,1303
+130306,鎶氬畞鍖�,1303
+130321,闈掗緳婊℃棌鑷不鍘�,1303
+130322,鏄岄粠鍘�,1303
+130324,鍗㈤緳鍘�,1303
+1304,閭兏甯�,13
+130402,閭北鍖�,1304
+130403,涓涘彴鍖�,1304
+130404,澶嶅叴鍖�,1304
+130406,宄板嘲鐭垮尯,1304
+130407,鑲ヤ埂鍖�,1304
+130408,姘稿勾鍖�,1304
+130423,涓存汲鍘�,1304
+130424,鎴愬畨鍘�,1304
+130425,澶у悕鍘�,1304
+130426,娑夊幙,1304
+130427,纾佸幙,1304
+130430,閭卞幙,1304
+130431,楦℃辰鍘�,1304
+130432,骞垮钩鍘�,1304
+130433,棣嗛櫠鍘�,1304
+130434,榄忓幙,1304
+130435,鏇插懆鍘�,1304
+130481,姝﹀畨甯�,1304
+1305,閭㈠彴甯�,13
+130502,妗ヤ笢鍖�,1305
+130503,妗ヨタ鍖�,1305
+130521,閭㈠彴鍘�,1305
+130522,涓村煄鍘�,1305
+130523,鍐呬笜鍘�,1305
+130524,鏌忎埂鍘�,1305
+130525,闅嗗哀鍘�,1305
+130526,浠诲幙,1305
+130527,鍗楀拰鍘�,1305
+130528,瀹佹檵鍘�,1305
+130529,宸ㄩ箍鍘�,1305
+130530,鏂版渤鍘�,1305
+130531,骞垮畻鍘�,1305
+130532,骞充埂鍘�,1305
+130533,濞佸幙,1305
+130534,娓呮渤鍘�,1305
+130535,涓磋タ鍘�,1305
+130581,鍗楀甯�,1305
+130582,娌欐渤甯�,1305
+1306,淇濆畾甯�,13
+130602,绔炵鍖�,1306
+130606,鑾叉睜鍖�,1306
+130607,婊″煄鍖�,1306
+130608,娓呰嫅鍖�,1306
+130609,寰愭按鍖�,1306
+130623,娑炴按鍘�,1306
+130624,闃滃钩鍘�,1306
+130626,瀹氬叴鍘�,1306
+130627,鍞愬幙,1306
+130628,楂橀槼鍘�,1306
+130629,瀹瑰煄鍘�,1306
+130630,娑炴簮鍘�,1306
+130631,鏈涢兘鍘�,1306
+130632,瀹夋柊鍘�,1306
+130633,鏄撳幙,1306
+130634,鏇查槼鍘�,1306
+130635,锠″幙,1306
+130636,椤哄钩鍘�,1306
+130637,鍗氶噹鍘�,1306
+130638,闆勫幙,1306
+130681,娑垮窞甯�,1306
+130682,瀹氬窞甯�,1306
+130683,瀹夊浗甯�,1306
+130684,楂樼搴楀競,1306
+1307,寮犲鍙e競,13
+130702,妗ヤ笢鍖�,1307
+130703,妗ヨタ鍖�,1307
+130705,瀹e寲鍖�,1307
+130706,涓嬭姳鍥尯,1307
+130708,涓囧叏鍖�,1307
+130709,宕囩ぜ鍖�,1307
+130722,寮犲寳鍘�,1307
+130723,搴蜂繚鍘�,1307
+130724,娌芥簮鍘�,1307
+130725,灏氫箟鍘�,1307
+130726,钄氬幙,1307
+130727,闃冲師鍘�,1307
+130728,鎬�瀹夊幙,1307
+130730,鎬�鏉ュ幙,1307
+130731,娑块箍鍘�,1307
+130732,璧ゅ煄鍘�,1307
+1308,鎵垮痉甯�,13
+130802,鍙屾ˉ鍖�,1308
+130803,鍙屾沪鍖�,1308
+130804,楣版墜钀ュ瓙鐭垮尯,1308
+130821,鎵垮痉鍘�,1308
+130822,鍏撮殕鍘�,1308
+130824,婊﹀钩鍘�,1308
+130825,闅嗗寲鍘�,1308
+130826,涓板畞婊℃棌鑷不鍘�,1308
+130827,瀹藉煄婊℃棌鑷不鍘�,1308
+130828,鍥村満婊℃棌钂欏彜鏃忚嚜娌诲幙,1308
+130881,骞虫硥甯�,1308
+1309,娌у窞甯�,13
+130902,鏂板崕鍖�,1309
+130903,杩愭渤鍖�,1309
+130921,娌у幙,1309
+130922,闈掑幙,1309
+130923,涓滃厜鍘�,1309
+130924,娴峰叴鍘�,1309
+130925,鐩愬北鍘�,1309
+130926,鑲冨畞鍘�,1309
+130927,鍗楃毊鍘�,1309
+130928,鍚存ˉ鍘�,1309
+130929,鐚幙,1309
+130930,瀛熸潙鍥炴棌鑷不鍘�,1309
+130981,娉婂ご甯�,1309
+130982,浠讳笜甯�,1309
+130983,榛勯獏甯�,1309
+130984,娌抽棿甯�,1309
+1310,寤婂潑甯�,13
+131002,瀹夋鍖�,1310
+131003,骞块槼鍖�,1310
+131022,鍥哄畨鍘�,1310
+131023,姘告竻鍘�,1310
+131024,棣欐渤鍘�,1310
+131025,澶у煄鍘�,1310
+131026,鏂囧畨鍘�,1310
+131028,澶у巶鍥炴棌鑷不鍘�,1310
+131081,闇稿窞甯�,1310
+131082,涓夋渤甯�,1310
+1311,琛℃按甯�,13
+131102,妗冨煄鍖�,1311
+131103,鍐�宸炲尯,1311
+131121,鏋e己鍘�,1311
+131122,姝﹂倯鍘�,1311
+131123,姝﹀己鍘�,1311
+131124,楗堕槼鍘�,1311
+131125,瀹夊钩鍘�,1311
+131126,鏁呭煄鍘�,1311
+131127,鏅幙,1311
+131128,闃滃煄鍘�,1311
+131182,娣卞窞甯�,1311
+14,灞辫タ鐪�, 
+1401,澶師甯�,14
+140105,灏忓簵鍖�,1401
+140106,杩庢辰鍖�,1401
+140107,鏉忚姳宀尯,1401
+140108,灏栬崏鍧尯,1401
+140109,涓囨煆鏋楀尯,1401
+140110,鏅嬫簮鍖�,1401
+140121,娓呭緪鍘�,1401
+140122,闃虫洸鍘�,1401
+140123,濞勭儲鍘�,1401
+140181,鍙や氦甯�,1401
+1402,澶у悓甯�,14
+140212,鏂拌崳鍖�,1402
+140213,骞冲煄鍖�,1402
+140214,浜戝唸鍖�,1402
+140215,浜戝窞鍖�,1402
+140221,闃抽珮鍘�,1402
+140222,澶╅晣鍘�,1402
+140223,骞跨伒鍘�,1402
+140224,鐏典笜鍘�,1402
+140225,娴戞簮鍘�,1402
+140226,宸︿簯鍘�,1402
+1403,闃虫硥甯�,14
+140302,鍩庡尯,1403
+140303,鐭垮尯,1403
+140311,閮婂尯,1403
+140321,骞冲畾鍘�,1403
+140322,鐩傚幙,1403
+1404,闀挎不甯�,14
+140403,娼炲窞鍖�,1404
+140404,涓婂厷鍖�,1404
+140405,灞暀鍖�,1404
+140406,娼炲煄鍖�,1404
+140423,瑗勫灒鍘�,1404
+140425,骞抽『鍘�,1404
+140426,榛庡煄鍘�,1404
+140427,澹跺叧鍘�,1404
+140428,闀垮瓙鍘�,1404
+140429,姝︿埂鍘�,1404
+140430,娌佸幙,1404
+140431,娌佹簮鍘�,1404
+1405,鏅嬪煄甯�,14
+140502,鍩庡尯,1405
+140521,娌佹按鍘�,1405
+140522,闃冲煄鍘�,1405
+140524,闄靛窛鍘�,1405
+140525,娉藉窞鍘�,1405
+140581,楂樺钩甯�,1405
+1406,鏈斿窞甯�,14
+140602,鏈斿煄鍖�,1406
+140603,骞抽瞾鍖�,1406
+140621,灞遍槾鍘�,1406
+140622,搴斿幙,1406
+140623,鍙崇帀鍘�,1406
+140681,鎬�浠佸競,1406
+1407,鏅嬩腑甯�,14
+140702,姒嗘鍖�,1407
+140721,姒嗙ぞ鍘�,1407
+140722,宸︽潈鍘�,1407
+140723,鍜岄『鍘�,1407
+140724,鏄旈槼鍘�,1407
+140725,瀵块槼鍘�,1407
+140726,澶胺鍘�,1407
+140727,绁佸幙,1407
+140728,骞抽仴鍘�,1407
+140729,鐏电煶鍘�,1407
+140781,浠嬩紤甯�,1407
+1408,杩愬煄甯�,14
+140802,鐩愭箹鍖�,1408
+140821,涓寸寳鍘�,1408
+140822,涓囪崳鍘�,1408
+140823,闂诲枩鍘�,1408
+140824,绋峰北鍘�,1408
+140825,鏂扮粵鍘�,1408
+140826,缁涘幙,1408
+140827,鍨f洸鍘�,1408
+140828,澶忓幙,1408
+140829,骞抽檰鍘�,1408
+140830,鑺煄鍘�,1408
+140881,姘告祹甯�,1408
+140882,娌虫触甯�,1408
+1409,蹇诲窞甯�,14
+140902,蹇诲簻鍖�,1409
+140921,瀹氳鍘�,1409
+140922,浜斿彴鍘�,1409
+140923,浠e幙,1409
+140924,绻佸硻鍘�,1409
+140925,瀹佹鍘�,1409
+140926,闈欎箰鍘�,1409
+140927,绁炴睜鍘�,1409
+140928,浜斿鍘�,1409
+140929,宀㈠矚鍘�,1409
+140930,娌虫洸鍘�,1409
+140931,淇濆痉鍘�,1409
+140932,鍋忓叧鍘�,1409
+140981,鍘熷钩甯�,1409
+1410,涓存本甯�,14
+141002,灏ч兘鍖�,1410
+141021,鏇叉矁鍘�,1410
+141022,缈煎煄鍘�,1410
+141023,瑗勬本鍘�,1410
+141024,娲礊鍘�,1410
+141025,鍙ゅ幙,1410
+141026,瀹夋辰鍘�,1410
+141027,娴北鍘�,1410
+141028,鍚夊幙,1410
+141029,涔″畞鍘�,1410
+141030,澶у畞鍘�,1410
+141031,闅板幙,1410
+141032,姘稿拰鍘�,1410
+141033,钂插幙,1410
+141034,姹捐タ鍘�,1410
+141081,渚┈甯�,1410
+141082,闇嶅窞甯�,1410
+1411,鍚曟甯�,14
+141102,绂荤煶鍖�,1411
+141121,鏂囨按鍘�,1411
+141122,浜ゅ煄鍘�,1411
+141123,鍏村幙,1411
+141124,涓村幙,1411
+141125,鏌虫灄鍘�,1411
+141126,鐭虫ゼ鍘�,1411
+141127,宀氬幙,1411
+141128,鏂瑰北鍘�,1411
+141129,涓槼鍘�,1411
+141130,浜ゅ彛鍘�,1411
+141181,瀛濅箟甯�,1411
+141182,姹鹃槼甯�,1411
+15,鍐呰挋鍙よ嚜娌诲尯, 
+1501,鍛煎拰娴╃壒甯�,15
+150102,鏂板煄鍖�,1501
+150103,鍥炴皯鍖�,1501
+150104,鐜夋硥鍖�,1501
+150105,璧涚綍鍖�,1501
+150121,鍦熼粯鐗瑰乏鏃�,1501
+150122,鎵樺厠鎵樺幙,1501
+150123,鍜屾灄鏍煎皵鍘�,1501
+150124,娓呮按娌冲幙,1501
+150125,姝﹀窛鍘�,1501
+1502,鍖呭ご甯�,15
+150202,涓滄渤鍖�,1502
+150203,鏄嗛兘浠戝尯,1502
+150204,闈掑北鍖�,1502
+150205,鐭虫嫄鍖�,1502
+150206,鐧戒簯閯傚崥鐭垮尯,1502
+150207,涔濆師鍖�,1502
+150221,鍦熼粯鐗瑰彸鏃�,1502
+150222,鍥洪槼鍘�,1502
+150223,杈惧皵缃曡寕鏄庡畨鑱斿悎鏃�,1502
+1503,涔屾捣甯�,15
+150302,娴峰媰婀惧尯,1503
+150303,娴峰崡鍖�,1503
+150304,涔岃揪鍖�,1503
+1504,璧ゅ嘲甯�,15
+150402,绾㈠北鍖�,1504
+150403,鍏冨疂灞卞尯,1504
+150404,鏉惧北鍖�,1504
+150421,闃块瞾绉戝皵娌佹棗,1504
+150422,宸存灄宸︽棗,1504
+150423,宸存灄鍙虫棗,1504
+150424,鏋楄タ鍘�,1504
+150425,鍏嬩粈鍏嬭吘鏃�,1504
+150426,缈佺墰鐗规棗,1504
+150428,鍠�鍠囨瞾鏃�,1504
+150429,瀹佸煄鍘�,1504
+150430,鏁栨眽鏃�,1504
+1505,閫氳窘甯�,15
+150502,绉戝皵娌佸尯,1505
+150521,绉戝皵娌佸乏缈间腑鏃�,1505
+150522,绉戝皵娌佸乏缈煎悗鏃�,1505
+150523,寮�椴佸幙,1505
+150524,搴撲鸡鏃�,1505
+150525,濂堟浖鏃�,1505
+150526,鎵庨瞾鐗规棗,1505
+150581,闇嶆灄閮嫆甯�,1505
+1506,閯傚皵澶氭柉甯�,15
+150602,涓滆儨鍖�,1506
+150603,搴峰反浠�鍖�,1506
+150621,杈炬媺鐗规棗,1506
+150622,鍑嗘牸灏旀棗,1506
+150623,閯傛墭鍏嬪墠鏃�,1506
+150624,閯傛墭鍏嬫棗,1506
+150625,鏉敠鏃�,1506
+150626,涔屽鏃�,1506
+150627,浼婇噾闇嶆礇鏃�,1506
+1507,鍛间鸡璐濆皵甯�,15
+150702,娴锋媺灏斿尯,1507
+150703,鎵庤祲璇哄皵鍖�,1507
+150721,闃胯崳鏃�,1507
+150722,鑾姏杈剧摝杈炬枴灏旀棌鑷不鏃�,1507
+150723,閯備鸡鏄ヨ嚜娌绘棗,1507
+150724,閯傛俯鍏嬫棌鑷不鏃�,1507
+150725,闄堝反灏旇檸鏃�,1507
+150726,鏂板反灏旇檸宸︽棗,1507
+150727,鏂板反灏旇檸鍙虫棗,1507
+150781,婊℃床閲屽競,1507
+150782,鐗欏厠鐭冲競,1507
+150783,鎵庡叞灞競,1507
+150784,棰濆皵鍙ょ撼甯�,1507
+150785,鏍规渤甯�,1507
+1508,宸村溅娣栧皵甯�,15
+150802,涓存渤鍖�,1508
+150821,浜斿師鍘�,1508
+150822,纾村彛鍘�,1508
+150823,涔屾媺鐗瑰墠鏃�,1508
+150824,涔屾媺鐗逛腑鏃�,1508
+150825,涔屾媺鐗瑰悗鏃�,1508
+150826,鏉敠鍚庢棗,1508
+1509,涔屽叞瀵熷竷甯�,15
+150902,闆嗗畞鍖�,1509
+150921,鍗撹祫鍘�,1509
+150922,鍖栧痉鍘�,1509
+150923,鍟嗛兘鍘�,1509
+150924,鍏村拰鍘�,1509
+150925,鍑夊煄鍘�,1509
+150926,瀵熷搱灏斿彸缈煎墠鏃�,1509
+150927,瀵熷搱灏斿彸缈间腑鏃�,1509
+150928,瀵熷搱灏斿彸缈煎悗鏃�,1509
+150929,鍥涘瓙鐜嬫棗,1509
+150981,涓伴晣甯�,1509
+1522,鍏村畨鐩�,15
+152201,涔屽叞娴╃壒甯�,1522
+152202,闃垮皵灞卞競,1522
+152221,绉戝皵娌佸彸缈煎墠鏃�,1522
+152222,绉戝皵娌佸彸缈间腑鏃�,1522
+152223,鎵庤祲鐗规棗,1522
+152224,绐佹硥鍘�,1522
+1525,閿℃灄閮嫆鐩�,15
+152501,浜岃繛娴╃壒甯�,1525
+152502,閿℃灄娴╃壒甯�,1525
+152522,闃垮反鍢庢棗,1525
+152523,鑻忓凹鐗瑰乏鏃�,1525
+152524,鑻忓凹鐗瑰彸鏃�,1525
+152525,涓滀箤鐝犵﹩娌佹棗,1525
+152526,瑗夸箤鐝犵﹩娌佹棗,1525
+152527,澶粏瀵烘棗,1525
+152528,闀堕粍鏃�,1525
+152529,姝i暥鐧芥棗,1525
+152530,姝h摑鏃�,1525
+152531,澶氫鸡鍘�,1525
+1529,闃挎媺鍠勭洘,15
+152921,闃挎媺鍠勫乏鏃�,1529
+152922,闃挎媺鍠勫彸鏃�,1529
+152923,棰濇祹绾虫棗,1529
+21,杈藉畞鐪�, 
+2101,娌堥槼甯�,21
+210102,鍜屽钩鍖�,2101
+210103,娌堟渤鍖�,2101
+210104,澶т笢鍖�,2101
+210105,鐨囧鍖�,2101
+210106,閾佽タ鍖�,2101
+210111,鑻忓灞尯,2101
+210112,娴戝崡鍖�,2101
+210113,娌堝寳鏂板尯,2101
+210114,浜庢椽鍖�,2101
+210115,杈戒腑鍖�,2101
+210123,搴峰钩鍘�,2101
+210124,娉曞簱鍘�,2101
+210181,鏂版皯甯�,2101
+2102,澶ц繛甯�,21
+210202,涓北鍖�,2102
+210203,瑗垮矖鍖�,2102
+210204,娌欐渤鍙e尯,2102
+210211,鐢樹簳瀛愬尯,2102
+210212,鏃呴『鍙e尯,2102
+210213,閲戝窞鍖�,2102
+210214,鏅叞搴楀尯,2102
+210224,闀挎捣鍘�,2102
+210281,鐡︽埧搴楀競,2102
+210283,搴勬渤甯�,2102
+2103,闉嶅北甯�,21
+210302,閾佷笢鍖�,2103
+210303,閾佽タ鍖�,2103
+210304,绔嬪北鍖�,2103
+210311,鍗冨北鍖�,2103
+210321,鍙板畨鍘�,2103
+210323,宀博婊℃棌鑷不鍘�,2103
+210381,娴峰煄甯�,2103
+2104,鎶氶『甯�,21
+210402,鏂版姎鍖�,2104
+210403,涓滄床鍖�,2104
+210404,鏈涜姳鍖�,2104
+210411,椤哄煄鍖�,2104
+210421,鎶氶『鍘�,2104
+210422,鏂板婊℃棌鑷不鍘�,2104
+210423,娓呭師婊℃棌鑷不鍘�,2104
+2105,鏈邯甯�,21
+210502,骞冲北鍖�,2105
+210503,婧箹鍖�,2105
+210504,鏄庡北鍖�,2105
+210505,鍗楄姮鍖�,2105
+210521,鏈邯婊℃棌鑷不鍘�,2105
+210522,妗撲粊婊℃棌鑷不鍘�,2105
+2106,涓逛笢甯�,21
+210602,鍏冨疂鍖�,2106
+210603,鎸叴鍖�,2106
+210604,鎸畨鍖�,2106
+210624,瀹界敻婊℃棌鑷不鍘�,2106
+210681,涓滄腐甯�,2106
+210682,鍑ゅ煄甯�,2106
+2107,閿﹀窞甯�,21
+210702,鍙ゅ鍖�,2107
+210703,鍑屾渤鍖�,2107
+210711,澶拰鍖�,2107
+210726,榛戝北鍘�,2107
+210727,涔夊幙,2107
+210781,鍑屾捣甯�,2107
+210782,鍖楅晣甯�,2107
+2108,钀ュ彛甯�,21
+210802,绔欏墠鍖�,2108
+210803,瑗垮競鍖�,2108
+210804,椴呴奔鍦堝尯,2108
+210811,鑰佽竟鍖�,2108
+210881,鐩栧窞甯�,2108
+210882,澶х煶妗ュ競,2108
+2109,闃滄柊甯�,21
+210902,娴峰窞鍖�,2109
+210903,鏂伴偙鍖�,2109
+210904,澶钩鍖�,2109
+210905,娓呮渤闂ㄥ尯,2109
+210911,缁嗘渤鍖�,2109
+210921,闃滄柊钂欏彜鏃忚嚜娌诲幙,2109
+210922,褰版鍘�,2109
+2110,杈介槼甯�,21
+211002,鐧藉鍖�,2110
+211003,鏂囧湥鍖�,2110
+211004,瀹忎紵鍖�,2110
+211005,寮撻暱宀尯,2110
+211011,澶瓙娌冲尯,2110
+211021,杈介槼鍘�,2110
+211081,鐏甯�,2110
+2111,鐩橀敠甯�,21
+211102,鍙屽彴瀛愬尯,2111
+211103,鍏撮殕鍙板尯,2111
+211104,澶ф醇鍖�,2111
+211122,鐩樺北鍘�,2111
+2112,閾佸箔甯�,21
+211202,閾跺窞鍖�,2112
+211204,娓呮渤鍖�,2112
+211221,閾佸箔鍘�,2112
+211223,瑗夸赴鍘�,2112
+211224,鏄屽浘鍘�,2112
+211281,璋冨叺灞卞競,2112
+211282,寮�鍘熷競,2112
+2113,鏈濋槼甯�,21
+211302,鍙屽鍖�,2113
+211303,榫欏煄鍖�,2113
+211321,鏈濋槼鍘�,2113
+211322,寤哄钩鍘�,2113
+211324,鍠�鍠囨瞾宸︾考钂欏彜鏃忚嚜娌诲幙,2113
+211381,鍖楃エ甯�,2113
+211382,鍑屾簮甯�,2113
+2114,钁姦宀涘競,21
+211402,杩炲北鍖�,2114
+211403,榫欐腐鍖�,2114
+211404,鍗楃エ鍖�,2114
+211421,缁ヤ腑鍘�,2114
+211422,寤烘槍鍘�,2114
+211481,鍏村煄甯�,2114
+22,鍚夋灄鐪�, 
+2201,闀挎槬甯�,22
+220102,鍗楀叧鍖�,2201
+220103,瀹藉煄鍖�,2201
+220104,鏈濋槼鍖�,2201
+220105,浜岄亾鍖�,2201
+220106,缁垮洯鍖�,2201
+220112,鍙岄槼鍖�,2201
+220113,涔濆彴鍖�,2201
+220122,鍐滃畨鍘�,2201
+220182,姒嗘爲甯�,2201
+220183,寰锋儬甯�,2201
+2202,鍚夋灄甯�,22
+220202,鏄岄倯鍖�,2202
+220203,榫欐江鍖�,2202
+220204,鑸硅惀鍖�,2202
+220211,涓版弧鍖�,2202
+220221,姘稿悏鍘�,2202
+220281,铔熸渤甯�,2202
+220282,妗︾敻甯�,2202
+220283,鑸掑叞甯�,2202
+220284,纾愮煶甯�,2202
+2203,鍥涘钩甯�,22
+220302,閾佽タ鍖�,2203
+220303,閾佷笢鍖�,2203
+220322,姊ㄦ爲鍘�,2203
+220323,浼婇�氭弧鏃忚嚜娌诲幙,2203
+220381,鍏富宀競,2203
+220382,鍙岃窘甯�,2203
+2204,杈芥簮甯�,22
+220402,榫欏北鍖�,2204
+220403,瑗垮畨鍖�,2204
+220421,涓滀赴鍘�,2204
+220422,涓滆窘鍘�,2204
+2205,閫氬寲甯�,22
+220502,涓滄槍鍖�,2205
+220503,浜岄亾姹熷尯,2205
+220521,閫氬寲鍘�,2205
+220523,杈夊崡鍘�,2205
+220524,鏌虫渤鍘�,2205
+220581,姊呮渤鍙e競,2205
+220582,闆嗗畨甯�,2205
+2206,鐧藉北甯�,22
+220602,娴戞睙鍖�,2206
+220605,姹熸簮鍖�,2206
+220621,鎶氭澗鍘�,2206
+220622,闈栧畤鍘�,2206
+220623,闀跨櫧鏈濋矞鏃忚嚜娌诲幙,2206
+220681,涓存睙甯�,2206
+2207,鏉惧師甯�,22
+220702,瀹佹睙鍖�,2207
+220721,鍓嶉儹灏旂綏鏂挋鍙ゆ棌鑷不鍘�,2207
+220722,闀垮箔鍘�,2207
+220723,涔惧畨鍘�,2207
+220781,鎵朵綑甯�,2207
+2208,鐧藉煄甯�,22
+220802,娲寳鍖�,2208
+220821,闀囪祲鍘�,2208
+220822,閫氭鍘�,2208
+220881,娲崡甯�,2208
+220882,澶у畨甯�,2208
+2224,寤惰竟鏈濋矞鏃忚嚜娌诲窞,22
+222401,寤跺悏甯�,2224
+222402,鍥句滑甯�,2224
+222403,鏁﹀寲甯�,2224
+222404,鐝叉槬甯�,2224
+222405,榫欎簳甯�,2224
+222406,鍜岄緳甯�,2224
+222424,姹竻鍘�,2224
+222426,瀹夊浘鍘�,2224
+23,榛戦緳姹熺渷, 
+2301,鍝堝皵婊ㄥ競,23
+230102,閬撻噷鍖�,2301
+230103,鍗楀矖鍖�,2301
+230104,閬撳鍖�,2301
+230108,骞虫埧鍖�,2301
+230109,鏉惧寳鍖�,2301
+230110,棣欏潑鍖�,2301
+230111,鍛煎叞鍖�,2301
+230112,闃垮煄鍖�,2301
+230113,鍙屽煄鍖�,2301
+230123,渚濆叞鍘�,2301
+230124,鏂规鍘�,2301
+230125,瀹惧幙,2301
+230126,宸村溅鍘�,2301
+230127,鏈ㄥ叞鍘�,2301
+230128,閫氭渤鍘�,2301
+230129,寤跺鍘�,2301
+230183,灏氬織甯�,2301
+230184,浜斿父甯�,2301
+2302,榻愰綈鍝堝皵甯�,23
+230202,榫欐矙鍖�,2302
+230203,寤哄崕鍖�,2302
+230204,閾侀攱鍖�,2302
+230205,鏄傛槀婧尯,2302
+230206,瀵屾媺灏斿熀鍖�,2302
+230207,纰惧瓙灞卞尯,2302
+230208,姊呴噷鏂揪鏂″皵鏃忓尯,2302
+230221,榫欐睙鍘�,2302
+230223,渚濆畨鍘�,2302
+230224,娉版潵鍘�,2302
+230225,鐢樺崡鍘�,2302
+230227,瀵岃鍘�,2302
+230229,鍏嬪北鍘�,2302
+230230,鍏嬩笢鍘�,2302
+230231,鎷滄硥鍘�,2302
+230281,璁锋渤甯�,2302
+2303,楦¤タ甯�,23
+230302,楦″啝鍖�,2303
+230303,鎭掑北鍖�,2303
+230304,婊撮亾鍖�,2303
+230305,姊ㄦ爲鍖�,2303
+230306,鍩庡瓙娌冲尯,2303
+230307,楹诲北鍖�,2303
+230321,楦′笢鍘�,2303
+230381,铏庢灄甯�,2303
+230382,瀵嗗北甯�,2303
+2304,楣ゅ矖甯�,23
+230402,鍚戦槼鍖�,2304
+230403,宸ュ啘鍖�,2304
+230404,鍗楀北鍖�,2304
+230405,鍏村畨鍖�,2304
+230406,涓滃北鍖�,2304
+230407,鍏村北鍖�,2304
+230421,钀濆寳鍘�,2304
+230422,缁ユ花鍘�,2304
+2305,鍙岄腑灞卞競,23
+230502,灏栧北鍖�,2305
+230503,宀笢鍖�,2305
+230505,鍥涙柟鍙板尯,2305
+230506,瀹濆北鍖�,2305
+230521,闆嗚搐鍘�,2305
+230522,鍙嬭皧鍘�,2305
+230523,瀹濇竻鍘�,2305
+230524,楗舵渤鍘�,2305
+2306,澶у簡甯�,23
+230602,钀ㄥ皵鍥惧尯,2306
+230603,榫欏嚖鍖�,2306
+230604,璁╄儭璺尯,2306
+230605,绾㈠矖鍖�,2306
+230606,澶у悓鍖�,2306
+230621,鑲囧窞鍘�,2306
+230622,鑲囨簮鍘�,2306
+230623,鏋楃敻鍘�,2306
+230624,鏉滃皵浼壒钂欏彜鏃忚嚜娌诲幙,2306
+2307,浼婃槬甯�,23
+230702,浼婃槬鍖�,2307
+230703,鍗楀矓鍖�,2307
+230704,鍙嬪ソ鍖�,2307
+230705,瑗挎灄鍖�,2307
+230706,缈犲肠鍖�,2307
+230707,鏂伴潚鍖�,2307
+230708,缇庢邯鍖�,2307
+230709,閲戝北灞尯,2307
+230710,浜旇惀鍖�,2307
+230711,涔岄┈娌冲尯,2307
+230712,姹ゆ椇娌冲尯,2307
+230713,甯﹀箔鍖�,2307
+230714,涔屼紛宀尯,2307
+230715,绾㈡槦鍖�,2307
+230716,涓婄敇宀尯,2307
+230722,鍢夎崼鍘�,2307
+230781,閾佸姏甯�,2307
+2308,浣虫湪鏂競,23
+230803,鍚戦槼鍖�,2308
+230804,鍓嶈繘鍖�,2308
+230805,涓滈鍖�,2308
+230811,閮婂尯,2308
+230822,妗﹀崡鍘�,2308
+230826,妗﹀窛鍘�,2308
+230828,姹ゅ師鍘�,2308
+230881,鍚屾睙甯�,2308
+230882,瀵岄敠甯�,2308
+230883,鎶氳繙甯�,2308
+2309,涓冨彴娌冲競,23
+230902,鏂板叴鍖�,2309
+230903,妗冨北鍖�,2309
+230904,鑼勫瓙娌冲尯,2309
+230921,鍕冨埄鍘�,2309
+2310,鐗′腹姹熷競,23
+231002,涓滃畨鍖�,2310
+231003,闃虫槑鍖�,2310
+231004,鐖辨皯鍖�,2310
+231005,瑗垮畨鍖�,2310
+231025,鏋楀彛鍘�,2310
+231081,缁ヨ姮娌冲競,2310
+231083,娴锋灄甯�,2310
+231084,瀹佸畨甯�,2310
+231085,绌嗘1甯�,2310
+231086,涓滃畞甯�,2310
+2311,榛戞渤甯�,23
+231102,鐖辫緣鍖�,2311
+231121,瀚╂睙鍘�,2311
+231123,閫婂厠鍘�,2311
+231124,瀛欏惔鍘�,2311
+231181,鍖楀畨甯�,2311
+231182,浜斿ぇ杩炴睜甯�,2311
+2312,缁ュ寲甯�,23
+231202,鍖楁灄鍖�,2312
+231221,鏈涘鍘�,2312
+231222,鍏拌タ鍘�,2312
+231223,闈掑唸鍘�,2312
+231224,搴嗗畨鍘�,2312
+231225,鏄庢按鍘�,2312
+231226,缁ユ1鍘�,2312
+231281,瀹夎揪甯�,2312
+231282,鑲囦笢甯�,2312
+231283,娴蜂鸡甯�,2312
+2327,澶у叴瀹夊箔鍦板尯,23
+232701,婕犳渤甯�,2327
+232721,鍛肩帥鍘�,2327
+232722,濉旀渤鍘�,2327
+31,涓婃捣甯�, 
+310101,榛勬郸鍖�,31
+310104,寰愭眹鍖�,31
+310105,闀垮畞鍖�,31
+310106,闈欏畨鍖�,31
+310107,鏅檧鍖�,31
+310109,铏瑰彛鍖�,31
+310110,鏉ㄦ郸鍖�,31
+310112,闂佃鍖�,31
+310113,瀹濆北鍖�,31
+310114,鍢夊畾鍖�,31
+310115,娴︿笢鏂板尯,31
+310116,閲戝北鍖�,31
+310117,鏉炬睙鍖�,31
+310118,闈掓郸鍖�,31
+310120,濂夎搐鍖�,31
+310151,宕囨槑鍖�,31
+32,姹熻嫃鐪�, 
+3201,鍗椾含甯�,32
+320102,鐜勬鍖�,3201
+320104,绉︽樊鍖�,3201
+320105,寤洪偤鍖�,3201
+320106,榧撴ゼ鍖�,3201
+320111,娴﹀彛鍖�,3201
+320113,鏍栭湠鍖�,3201
+320114,闆ㄨ姳鍙板尯,3201
+320115,姹熷畞鍖�,3201
+320116,鍏悎鍖�,3201
+320117,婧ф按鍖�,3201
+320118,楂樻烦鍖�,3201
+3202,鏃犻敗甯�,32
+320205,閿″北鍖�,3202
+320206,鎯犲北鍖�,3202
+320211,婊ㄦ箹鍖�,3202
+320213,姊佹邯鍖�,3202
+320214,鏂板惔鍖�,3202
+320281,姹熼槾甯�,3202
+320282,瀹滃叴甯�,3202
+3203,寰愬窞甯�,32
+320302,榧撴ゼ鍖�,3203
+320303,浜戦緳鍖�,3203
+320305,璐炬豹鍖�,3203
+320311,娉夊北鍖�,3203
+320312,閾滃北鍖�,3203
+320321,涓板幙,3203
+320322,娌涘幙,3203
+320324,鐫㈠畞鍘�,3203
+320381,鏂版矀甯�,3203
+320382,閭冲窞甯�,3203
+3204,甯稿窞甯�,32
+320402,澶╁畞鍖�,3204
+320404,閽熸ゼ鍖�,3204
+320411,鏂板寳鍖�,3204
+320412,姝﹁繘鍖�,3204
+320413,閲戝潧鍖�,3204
+320481,婧ч槼甯�,3204
+3205,鑻忓窞甯�,32
+320505,铏庝笜鍖�,3205
+320506,鍚翠腑鍖�,3205
+320507,鐩稿煄鍖�,3205
+320508,濮戣嫃鍖�,3205
+320509,鍚存睙鍖�,3205
+320581,甯哥啛甯�,3205
+320582,寮犲娓競,3205
+320583,鏄嗗北甯�,3205
+320585,澶粨甯�,3205
+3206,鍗楅�氬競,32
+320602,宕囧窛鍖�,3206
+320611,娓椄鍖�,3206
+320612,閫氬窞鍖�,3206
+320623,濡備笢鍘�,3206
+320681,鍚笢甯�,3206
+320682,濡傜殝甯�,3206
+320684,娴烽棬甯�,3206
+320685,娴峰畨甯�,3206
+3207,杩炰簯娓競,32
+320703,杩炰簯鍖�,3207
+320706,娴峰窞鍖�,3207
+320707,璧f鍖�,3207
+320722,涓滄捣鍘�,3207
+320723,鐏屼簯鍘�,3207
+320724,鐏屽崡鍘�,3207
+3208,娣畨甯�,32
+320803,娣畨鍖�,3208
+320804,娣槾鍖�,3208
+320812,娓呮睙娴﹀尯,3208
+320813,娲辰鍖�,3208
+320826,娑熸按鍘�,3208
+320830,鐩辩湙鍘�,3208
+320831,閲戞箹鍘�,3208
+3209,鐩愬煄甯�,32
+320902,浜箹鍖�,3209
+320903,鐩愰兘鍖�,3209
+320904,澶т赴鍖�,3209
+320921,鍝嶆按鍘�,3209
+320922,婊ㄦ捣鍘�,3209
+320923,闃滃畞鍘�,3209
+320924,灏勯槼鍘�,3209
+320925,寤烘箹鍘�,3209
+320981,涓滃彴甯�,3209
+3210,鎵窞甯�,32
+321002,骞块櫟鍖�,3210
+321003,閭楁睙鍖�,3210
+321012,姹熼兘鍖�,3210
+321023,瀹濆簲鍘�,3210
+321081,浠緛甯�,3210
+321084,楂橀偖甯�,3210
+3211,闀囨睙甯�,32
+321102,浜彛鍖�,3211
+321111,娑﹀窞鍖�,3211
+321112,涓瑰緬鍖�,3211
+321181,涓归槼甯�,3211
+321182,鎵腑甯�,3211
+321183,鍙ュ甯�,3211
+3212,娉板窞甯�,32
+321202,娴烽櫟鍖�,3212
+321203,楂樻腐鍖�,3212
+321204,濮滃牥鍖�,3212
+321281,鍏村寲甯�,3212
+321282,闈栨睙甯�,3212
+321283,娉板叴甯�,3212
+3213,瀹胯縼甯�,32
+321302,瀹垮煄鍖�,3213
+321311,瀹胯鲍鍖�,3213
+321322,娌槼鍘�,3213
+321323,娉楅槼鍘�,3213
+321324,娉楁椽鍘�,3213
+33,娴欐睙鐪�, 
+3301,鏉窞甯�,33
+330102,涓婂煄鍖�,3301
+330103,涓嬪煄鍖�,3301
+330104,姹熷共鍖�,3301
+330105,鎷卞鍖�,3301
+330106,瑗挎箹鍖�,3301
+330108,婊ㄦ睙鍖�,3301
+330109,钀у北鍖�,3301
+330110,浣欐澀鍖�,3301
+330111,瀵岄槼鍖�,3301
+330112,涓村畨鍖�,3301
+330122,妗愬簮鍘�,3301
+330127,娣冲畨鍘�,3301
+330182,寤哄痉甯�,3301
+3302,瀹佹尝甯�,33
+330203,娴锋洐鍖�,3302
+330205,姹熷寳鍖�,3302
+330206,鍖椾粦鍖�,3302
+330211,闀囨捣鍖�,3302
+330212,閯炲窞鍖�,3302
+330213,濂夊寲鍖�,3302
+330225,璞″北鍘�,3302
+330226,瀹佹捣鍘�,3302
+330281,浣欏甯�,3302
+330282,鎱堟邯甯�,3302
+3303,娓╁窞甯�,33
+330302,楣垮煄鍖�,3303
+330303,榫欐咕鍖�,3303
+330304,鐡捣鍖�,3303
+330305,娲炲ご鍖�,3303
+330324,姘稿槈鍘�,3303
+330326,骞抽槼鍘�,3303
+330327,鑻嶅崡鍘�,3303
+330328,鏂囨垚鍘�,3303
+330329,娉伴『鍘�,3303
+330381,鐟炲畨甯�,3303
+330382,涔愭竻甯�,3303
+3304,鍢夊叴甯�,33
+330402,鍗楁箹鍖�,3304
+330411,绉�娲插尯,3304
+330421,鍢夊杽鍘�,3304
+330424,娴风洂鍘�,3304
+330481,娴峰畞甯�,3304
+330482,骞虫箹甯�,3304
+330483,妗愪埂甯�,3304
+3305,婀栧窞甯�,33
+330502,鍚村叴鍖�,3305
+330503,鍗楁禂鍖�,3305
+330521,寰锋竻鍘�,3305
+330522,闀垮叴鍘�,3305
+330523,瀹夊悏鍘�,3305
+3306,缁嶅叴甯�,33
+330602,瓒婂煄鍖�,3306
+330603,鏌ˉ鍖�,3306
+330604,涓婅櫈鍖�,3306
+330624,鏂版槍鍘�,3306
+330681,璇告毃甯�,3306
+330683,宓婂窞甯�,3306
+3307,閲戝崕甯�,33
+330702,濠哄煄鍖�,3307
+330703,閲戜笢鍖�,3307
+330723,姝︿箟鍘�,3307
+330726,娴︽睙鍘�,3307
+330727,纾愬畨鍘�,3307
+330781,鍏版邯甯�,3307
+330782,涔変箤甯�,3307
+330783,涓滈槼甯�,3307
+330784,姘稿悍甯�,3307
+3308,琛㈠窞甯�,33
+330802,鏌煄鍖�,3308
+330803,琛㈡睙鍖�,3308
+330822,甯稿北鍘�,3308
+330824,寮�鍖栧幙,3308
+330825,榫欐父鍘�,3308
+330881,姹熷北甯�,3308
+3309,鑸熷北甯�,33
+330902,瀹氭捣鍖�,3309
+330903,鏅檧鍖�,3309
+330921,宀卞北鍘�,3309
+330922,宓婃硹鍘�,3309
+3310,鍙板窞甯�,33
+331002,妞掓睙鍖�,3310
+331003,榛勫博鍖�,3310
+331004,璺ˉ鍖�,3310
+331022,涓夐棬鍘�,3310
+331023,澶╁彴鍘�,3310
+331024,浠欏眳鍘�,3310
+331081,娓╁箔甯�,3310
+331082,涓存捣甯�,3310
+331083,鐜夌幆甯�,3310
+3311,涓芥按甯�,33
+331102,鑾查兘鍖�,3311
+331121,闈掔敯鍘�,3311
+331122,缂欎簯鍘�,3311
+331123,閬傛槍鍘�,3311
+331124,鏉鹃槼鍘�,3311
+331125,浜戝拰鍘�,3311
+331126,搴嗗厓鍘�,3311
+331127,鏅畞鐣叉棌鑷不鍘�,3311
+331181,榫欐硥甯�,3311
+34,瀹夊窘鐪�, 
+3401,鍚堣偉甯�,34
+340102,鐟舵捣鍖�,3401
+340103,搴愰槼鍖�,3401
+340104,铚�灞卞尯,3401
+340111,鍖呮渤鍖�,3401
+340121,闀夸赴鍘�,3401
+340122,鑲ヤ笢鍘�,3401
+340123,鑲ヨタ鍘�,3401
+340124,搴愭睙鍘�,3401
+340181,宸㈡箹甯�,3401
+3402,鑺滄箹甯�,34
+340202,闀滄箹鍖�,3402
+340203,寮嬫睙鍖�,3402
+340207,楦犳睙鍖�,3402
+340208,涓夊北鍖�,3402
+340221,鑺滄箹鍘�,3402
+340222,绻佹槍鍘�,3402
+340223,鍗楅櫟鍘�,3402
+340225,鏃犱负鍘�,3402
+3403,铓屽煚甯�,34
+340302,榫欏瓙婀栧尯,3403
+340303,铓屽北鍖�,3403
+340304,绂逛細鍖�,3403
+340311,娣笂鍖�,3403
+340321,鎬�杩滃幙,3403
+340322,浜旀渤鍘�,3403
+340323,鍥洪晣鍘�,3403
+3404,娣崡甯�,34
+340402,澶ч�氬尯,3404
+340403,鐢板搴靛尯,3404
+340404,璋㈠闆嗗尯,3404
+340405,鍏叕灞卞尯,3404
+340406,娼橀泦鍖�,3404
+340421,鍑ゅ彴鍘�,3404
+340422,瀵垮幙,3404
+3405,椹瀺灞卞競,34
+340503,鑺卞北鍖�,3405
+340504,闆ㄥ北鍖�,3405
+340506,鍗氭湜鍖�,3405
+340521,褰撴秱鍘�,3405
+340522,鍚北鍘�,3405
+340523,鍜屽幙,3405
+3406,娣寳甯�,34
+340602,鏉滈泦鍖�,3406
+340603,鐩稿北鍖�,3406
+340604,鐑堝北鍖�,3406
+340621,婵夋邯鍘�,3406
+3407,閾滈櫟甯�,34
+340705,閾滃畼鍖�,3407
+340706,涔夊畨鍖�,3407
+340711,閮婂尯,3407
+340722,鏋為槼鍘�,3407
+3408,瀹夊簡甯�,34
+340802,杩庢睙鍖�,3408
+340803,澶ц鍖�,3408
+340811,瀹滅鍖�,3408
+340822,鎬�瀹佸幙,3408
+340825,澶箹鍘�,3408
+340826,瀹挎澗鍘�,3408
+340827,鏈涙睙鍘�,3408
+340828,宀宠タ鍘�,3408
+340881,妗愬煄甯�,3408
+340882,娼滃北甯�,3408
+3410,榛勫北甯�,34
+341002,灞邯鍖�,3410
+341003,榛勫北鍖�,3410
+341004,寰藉窞鍖�,3410
+341021,姝欏幙,3410
+341022,浼戝畞鍘�,3410
+341023,榛熷幙,3410
+341024,绁侀棬鍘�,3410
+3411,婊佸窞甯�,34
+341102,鐞呯悐鍖�,3411
+341103,鍗楄隘鍖�,3411
+341122,鏉ュ畨鍘�,3411
+341124,鍏ㄦ鍘�,3411
+341125,瀹氳繙鍘�,3411
+341126,鍑ら槼鍘�,3411
+341181,澶╅暱甯�,3411
+341182,鏄庡厜甯�,3411
+3412,闃滈槼甯�,34
+341202,棰嶅窞鍖�,3412
+341203,棰嶄笢鍖�,3412
+341204,棰嶆硥鍖�,3412
+341221,涓存硥鍘�,3412
+341222,澶拰鍘�,3412
+341225,闃滃崡鍘�,3412
+341226,棰嶄笂鍘�,3412
+341282,鐣岄甯�,3412
+3413,瀹垮窞甯�,34
+341302,鍩囨ˉ鍖�,3413
+341321,鐮�灞卞幙,3413
+341322,钀у幙,3413
+341323,鐏电挧鍘�,3413
+341324,娉楀幙,3413
+3415,鍏畨甯�,34
+341502,閲戝畨鍖�,3415
+341503,瑁曞畨鍖�,3415
+341504,鍙堕泦鍖�,3415
+341522,闇嶉偙鍘�,3415
+341523,鑸掑煄鍘�,3415
+341524,閲戝鍘�,3415
+341525,闇嶅北鍘�,3415
+3416,浜冲窞甯�,34
+341602,璋煄鍖�,3416
+341621,娑¢槼鍘�,3416
+341622,钂欏煄鍘�,3416
+341623,鍒╄緵鍘�,3416
+3417,姹犲窞甯�,34
+341702,璐垫睜鍖�,3417
+341721,涓滆嚦鍘�,3417
+341722,鐭冲彴鍘�,3417
+341723,闈掗槼鍘�,3417
+3418,瀹e煄甯�,34
+341802,瀹e窞鍖�,3418
+341821,閮庢邯鍘�,3418
+341822,骞垮痉鍘�,3418
+341823,娉惧幙,3418
+341824,缁╂邯鍘�,3418
+341825,鏃屽痉鍘�,3418
+341881,瀹佸浗甯�,3418
+35,绂忓缓鐪�, 
+3501,绂忓窞甯�,35
+350102,榧撴ゼ鍖�,3501
+350103,鍙版睙鍖�,3501
+350104,浠撳北鍖�,3501
+350105,椹熬鍖�,3501
+350111,鏅嬪畨鍖�,3501
+350112,闀夸箰鍖�,3501
+350121,闂戒警鍘�,3501
+350122,杩炴睙鍘�,3501
+350123,缃楁簮鍘�,3501
+350124,闂芥竻鍘�,3501
+350125,姘告嘲鍘�,3501
+350128,骞虫江鍘�,3501
+350181,绂忔竻甯�,3501
+3502,鍘﹂棬甯�,35
+350203,鎬濇槑鍖�,3502
+350205,娴锋钵鍖�,3502
+350206,婀栭噷鍖�,3502
+350211,闆嗙編鍖�,3502
+350212,鍚屽畨鍖�,3502
+350213,缈斿畨鍖�,3502
+3503,鑾嗙敯甯�,35
+350302,鍩庡帰鍖�,3503
+350303,娑垫睙鍖�,3503
+350304,鑽斿煄鍖�,3503
+350305,绉�灞垮尯,3503
+350322,浠欐父鍘�,3503
+3504,涓夋槑甯�,35
+350402,姊呭垪鍖�,3504
+350403,涓夊厓鍖�,3504
+350421,鏄庢邯鍘�,3504
+350423,娓呮祦鍘�,3504
+350424,瀹佸寲鍘�,3504
+350425,澶х敯鍘�,3504
+350426,灏ゆ邯鍘�,3504
+350427,娌欏幙,3504
+350428,灏嗕箰鍘�,3504
+350429,娉板畞鍘�,3504
+350430,寤哄畞鍘�,3504
+350481,姘稿畨甯�,3504
+3505,娉夊窞甯�,35
+350502,椴ゅ煄鍖�,3505
+350503,涓版辰鍖�,3505
+350504,娲涙睙鍖�,3505
+350505,娉夋腐鍖�,3505
+350521,鎯犲畨鍘�,3505
+350524,瀹夋邯鍘�,3505
+350525,姘告槬鍘�,3505
+350526,寰峰寲鍘�,3505
+350527,閲戦棬鍘�,3505
+350581,鐭崇嫯甯�,3505
+350582,鏅嬫睙甯�,3505
+350583,鍗楀畨甯�,3505
+3506,婕冲窞甯�,35
+350602,鑺楀煄鍖�,3506
+350603,榫欐枃鍖�,3506
+350622,浜戦渼鍘�,3506
+350623,婕虫郸鍘�,3506
+350624,璇忓畨鍘�,3506
+350625,闀挎嘲鍘�,3506
+350626,涓滃北鍘�,3506
+350627,鍗楅潠鍘�,3506
+350628,骞冲拰鍘�,3506
+350629,鍗庡畨鍘�,3506
+350681,榫欐捣甯�,3506
+3507,鍗楀钩甯�,35
+350702,寤跺钩鍖�,3507
+350703,寤洪槼鍖�,3507
+350721,椤烘槍鍘�,3507
+350722,娴﹀煄鍘�,3507
+350723,鍏夋辰鍘�,3507
+350724,鏉炬邯鍘�,3507
+350725,鏀垮拰鍘�,3507
+350781,閭垫甯�,3507
+350782,姝﹀し灞卞競,3507
+350783,寤虹摨甯�,3507
+3508,榫欏博甯�,35
+350802,鏂扮綏鍖�,3508
+350803,姘稿畾鍖�,3508
+350821,闀挎眬鍘�,3508
+350823,涓婃澀鍘�,3508
+350824,姝﹀钩鍘�,3508
+350825,杩炲煄鍘�,3508
+350881,婕冲钩甯�,3508
+3509,瀹佸痉甯�,35
+350902,钑夊煄鍖�,3509
+350921,闇炴郸鍘�,3509
+350922,鍙ょ敯鍘�,3509
+350923,灞忓崡鍘�,3509
+350924,瀵垮畞鍘�,3509
+350925,鍛ㄥ畞鍘�,3509
+350926,鏌樿崳鍘�,3509
+350981,绂忓畨甯�,3509
+350982,绂忛紟甯�,3509
+36,姹熻タ鐪�, 
+3601,鍗楁槍甯�,36
+360102,涓滄箹鍖�,3601
+360103,瑗挎箹鍖�,3601
+360104,闈掍簯璋卞尯,3601
+360105,婀鹃噷鍖�,3601
+360111,闈掑北婀栧尯,3601
+360112,鏂板缓鍖�,3601
+360121,鍗楁槍鍘�,3601
+360123,瀹変箟鍘�,3601
+360124,杩涜搐鍘�,3601
+3602,鏅痉闀囧競,36
+360202,鏄屾睙鍖�,3602
+360203,鐝犲北鍖�,3602
+360222,娴鍘�,3602
+360281,涔愬钩甯�,3602
+3603,钀嶄埂甯�,36
+360302,瀹夋簮鍖�,3603
+360313,婀樹笢鍖�,3603
+360321,鑾茶姳鍘�,3603
+360322,涓婃牀鍘�,3603
+360323,鑺︽邯鍘�,3603
+3604,涔濇睙甯�,36
+360402,婵傛邯鍖�,3604
+360403,娴旈槼鍖�,3604
+360404,鏌存鍖�,3604
+360423,姝﹀畞鍘�,3604
+360424,淇按鍘�,3604
+360425,姘镐慨鍘�,3604
+360426,寰峰畨鍘�,3604
+360428,閮芥槍鍘�,3604
+360429,婀栧彛鍘�,3604
+360430,褰辰鍘�,3604
+360481,鐟炴槍甯�,3604
+360482,鍏遍潚鍩庡競,3604
+360483,搴愬北甯�,3604
+3605,鏂颁綑甯�,36
+360502,娓濇按鍖�,3605
+360521,鍒嗗疁鍘�,3605
+3606,楣版江甯�,36
+360602,鏈堟箹鍖�,3606
+360603,浣欐睙鍖�,3606
+360681,璐垫邯甯�,3606
+3607,璧e窞甯�,36
+360702,绔犺础鍖�,3607
+360703,鍗楀悍鍖�,3607
+360704,璧e幙鍖�,3607
+360722,淇′赴鍘�,3607
+360723,澶т綑鍘�,3607
+360724,涓婄姽鍘�,3607
+360725,宕囦箟鍘�,3607
+360726,瀹夎繙鍘�,3607
+360727,榫欏崡鍘�,3607
+360728,瀹氬崡鍘�,3607
+360729,鍏ㄥ崡鍘�,3607
+360730,瀹侀兘鍘�,3607
+360731,浜庨兘鍘�,3607
+360732,鍏村浗鍘�,3607
+360733,浼氭槍鍘�,3607
+360734,瀵讳箤鍘�,3607
+360735,鐭冲煄鍘�,3607
+360781,鐟為噾甯�,3607
+3608,鍚夊畨甯�,36
+360802,鍚夊窞鍖�,3608
+360803,闈掑師鍖�,3608
+360821,鍚夊畨鍘�,3608
+360822,鍚夋按鍘�,3608
+360823,宄℃睙鍘�,3608
+360824,鏂板共鍘�,3608
+360825,姘镐赴鍘�,3608
+360826,娉板拰鍘�,3608
+360827,閬傚窛鍘�,3608
+360828,涓囧畨鍘�,3608
+360829,瀹夌鍘�,3608
+360830,姘告柊鍘�,3608
+360881,浜曞唸灞卞競,3608
+3609,瀹滄槬甯�,36
+360902,琚佸窞鍖�,3609
+360921,濂夋柊鍘�,3609
+360922,涓囪浇鍘�,3609
+360923,涓婇珮鍘�,3609
+360924,瀹滀赴鍘�,3609
+360925,闈栧畨鍘�,3609
+360926,閾滈紦鍘�,3609
+360981,涓板煄甯�,3609
+360982,妯熸爲甯�,3609
+360983,楂樺畨甯�,3609
+3610,鎶氬窞甯�,36
+361002,涓村窛鍖�,3610
+361003,涓滀埂鍖�,3610
+361021,鍗楀煄鍘�,3610
+361022,榛庡窛鍘�,3610
+361023,鍗椾赴鍘�,3610
+361024,宕囦粊鍘�,3610
+361025,涔愬畨鍘�,3610
+361026,瀹滈粍鍘�,3610
+361027,閲戞邯鍘�,3610
+361028,璧勬邯鍘�,3610
+361030,骞挎槍鍘�,3610
+3611,涓婇ザ甯�,36
+361102,淇″窞鍖�,3611
+361103,骞夸赴鍖�,3611
+361121,涓婇ザ鍘�,3611
+361123,鐜夊北鍘�,3611
+361124,閾呭北鍘�,3611
+361125,妯嘲鍘�,3611
+361126,寮嬮槼鍘�,3611
+361127,浣欏共鍘�,3611
+361128,閯遍槼鍘�,3611
+361129,涓囧勾鍘�,3611
+361130,濠烘簮鍘�,3611
+361181,寰峰叴甯�,3611
+37,灞变笢鐪�, 
+3701,娴庡崡甯�,37
+370102,鍘嗕笅鍖�,3701
+370103,甯備腑鍖�,3701
+370104,妲愯崼鍖�,3701
+370105,澶╂ˉ鍖�,3701
+370112,鍘嗗煄鍖�,3701
+370113,闀挎竻鍖�,3701
+370114,绔犱笜鍖�,3701
+370115,娴庨槼鍖�,3701
+370124,骞抽槾鍘�,3701
+370126,鍟嗘渤鍘�,3701
+3702,闈掑矝甯�,37
+370202,甯傚崡鍖�,3702
+370203,甯傚寳鍖�,3702
+370211,榛勫矝鍖�,3702
+370212,宕傚北鍖�,3702
+370213,鏉庢钵鍖�,3702
+370214,鍩庨槼鍖�,3702
+370215,鍗冲ⅷ鍖�,3702
+370281,鑳跺窞甯�,3702
+370283,骞冲害甯�,3702
+370285,鑾辫タ甯�,3702
+3703,娣勫崥甯�,37
+370302,娣勫窛鍖�,3703
+370303,寮犲簵鍖�,3703
+370304,鍗氬北鍖�,3703
+370305,涓存穭鍖�,3703
+370306,鍛ㄦ潙鍖�,3703
+370321,妗撳彴鍘�,3703
+370322,楂橀潚鍘�,3703
+370323,娌傛簮鍘�,3703
+3704,鏋e簞甯�,37
+370402,甯備腑鍖�,3704
+370403,钖涘煄鍖�,3704
+370404,宄勫煄鍖�,3704
+370405,鍙板効搴勫尯,3704
+370406,灞变涵鍖�,3704
+370481,婊曞窞甯�,3704
+3705,涓滆惀甯�,37
+370502,涓滆惀鍖�,3705
+370503,娌冲彛鍖�,3705
+370505,鍨﹀埄鍖�,3705
+370522,鍒╂触鍘�,3705
+370523,骞块ザ鍘�,3705
+3706,鐑熷彴甯�,37
+370602,鑺濈綐鍖�,3706
+370611,绂忓北鍖�,3706
+370612,鐗熷钩鍖�,3706
+370613,鑾卞北鍖�,3706
+370634,闀垮矝鍘�,3706
+370681,榫欏彛甯�,3706
+370682,鑾遍槼甯�,3706
+370683,鑾卞窞甯�,3706
+370684,钃幈甯�,3706
+370685,鎷涜繙甯�,3706
+370686,鏍栭湠甯�,3706
+370687,娴烽槼甯�,3706
+3707,娼嶅潑甯�,37
+370702,娼嶅煄鍖�,3707
+370703,瀵掍涵鍖�,3707
+370704,鍧婂瓙鍖�,3707
+370705,濂庢枃鍖�,3707
+370724,涓存湊鍘�,3707
+370725,鏄屼箰鍘�,3707
+370781,闈掑窞甯�,3707
+370782,璇稿煄甯�,3707
+370783,瀵垮厜甯�,3707
+370784,瀹変笜甯�,3707
+370785,楂樺瘑甯�,3707
+370786,鏄岄倯甯�,3707
+3708,娴庡畞甯�,37
+370811,浠诲煄鍖�,3708
+370812,鍏栧窞鍖�,3708
+370826,寰北鍘�,3708
+370827,楸煎彴鍘�,3708
+370828,閲戜埂鍘�,3708
+370829,鍢夌ゥ鍘�,3708
+370830,姹朵笂鍘�,3708
+370831,娉楁按鍘�,3708
+370832,姊佸北鍘�,3708
+370881,鏇查槣甯�,3708
+370883,閭瑰煄甯�,3708
+3709,娉板畨甯�,37
+370902,娉板北鍖�,3709
+370911,宀卞渤鍖�,3709
+370921,瀹侀槼鍘�,3709
+370923,涓滃钩鍘�,3709
+370982,鏂版嘲甯�,3709
+370983,鑲ュ煄甯�,3709
+3710,濞佹捣甯�,37
+371002,鐜繝鍖�,3710
+371003,鏂囩櫥鍖�,3710
+371082,鑽f垚甯�,3710
+371083,涔冲北甯�,3710
+3711,鏃ョ収甯�,37
+371102,涓滄腐鍖�,3711
+371103,宀氬北鍖�,3711
+371121,浜旇幉鍘�,3711
+371122,鑾掑幙,3711
+3712,鑾辫姕甯�,37
+371202,鑾卞煄鍖�,3712
+371203,閽㈠煄鍖�,3712
+3713,涓存矀甯�,37
+371302,鍏板北鍖�,3713
+371311,缃楀簞鍖�,3713
+371312,娌充笢鍖�,3713
+371321,娌傚崡鍘�,3713
+371322,閮煄鍘�,3713
+371323,娌傛按鍘�,3713
+371324,鍏伴櫟鍘�,3713
+371325,璐瑰幙,3713
+371326,骞抽倯鍘�,3713
+371327,鑾掑崡鍘�,3713
+371328,钂欓槾鍘�,3713
+371329,涓存箔鍘�,3713
+3714,寰峰窞甯�,37
+371402,寰峰煄鍖�,3714
+371403,闄靛煄鍖�,3714
+371422,瀹佹触鍘�,3714
+371423,搴嗕簯鍘�,3714
+371424,涓撮倯鍘�,3714
+371425,榻愭渤鍘�,3714
+371426,骞冲師鍘�,3714
+371427,澶忔触鍘�,3714
+371428,姝﹀煄鍘�,3714
+371481,涔愰櫟甯�,3714
+371482,绂瑰煄甯�,3714
+3715,鑱婂煄甯�,37
+371502,涓滄槍搴滃尯,3715
+371521,闃宠胺鍘�,3715
+371522,鑾樺幙,3715
+371523,鑼屽钩鍘�,3715
+371524,涓滈樋鍘�,3715
+371525,鍐犲幙,3715
+371526,楂樺攼鍘�,3715
+371581,涓存竻甯�,3715
+3716,婊ㄥ窞甯�,37
+371602,婊ㄥ煄鍖�,3716
+371603,娌惧寲鍖�,3716
+371621,鎯犳皯鍘�,3716
+371622,闃充俊鍘�,3716
+371623,鏃犳#鍘�,3716
+371625,鍗氬叴鍘�,3716
+371681,閭瑰钩甯�,3716
+3717,鑿忔辰甯�,37
+371702,鐗′腹鍖�,3717
+371703,瀹氶櫠鍖�,3717
+371721,鏇瑰幙,3717
+371722,鍗曞幙,3717
+371723,鎴愭鍘�,3717
+371724,宸ㄩ噹鍘�,3717
+371725,閮撳煄鍘�,3717
+371726,閯勫煄鍘�,3717
+371728,涓滄槑鍘�,3717
+41,娌冲崡鐪�, 
+4101,閮戝窞甯�,41
+410102,涓師鍖�,4101
+410103,浜屼竷鍖�,4101
+410104,绠″煄鍥炴棌鍖�,4101
+410105,閲戞按鍖�,4101
+410106,涓婅鍖�,4101
+410108,鎯犳祹鍖�,4101
+410122,涓墴鍘�,4101
+410181,宸╀箟甯�,4101
+410182,鑽ラ槼甯�,4101
+410183,鏂板瘑甯�,4101
+410184,鏂伴儜甯�,4101
+410185,鐧诲皝甯�,4101
+4102,寮�灏佸競,41
+410202,榫欎涵鍖�,4102
+410203,椤烘渤鍥炴棌鍖�,4102
+410204,榧撴ゼ鍖�,4102
+410205,绂圭帇鍙板尯,4102
+410212,绁ョ鍖�,4102
+410221,鏉炲幙,4102
+410222,閫氳鍘�,4102
+410223,灏夋皬鍘�,4102
+410225,鍏拌�冨幙,4102
+4103,娲涢槼甯�,41
+410302,鑰佸煄鍖�,4103
+410303,瑗垮伐鍖�,4103
+410304,鐎嶆渤鍥炴棌鍖�,4103
+410305,娑цタ鍖�,4103
+410306,鍚夊埄鍖�,4103
+410311,娲涢緳鍖�,4103
+410322,瀛熸触鍘�,4103
+410323,鏂板畨鍘�,4103
+410324,鏍惧窛鍘�,4103
+410325,宓╁幙,4103
+410326,姹濋槼鍘�,4103
+410327,瀹滈槼鍘�,4103
+410328,娲涘畞鍘�,4103
+410329,浼婂窛鍘�,4103
+410381,鍋冨笀甯�,4103
+4104,骞抽《灞卞競,41
+410402,鏂板崕鍖�,4104
+410403,鍗笢鍖�,4104
+410404,鐭抽緳鍖�,4104
+410411,婀涙渤鍖�,4104
+410421,瀹濅赴鍘�,4104
+410422,鍙跺幙,4104
+410423,椴佸北鍘�,4104
+410425,閮忓幙,4104
+410481,鑸為挗甯�,4104
+410482,姹濆窞甯�,4104
+4105,瀹夐槼甯�,41
+410502,鏂囧嘲鍖�,4105
+410503,鍖楀叧鍖�,4105
+410505,娈烽兘鍖�,4105
+410506,榫欏畨鍖�,4105
+410522,瀹夐槼鍘�,4105
+410523,姹ら槾鍘�,4105
+410526,婊戝幙,4105
+410527,鍐呴粍鍘�,4105
+410581,鏋楀窞甯�,4105
+4106,楣ゅ甯�,41
+410602,楣ゅ北鍖�,4106
+410603,灞卞煄鍖�,4106
+410611,娣囨花鍖�,4106
+410621,娴氬幙,4106
+410622,娣囧幙,4106
+4107,鏂颁埂甯�,41
+410702,绾㈡棗鍖�,4107
+410703,鍗花鍖�,4107
+410704,鍑ゆ硥鍖�,4107
+410711,鐗ч噹鍖�,4107
+410721,鏂颁埂鍘�,4107
+410724,鑾峰槈鍘�,4107
+410725,鍘熼槼鍘�,4107
+410726,寤舵触鍘�,4107
+410727,灏佷笜鍘�,4107
+410728,闀垮灒鍘�,4107
+410781,鍗緣甯�,4107
+410782,杈夊幙甯�,4107
+4108,鐒︿綔甯�,41
+410802,瑙f斁鍖�,4108
+410803,涓珯鍖�,4108
+410804,椹潙鍖�,4108
+410811,灞遍槼鍖�,4108
+410821,淇鍘�,4108
+410822,鍗氱埍鍘�,4108
+410823,姝﹂櫉鍘�,4108
+410825,娓╁幙,4108
+410882,娌侀槼甯�,4108
+410883,瀛熷窞甯�,4108
+4109,婵槼甯�,41
+410902,鍗庨緳鍖�,4109
+410922,娓呬赴鍘�,4109
+410923,鍗椾箰鍘�,4109
+410926,鑼冨幙,4109
+410927,鍙板墠鍘�,4109
+410928,婵槼鍘�,4109
+4110,璁告槍甯�,41
+411002,榄忛兘鍖�,4110
+411003,寤哄畨鍖�,4110
+411024,閯㈤櫟鍘�,4110
+411025,瑗勫煄鍘�,4110
+411081,绂瑰窞甯�,4110
+411082,闀胯憶甯�,4110
+4111,婕渤甯�,41
+411102,婧愭眹鍖�,4111
+411103,閮惧煄鍖�,4111
+411104,鍙櫟鍖�,4111
+411121,鑸為槼鍘�,4111
+411122,涓撮鍘�,4111
+4112,涓夐棬宄″競,41
+411202,婀栨花鍖�,4112
+411203,闄曞窞鍖�,4112
+411221,娓戞睜鍘�,4112
+411224,鍗㈡皬鍘�,4112
+411281,涔夐┈甯�,4112
+411282,鐏靛疂甯�,4112
+4113,鍗楅槼甯�,41
+411302,瀹涘煄鍖�,4113
+411303,鍗ч緳鍖�,4113
+411321,鍗楀彫鍘�,4113
+411322,鏂瑰煄鍘�,4113
+411323,瑗垮场鍘�,4113
+411324,闀囧钩鍘�,4113
+411325,鍐呬埂鍘�,4113
+411326,娣呭窛鍘�,4113
+411327,绀炬棗鍘�,4113
+411328,鍞愭渤鍘�,4113
+411329,鏂伴噹鍘�,4113
+411330,妗愭煆鍘�,4113
+411381,閭撳窞甯�,4113
+4114,鍟嗕笜甯�,41
+411402,姊佸洯鍖�,4114
+411403,鐫㈤槼鍖�,4114
+411421,姘戞潈鍘�,4114
+411422,鐫㈠幙,4114
+411423,瀹侀櫟鍘�,4114
+411424,鏌樺煄鍘�,4114
+411425,铏炲煄鍘�,4114
+411426,澶忛倯鍘�,4114
+411481,姘稿煄甯�,4114
+4115,淇¢槼甯�,41
+411502,娴夋渤鍖�,4115
+411503,骞虫ˉ鍖�,4115
+411521,缃楀北鍘�,4115
+411522,鍏夊北鍘�,4115
+411523,鏂板幙,4115
+411524,鍟嗗煄鍘�,4115
+411525,鍥哄鍘�,4115
+411526,娼㈠窛鍘�,4115
+411527,娣花鍘�,4115
+411528,鎭幙,4115
+4116,鍛ㄥ彛甯�,41
+411602,宸濇眹鍖�,4116
+411621,鎵舵矡鍘�,4116
+411622,瑗垮崕鍘�,4116
+411623,鍟嗘按鍘�,4116
+411624,娌堜笜鍘�,4116
+411625,閮稿煄鍘�,4116
+411626,娣槼鍘�,4116
+411627,澶悍鍘�,4116
+411628,楣块倯鍘�,4116
+411681,椤瑰煄甯�,4116
+4117,椹婚┈搴楀競,41
+411702,椹垮煄鍖�,4117
+411721,瑗垮钩鍘�,4117
+411722,涓婅敗鍘�,4117
+411723,骞宠垎鍘�,4117
+411724,姝i槼鍘�,4117
+411725,纭北鍘�,4117
+411726,娉岄槼鍘�,4117
+411727,姹濆崡鍘�,4117
+411728,閬傚钩鍘�,4117
+411729,鏂拌敗鍘�,4117
+419001,娴庢簮甯�,41
+42,婀栧寳鐪�, 
+4201,姝︽眽甯�,42
+420102,姹熷哺鍖�,4201
+420103,姹熸眽鍖�,4201
+420104,纭氬彛鍖�,4201
+420105,姹夐槼鍖�,4201
+420106,姝︽槍鍖�,4201
+420107,闈掑北鍖�,4201
+420111,娲北鍖�,4201
+420112,涓滆タ婀栧尯,4201
+420113,姹夊崡鍖�,4201
+420114,钄$敻鍖�,4201
+420115,姹熷鍖�,4201
+420116,榛勯檪鍖�,4201
+420117,鏂版床鍖�,4201
+4202,榛勭煶甯�,42
+420202,榛勭煶娓尯,4202
+420203,瑗垮灞卞尯,4202
+420204,涓嬮檰鍖�,4202
+420205,閾佸北鍖�,4202
+420222,闃虫柊鍘�,4202
+420281,澶у喍甯�,4202
+4203,鍗佸牥甯�,42
+420302,鑼呯鍖�,4203
+420303,寮犳咕鍖�,4203
+420304,閮ч槼鍖�,4203
+420322,閮цタ鍘�,4203
+420323,绔瑰北鍘�,4203
+420324,绔规邯鍘�,4203
+420325,鎴垮幙,4203
+420381,涓规睙鍙e競,4203
+4205,瀹滄槍甯�,42
+420502,瑗块櫟鍖�,4205
+420503,浼嶅宀楀尯,4205
+420504,鐐瑰啗鍖�,4205
+420505,鐚囦涵鍖�,4205
+420506,澶烽櫟鍖�,4205
+420525,杩滃畨鍘�,4205
+420526,鍏村北鍘�,4205
+420527,绉綊鍘�,4205
+420528,闀块槼鍦熷鏃忚嚜娌诲幙,4205
+420529,浜斿嘲鍦熷鏃忚嚜娌诲幙,4205
+420581,瀹滈兘甯�,4205
+420582,褰撻槼甯�,4205
+420583,鏋濇睙甯�,4205
+4206,瑗勯槼甯�,42
+420602,瑗勫煄鍖�,4206
+420606,妯婂煄鍖�,4206
+420607,瑗勫窞鍖�,4206
+420624,鍗楁汲鍘�,4206
+420625,璋峰煄鍘�,4206
+420626,淇濆悍鍘�,4206
+420682,鑰佹渤鍙e競,4206
+420683,鏋i槼甯�,4206
+420684,瀹滃煄甯�,4206
+4207,閯傚窞甯�,42
+420702,姊佸瓙婀栧尯,4207
+420703,鍗庡鍖�,4207
+420704,閯傚煄鍖�,4207
+4208,鑽嗛棬甯�,42
+420802,涓滃疂鍖�,4208
+420804,鎺囧垁鍖�,4208
+420822,娌欐磱鍘�,4208
+420881,閽熺ゥ甯�,4208
+420882,浜北甯�,4208
+4209,瀛濇劅甯�,42
+420902,瀛濆崡鍖�,4209
+420921,瀛濇槍鍘�,4209
+420922,澶ф偀鍘�,4209
+420923,浜戞ⅵ鍘�,4209
+420981,搴斿煄甯�,4209
+420982,瀹夐檰甯�,4209
+420984,姹夊窛甯�,4209
+4210,鑽嗗窞甯�,42
+421002,娌欏競鍖�,4210
+421003,鑽嗗窞鍖�,4210
+421022,鍏畨鍘�,4210
+421023,鐩戝埄鍘�,4210
+421024,姹熼櫟鍘�,4210
+421081,鐭抽甯�,4210
+421083,娲箹甯�,4210
+421087,鏉炬粙甯�,4210
+4211,榛勫唸甯�,42
+421102,榛勫窞鍖�,4211
+421121,鍥㈤鍘�,4211
+421122,绾㈠畨鍘�,4211
+421123,缃楃敯鍘�,4211
+421124,鑻卞北鍘�,4211
+421125,娴犳按鍘�,4211
+421126,钑叉槬鍘�,4211
+421127,榛勬鍘�,4211
+421181,楹诲煄甯�,4211
+421182,姝︾┐甯�,4211
+4212,鍜稿畞甯�,42
+421202,鍜稿畨鍖�,4212
+421221,鍢夐奔鍘�,4212
+421222,閫氬煄鍘�,4212
+421223,宕囬槼鍘�,4212
+421224,閫氬北鍘�,4212
+421281,璧ゅ甯�,4212
+4213,闅忓窞甯�,42
+421303,鏇鹃兘鍖�,4213
+421321,闅忓幙,4213
+421381,骞挎按甯�,4213
+4228,鎭╂柦鍦熷鏃忚嫍鏃忚嚜娌诲窞,42
+422801,鎭╂柦甯�,4228
+422802,鍒╁窛甯�,4228
+422822,寤哄鍘�,4228
+422823,宸翠笢鍘�,4228
+422825,瀹f仼鍘�,4228
+422826,鍜镐赴鍘�,4228
+422827,鏉ュ嚖鍘�,4228
+422828,楣ゅ嘲鍘�,4228
+429004,浠欐甯�,42
+429005,娼滄睙甯�,42
+429006,澶╅棬甯�,42
+429021,绁炲啘鏋舵灄鍖�,42
+43,婀栧崡鐪�, 
+4301,闀挎矙甯�,43
+430102,鑺欒搲鍖�,4301
+430103,澶╁績鍖�,4301
+430104,宀抽簱鍖�,4301
+430105,寮�绂忓尯,4301
+430111,闆ㄨ姳鍖�,4301
+430112,鏈涘煄鍖�,4301
+430121,闀挎矙鍘�,4301
+430181,娴忛槼甯�,4301
+430182,瀹佷埂甯�,4301
+4302,鏍床甯�,43
+430202,鑽峰鍖�,4302
+430203,鑺︽窞鍖�,4302
+430204,鐭冲嘲鍖�,4302
+430211,澶╁厓鍖�,4302
+430212,娓屽彛鍖�,4302
+430223,鏀稿幙,4302
+430224,鑼堕櫟鍘�,4302
+430225,鐐庨櫟鍘�,4302
+430281,閱撮櫟甯�,4302
+4303,婀樻江甯�,43
+430302,闆ㄦ箹鍖�,4303
+430304,宀冲鍖�,4303
+430321,婀樻江鍘�,4303
+430381,婀樹埂甯�,4303
+430382,闊跺北甯�,4303
+4304,琛¢槼甯�,43
+430405,鐝犳櫀鍖�,4304
+430406,闆佸嘲鍖�,4304
+430407,鐭抽紦鍖�,4304
+430408,钂告箻鍖�,4304
+430412,鍗楀渤鍖�,4304
+430421,琛¢槼鍘�,4304
+430422,琛″崡鍘�,4304
+430423,琛″北鍘�,4304
+430424,琛′笢鍘�,4304
+430426,绁佷笢鍘�,4304
+430481,鑰掗槼甯�,4304
+430482,甯稿畞甯�,4304
+4305,閭甸槼甯�,43
+430502,鍙屾竻鍖�,4305
+430503,澶хゥ鍖�,4305
+430511,鍖楀鍖�,4305
+430521,閭典笢鍘�,4305
+430522,鏂伴偟鍘�,4305
+430523,閭甸槼鍘�,4305
+430524,闅嗗洖鍘�,4305
+430525,娲炲彛鍘�,4305
+430527,缁ュ畞鍘�,4305
+430528,鏂板畞鍘�,4305
+430529,鍩庢鑻楁棌鑷不鍘�,4305
+430581,姝﹀唸甯�,4305
+4306,宀抽槼甯�,43
+430602,宀抽槼妤煎尯,4306
+430603,浜戞邯鍖�,4306
+430611,鍚涘北鍖�,4306
+430621,宀抽槼鍘�,4306
+430623,鍗庡鍘�,4306
+430624,婀橀槾鍘�,4306
+430626,骞虫睙鍘�,4306
+430681,姹ㄧ綏甯�,4306
+430682,涓存箻甯�,4306
+4307,甯稿痉甯�,43
+430702,姝﹂櫟鍖�,4307
+430703,榧庡煄鍖�,4307
+430721,瀹変埂鍘�,4307
+430722,姹夊鍘�,4307
+430723,婢у幙,4307
+430724,涓存晶鍘�,4307
+430725,妗冩簮鍘�,4307
+430726,鐭抽棬鍘�,4307
+430781,娲ュ競甯�,4307
+4308,寮犲鐣屽競,43
+430802,姘稿畾鍖�,4308
+430811,姝﹂櫟婧愬尯,4308
+430821,鎱堝埄鍘�,4308
+430822,妗戞鍘�,4308
+4309,鐩婇槼甯�,43
+430902,璧勯槼鍖�,4309
+430903,璧北鍖�,4309
+430921,鍗楀幙,4309
+430922,妗冩睙鍘�,4309
+430923,瀹夊寲鍘�,4309
+430981,娌呮睙甯�,4309
+4310,閮村窞甯�,43
+431002,鍖楁箹鍖�,4310
+431003,鑻忎粰鍖�,4310
+431021,妗傞槼鍘�,4310
+431022,瀹滅珷鍘�,4310
+431023,姘稿叴鍘�,4310
+431024,鍢夌鍘�,4310
+431025,涓存鍘�,4310
+431026,姹濆煄鍘�,4310
+431027,妗備笢鍘�,4310
+431028,瀹変粊鍘�,4310
+431081,璧勫叴甯�,4310
+4311,姘稿窞甯�,43
+431102,闆堕櫟鍖�,4311
+431103,鍐锋按婊╁尯,4311
+431121,绁侀槼鍘�,4311
+431122,涓滃畨鍘�,4311
+431123,鍙岀墝鍘�,4311
+431124,閬撳幙,4311
+431125,姹熸案鍘�,4311
+431126,瀹佽繙鍘�,4311
+431127,钃濆北鍘�,4311
+431128,鏂扮敯鍘�,4311
+431129,姹熷崕鐟舵棌鑷不鍘�,4311
+4312,鎬�鍖栧競,43
+431202,楣ゅ煄鍖�,4312
+431221,涓柟鍘�,4312
+431222,娌呴櫟鍘�,4312
+431223,杈版邯鍘�,4312
+431224,婧嗘郸鍘�,4312
+431225,浼氬悓鍘�,4312
+431226,楹婚槼鑻楁棌鑷不鍘�,4312
+431227,鏂版檭渚楁棌鑷不鍘�,4312
+431228,鑺锋睙渚楁棌鑷不鍘�,4312
+431229,闈栧窞鑻楁棌渚楁棌鑷不鍘�,4312
+431230,閫氶亾渚楁棌鑷不鍘�,4312
+431281,娲睙甯�,4312
+4313,濞勫簳甯�,43
+431302,濞勬槦鍖�,4313
+431321,鍙屽嘲鍘�,4313
+431322,鏂板寲鍘�,4313
+431381,鍐锋按姹熷競,4313
+431382,娑熸簮甯�,4313
+4331,婀樿タ鍦熷鏃忚嫍鏃忚嚜娌诲窞,43
+433101,鍚夐甯�,4331
+433122,娉告邯鍘�,4331
+433123,鍑ゅ嚢鍘�,4331
+433124,鑺卞灒鍘�,4331
+433125,淇濋潠鍘�,4331
+433126,鍙や笀鍘�,4331
+433127,姘搁『鍘�,4331
+433130,榫欏北鍘�,4331
+44,骞夸笢鐪�, 
+4401,骞垮窞甯�,44
+440103,鑽旀咕鍖�,4401
+440104,瓒婄鍖�,4401
+440105,娴风彔鍖�,4401
+440106,澶╂渤鍖�,4401
+440111,鐧戒簯鍖�,4401
+440112,榛勫煍鍖�,4401
+440113,鐣鍖�,4401
+440114,鑺遍兘鍖�,4401
+440115,鍗楁矙鍖�,4401
+440117,浠庡寲鍖�,4401
+440118,澧炲煄鍖�,4401
+4402,闊跺叧甯�,44
+440203,姝︽睙鍖�,4402
+440204,娴堟睙鍖�,4402
+440205,鏇叉睙鍖�,4402
+440222,濮嬪叴鍘�,4402
+440224,浠佸寲鍘�,4402
+440229,缈佹簮鍘�,4402
+440232,涔虫簮鐟舵棌鑷不鍘�,4402
+440233,鏂颁赴鍘�,4402
+440281,涔愭槍甯�,4402
+440282,鍗楅泟甯�,4402
+4403,娣卞湷甯�,44
+440303,缃楁箹鍖�,4403
+440304,绂忕敯鍖�,4403
+440305,鍗楀北鍖�,4403
+440306,瀹濆畨鍖�,4403
+440307,榫欏矖鍖�,4403
+440308,鐩愮敯鍖�,4403
+440309,榫欏崕鍖�,4403
+440310,鍧北鍖�,4403
+440311,鍏夋槑鍖�,4403
+4404,鐝犳捣甯�,44
+440402,棣欐床鍖�,4404
+440403,鏂楅棬鍖�,4404
+440404,閲戞咕鍖�,4404
+4405,姹曞ご甯�,44
+440507,榫欐箹鍖�,4405
+440511,閲戝钩鍖�,4405
+440512,婵犳睙鍖�,4405
+440513,娼槼鍖�,4405
+440514,娼崡鍖�,4405
+440515,婢勬捣鍖�,4405
+440523,鍗楁境鍘�,4405
+4406,浣涘北甯�,44
+440604,绂呭煄鍖�,4406
+440605,鍗楁捣鍖�,4406
+440606,椤哄痉鍖�,4406
+440607,涓夋按鍖�,4406
+440608,楂樻槑鍖�,4406
+4407,姹熼棬甯�,44
+440703,钃睙鍖�,4407
+440704,姹熸捣鍖�,4407
+440705,鏂颁細鍖�,4407
+440781,鍙板北甯�,4407
+440783,寮�骞冲競,4407
+440784,楣ゅ北甯�,4407
+440785,鎭╁钩甯�,4407
+4408,婀涙睙甯�,44
+440802,璧ゅ潕鍖�,4408
+440803,闇炲北鍖�,4408
+440804,鍧″ご鍖�,4408
+440811,楹荤珷鍖�,4408
+440823,閬傛邯鍘�,4408
+440825,寰愰椈鍘�,4408
+440881,寤夋睙甯�,4408
+440882,闆峰窞甯�,4408
+440883,鍚村窛甯�,4408
+4409,鑼傚悕甯�,44
+440902,鑼傚崡鍖�,4409
+440904,鐢电櫧鍖�,4409
+440981,楂樺窞甯�,4409
+440982,鍖栧窞甯�,4409
+440983,淇″疁甯�,4409
+4412,鑲囧簡甯�,44
+441202,绔窞鍖�,4412
+441203,榧庢箹鍖�,4412
+441204,楂樿鍖�,4412
+441223,骞垮畞鍘�,4412
+441224,鎬�闆嗗幙,4412
+441225,灏佸紑鍘�,4412
+441226,寰峰簡鍘�,4412
+441284,鍥涗細甯�,4412
+4413,鎯犲窞甯�,44
+441302,鎯犲煄鍖�,4413
+441303,鎯犻槼鍖�,4413
+441322,鍗氱綏鍘�,4413
+441323,鎯犱笢鍘�,4413
+441324,榫欓棬鍘�,4413
+4414,姊呭窞甯�,44
+441402,姊呮睙鍖�,4414
+441403,姊呭幙鍖�,4414
+441422,澶у煍鍘�,4414
+441423,涓伴『鍘�,4414
+441424,浜斿崕鍘�,4414
+441426,骞宠繙鍘�,4414
+441427,钑夊箔鍘�,4414
+441481,鍏村畞甯�,4414
+4415,姹曞熬甯�,44
+441502,鍩庡尯,4415
+441521,娴蜂赴鍘�,4415
+441523,闄嗘渤鍘�,4415
+441581,闄嗕赴甯�,4415
+4416,娌虫簮甯�,44
+441602,婧愬煄鍖�,4416
+441621,绱噾鍘�,4416
+441622,榫欏窛鍘�,4416
+441623,杩炲钩鍘�,4416
+441624,鍜屽钩鍘�,4416
+441625,涓滄簮鍘�,4416
+4417,闃虫睙甯�,44
+441702,姹熷煄鍖�,4417
+441704,闃充笢鍖�,4417
+441721,闃宠タ鍘�,4417
+441781,闃虫槬甯�,4417
+4418,娓呰繙甯�,44
+441802,娓呭煄鍖�,4418
+441803,娓呮柊鍖�,4418
+441821,浣涘唸鍘�,4418
+441823,闃冲北鍘�,4418
+441825,杩炲北澹棌鐟舵棌鑷不鍘�,4418
+441826,杩炲崡鐟舵棌鑷不鍘�,4418
+441881,鑻卞痉甯�,4418
+441882,杩炲窞甯�,4418
+4419,涓滆帪甯�,44
+4420,涓北甯�,44
+4451,娼窞甯�,44
+445102,婀樻ˉ鍖�,4451
+445103,娼畨鍖�,4451
+445122,楗跺钩鍘�,4451
+4452,鎻槼甯�,44
+445202,姒曞煄鍖�,4452
+445203,鎻笢鍖�,4452
+445222,鎻タ鍘�,4452
+445224,鎯犳潵鍘�,4452
+445281,鏅畞甯�,4452
+4453,浜戞诞甯�,44
+445302,浜戝煄鍖�,4453
+445303,浜戝畨鍖�,4453
+445321,鏂板叴鍘�,4453
+445322,閮佸崡鍘�,4453
+445381,缃楀畾甯�,4453
+45,骞胯タ澹棌鑷不鍖�, 
+4501,鍗楀畞甯�,45
+450102,鍏村畞鍖�,4501
+450103,闈掔鍖�,4501
+450105,姹熷崡鍖�,4501
+450107,瑗夸埂濉樺尯,4501
+450108,鑹簡鍖�,4501
+450109,閭曞畞鍖�,4501
+450110,姝﹂福鍖�,4501
+450123,闅嗗畨鍘�,4501
+450124,椹北鍘�,4501
+450125,涓婃灄鍘�,4501
+450126,瀹鹃槼鍘�,4501
+450127,妯幙,4501
+4502,鏌冲窞甯�,45
+450202,鍩庝腑鍖�,4502
+450203,楸煎嘲鍖�,4502
+450204,鏌冲崡鍖�,4502
+450205,鏌冲寳鍖�,4502
+450206,鏌虫睙鍖�,4502
+450222,鏌冲煄鍘�,4502
+450223,楣垮鍘�,4502
+450224,铻嶅畨鍘�,4502
+450225,铻嶆按鑻楁棌鑷不鍘�,4502
+450226,涓夋睙渚楁棌鑷不鍘�,4502
+4503,妗傛灄甯�,45
+450302,绉�宄板尯,4503
+450303,鍙犲僵鍖�,4503
+450304,璞″北鍖�,4503
+450305,涓冩槦鍖�,4503
+450311,闆佸北鍖�,4503
+450312,涓存鍖�,4503
+450321,闃虫湐鍘�,4503
+450323,鐏靛窛鍘�,4503
+450324,鍏ㄥ窞鍘�,4503
+450325,鍏村畨鍘�,4503
+450326,姘哥鍘�,4503
+450327,鐏岄槼鍘�,4503
+450328,榫欒儨鍚勬棌鑷不鍘�,4503
+450329,璧勬簮鍘�,4503
+450330,骞充箰鍘�,4503
+450332,鎭煄鐟舵棌鑷不鍘�,4503
+450381,鑽旀郸甯�,4503
+4504,姊у窞甯�,45
+450403,涓囩鍖�,4504
+450405,闀挎床鍖�,4504
+450406,榫欏湬鍖�,4504
+450421,鑻嶆ⅶ鍘�,4504
+450422,钘ゅ幙,4504
+450423,钂欏北鍘�,4504
+450481,宀戞邯甯�,4504
+4505,鍖楁捣甯�,45
+450502,娴峰煄鍖�,4505
+450503,閾舵捣鍖�,4505
+450512,閾佸北娓尯,4505
+450521,鍚堟郸鍘�,4505
+4506,闃插煄娓競,45
+450602,娓彛鍖�,4506
+450603,闃插煄鍖�,4506
+450621,涓婃�濆幙,4506
+450681,涓滃叴甯�,4506
+4507,閽﹀窞甯�,45
+450702,閽﹀崡鍖�,4507
+450703,閽﹀寳鍖�,4507
+450721,鐏靛北鍘�,4507
+450722,娴﹀寳鍘�,4507
+4508,璐垫腐甯�,45
+450802,娓寳鍖�,4508
+450803,娓崡鍖�,4508
+450804,瑕冨鍖�,4508
+450821,骞冲崡鍘�,4508
+450881,妗傚钩甯�,4508
+4509,鐜夋灄甯�,45
+450902,鐜夊窞鍖�,4509
+450903,绂忕坏鍖�,4509
+450921,瀹瑰幙,4509
+450922,闄嗗窛鍘�,4509
+450923,鍗氱櫧鍘�,4509
+450924,鍏翠笟鍘�,4509
+450981,鍖楁祦甯�,4509
+4510,鐧捐壊甯�,45
+451002,鍙虫睙鍖�,4510
+451021,鐢伴槼鍘�,4510
+451022,鐢颁笢鍘�,4510
+451023,骞虫灉鍘�,4510
+451024,寰蜂繚鍘�,4510
+451026,閭e潯鍘�,4510
+451027,鍑屼簯鍘�,4510
+451028,涔愪笟鍘�,4510
+451029,鐢版灄鍘�,4510
+451030,瑗挎灄鍘�,4510
+451031,闅嗘灄鍚勬棌鑷不鍘�,4510
+451081,闈栬タ甯�,4510
+4511,璐哄窞甯�,45
+451102,鍏鍖�,4511
+451103,骞虫鍖�,4511
+451121,鏄钩鍘�,4511
+451122,閽熷北鍘�,4511
+451123,瀵屽窛鐟舵棌鑷不鍘�,4511
+4512,娌虫睜甯�,45
+451202,閲戝煄姹熷尯,4512
+451203,瀹滃窞鍖�,4512
+451221,鍗椾腹鍘�,4512
+451222,澶╁敞鍘�,4512
+451223,鍑ゅ北鍘�,4512
+451224,涓滃叞鍘�,4512
+451225,缃楀煄浠浆鏃忚嚜娌诲幙,4512
+451226,鐜睙姣涘崡鏃忚嚜娌诲幙,4512
+451227,宸撮┈鐟舵棌鑷不鍘�,4512
+451228,閮藉畨鐟舵棌鑷不鍘�,4512
+451229,澶у寲鐟舵棌鑷不鍘�,4512
+4513,鏉ュ甯�,45
+451302,鍏村鍖�,4513
+451321,蹇诲煄鍘�,4513
+451322,璞″窞鍘�,4513
+451323,姝﹀鍘�,4513
+451324,閲戠鐟舵棌鑷不鍘�,4513
+451381,鍚堝北甯�,4513
+4514,宕囧乏甯�,45
+451402,姹熷窞鍖�,4514
+451421,鎵剁互鍘�,4514
+451422,瀹佹槑鍘�,4514
+451423,榫欏窞鍘�,4514
+451424,澶ф柊鍘�,4514
+451425,澶╃瓑鍘�,4514
+451481,鍑ゥ甯�,4514
+46,娴峰崡鐪�, 
+4601,娴峰彛甯�,46
+460105,绉�鑻卞尯,4601
+460106,榫欏崕鍖�,4601
+460107,鐞煎北鍖�,4601
+460108,缇庡叞鍖�,4601
+4602,涓変簹甯�,46
+460202,娴锋鍖�,4602
+460203,鍚夐槼鍖�,4602
+460204,澶╂动鍖�,4602
+460205,宕栧窞鍖�,4602
+4603,涓夋矙甯�,46
+4604,鍎嬪窞甯�,46
+469001,浜旀寚灞卞競,46
+469002,鐞兼捣甯�,46
+469005,鏂囨槍甯�,46
+469006,涓囧畞甯�,46
+469007,涓滄柟甯�,46
+469021,瀹氬畨鍘�,46
+469022,灞槍鍘�,46
+469023,婢勮繄鍘�,46
+469024,涓撮珮鍘�,46
+469025,鐧芥矙榛庢棌鑷不鍘�,46
+469026,鏄屾睙榛庢棌鑷不鍘�,46
+469027,涔愪笢榛庢棌鑷不鍘�,46
+469028,闄垫按榛庢棌鑷不鍘�,46
+469029,淇濅涵榛庢棌鑻楁棌鑷不鍘�,46
+469030,鐞间腑榛庢棌鑻楁棌鑷不鍘�,46
+50,閲嶅簡甯�, 
+500101,涓囧窞鍖�,50
+500102,娑櫟鍖�,50
+500103,娓濅腑鍖�,50
+500104,澶ф浮鍙e尯,50
+500105,姹熷寳鍖�,50
+500106,娌欏潽鍧濆尯,50
+500107,涔濋緳鍧″尯,50
+500108,鍗楀哺鍖�,50
+500109,鍖楃鍖�,50
+500110,缍︽睙鍖�,50
+500111,澶ц冻鍖�,50
+500112,娓濆寳鍖�,50
+500113,宸村崡鍖�,50
+500114,榛旀睙鍖�,50
+500115,闀垮鍖�,50
+500116,姹熸触鍖�,50
+500117,鍚堝窛鍖�,50
+500118,姘稿窛鍖�,50
+500119,鍗楀窛鍖�,50
+500120,鐠у北鍖�,50
+500151,閾滄鍖�,50
+500152,娼煎崡鍖�,50
+500153,鑽f槍鍖�,50
+500154,寮�宸炲尯,50
+500155,姊佸钩鍖�,50
+500156,姝﹂殕鍖�,50
+500229,鍩庡彛鍘�,50
+500230,涓伴兘鍘�,50
+500231,鍨睙鍘�,50
+500233,蹇犲幙,50
+500235,浜戦槼鍘�,50
+500236,濂夎妭鍘�,50
+500237,宸北鍘�,50
+500238,宸邯鍘�,50
+500240,鐭虫煴鍦熷鏃忚嚜娌诲幙,50
+500241,绉�灞卞湡瀹舵棌鑻楁棌鑷不鍘�,50
+500242,閰夐槼鍦熷鏃忚嫍鏃忚嚜娌诲幙,50
+500243,褰按鑻楁棌鍦熷鏃忚嚜娌诲幙,50
+51,鍥涘窛鐪�, 
+5101,鎴愰兘甯�,51
+510104,閿︽睙鍖�,5101
+510105,闈掔緤鍖�,5101
+510106,閲戠墰鍖�,5101
+510107,姝︿警鍖�,5101
+510108,鎴愬崕鍖�,5101
+510112,榫欐硥椹垮尯,5101
+510113,闈掔櫧姹熷尯,5101
+510114,鏂伴兘鍖�,5101
+510115,娓╂睙鍖�,5101
+510116,鍙屾祦鍖�,5101
+510117,閮兘鍖�,5101
+510121,閲戝爞鍘�,5101
+510129,澶ч倯鍘�,5101
+510131,钂叉睙鍘�,5101
+510132,鏂版触鍘�,5101
+510181,閮芥睙鍫板競,5101
+510182,褰窞甯�,5101
+510183,閭涘磧甯�,5101
+510184,宕囧窞甯�,5101
+510185,绠�闃冲競,5101
+5103,鑷础甯�,51
+510302,鑷祦浜曞尯,5103
+510303,璐′簳鍖�,5103
+510304,澶у畨鍖�,5103
+510311,娌挎哗鍖�,5103
+510321,鑽e幙,5103
+510322,瀵岄『鍘�,5103
+5104,鏀�鏋濊姳甯�,51
+510402,涓滃尯,5104
+510403,瑗垮尯,5104
+510411,浠佸拰鍖�,5104
+510421,绫虫槗鍘�,5104
+510422,鐩愯竟鍘�,5104
+5105,娉稿窞甯�,51
+510502,姹熼槼鍖�,5105
+510503,绾虫邯鍖�,5105
+510504,榫欓┈娼尯,5105
+510521,娉稿幙,5105
+510522,鍚堟睙鍘�,5105
+510524,鍙欐案鍘�,5105
+510525,鍙よ敽鍘�,5105
+5106,寰烽槼甯�,51
+510603,鏃岄槼鍖�,5106
+510604,缃楁睙鍖�,5106
+510623,涓睙鍘�,5106
+510681,骞挎眽甯�,5106
+510682,浠�閭″競,5106
+510683,缁电甯�,5106
+5107,缁甸槼甯�,51
+510703,娑煄鍖�,5107
+510704,娓镐粰鍖�,5107
+510705,瀹夊窞鍖�,5107
+510722,涓夊彴鍘�,5107
+510723,鐩愪涵鍘�,5107
+510725,姊撴郊鍘�,5107
+510726,鍖楀窛缇屾棌鑷不鍘�,5107
+510727,骞虫鍘�,5107
+510781,姹熸补甯�,5107
+5108,骞垮厓甯�,51
+510802,鍒╁窞鍖�,5108
+510811,鏄寲鍖�,5108
+510812,鏈濆ぉ鍖�,5108
+510821,鏃鸿媿鍘�,5108
+510822,闈掑窛鍘�,5108
+510823,鍓戦榿鍘�,5108
+510824,鑻嶆邯鍘�,5108
+5109,閬傚畞甯�,51
+510903,鑸瑰北鍖�,5109
+510904,瀹夊眳鍖�,5109
+510921,钃邯鍘�,5109
+510922,灏勬椽鍘�,5109
+510923,澶ц嫳鍘�,5109
+5110,鍐呮睙甯�,51
+511002,甯備腑鍖�,5110
+511011,涓滃叴鍖�,5110
+511024,濞佽繙鍘�,5110
+511025,璧勪腑鍘�,5110
+511083,闅嗘槍甯�,5110
+5111,涔愬北甯�,51
+511102,甯備腑鍖�,5111
+511111,娌欐咕鍖�,5111
+511112,浜旈�氭ˉ鍖�,5111
+511113,閲戝彛娌冲尯,5111
+511123,鐘嶄负鍘�,5111
+511124,浜曠爺鍘�,5111
+511126,澶规睙鍘�,5111
+511129,娌愬窛鍘�,5111
+511132,宄ㄨ竟褰濇棌鑷不鍘�,5111
+511133,椹竟褰濇棌鑷不鍘�,5111
+511181,宄ㄧ湁灞卞競,5111
+5113,鍗楀厖甯�,51
+511302,椤哄簡鍖�,5113
+511303,楂樺潽鍖�,5113
+511304,鍢夐櫟鍖�,5113
+511321,鍗楅儴鍘�,5113
+511322,钀ュ北鍘�,5113
+511323,钃畨鍘�,5113
+511324,浠檱鍘�,5113
+511325,瑗垮厖鍘�,5113
+511381,闃嗕腑甯�,5113
+5114,鐪夊北甯�,51
+511402,涓滃潯鍖�,5114
+511403,褰北鍖�,5114
+511421,浠佸鍘�,5114
+511423,娲泤鍘�,5114
+511424,涓规1鍘�,5114
+511425,闈掔鍘�,5114
+5115,瀹滃甯�,51
+511502,缈犲睆鍖�,5115
+511503,鍗楁邯鍖�,5115
+511504,鍙欏窞鍖�,5115
+511523,姹熷畨鍘�,5115
+511524,闀垮畞鍘�,5115
+511525,楂樺幙,5115
+511526,鐝欏幙,5115
+511527,绛犺繛鍘�,5115
+511528,鍏存枃鍘�,5115
+511529,灞忓北鍘�,5115
+5116,骞垮畨甯�,51
+511602,骞垮畨鍖�,5116
+511603,鍓嶉攱鍖�,5116
+511621,宀虫睜鍘�,5116
+511622,姝﹁儨鍘�,5116
+511623,閭绘按鍘�,5116
+511681,鍗庤摜甯�,5116
+5117,杈惧窞甯�,51
+511702,閫氬窛鍖�,5117
+511703,杈惧窛鍖�,5117
+511722,瀹f眽鍘�,5117
+511723,寮�姹熷幙,5117
+511724,澶х鍘�,5117
+511725,娓犲幙,5117
+511781,涓囨簮甯�,5117
+5118,闆呭畨甯�,51
+511802,闆ㄥ煄鍖�,5118
+511803,鍚嶅北鍖�,5118
+511822,鑽ョ粡鍘�,5118
+511823,姹夋簮鍘�,5118
+511824,鐭虫鍘�,5118
+511825,澶╁叏鍘�,5118
+511826,鑺﹀北鍘�,5118
+511827,瀹濆叴鍘�,5118
+5119,宸翠腑甯�,51
+511902,宸村窞鍖�,5119
+511903,鎭╅槼鍖�,5119
+511921,閫氭睙鍘�,5119
+511922,鍗楁睙鍘�,5119
+511923,骞虫槍鍘�,5119
+5120,璧勯槼甯�,51
+512002,闆佹睙鍖�,5120
+512021,瀹夊渤鍘�,5120
+512022,涔愯嚦鍘�,5120
+5132,闃垮潩钘忔棌缇屾棌鑷不宸�,51
+513201,椹皵搴峰競,5132
+513221,姹跺窛鍘�,5132
+513222,鐞嗗幙,5132
+513223,鑼傚幙,5132
+513224,鏉炬綐鍘�,5132
+513225,涔濆娌熷幙,5132
+513226,閲戝窛鍘�,5132
+513227,灏忛噾鍘�,5132
+513228,榛戞按鍘�,5132
+513230,澹ゅ鍘�,5132
+513231,闃垮潩鍘�,5132
+513232,鑻ュ皵鐩栧幙,5132
+513233,绾㈠師鍘�,5132
+5133,鐢樺瓬钘忔棌鑷不宸�,51
+513301,搴峰畾甯�,5133
+513322,娉稿畾鍘�,5133
+513323,涓瑰反鍘�,5133
+513324,涔濋緳鍘�,5133
+513325,闆呮睙鍘�,5133
+513326,閬撳瓪鍘�,5133
+513327,鐐夐湇鍘�,5133
+513328,鐢樺瓬鍘�,5133
+513329,鏂伴緳鍘�,5133
+513330,寰锋牸鍘�,5133
+513331,鐧界帀鍘�,5133
+513332,鐭虫笭鍘�,5133
+513333,鑹茶揪鍘�,5133
+513334,鐞嗗鍘�,5133
+513335,宸村鍘�,5133
+513336,涔″煄鍘�,5133
+513337,绋诲煄鍘�,5133
+513338,寰楄崳鍘�,5133
+5134,鍑夊北褰濇棌鑷不宸�,51
+513401,瑗挎槍甯�,5134
+513422,鏈ㄩ噷钘忔棌鑷不鍘�,5134
+513423,鐩愭簮鍘�,5134
+513424,寰锋槍鍘�,5134
+513425,浼氱悊鍘�,5134
+513426,浼氫笢鍘�,5134
+513427,瀹佸崡鍘�,5134
+513428,鏅牸鍘�,5134
+513429,甯冩嫋鍘�,5134
+513430,閲戦槼鍘�,5134
+513431,鏄鍘�,5134
+513432,鍠滃痉鍘�,5134
+513433,鍐曞畞鍘�,5134
+513434,瓒婅タ鍘�,5134
+513435,鐢樻礇鍘�,5134
+513436,缇庡鍘�,5134
+513437,闆锋尝鍘�,5134
+52,璐靛窞鐪�, 
+5201,璐甸槼甯�,52
+520102,鍗楁槑鍖�,5201
+520103,浜戝博鍖�,5201
+520111,鑺辨邯鍖�,5201
+520112,涔屽綋鍖�,5201
+520113,鐧戒簯鍖�,5201
+520115,瑙傚北婀栧尯,5201
+520121,寮�闃冲幙,5201
+520122,鎭兘鍘�,5201
+520123,淇枃鍘�,5201
+520181,娓呴晣甯�,5201
+5202,鍏洏姘村競,52
+520201,閽熷北鍖�,5202
+520203,鍏灊鐗瑰尯,5202
+520221,姘村煄鍘�,5202
+520281,鐩樺窞甯�,5202
+5203,閬典箟甯�,52
+520302,绾㈣姳宀楀尯,5203
+520303,姹囧窛鍖�,5203
+520304,鎾窞鍖�,5203
+520322,妗愭鍘�,5203
+520323,缁ラ槼鍘�,5203
+520324,姝e畨鍘�,5203
+520325,閬撶湡浠′浆鏃忚嫍鏃忚嚜娌诲幙,5203
+520326,鍔″窛浠′浆鏃忚嫍鏃忚嚜娌诲幙,5203
+520327,鍑ゅ唸鍘�,5203
+520328,婀勬江鍘�,5203
+520329,浣欏簡鍘�,5203
+520330,涔犳按鍘�,5203
+520381,璧ゆ按甯�,5203
+520382,浠佹��甯�,5203
+5204,瀹夐『甯�,52
+520402,瑗跨鍖�,5204
+520403,骞冲潩鍖�,5204
+520422,鏅畾鍘�,5204
+520423,闀囧畞甯冧緷鏃忚嫍鏃忚嚜娌诲幙,5204
+520424,鍏冲箔甯冧緷鏃忚嫍鏃忚嚜娌诲幙,5204
+520425,绱簯鑻楁棌甯冧緷鏃忚嚜娌诲幙,5204
+5205,姣曡妭甯�,52
+520502,涓冩槦鍏冲尯,5205
+520521,澶ф柟鍘�,5205
+520522,榛旇タ鍘�,5205
+520523,閲戞矙鍘�,5205
+520524,缁囬噾鍘�,5205
+520525,绾抽泹鍘�,5205
+520526,濞佸畞褰濇棌鍥炴棌鑻楁棌鑷不鍘�,5205
+520527,璧珷鍘�,5205
+5206,閾滀粊甯�,52
+520602,纰ф睙鍖�,5206
+520603,涓囧北鍖�,5206
+520621,姹熷彛鍘�,5206
+520622,鐜夊睆渚楁棌鑷不鍘�,5206
+520623,鐭抽槨鍘�,5206
+520624,鎬濆崡鍘�,5206
+520625,鍗版睙鍦熷鏃忚嫍鏃忚嚜娌诲幙,5206
+520626,寰锋睙鍘�,5206
+520627,娌挎渤鍦熷鏃忚嚜娌诲幙,5206
+520628,鏉炬鑻楁棌鑷不鍘�,5206
+5223,榛旇タ鍗楀竷渚濇棌鑻楁棌鑷不宸�,52
+522301,鍏翠箟甯�,5223
+522302,鍏翠粊甯�,5223
+522323,鏅畨鍘�,5223
+522324,鏅撮殕鍘�,5223
+522325,璐炰赴鍘�,5223
+522326,鏈涜盁鍘�,5223
+522327,鍐屼酣鍘�,5223
+522328,瀹夐緳鍘�,5223
+5226,榛斾笢鍗楄嫍鏃忎緱鏃忚嚜娌诲窞,52
+522601,鍑噷甯�,5226
+522622,榛勫钩鍘�,5226
+522623,鏂界鍘�,5226
+522624,涓夌鍘�,5226
+522625,闀囪繙鍘�,5226
+522626,宀戝珐鍘�,5226
+522627,澶╂煴鍘�,5226
+522628,閿﹀睆鍘�,5226
+522629,鍓戞渤鍘�,5226
+522630,鍙版睙鍘�,5226
+522631,榛庡钩鍘�,5226
+522632,姒曟睙鍘�,5226
+522633,浠庢睙鍘�,5226
+522634,闆峰北鍘�,5226
+522635,楹绘睙鍘�,5226
+522636,涓瑰鍘�,5226
+5227,榛斿崡甯冧緷鏃忚嫍鏃忚嚜娌诲窞,52
+522701,閮藉寑甯�,5227
+522702,绂忔硥甯�,5227
+522722,鑽旀尝鍘�,5227
+522723,璐靛畾鍘�,5227
+522725,鐡畨鍘�,5227
+522726,鐙北鍘�,5227
+522727,骞冲鍘�,5227
+522728,缃楃敻鍘�,5227
+522729,闀块『鍘�,5227
+522730,榫欓噷鍘�,5227
+522731,鎯犳按鍘�,5227
+522732,涓夐兘姘存棌鑷不鍘�,5227
+53,浜戝崡鐪�, 
+5301,鏄嗘槑甯�,53
+530102,浜斿崕鍖�,5301
+530103,鐩橀緳鍖�,5301
+530111,瀹樻浮鍖�,5301
+530112,瑗垮北鍖�,5301
+530113,涓滃窛鍖�,5301
+530114,鍛堣础鍖�,5301
+530115,鏅嬪畞鍖�,5301
+530124,瀵屾皯鍘�,5301
+530125,瀹滆壇鍘�,5301
+530126,鐭虫灄褰濇棌鑷不鍘�,5301
+530127,宓╂槑鍘�,5301
+530128,绂勫姖褰濇棌鑻楁棌鑷不鍘�,5301
+530129,瀵荤敻鍥炴棌褰濇棌鑷不鍘�,5301
+530181,瀹夊畞甯�,5301
+5303,鏇查潠甯�,53
+530302,楹掗簾鍖�,5303
+530303,娌剧泭鍖�,5303
+530304,椹緳鍖�,5303
+530322,闄嗚壇鍘�,5303
+530323,甯堝畻鍘�,5303
+530324,缃楀钩鍘�,5303
+530325,瀵屾簮鍘�,5303
+530326,浼氭辰鍘�,5303
+530381,瀹e▉甯�,5303
+5304,鐜夋邯甯�,53
+530402,绾㈠鍖�,5304
+530403,姹熷窛鍖�,5304
+530422,婢勬睙鍘�,5304
+530423,閫氭捣鍘�,5304
+530424,鍗庡畞鍘�,5304
+530425,鏄撻棬鍘�,5304
+530426,宄ㄥ北褰濇棌鑷不鍘�,5304
+530427,鏂板钩褰濇棌鍌f棌鑷不鍘�,5304
+530428,鍏冩睙鍝堝凹鏃忓綕鏃忓偅鏃忚嚜娌诲幙,5304
+5305,淇濆北甯�,53
+530502,闅嗛槼鍖�,5305
+530521,鏂界敻鍘�,5305
+530523,榫欓櫟鍘�,5305
+530524,鏄屽畞鍘�,5305
+530581,鑵惧啿甯�,5305
+5306,鏄�氬競,53
+530602,鏄槼鍖�,5306
+530621,椴佺敻鍘�,5306
+530622,宸у鍘�,5306
+530623,鐩愭触鍘�,5306
+530624,澶у叧鍘�,5306
+530625,姘稿杽鍘�,5306
+530626,缁ユ睙鍘�,5306
+530627,闀囬泟鍘�,5306
+530628,褰濊壇鍘�,5306
+530629,濞佷俊鍘�,5306
+530681,姘村瘜甯�,5306
+5307,涓芥睙甯�,53
+530702,鍙ゅ煄鍖�,5307
+530721,鐜夐緳绾宠タ鏃忚嚜娌诲幙,5307
+530722,姘歌儨鍘�,5307
+530723,鍗庡潽鍘�,5307
+530724,瀹佽挆褰濇棌鑷不鍘�,5307
+5308,鏅幢甯�,53
+530802,鎬濊寘鍖�,5308
+530821,瀹佹幢鍝堝凹鏃忓綕鏃忚嚜娌诲幙,5308
+530822,澧ㄦ睙鍝堝凹鏃忚嚜娌诲幙,5308
+530823,鏅笢褰濇棌鑷不鍘�,5308
+530824,鏅胺鍌f棌褰濇棌鑷不鍘�,5308
+530825,闀囨矃褰濇棌鍝堝凹鏃忔媺绁滄棌鑷不鍘�,5308
+530826,姹熷煄鍝堝凹鏃忓綕鏃忚嚜娌诲幙,5308
+530827,瀛熻繛鍌f棌鎷夌鏃忎饯鏃忚嚜娌诲幙,5308
+530828,婢滄钵鎷夌鏃忚嚜娌诲幙,5308
+530829,瑗跨洘浣ゆ棌鑷不鍘�,5308
+5309,涓存钵甯�,53
+530902,涓寸繑鍖�,5309
+530921,鍑ゅ簡鍘�,5309
+530922,浜戝幙,5309
+530923,姘稿痉鍘�,5309
+530924,闀囧悍鍘�,5309
+530925,鍙屾睙鎷夌鏃忎饯鏃忓竷鏈楁棌鍌f棌鑷不鍘�,5309
+530926,鑰块┈鍌f棌浣ゆ棌鑷不鍘�,5309
+530927,娌ф簮浣ゆ棌鑷不鍘�,5309
+5323,妤氶泟褰濇棌鑷不宸�,53
+532301,妤氶泟甯�,5323
+532322,鍙屾煆鍘�,5323
+532323,鐗熷畾鍘�,5323
+532324,鍗楀崕鍘�,5323
+532325,濮氬畨鍘�,5323
+532326,澶у鍘�,5323
+532327,姘镐粊鍘�,5323
+532328,鍏冭皨鍘�,5323
+532329,姝﹀畾鍘�,5323
+532331,绂勪赴鍘�,5323
+5325,绾㈡渤鍝堝凹鏃忓綕鏃忚嚜娌诲窞,53
+532501,涓棫甯�,5325
+532502,寮�杩滃競,5325
+532503,钂欒嚜甯�,5325
+532504,寮ュ嫆甯�,5325
+532523,灞忚竟鑻楁棌鑷不鍘�,5325
+532524,寤烘按鍘�,5325
+532525,鐭冲睆鍘�,5325
+532527,娉歌タ鍘�,5325
+532528,鍏冮槼鍘�,5325
+532529,绾㈡渤鍘�,5325
+532530,閲戝钩鑻楁棌鐟舵棌鍌f棌鑷不鍘�,5325
+532531,缁挎槬鍘�,5325
+532532,娌冲彛鐟舵棌鑷不鍘�,5325
+5326,鏂囧北澹棌鑻楁棌鑷不宸�,53
+532601,鏂囧北甯�,5326
+532622,鐮氬北鍘�,5326
+532623,瑗跨暣鍘�,5326
+532624,楹绘牀鍧″幙,5326
+532625,椹叧鍘�,5326
+532626,涓樺寳鍘�,5326
+532627,骞垮崡鍘�,5326
+532628,瀵屽畞鍘�,5326
+5328,瑗垮弻鐗堢撼鍌f棌鑷不宸�,53
+532801,鏅椽甯�,5328
+532822,鍕愭捣鍘�,5328
+532823,鍕愯厞鍘�,5328
+5329,澶х悊鐧芥棌鑷不宸�,53
+532901,澶х悊甯�,5329
+532922,婕炬繛褰濇棌鑷不鍘�,5329
+532923,绁ヤ簯鍘�,5329
+532924,瀹惧窛鍘�,5329
+532925,寮ユ浮鍘�,5329
+532926,鍗楁锭褰濇棌鑷不鍘�,5329
+532927,宸嶅北褰濇棌鍥炴棌鑷不鍘�,5329
+532928,姘稿钩鍘�,5329
+532929,浜戦緳鍘�,5329
+532930,娲辨簮鍘�,5329
+532931,鍓戝窛鍘�,5329
+532932,楣ゅ簡鍘�,5329
+5331,寰峰畯鍌f棌鏅鏃忚嚜娌诲窞,53
+533102,鐟炰附甯�,5331
+533103,鑺掑競,5331
+533122,姊佹渤鍘�,5331
+533123,鐩堟睙鍘�,5331
+533124,闄囧窛鍘�,5331
+5333,鎬掓睙鍌堝兂鏃忚嚜娌诲窞,53
+533301,娉告按甯�,5333
+533323,绂忚础鍘�,5333
+533324,璐″北鐙緳鏃忔�掓棌鑷不鍘�,5333
+533325,鍏板潽鐧芥棌鏅背鏃忚嚜娌诲幙,5333
+5334,杩簡钘忔棌鑷不宸�,53
+533401,棣欐牸閲屾媺甯�,5334
+533422,寰烽挦鍘�,5334
+533423,缁磋タ鍌堝兂鏃忚嚜娌诲幙,5334
+54,瑗胯棌鑷不鍖�, 
+5401,鎷夎惃甯�,54
+540102,鍩庡叧鍖�,5401
+540103,鍫嗛緳寰峰簡鍖�,5401
+540104,杈惧瓬鍖�,5401
+540121,鏋楀懆鍘�,5401
+540122,褰撻泟鍘�,5401
+540123,灏兼湪鍘�,5401
+540124,鏇叉按鍘�,5401
+540127,澧ㄧ宸ュ崱鍘�,5401
+5402,鏃ュ杸鍒欏競,54
+540202,妗戠彔瀛滃尯,5402
+540221,鍗楁湪鏋楀幙,5402
+540222,姹熷瓬鍘�,5402
+540223,瀹氭棩鍘�,5402
+540224,钀ㄨ喀鍘�,5402
+540225,鎷夊瓬鍘�,5402
+540226,鏄備粊鍘�,5402
+540227,璋㈤�氶棬鍘�,5402
+540228,鐧芥湕鍘�,5402
+540229,浠佸竷鍘�,5402
+540230,搴烽┈鍘�,5402
+540231,瀹氱粨鍘�,5402
+540232,浠插反鍘�,5402
+540233,浜氫笢鍘�,5402
+540234,鍚夐殕鍘�,5402
+540235,鑱傛媺鏈ㄥ幙,5402
+540236,钀ㄥ槑鍘�,5402
+540237,宀楀反鍘�,5402
+5403,鏄岄兘甯�,54
+540302,鍗¤嫢鍖�,5403
+540321,姹熻揪鍘�,5403
+540322,璐¤鍘�,5403
+540323,绫讳箤榻愬幙,5403
+540324,涓侀潚鍘�,5403
+540325,瀵熼泤鍘�,5403
+540326,鍏鍘�,5403
+540327,宸﹁础鍘�,5403
+540328,鑺掑悍鍘�,5403
+540329,娲涢殕鍘�,5403
+540330,杈瑰潩鍘�,5403
+5404,鏋楄姖甯�,54
+540402,宸村疁鍖�,5404
+540421,宸ュ竷姹熻揪鍘�,5404
+540422,绫虫灄鍘�,5404
+540423,澧ㄨ劚鍘�,5404
+540424,娉㈠瘑鍘�,5404
+540425,瀵熼殔鍘�,5404
+540426,鏈楀幙,5404
+5405,灞卞崡甯�,54
+540502,涔冧笢鍖�,5405
+540521,鎵庡泭鍘�,5405
+540522,璐″槑鍘�,5405
+540523,妗戞棩鍘�,5405
+540524,鐞肩粨鍘�,5405
+540525,鏇叉澗鍘�,5405
+540526,鎺編鍘�,5405
+540527,娲涙墡鍘�,5405
+540528,鍔犳煡鍘�,5405
+540529,闅嗗瓙鍘�,5405
+540530,閿欓偅鍘�,5405
+540531,娴崱瀛愬幙,5405
+5406,閭f洸甯�,54
+540602,鑹插凹鍖�,5406
+540621,鍢夐粠鍘�,5406
+540622,姣斿鍘�,5406
+540623,鑱傝崳鍘�,5406
+540624,瀹夊鍘�,5406
+540625,鐢虫墡鍘�,5406
+540626,绱㈠幙,5406
+540627,鐝垐鍘�,5406
+540628,宸撮潚鍘�,5406
+540629,灏肩帥鍘�,5406
+540630,鍙屾箹鍘�,5406
+5425,闃块噷鍦板尯,54
+542521,鏅叞鍘�,5425
+542522,鏈揪鍘�,5425
+542523,鍣跺皵鍘�,5425
+542524,鏃ュ湡鍘�,5425
+542525,闈╁悏鍘�,5425
+542526,鏀瑰垯鍘�,5425
+542527,鎺嫟鍘�,5425
+61,闄曡タ鐪�, 
+6101,瑗垮畨甯�,61
+610102,鏂板煄鍖�,6101
+610103,纰戞灄鍖�,6101
+610104,鑾叉箹鍖�,6101
+610111,鐏炴ˉ鍖�,6101
+610112,鏈ぎ鍖�,6101
+610113,闆佸鍖�,6101
+610114,闃庤壇鍖�,6101
+610115,涓存郊鍖�,6101
+610116,闀垮畨鍖�,6101
+610117,楂橀櫟鍖�,6101
+610118,閯犻倯鍖�,6101
+610122,钃濈敯鍘�,6101
+610124,鍛ㄨ嚦鍘�,6101
+6102,閾滃窛甯�,61
+610202,鐜嬬泭鍖�,6102
+610203,鍗板彴鍖�,6102
+610204,鑰�宸炲尯,6102
+610222,瀹滃悰鍘�,6102
+6103,瀹濋浮甯�,61
+610302,娓花鍖�,6103
+610303,閲戝彴鍖�,6103
+610304,闄堜粨鍖�,6103
+610322,鍑ょ繑鍘�,6103
+610323,宀愬北鍘�,6103
+610324,鎵堕鍘�,6103
+610326,鐪夊幙,6103
+610327,闄囧幙,6103
+610328,鍗冮槼鍘�,6103
+610329,楹熸父鍘�,6103
+610330,鍑ゅ幙,6103
+610331,澶櫧鍘�,6103
+6104,鍜搁槼甯�,61
+610402,绉﹂兘鍖�,6104
+610403,鏉ㄩ櫟鍖�,6104
+610404,娓煄鍖�,6104
+610422,涓夊師鍘�,6104
+610423,娉鹃槼鍘�,6104
+610424,涔惧幙,6104
+610425,绀兼硥鍘�,6104
+610426,姘稿鍘�,6104
+610428,闀挎鍘�,6104
+610429,鏃倯鍘�,6104
+610430,娣冲寲鍘�,6104
+610431,姝﹀姛鍘�,6104
+610481,鍏村钩甯�,6104
+610482,褰窞甯�,6104
+6105,娓崡甯�,61
+610502,涓存腑鍖�,6105
+610503,鍗庡窞鍖�,6105
+610522,娼煎叧鍘�,6105
+610523,澶ц崝鍘�,6105
+610524,鍚堥槼鍘�,6105
+610525,婢勫煄鍘�,6105
+610526,钂插煄鍘�,6105
+610527,鐧芥按鍘�,6105
+610528,瀵屽钩鍘�,6105
+610581,闊╁煄甯�,6105
+610582,鍗庨槾甯�,6105
+6106,寤跺畨甯�,61
+610602,瀹濆鍖�,6106
+610603,瀹夊鍖�,6106
+610621,寤堕暱鍘�,6106
+610622,寤跺窛鍘�,6106
+610623,瀛愰暱鍘�,6106
+610625,蹇椾腹鍘�,6106
+610626,鍚磋捣鍘�,6106
+610627,鐢樻硥鍘�,6106
+610628,瀵屽幙,6106
+610629,娲涘窛鍘�,6106
+610630,瀹滃窛鍘�,6106
+610631,榛勯緳鍘�,6106
+610632,榛勯櫟鍘�,6106
+6107,姹変腑甯�,61
+610702,姹夊彴鍖�,6107
+610703,鍗楅儜鍖�,6107
+610722,鍩庡浐鍘�,6107
+610723,娲嬪幙,6107
+610724,瑗夸埂鍘�,6107
+610725,鍕夊幙,6107
+610726,瀹佸己鍘�,6107
+610727,鐣ラ槼鍘�,6107
+610728,闀囧反鍘�,6107
+610729,鐣欏潩鍘�,6107
+610730,浣涘潽鍘�,6107
+6108,姒嗘灄甯�,61
+610802,姒嗛槼鍖�,6108
+610803,妯北鍖�,6108
+610822,搴滆胺鍘�,6108
+610824,闈栬竟鍘�,6108
+610825,瀹氳竟鍘�,6108
+610826,缁ュ痉鍘�,6108
+610827,绫宠剛鍘�,6108
+610828,浣冲幙,6108
+610829,鍚村牎鍘�,6108
+610830,娓呮锭鍘�,6108
+610831,瀛愭床鍘�,6108
+610881,绁炴湪甯�,6108
+6109,瀹夊悍甯�,61
+610902,姹夋花鍖�,6109
+610921,姹夐槾鍘�,6109
+610922,鐭虫硥鍘�,6109
+610923,瀹侀檿鍘�,6109
+610924,绱槼鍘�,6109
+610925,宀氱殝鍘�,6109
+610926,骞冲埄鍘�,6109
+610927,闀囧潽鍘�,6109
+610928,鏃槼鍘�,6109
+610929,鐧芥渤鍘�,6109
+6110,鍟嗘礇甯�,61
+611002,鍟嗗窞鍖�,6110
+611021,娲涘崡鍘�,6110
+611022,涓瑰嚖鍘�,6110
+611023,鍟嗗崡鍘�,6110
+611024,灞遍槼鍘�,6110
+611025,闀囧畨鍘�,6110
+611026,鏌炴按鍘�,6110
+62,鐢樿們鐪�, 
+6201,鍏板窞甯�,62
+620102,鍩庡叧鍖�,6201
+620103,涓冮噷娌冲尯,6201
+620104,瑗垮浐鍖�,6201
+620105,瀹夊畞鍖�,6201
+620111,绾㈠彜鍖�,6201
+620121,姘哥櫥鍘�,6201
+620122,鐨嬪叞鍘�,6201
+620123,姒嗕腑鍘�,6201
+6202,鍢夊唱鍏冲競,62
+6203,閲戞槍甯�,62
+620302,閲戝窛鍖�,6203
+620321,姘告槍鍘�,6203
+6204,鐧介摱甯�,62
+620402,鐧介摱鍖�,6204
+620403,骞冲窛鍖�,6204
+620421,闈栬繙鍘�,6204
+620422,浼氬畞鍘�,6204
+620423,鏅嘲鍘�,6204
+6205,澶╂按甯�,62
+620502,绉﹀窞鍖�,6205
+620503,楹︾Н鍖�,6205
+620521,娓呮按鍘�,6205
+620522,绉﹀畨鍘�,6205
+620523,鐢樿胺鍘�,6205
+620524,姝﹀北鍘�,6205
+620525,寮犲宸濆洖鏃忚嚜娌诲幙,6205
+6206,姝﹀▉甯�,62
+620602,鍑夊窞鍖�,6206
+620621,姘戝嫟鍘�,6206
+620622,鍙ゆ氮鍘�,6206
+620623,澶╃钘忔棌鑷不鍘�,6206
+6207,寮犳帠甯�,62
+620702,鐢樺窞鍖�,6207
+620721,鑲冨崡瑁曞浐鏃忚嚜娌诲幙,6207
+620722,姘戜箰鍘�,6207
+620723,涓存辰鍘�,6207
+620724,楂樺彴鍘�,6207
+620725,灞变腹鍘�,6207
+6208,骞冲噳甯�,62
+620802,宕嗗硳鍖�,6208
+620821,娉惧窛鍘�,6208
+620822,鐏靛彴鍘�,6208
+620823,宕囦俊鍘�,6208
+620825,搴勬氮鍘�,6208
+620826,闈欏畞鍘�,6208
+620881,鍗庝涵甯�,6208
+6209,閰掓硥甯�,62
+620902,鑲冨窞鍖�,6209
+620921,閲戝鍘�,6209
+620922,鐡滃窞鍘�,6209
+620923,鑲冨寳钂欏彜鏃忚嚜娌诲幙,6209
+620924,闃垮厠濉炲搱钀ㄥ厠鏃忚嚜娌诲幙,6209
+620981,鐜夐棬甯�,6209
+620982,鏁︾厡甯�,6209
+6210,搴嗛槼甯�,62
+621002,瑗垮嘲鍖�,6210
+621021,搴嗗煄鍘�,6210
+621022,鐜幙,6210
+621023,鍗庢睜鍘�,6210
+621024,鍚堟按鍘�,6210
+621025,姝e畞鍘�,6210
+621026,瀹佸幙,6210
+621027,闀囧師鍘�,6210
+6211,瀹氳タ甯�,62
+621102,瀹夊畾鍖�,6211
+621121,閫氭腑鍘�,6211
+621122,闄囪タ鍘�,6211
+621123,娓簮鍘�,6211
+621124,涓存串鍘�,6211
+621125,婕冲幙,6211
+621126,宀峰幙,6211
+6212,闄囧崡甯�,62
+621202,姝﹂兘鍖�,6212
+621221,鎴愬幙,6212
+621222,鏂囧幙,6212
+621223,瀹曟槍鍘�,6212
+621224,搴峰幙,6212
+621225,瑗垮拰鍘�,6212
+621226,绀煎幙,6212
+621227,寰藉幙,6212
+621228,涓ゅ綋鍘�,6212
+6229,涓村鍥炴棌鑷不宸�,62
+622901,涓村甯�,6229
+622921,涓村鍘�,6229
+622922,搴蜂箰鍘�,6229
+622923,姘搁潠鍘�,6229
+622924,骞挎渤鍘�,6229
+622925,鍜屾斂鍘�,6229
+622926,涓滀埂鏃忚嚜娌诲幙,6229
+622927,绉煶灞变繚瀹夋棌涓滀埂鏃忔拻鎷夋棌鑷不鍘�,6229
+6230,鐢樺崡钘忔棌鑷不宸�,62
+623001,鍚堜綔甯�,6230
+623021,涓存江鍘�,6230
+623022,鍗撳凹鍘�,6230
+623023,鑸熸洸鍘�,6230
+623024,杩儴鍘�,6230
+623025,鐜涙洸鍘�,6230
+623026,纰屾洸鍘�,6230
+623027,澶忔渤鍘�,6230
+63,闈掓捣鐪�, 
+6301,瑗垮畞甯�,63
+630102,鍩庝笢鍖�,6301
+630103,鍩庝腑鍖�,6301
+630104,鍩庤タ鍖�,6301
+630105,鍩庡寳鍖�,6301
+630121,澶ч�氬洖鏃忓湡鏃忚嚜娌诲幙,6301
+630122,婀熶腑鍘�,6301
+630123,婀熸簮鍘�,6301
+6302,娴蜂笢甯�,63
+630202,涔愰兘鍖�,6302
+630203,骞冲畨鍖�,6302
+630222,姘戝拰鍥炴棌鍦熸棌鑷不鍘�,6302
+630223,浜掑姪鍦熸棌鑷不鍘�,6302
+630224,鍖栭殕鍥炴棌鑷不鍘�,6302
+630225,寰寲鎾掓媺鏃忚嚜娌诲幙,6302
+6322,娴峰寳钘忔棌鑷不宸�,63
+632221,闂ㄦ簮鍥炴棌鑷不鍘�,6322
+632222,绁佽繛鍘�,6322
+632223,娴锋檹鍘�,6322
+632224,鍒氬療鍘�,6322
+6323,榛勫崡钘忔棌鑷不宸�,63
+632321,鍚屼粊鍘�,6323
+632322,灏栨墡鍘�,6323
+632323,娉藉簱鍘�,6323
+632324,娌冲崡钂欏彜鏃忚嚜娌诲幙,6323
+6325,娴峰崡钘忔棌鑷不宸�,63
+632521,鍏卞拰鍘�,6325
+632522,鍚屽痉鍘�,6325
+632523,璐靛痉鍘�,6325
+632524,鍏存捣鍘�,6325
+632525,璐靛崡鍘�,6325
+6326,鏋滄礇钘忔棌鑷不宸�,63
+632621,鐜涙瞾鍘�,6326
+632622,鐝帥鍘�,6326
+632623,鐢樺痉鍘�,6326
+632624,杈炬棩鍘�,6326
+632625,涔呮不鍘�,6326
+632626,鐜涘鍘�,6326
+6327,鐜夋爲钘忔棌鑷不宸�,63
+632701,鐜夋爲甯�,6327
+632722,鏉傚鍘�,6327
+632723,绉板鍘�,6327
+632724,娌诲鍘�,6327
+632725,鍥婅唉鍘�,6327
+632726,鏇查夯鑾卞幙,6327
+6328,娴疯タ钂欏彜鏃忚棌鏃忚嚜娌诲窞,63
+632801,鏍煎皵鏈ㄥ競,6328
+632802,寰蜂护鍝堝競,6328
+632803,鑼礀甯�,6328
+632821,涔屽叞鍘�,6328
+632822,閮藉叞鍘�,6328
+632823,澶╁郴鍘�,6328
+64,瀹佸鍥炴棌鑷不鍖�, 
+6401,閾跺窛甯�,64
+640104,鍏村簡鍖�,6401
+640105,瑗垮鍖�,6401
+640106,閲戝嚖鍖�,6401
+640121,姘稿畞鍘�,6401
+640122,璐哄叞鍘�,6401
+640181,鐏垫甯�,6401
+6402,鐭冲槾灞卞競,64
+640202,澶ф鍙e尯,6402
+640205,鎯犲啘鍖�,6402
+640221,骞崇綏鍘�,6402
+6403,鍚村繝甯�,64
+640302,鍒╅�氬尯,6403
+640303,绾㈠鍫″尯,6403
+640323,鐩愭睜鍘�,6403
+640324,鍚屽績鍘�,6403
+640381,闈掗摐宄″競,6403
+6404,鍥哄師甯�,64
+640402,鍘熷窞鍖�,6404
+640422,瑗垮悏鍘�,6404
+640423,闅嗗痉鍘�,6404
+640424,娉炬簮鍘�,6404
+640425,褰槼鍘�,6404
+6405,涓崼甯�,64
+640502,娌欏潯澶村尯,6405
+640521,涓畞鍘�,6405
+640522,娴峰師鍘�,6405
+65,鏂扮枂缁村惥灏旇嚜娌诲尯, 
+6501,涔岄瞾鏈ㄩ綈甯�,65
+650102,澶╁北鍖�,6501
+650103,娌欎緷宸村厠鍖�,6501
+650104,鏂板競鍖�,6501
+650105,姘寸(娌熷尯,6501
+650106,澶村悲娌冲尯,6501
+650107,杈惧潅鍩庡尯,6501
+650109,绫充笢鍖�,6501
+650121,涔岄瞾鏈ㄩ綈鍘�,6501
+6502,鍏嬫媺鐜涗緷甯�,65
+650202,鐙北瀛愬尯,6502
+650203,鍏嬫媺鐜涗緷鍖�,6502
+650204,鐧界⒈婊╁尯,6502
+650205,涔屽皵绂惧尯,6502
+6504,鍚愰瞾鐣競,65
+650402,楂樻槍鍖�,6504
+650421,閯杽鍘�,6504
+650422,鎵樺厠閫婂幙,6504
+6505,鍝堝瘑甯�,65
+650502,浼婂窞鍖�,6505
+650521,宸撮噷鍧ゅ搱钀ㄥ厠鑷不鍘�,6505
+650522,浼婂惥鍘�,6505
+6523,鏄屽悏鍥炴棌鑷不宸�,65
+652301,鏄屽悏甯�,6523
+652302,闃滃悍甯�,6523
+652323,鍛煎浘澹佸幙,6523
+652324,鐜涚撼鏂幙,6523
+652325,濂囧彴鍘�,6523
+652327,鍚夋湪钀ㄥ皵鍘�,6523
+652328,鏈ㄥ瀿鍝堣惃鍏嬭嚜娌诲幙,6523
+6527,鍗氬皵濉旀媺钂欏彜鑷不宸�,65
+652701,鍗氫箰甯�,6527
+652702,闃挎媺灞卞彛甯�,6527
+652722,绮炬渤鍘�,6527
+652723,娓╂硥鍘�,6527
+6528,宸撮煶閮钂欏彜鑷不宸�,65
+652801,搴撳皵鍕掑競,6528
+652822,杞彴鍘�,6528
+652823,灏夌妬鍘�,6528
+652824,鑻ョ緦鍘�,6528
+652825,涓旀湯鍘�,6528
+652826,鐒夎�嗗洖鏃忚嚜娌诲幙,6528
+652827,鍜岄潤鍘�,6528
+652828,鍜岀鍘�,6528
+652829,鍗氭箹鍘�,6528
+6529,闃垮厠鑻忓湴鍖�,65
+652901,闃垮厠鑻忓競,6529
+652922,娓╁鍘�,6529
+652923,搴撹溅鍘�,6529
+652924,娌欓泤鍘�,6529
+652925,鏂板拰鍘�,6529
+652926,鎷滃煄鍘�,6529
+652927,涔屼粈鍘�,6529
+652928,闃跨摝鎻愬幙,6529
+652929,鏌潽鍘�,6529
+6530,鍏嬪瓬鍕掕嫃鏌皵鍏嬪瓬鑷不宸�,65
+653001,闃垮浘浠�甯�,6530
+653022,闃垮厠闄跺幙,6530
+653023,闃垮悎濂囧幙,6530
+653024,涔屾伆鍘�,6530
+6531,鍠�浠�鍦板尯,65
+653101,鍠�浠�甯�,6531
+653121,鐤忛檮鍘�,6531
+653122,鐤忓嫆鍘�,6531
+653123,鑻卞悏娌欏幙,6531
+653124,娉芥櫘鍘�,6531
+653125,鑾庤溅鍘�,6531
+653126,鍙跺煄鍘�,6531
+653127,楹︾洊鎻愬幙,6531
+653128,宀虫櫘婀栧幙,6531
+653129,浼藉笀鍘�,6531
+653130,宸存鍘�,6531
+653131,濉斾粈搴撳皵骞插鍚夊厠鑷不鍘�,6531
+6532,鍜岀敯鍦板尯,65
+653201,鍜岀敯甯�,6532
+653221,鍜岀敯鍘�,6532
+653222,澧ㄧ帀鍘�,6532
+653223,鐨北鍘�,6532
+653224,娲涙郸鍘�,6532
+653225,绛栧嫆鍘�,6532
+653226,浜庣敯鍘�,6532
+653227,姘戜赴鍘�,6532
+6540,浼婄妬鍝堣惃鍏嬭嚜娌诲窞,65
+654002,浼婂畞甯�,6540
+654003,濂庡悲甯�,6540
+654004,闇嶅皵鏋滄柉甯�,6540
+654021,浼婂畞鍘�,6540
+654022,瀵熷竷鏌ュ皵閿′集鑷不鍘�,6540
+654023,闇嶅煄鍘�,6540
+654024,宸╃暀鍘�,6540
+654025,鏂版簮鍘�,6540
+654026,鏄嫃鍘�,6540
+654027,鐗瑰厠鏂幙,6540
+654028,灏煎嫆鍏嬪幙,6540
+6542,濉斿煄鍦板尯,65
+654201,濉斿煄甯�,6542
+654202,涔岃嫃甯�,6542
+654221,棰濇晱鍘�,6542
+654223,娌欐咕鍘�,6542
+654224,鎵橀噷鍘�,6542
+654225,瑁曟皯鍘�,6542
+654226,鍜屽竷鍏嬭禌灏旇挋鍙よ嚜娌诲幙,6542
+6543,闃垮嫆娉板湴鍖�,65
+654301,闃垮嫆娉板競,6543
+654321,甯冨皵娲ュ幙,6543
+654322,瀵岃暣鍘�,6543
+654323,绂忔捣鍘�,6543
+654324,鍝堝反娌冲幙,6543
+654325,闈掓渤鍘�,6543
+654326,鍚夋湪涔冨幙,6543
+659001,鐭虫渤瀛愬競,65
+659002,闃挎媺灏斿競,65
+659003,鍥炬湪鑸掑厠甯�,65
+659004,浜斿娓犲競,65
+659005,鍖楀悲甯�,65
+659006,閾侀棬鍏冲競,65
+659007,鍙屾渤甯�,65
+659008,鍙厠杈炬媺甯�,65
+659009,鏄嗙帀甯�,65
+71,鍙版咕鐪�, 
+81,棣欐腐鐗瑰埆琛屾斂鍖�, 
+82,婢抽棬鐗瑰埆琛屾斂鍖�, 
\ No newline at end of file
diff --git a/web_src/src/components/ParentPlatformList.vue b/web_src/src/components/ParentPlatformList.vue
index 61e93fc..c3c9735 100644
--- a/web_src/src/components/ParentPlatformList.vue
+++ b/web_src/src/components/ParentPlatformList.vue
@@ -144,7 +144,7 @@
     },
     chooseChannel: function(platform) {
         console.log("platform.name: " + platform.name)
-       this.$refs.chooseChannelDialog.openDialog(platform.serverGBId,platform.deviceGBId, platform.name, platform.catalogId, platform.treeType, this.initData)
+       this.$refs.chooseChannelDialog.openDialog(platform.serverGBId,platform.deviceGBId, platform.name, platform.catalogId, this.initData)
     },
     initData: function() {
       this.getPlatformList();
diff --git a/web_src/src/components/dialog/catalogEdit.vue b/web_src/src/components/dialog/catalogEdit.vue
index e1cd8d2..e2fe59b 100644
--- a/web_src/src/components/dialog/catalogEdit.vue
+++ b/web_src/src/components/dialog/catalogEdit.vue
@@ -46,12 +46,11 @@
 export default {
   name: "catalogEdit",
   computed: {},
-  props: ['platformId'],
+  props: ['platformId', 'platformDeviceId'],
   created() {},
   data() {
     let checkId = (rule, value, callback) => {
       console.log("checkId")
-      console.log(this.treeType)
       console.log(rule)
       console.log(value)
       console.log(value.length)
@@ -59,21 +58,34 @@
       if (!value) {
         return callback(new Error('缂栧彿涓嶈兘涓虹┖'));
       }
-      if (this.treeType === "BusinessGroup" && value.length !== 20) {
-        return callback(new Error('缂栧彿蹇呴』鐢�20浣嶆暟瀛楃粍鎴�'));
-      }
-      if (this.treeType === "CivilCode" && value.length <= 8 && value.length%2 !== 0) {
-        return callback(new Error('琛屾斂鍖哄垝蹇呴』鏄叓浣嶄互涓嬬殑鍋舵暟涓暟瀛楃粍鎴�'));
-      }
-      if (this.treeType === "BusinessGroup") {
+      if (value.trim().length <= 8) {
+        if (value.trim().length%2 !== 0) {
+          return callback(new Error('琛屾斂鍖哄垝缂栧彿蹇呴』涓�2/4/6/8浣�'));
+        }
+        if (this.form.parentId !== this.platformDeviceId && this.form.parentId.length >= value.trim().length) {
+          return callback(new Error('琛屾斂鍖哄垝缂栧彿闀垮害搴旇姣忔涓や綅閫掑'));
+        }
+      }else {
+        if (value.trim().length !== 20) {
+          return callback(new Error('缂栧彿蹇呴』涓�2/4/6/8浣嶇殑琛屾斂鍖哄垝鎴�20浣嶇殑铏氭嫙缁勭粐/涓氬姟鍒嗙粍'));
+        }
         let catalogType = value.substring(10, 13);
         console.log(catalogType)
-        // 216 涓鸿櫄鎷熺粍缁� 215 涓轰笟鍔″垎缁勶紱鐩綍绗竴绾у繀椤讳负涓氬姟鍒嗙粍锛� 涓氬姟鍒嗙粍涓嬩负铏氭嫙缁勭粐锛岃櫄鎷熺粍缁囦笅鍙互鏈夊叾浠栬櫄鎷熺粍缁�
-        if (this.level === 1 && catalogType !== "215") {
-          return callback(new Error('涓氬姟鍒嗙粍妯″紡涓嬬涓�灞傜洰褰曠殑缂栧彿11鍒�13浣嶅繀椤讳负215'));
+        if (catalogType !== "215" && catalogType !== "216") {
+          return callback(new Error('缂栧彿閿欒锛屼笟鍔″垎缁�11-13浣嶄负215锛岃櫄鎷熺粍缁�11-13浣嶄负216'));
         }
-        if (this.level > 1 && catalogType !== "216") {
-          return callback(new Error('涓氬姟鍒嗙粍妯″紡涓嬬涓�灞備互涓嬬洰褰曠殑缂栧彿11鍒�13浣嶅繀椤讳负216'));
+        if (catalogType === "216") {
+
+          if (this.form.parentId !== this.platformDeviceId){
+            if (this.form.parentId.length <= 8) {
+              return callback(new Error('缂栧彿閿欒锛屽缓绔嬭櫄鎷熺粍缁囧墠蹇呴』鍏堝缓绔嬩笟鍔″垎缁勶紙11-13浣嶄负215锛�'));
+            }
+          }
+        }
+        if (catalogType === "215") {
+          if (this.form.parentId.length === "215") {
+            return callback(new Error('缂栧彿閿欒锛屼笟鍔″垎缁勪笅鍙兘寤虹珛铏氭嫙缁勭粐锛�11-13浣嶄负216锛�'));
+          }
         }
       }
       callback();
@@ -83,7 +95,6 @@
       showDialog: false,
       isLoging: false,
       isEdit: false,
-      treeType: null,
       level: 0,
       form: {
         id: null,
@@ -98,7 +109,7 @@
     };
   },
   methods: {
-    openDialog: function (isEdit, id, name, parentId, treeType, level, callback) {
+    openDialog: function (isEdit, id, name, parentId, level, callback) {
       console.log("parentId: " + parentId)
       console.log(this.form)
       this.isEdit = isEdit;
@@ -108,7 +119,6 @@
       this.form.parentId = parentId;
       this.showDialog = true;
       this.submitCallback = callback;
-      this.treeType = treeType;
       this.level = level;
     },
     onSubmit: function () {
diff --git a/web_src/src/components/dialog/chooseChannel.vue b/web_src/src/components/dialog/chooseChannel.vue
index be7e969..86bea83 100644
--- a/web_src/src/components/dialog/chooseChannel.vue
+++ b/web_src/src/components/dialog/chooseChannel.vue
@@ -8,7 +8,7 @@
             <el-tab-pane label="鐩綍缁撴瀯" name="catalog">
               <el-container>
                 <el-main v-bind:style="{backgroundColor: '#FFF', maxHeight:  winHeight + 'px'}">
-                  <chooseChannelForCatalog ref="chooseChannelForCatalog" :platformId=platformId :platformDeviceId=platformDeviceId :platformName=platformName :defaultCatalogId=defaultCatalogId :catalogIdChange="catalogIdChange" :treeType=treeType ></chooseChannelForCatalog>
+                  <chooseChannelForCatalog ref="chooseChannelForCatalog" :platformId=platformId :platformDeviceId=platformDeviceId :platformName=platformName :defaultCatalogId=defaultCatalogId :catalogIdChange="catalogIdChange" ></chooseChannelForCatalog>
                 </el-main>
               </el-container>
             </el-tab-pane>
@@ -67,14 +67,13 @@
             platformName: "",
             defaultCatalogId: "",
             showDialog: false,
-            treeType: null,
             chooseData: {},
             winHeight: window.innerHeight - 250,
 
         };
     },
     methods: {
-        openDialog(platformId, platformDeviceId, platformName, defaultCatalogId, treeType, closeCallback) {
+        openDialog(platformId, platformDeviceId, platformName, defaultCatalogId, closeCallback) {
             console.log("defaultCatalogId: " + defaultCatalogId)
             this.platformId = platformId
             this.platformDeviceId = platformDeviceId
@@ -82,7 +81,6 @@
             this.defaultCatalogId = defaultCatalogId
             this.showDialog = true
             this.closeCallback = closeCallback
-            this.treeType = treeType
         },
         tabClick (tab, event){
 
diff --git a/web_src/src/components/dialog/chooseChannelForCatalog.vue b/web_src/src/components/dialog/chooseChannelForCatalog.vue
index c634b77..ae79e64 100644
--- a/web_src/src/components/dialog/chooseChannelForCatalog.vue
+++ b/web_src/src/components/dialog/chooseChannelForCatalog.vue
@@ -28,7 +28,7 @@
       </span>
      </el-tree>
    </div>
-    <catalogEdit ref="catalogEdit" :platformId="platformId"></catalogEdit>
+    <catalogEdit ref="catalogEdit" :platformId="platformId" :platformDeviceId="platformDeviceId"></catalogEdit>
 </div>
 </template>
 
@@ -38,7 +38,7 @@
 import catalogEdit from './catalogEdit.vue'
 export default {
     name: 'chooseChannelForCatalog',
-    props: ['platformId', 'platformDeviceId', 'platformName', 'defaultCatalogId', 'catalogIdChange', 'treeType'],
+    props: ['platformId', 'platformDeviceId', 'platformName', 'defaultCatalogId', 'catalogIdChange'],
     created() {
         this.chooseId = this.defaultCatalogId;
         this.defaultCatalogIdSign = this.defaultCatalogId;
@@ -101,9 +101,10 @@
         },
         addCatalog: function (parentId, node){
           let that = this;
-          console.log(this.treeType)
+          console.log(this.platformId)
+          console.log(parentId)
           // 鎵撳紑娣诲姞寮圭獥
-          that.$refs.catalogEdit.openDialog(false, null, null, parentId, this.treeType, node.level, ()=>{
+          that.$refs.catalogEdit.openDialog(false, null, null, parentId, node.level, ()=>{
             node.loaded = false
             node.expand();
           });
diff --git a/web_src/src/components/dialog/deviceEdit.vue b/web_src/src/components/dialog/deviceEdit.vue
index 7597c10..5591183 100644
--- a/web_src/src/components/dialog/deviceEdit.vue
+++ b/web_src/src/components/dialog/deviceEdit.vue
@@ -49,12 +49,6 @@
               <el-option key="GCJ02" label="GCJ02" value="GCJ02"></el-option>
             </el-select>
           </el-form-item>
-          <el-form-item label="鐩綍缁撴瀯" prop="treeType" >
-            <el-select v-model="form.treeType" style="float: left; width: 100%" >
-              <el-option key="WGS84" label="琛屾斂鍖哄垝" value="CivilCode"></el-option>
-              <el-option key="GCJ02" label="涓氬姟鍒嗙粍" value="BusinessGroup"></el-option>
-            </el-select>
-          </el-form-item>
           <el-form-item v-if="this.isEdit" label="鐩綍璁㈤槄" title="0涓哄彇娑堣闃�" prop="subscribeCycleForCatalog" >
             <el-input v-model="form.subscribeCycleForCatalog" clearable ></el-input>
           </el-form-item>
diff --git a/web_src/src/components/dialog/platformEdit.vue b/web_src/src/components/dialog/platformEdit.vue
index be7c505..0158cf7 100644
--- a/web_src/src/components/dialog/platformEdit.vue
+++ b/web_src/src/components/dialog/platformEdit.vue
@@ -78,12 +78,6 @@
                   <el-option label="8" value="8"></el-option>
                 </el-select>
               </el-form-item>
-              <el-form-item label="鐩綍缁撴瀯" prop="treeType" >
-                <el-select v-model="platform.treeType" style="width: 100%" @change="treeTypeChange">
-                  <el-option key="WGS84" label="琛屾斂鍖哄垝" value="CivilCode"></el-option>
-                  <el-option key="GCJ02" label="涓氬姟鍒嗙粍" value="BusinessGroup"></el-option>
-                </el-select>
-              </el-form-item>
               <el-form-item label="瀛楃闆�" prop="characterSet">
                 <el-select
                   v-model="platform.characterSet"
@@ -164,7 +158,6 @@
         startOfflinePush: false,
         catalogGroup: 1,
         administrativeDivision: null,
-        treeType: "BusinessGroup",
       },
       rules: {
         name: [{ required: true, message: "璇疯緭鍏ュ钩鍙板悕绉�", trigger: "blur" }],
@@ -203,7 +196,6 @@
             that.platform.devicePort = res.data.data.devicePort;
             that.platform.username = res.data.data.username;
             that.platform.password = res.data.data.password;
-            that.platform.treeType = "BusinessGroup";
             that.platform.administrativeDivision = res.data.data.username.substr(0, 6);
           }
 
@@ -234,7 +226,6 @@
         this.platform.startOfflinePush = platform.startOfflinePush;
         this.platform.catalogGroup = platform.catalogGroup;
         this.platform.administrativeDivision = platform.administrativeDivision;
-        this.platform.treeType = platform.treeType;
         this.onSubmit_text = "淇濆瓨";
         this.saveUrl = "/api/platform/save";
       }
@@ -252,7 +243,6 @@
       if (this.platform.administrativeDivision == null) {
         this.platform.administrativeDivision = this.platform.deviceGBId.substr(0, 6);
       }
-
     },
     onSubmit: function () {
       this.saveForm()
@@ -309,7 +299,6 @@
         keepTimeout: 60,
         transport: "UDP",
         characterSet: "GB2312",
-        treeType: "BusinessGroup",
         startOfflinePush: false,
         catalogGroup: 1,
       }
@@ -344,13 +333,6 @@
         });
       }
     },
-    treeTypeChange: function (){
-      this.$message({
-        showClose: true,
-        message: "淇敼鐩綍缁撴瀯浼氬鑷村叧鑱旂洰褰曚笌閫氶亾鏁版嵁琚竻绌猴紝淇濆瓨鍚庣敓鏁�",
-        type: "warning",
-      });
-    }
   },
 };
 </script>

--
Gitblit v1.8.0