From 22e8a676ee42c0d78b3526bcd9a635abbe8dca03 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期二, 28 六月 2022 11:28:21 +0800
Subject: [PATCH] 优化databus bug

---
 service-common/src/main/java/com/java110/common/smo/impl/AreaInnerServiceSMOImpl.java |   43 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 43 insertions(+), 0 deletions(-)

diff --git a/service-common/src/main/java/com/java110/common/smo/impl/AreaInnerServiceSMOImpl.java b/service-common/src/main/java/com/java110/common/smo/impl/AreaInnerServiceSMOImpl.java
old mode 100644
new mode 100755
index ac340a0..83e6ad8
--- a/service-common/src/main/java/com/java110/common/smo/impl/AreaInnerServiceSMOImpl.java
+++ b/service-common/src/main/java/com/java110/common/smo/impl/AreaInnerServiceSMOImpl.java
@@ -9,6 +9,9 @@
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
 import java.util.List;
 
 @RestController
@@ -32,4 +35,44 @@
 
         return areas;
     }
+
+    @Override
+    public List<AreaDto> getWholeArea(@RequestBody AreaDto areaDto) {
+        String areacode = "";
+        if (areaDto.getAreaCode() != null && areaDto.getAreaCode().length() > 5){
+            areacode = areaDto.getAreaCode();
+        }else{
+            areacode = "110101";
+        }
+        areaDto.setAreaCode(areacode);
+        List<AreaDto> areas = BeanConvertUtil.covertBeanList(areaServiceDaoImpl.getWholeArea(BeanConvertUtil.beanCovertMap(areaDto)), AreaDto.class);
+        List<AreaDto> newlist = new ArrayList();
+        AreaDto nowarea = new AreaDto();
+        for (AreaDto area :areas){
+            if (areacode.equals(area.getAreaCode())){
+                newlist.add(area);
+                nowarea = area;
+                break;
+            }
+        }
+        getTree(areas,nowarea,newlist);
+        Collections.reverse(newlist);
+        return newlist;
+    }
+
+    private static void getTree(List<AreaDto> areas,AreaDto area,List<AreaDto> newlist){
+        for (AreaDto a :areas){
+            if (area.getParentAreaCode().equals(a.getAreaCode())){
+                newlist.add(a);
+                area = a;
+                areas.remove(a);
+                getTree(areas,area,newlist);
+                break;
+            }
+        }
+    }
+
+
+
+
 }

--
Gitblit v1.8.0