diff --git a/common-lib/src/main/java/com/mortals/xhx/feign/site/ISiteFeign.java b/common-lib/src/main/java/com/mortals/xhx/feign/site/ISiteFeign.java
index b71126fb5d0aea5607f2abc2b318f4a305416393..499bb6cac6b581d5dbaef4de027dfc68fa4f71d5 100644
--- a/common-lib/src/main/java/com/mortals/xhx/feign/site/ISiteFeign.java
+++ b/common-lib/src/main/java/com/mortals/xhx/feign/site/ISiteFeign.java
@@ -79,6 +79,17 @@ public interface ISiteFeign extends IFeign {
     Rest<List<SitePdu>> getFlatSitesBySiteId(@RequestBody SitePdu sitePdu);
 
 
+    /**
+     * 鏌ヨ绔欑偣鍙婂瓙绔欑偣
+     *
+     * @param sitePdu
+     * @return
+     */
+    @GetMapping(value = "/site/getFlatSitesByAreaIds")
+    Rest<List<SitePdu>> getFlatSitesByAreaIds(@RequestBody SitePdu sitePdu);
+
+
+
 }
 
 
@@ -118,6 +129,11 @@ class SiteFeignFallbackFactory implements FallbackFactory<ISiteFeign> {
             public Rest<List<SitePdu>> getFlatSitesBySiteId(SitePdu sitePdu) {
                 return Rest.fail("鏆傛椂鏃犳硶鑾峰彇绔欑偣瀛愮珯鐐癸紝璇风◢鍚庡啀璇�!");
             }
+
+            @Override
+            public Rest<List<SitePdu>> getFlatSitesByAreaIds(SitePdu sitePdu) {
+                return Rest.fail("鏆傛椂鏃犳硶鑾峰彇绔欑偣瀛愮珯鐐癸紝璇风◢鍚庡啀璇�!");
+            }
         };
     }
 }
diff --git a/device-manager-ui/admin/src/views/sitestat/list.vue b/device-manager-ui/admin/src/views/sitestat/list.vue
index d31629b29e09804e6c4d10d0bcc0b6e724820016..72edb81383007bf0e173caae7cb4043270aa8905 100644
--- a/device-manager-ui/admin/src/views/sitestat/list.vue
+++ b/device-manager-ui/admin/src/views/sitestat/list.vue
@@ -149,9 +149,13 @@ export default {
           this.query = { siteId: node.id };
         }
 
+        this.getData();
+      }else if(node.type==='area'){
+        this.query = { areaCode: node.areaCode };
+        
         this.getData();
       }
-    },
+    }
   },
   data() {
     return {
diff --git a/device-manager/src/main/java/com/mortals/xhx/module/sitestat/model/vo/SitestatVo.java b/device-manager/src/main/java/com/mortals/xhx/module/sitestat/model/vo/SitestatVo.java
index 784a5c5ef38d9afbae8ca1c28cf92ad58499a8e9..767df7d13724d3b841af4933219f70c82c6915e6 100644
--- a/device-manager/src/main/java/com/mortals/xhx/module/sitestat/model/vo/SitestatVo.java
+++ b/device-manager/src/main/java/com/mortals/xhx/module/sitestat/model/vo/SitestatVo.java
@@ -1,10 +1,8 @@
 package com.mortals.xhx.module.sitestat.model.vo;
 
 import com.mortals.framework.model.BaseEntityLong;
-import com.mortals.xhx.module.sitestat.model.SitestatEntity;
 import lombok.Data;
 
-import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -30,4 +28,7 @@ public class SitestatVo extends BaseEntityLong {
     private String leadingOfficial;
 
     private String leadingOfficialTelephone;
+
+    private String areaCode;
+
 }
\ No newline at end of file
diff --git a/device-manager/src/main/java/com/mortals/xhx/module/sitestat/service/impl/SitestatServiceImpl.java b/device-manager/src/main/java/com/mortals/xhx/module/sitestat/service/impl/SitestatServiceImpl.java
index 2cdc95f6901b301916e8b480a14ed891cff88442..932dc8c8689ecdf6a19c5e5039fc09d923c7de77 100644
--- a/device-manager/src/main/java/com/mortals/xhx/module/sitestat/service/impl/SitestatServiceImpl.java
+++ b/device-manager/src/main/java/com/mortals/xhx/module/sitestat/service/impl/SitestatServiceImpl.java
@@ -7,31 +7,28 @@ import com.mortals.framework.exception.AppException;
 import com.mortals.framework.model.Context;
 import com.mortals.framework.model.PageInfo;
 import com.mortals.framework.model.Result;
-import com.mortals.framework.service.IAuthTokenService;
+import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
 import com.mortals.xhx.common.code.DeviceStatusEnum;
 import com.mortals.xhx.common.code.PlatformTypeEnum;
 import com.mortals.xhx.common.code.YesNoEnum;
 import com.mortals.xhx.common.key.ErrorCode;
 import com.mortals.xhx.common.pdu.site.SitePdu;
-import com.mortals.xhx.common.pdu.user.UserPdu;
 import com.mortals.xhx.common.utils.MemoryPagination;
 import com.mortals.xhx.feign.site.ISiteFeign;
-import com.mortals.xhx.feign.user.IUserFeign;
 import com.mortals.xhx.module.device.model.DeviceEntity;
 import com.mortals.xhx.module.device.model.DeviceQuery;
 import com.mortals.xhx.module.device.service.DeviceService;
 import com.mortals.xhx.module.site.model.SiteQuery;
 import com.mortals.xhx.module.site.model.SiteTreeSelect;
 import com.mortals.xhx.module.site.service.SiteService;
+import com.mortals.xhx.module.sitestat.dao.SitestatDao;
+import com.mortals.xhx.module.sitestat.model.SitestatEntity;
 import com.mortals.xhx.module.sitestat.model.SitestatQuery;
+import com.mortals.xhx.module.sitestat.service.SitestatService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
-import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
-import com.mortals.xhx.module.sitestat.dao.SitestatDao;
-import com.mortals.xhx.module.sitestat.model.SitestatEntity;
-import com.mortals.xhx.module.sitestat.service.SitestatService;
 import org.springframework.util.ObjectUtils;
 
 import java.util.*;
@@ -73,6 +70,9 @@ public class SitestatServiceImpl extends AbstractCRUDServiceImpl<SitestatDao, Si
     public Result<SitestatEntity> find(SitestatEntity entity, PageInfo pageInfo, Context context) throws AppException {
         Result<SitestatEntity> res = new Result<>();
         //鏍规嵁绔欑偣鏌ヨ鎵€浠ョ珯鐐瑰瓙闆嗗垪琛�
+        Result<SitestatEntity> sitestatsAreaResult = getSitestatEntityResultByArea(entity, pageInfo,context, res);
+        if (sitestatsAreaResult != null) return sitestatsAreaResult;
+
         Result<SitestatEntity> sitestatsResult = getSitestatsResult(entity, pageInfo, res);
         if (sitestatsResult != null) return sitestatsResult;
 
@@ -98,7 +98,7 @@ public class SitestatServiceImpl extends AbstractCRUDServiceImpl<SitestatDao, Si
             SitePdu sitePdu = new SitePdu();
             sitePdu.setId(entity.getSiteId());
             Rest<List<SitePdu>> result = siteFeign.getFlatSitesBySiteId(sitePdu);
-            log.info("siteList:{}",JSON.toJSONString(result));
+           // log.info("siteList:{}",JSON.toJSONString(result));
             if (result.getCode() == YesNoEnum.YES.getValue()) {
                 //鏍规嵁杩斿洖鐨刬d 绛涢€夊垪琛�
                 Map<Long, SitestatEntity> collectMap = this.find(new SitestatEntity(), context).stream().collect(Collectors.toMap(x->x.getSiteId(),y->y,(o,n)->n));
@@ -106,7 +106,7 @@ public class SitestatServiceImpl extends AbstractCRUDServiceImpl<SitestatDao, Si
                 if (!ObjectUtils.isEmpty(entity.getSiteName())) {
                     list = MemoryPagination.search(entity.getSiteName(), list);
                 }
-                log.info("siteStatList:{}",JSON.toJSONString(list));
+               // log.info("siteStatList:{}",JSON.toJSONString(list));
                 pageInfo.setTotalResult(list.size());
                 List<SitestatEntity> siteStatList = MemoryPagination.pagination(list, pageInfo.getCurrPage(), pageInfo.getPrePageResult());
                 res.setList(siteStatList);
@@ -180,6 +180,45 @@ public class SitestatServiceImpl extends AbstractCRUDServiceImpl<SitestatDao, Si
         return res;
     }
 
+
+    private Result<SitestatEntity> getSitestatEntityResultByArea(SitestatEntity entity, PageInfo pageInfo, Context context, Result<SitestatEntity> res) {
+        if (ObjectUtils.isEmpty(entity.getAreaCode())) return null;
+        if (platFormType.equalsIgnoreCase(PlatformTypeEnum.STANDALONE.getValue())) {
+            //鏍规嵁杩斿洖鐨刬d 绛涢€夊垪琛� todo
+            Map<Long, SitestatEntity> collectMap = this.find(new SitestatEntity(), context).stream().collect(Collectors.toMap(x->x.getSiteId(),y->y,(o,n)->n));
+            List<SitestatEntity> list = this.siteService.find(new SiteQuery().id(entity.getSiteId())).stream().filter(f -> collectMap.containsKey(f.getId())).map(m -> collectMap.get(m.getId())).collect(Collectors.toList());
+            if (!ObjectUtils.isEmpty(entity.getSiteName())) {
+                list = MemoryPagination.search(entity.getSiteName(), list);
+            }
+            pageInfo.setTotalResult(list.size());
+            List<SitestatEntity> siteStatList = MemoryPagination.pagination(list, pageInfo.getCurrPage(), pageInfo.getPrePageResult());
+            res.setList(siteStatList);
+            res.setPageInfo(pageInfo);
+        } else {
+            SitePdu sitePdu = new SitePdu();
+            sitePdu.setAreaCodeList(Arrays.asList(entity.getAreaCode()));
+            Rest<List<SitePdu>> result = siteFeign.getFlatSitesBySiteId(sitePdu);
+            // log.info("siteList:{}",JSON.toJSONString(result));
+            if (result.getCode() == YesNoEnum.YES.getValue()) {
+                //鏍规嵁杩斿洖鐨刬d 绛涢€夊垪琛�
+                Map<Long, SitestatEntity> collectMap = this.find(new SitestatEntity(), context).stream().collect(Collectors.toMap(x->x.getSiteId(),y->y,(o,n)->n));
+                List<SitestatEntity> list = result.getData().stream().filter(f -> collectMap.containsKey(f.getId())).map(m -> collectMap.get(m.getId())).collect(Collectors.toList());
+                if (!ObjectUtils.isEmpty(entity.getSiteName())) {
+                    list = MemoryPagination.search(entity.getSiteName(), list);
+                }
+                // log.info("siteStatList:{}",JSON.toJSONString(list));
+                pageInfo.setTotalResult(list.size());
+                List<SitestatEntity> siteStatList = MemoryPagination.pagination(list, pageInfo.getCurrPage(), pageInfo.getPrePageResult());
+                res.setList(siteStatList);
+                res.setPageInfo(pageInfo);
+            } else {
+                log.info("error resp:{}", JSON.toJSONString(result));
+            }
+        }
+
+        return res;
+    }
+
     @Override
     public String getSiteTree(Context context) {
         if (platFormType.equalsIgnoreCase(PlatformTypeEnum.CLOUD.getValue())) {