|
|
@@ -17,10 +17,7 @@ import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.util.*;
|
|
|
|
|
|
@Transactional
|
|
|
public class KindServiceImpl implements KindService {
|
|
|
@@ -69,6 +66,7 @@ public class KindServiceImpl implements KindService {
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
public List<Kind> getParentsByChildId(Long childId) {
|
|
|
List<Kind> kinds = new ArrayList<Kind>();
|
|
|
kinds = getParentsByChildId(childId, kinds);
|
|
|
@@ -110,4 +108,38 @@ public class KindServiceImpl implements KindService {
|
|
|
}
|
|
|
return kindPropertyUas;
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Map<String, List<KindUas>> getParentsByKindCode(String kindCode) {
|
|
|
+ Map<Long, Kind> maps = new HashMap<>();
|
|
|
+ // 第一步是模糊查询所有的叶子节点
|
|
|
+ Map<String, List<KindUas>> kindMaps = new HashMap<>();
|
|
|
+ List<Kind> kinds = kindDao.findByKindCode(kindCode);
|
|
|
+ for (Kind kind : kinds) {
|
|
|
+ List<Kind> list = getParentsByChildId(kind.getId());
|
|
|
+ List<KindUas> kindUass = new ArrayList<>();
|
|
|
+ for (Kind k : list) {
|
|
|
+ kindUass.add(ModelConverter.convertUas(k));
|
|
|
+ }
|
|
|
+ if (kindMaps.size() > 0 && kindMaps.containsKey(list.get(0).getId())) {
|
|
|
+ Map<Long, KindUas> map = new HashMap<>();
|
|
|
+ for (KindUas k : kindUass) {
|
|
|
+ map.put(k.getId(), k);
|
|
|
+ }
|
|
|
+ List<KindUas> oldList = kindMaps.get(list.get(0).getId());
|
|
|
+ for (KindUas k : oldList) {
|
|
|
+ map.put(k.getId(), k);
|
|
|
+ }
|
|
|
+ List<KindUas> newList = new ArrayList<>();
|
|
|
+ for (KindUas k : map.values()) {
|
|
|
+ newList.add(k);
|
|
|
+ }
|
|
|
+ kindMaps.put(list.get(0).getId().toString(), newList);
|
|
|
+ } else {
|
|
|
+ kindMaps.put(list.get(0).getId().toString(), kindUass);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return kindMaps;
|
|
|
+ }
|
|
|
+
|
|
|
}
|