From e9eb9ee7bec1dd64e3b9a494a2814a5bc3952709 Mon Sep 17 00:00:00 2001
From: yuxc <yuxc@vci-tech.com>
Date: 星期五, 27 十二月 2024 11:57:43 +0800
Subject: [PATCH] 1、主要优化业务类型加载过慢由于重复加载平台的属性、枚举数据,属性数据通过第一次加载全部进行传递解决,枚举数据通过新增枚举的本地线程工具类来进行实现。

---
 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsBtmServiceImpl.java |   24 +++++++++++++++++++-----
 1 files changed, 19 insertions(+), 5 deletions(-)

diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsBtmServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsBtmServiceImpl.java
index 89700e6..90ba72c 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsBtmServiceImpl.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsBtmServiceImpl.java
@@ -44,6 +44,7 @@
 import com.vci.starter.web.util.Lcm.ConcurrentDateFormat;
 import com.vci.starter.web.util.Lcm.DateUtil;
 import com.vci.starter.web.util.Lcm.Func;
+import com.vci.web.other.AllOsEnumVOMapThreadLocal;
 import com.vci.web.service.*;
 import com.vci.web.util.PlatformClientUtil;
 import com.vci.web.util.WebUtil;
@@ -200,10 +201,14 @@
     @Override
     public List<OsBtmTypeVO> btmDO2VOs(Collection<BizType> btmItems,Map<String, OsAttributeVO> attributeVOMap) {
         List<OsBtmTypeVO> VOS = new ArrayList<>();
-        Optional.ofNullable(btmItems).orElseGet(() -> new ArrayList<>()).parallelStream().forEach(btmItem -> {
+//        Optional.ofNullable(btmItems).orElseGet(() -> new ArrayList<>()).parallelStream().forEach(btmItem -> {
+//            OsBtmTypeVO vo = btmDO2VO(btmItem,attributeVOMap);
+//            VOS.add(vo);
+//        });
+        for (BizType btmItem : btmItems) {
             OsBtmTypeVO vo = btmDO2VO(btmItem,attributeVOMap);
             VOS.add(vo);
-        });
+        }
         return VOS;
     }
 
@@ -251,7 +256,8 @@
             vo.setApNameArray(btmItem.apNameArray);
             List<OsAttributeVO> attributeVOS = attributeService.listAttrByIds(Arrays.stream(btmItem.apNameArray).collect(Collectors.toList()),attributeVOMap);
             List<OsBtmTypeAttributeVO> btmTypeAttributeVOS = new ArrayList<>();
-            Optional.ofNullable(attributeVOS).orElseGet(() -> new ArrayList<>()).stream().forEach(attributeVO -> {
+//            Optional.ofNullable(attributeVOS).orElseGet(() -> new ArrayList<>()).stream().forEach(attributeVO -> {
+            for (OsAttributeVO attributeVO : attributeVOS) {
                 OsBtmTypeAttributeVO btmTypeAttributeVO = new OsBtmTypeAttributeVO();
                 BeanUtilForVCI.convert(attributeVO, btmTypeAttributeVO);
                 btmTypeAttributeVO.setPkBtmType(vo.getOid());
@@ -271,7 +277,8 @@
                     btmTypeAttributeVO.setEnumItemMap(enumService.getEnumValueMap(btmTypeAttributeVO.getEnumId()));
                 }
                 btmTypeAttributeVOS.add(btmTypeAttributeVO);
-            });
+//            });
+            }
             vo.setAttributes(btmTypeAttributeVOS);
         }
         return vo;
@@ -703,7 +710,13 @@
         List<Tree> rootTreeList = new ArrayList<>();
         BizType[] bizTypes = getBizTypes("");
         OsBtmTypeVO osBtmTypeVO = null;
-        List<OsBtmTypeVO> osBtmTypeVOS = btmDO2VOs(Arrays.asList(bizTypes),null);
+        Map<String, OsAttributeVO> attributeVOMap = null;
+        if(bizTypes.length > 0){
+            //鍏堝皢鎵�闇�瑕佺殑灞炴�с�佹灇涓炬暟鎹叏閮ㄥ姞杞藉嚭鏉ワ紝閬垮厤鍚庣画杩涜閲嶅鍔犺浇
+            attributeVOMap = attributeService.selectAllAttributeMap();
+            AllOsEnumVOMapThreadLocal.set(enumService.selectAllEnumMap());
+        }
+        List<OsBtmTypeVO> osBtmTypeVOS = btmDO2VOs(Arrays.asList(bizTypes),attributeVOMap);
         for (int i = 0; i < osBtmTypeVOS.size(); i++) {
             osBtmTypeVO = osBtmTypeVOS.get(i);
 
@@ -721,6 +734,7 @@
                 rootTreeList.add(tree);
             }
         }
+        AllOsEnumVOMapThreadLocal.remove();
         rootTreeList = rootTreeList.stream().sorted((o1, o2) -> o1.getId().compareTo(o2.getId())).collect(Collectors.toList());
         return rootTreeList;
     }

--
Gitblit v1.9.3