From 769e437befb3354c1113ca5b5c2b8240995078be Mon Sep 17 00:00:00 2001
From: yuxc <yuxc@vci-tech.com>
Date: 星期二, 06 八月 2024 13:24:15 +0800
Subject: [PATCH] 新增获取业务全部属性类型接口

---
 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsBtmServiceImpl.java |  206 +++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 199 insertions(+), 7 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 f4169cf..0d90146 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
@@ -1,20 +1,27 @@
 package com.vci.web.service.impl;
 
-import com.vci.client.common.providers.ClientServiceProvider;
 import com.vci.corba.common.PLException;
+import com.vci.corba.omd.atm.AttributeDef;
 import com.vci.corba.omd.btm.BizType;
+import com.vci.corba.omd.ltm.LinkType;
+import com.vci.corba.omd.qtm.QTD;
+import com.vci.omd.constants.AttributeConstants;
+import com.vci.pagemodel.*;
 import com.vci.starter.web.annotation.log.VciUnLog;
 import com.vci.starter.web.enumpck.BooleanEnum;
 import com.vci.starter.web.exception.VciBaseException;
+import com.vci.starter.web.pagemodel.BaseResult;
 import com.vci.starter.web.pagemodel.DataGrid;
 import com.vci.starter.web.pagemodel.PageHelper;
+import com.vci.starter.web.pagemodel.Tree;
 import com.vci.starter.web.util.BeanUtil;
 import com.vci.starter.web.util.VciBaseUtil;
 import com.vci.starter.web.util.VciDateUtil;
-import com.vci.web.pageModel.*;
 import com.vci.web.service.*;
 import com.vci.web.util.ConcurrentDateFormat;
 import com.vci.web.util.Func;
+import com.vci.web.util.PlatformClientUtil;
+import com.vci.web.util.WebUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -23,6 +30,8 @@
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -42,8 +51,8 @@
     /**
      * 骞冲彴鐨勮皟鐢ㄥ伐鍏风被
      */
-    //@Autowired
-    //private PlatformClientUtil platformClientUtil;
+    @Autowired
+    private PlatformClientUtil platformClientUtil;
 
     /**
      * 灞炴�х殑鏈嶅姟
@@ -86,9 +95,7 @@
     @VciUnLog
     public List<OsBtmTypeVO> selectAllBtm() {
         try {
-            // return btmDO2VOs(Arrays.stream(platformClientUtil.getBtmService().getAllBtmItem("")).collect(Collectors.toList()));
-//            return btmDO2VOs(Arrays.stream(ServiceProvider.getOMDService().getBTMService().getAllBtmItem("")).collect(Collectors.toList()));
-            return btmDO2VOs(Arrays.stream(ClientServiceProvider.getOMDService().getBTMService().getBizTypes("")).collect(Collectors.toList()));
+            return btmDO2VOs(Arrays.stream(platformClientUtil.getBtmService().getBizTypes("")).collect(Collectors.toList()));
         }  catch (PLException e) {
             throw new RuntimeException(e);
         }
@@ -338,6 +345,88 @@
     }
 
     /**
+     * 淇敼涓氬姟绫诲瀷涓搴斿睘鎬у悕鐨勫睘鎬�
+     * @param apName
+     * @return
+     * @throws PLException
+     */
+    @Override
+    public boolean alterAp(String apName) throws PLException {
+        String[] btmNames = null;
+        List<String> btmNameList = new ArrayList<String>();
+        AttributeDef abItem = null;
+        try {
+            abItem = platformClientUtil.getAttributeService().getAttributeDefByName(apName);
+        } catch (PLException e1) {
+            e1.printStackTrace();
+        }
+        if(abItem == null || abItem.equals("")){
+            return true;
+        }
+        try {
+            btmNames = platformClientUtil.getBtmService().getBTNamesByAPName(apName);
+        } catch (PLException e) {
+            e.printStackTrace();
+        }
+        if(btmNames == null || btmNames.length <= 0){
+            return true;
+        }
+
+        btmNameList = Arrays.asList(btmNames);
+        for(Iterator<String> i = btmNameList.iterator(); i.hasNext();){
+            String btmName = i.next();
+            try {
+                platformClientUtil.getBtmService().modifyBTAttribute(btmName, apName);
+            } catch (PLException e) {
+                // TODO Auto-generated catch block
+                e.printStackTrace();
+                String erreMsg = "璋冩暣涓氬姟绫诲瀷涓��"+apName+"銆戝睘鎬ф椂鍑虹幇閿欒锛屽師鍥狅細"+e.getMessage();
+                logger.error(erreMsg);
+                throw new PLException("500",new String[]{erreMsg});
+            }
+        }
+        return false;
+    }
+
+    /**
+     * 鍒ゆ柇璇ュ睘鎬ф槸鍚﹀凡缁忓湪涓氬姟绫诲瀷涓骇鐢熶簡鏁版嵁
+     * @param abName
+     * @return
+     * @throws PLException
+     */
+    @Override
+    public boolean hasInstance(String abName) throws PLException {
+        String[] btmNames = platformClientUtil.getBtmService().getBTNamesByAPName(abName);
+        if(btmNames == null || btmNames.length == 0){
+            return false;
+        }
+        for(int i = 0; i < btmNames.length; i++){
+            String btmName = btmNames[i];
+            boolean flag;
+            flag = platformClientUtil.getBtmService().hasData(btmName);
+            if(flag){
+                return flag;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * 鑾峰彇鍚嶅瓧浠ilter寮�濮嬬殑涓氬姟绫诲瀷(for 鏌ヨ)锛屼富瑕佺敤浜庡睘鎬ф睜鐨勪笟鍔$被鍨嬮�夋嫨瀵硅瘽妗�
+     * 鑾峰彇鍏ㄩ儴涓氬姟绫诲瀷锛屼紶鍙俧ilter涓�""
+     * @param btmName
+     * @return
+     * @throws PLException
+     */
+    @Override
+    public BizType[] getBizTypes(String btmName) throws PLException {
+        if(null == btmName){
+            btmName = "";
+        }
+        return platformClientUtil.getBtmService().getBizTypes(btmName);
+    }
+
+    /**
      * 鍙傜収涓氬姟绫诲瀷
      *
      * @param conditionMap 鏌ヨ鏉′欢
@@ -440,6 +529,109 @@
         ervo.setTabRelViewList(relationVOList);
         return ervo;
     }
+    /**
+     * 鑾峰彇鎵�鏈変笟鍔$被鍨嬶紙鏍戝舰缁撴瀯锛�
+     * @return 鏌ヨ缁撴灉
+     */
+    @Override
+    public BaseResult<List<Tree>> getTreeBizTypes() throws PLException {
+        List<Tree> rootTreeList = new ArrayList<>();
+        BizType[] bizTypes = getBizTypes("");
+        BizType btItem = null;
+        for(int i = 0; i < bizTypes.length; i++){
+            btItem = bizTypes[i];
+            if(btItem.fName.equals("")){
+                Tree tree = new Tree();
+                tree.setOid(btItem.oid);
+                tree.setParentName(null);
+                tree.setParentId(null);
+                tree.setLeaf(true);
+                tree.setText(btItem.description);
+                tree.setAttributes(WebUtil.objectToMapString(btItem));
+                tree.setChildren(getChildren(bizTypes,btItem));
+                rootTreeList.add(tree);
+            }
+        }
+
+        return BaseResult.success(rootTreeList);
+    }
+    /**
+     * 鑾峰彇涓氬姟鍏ㄩ儴灞炴�х被鍨�
+     * @param btmName 涓氬姟绫诲瀷鍚嶇О
+     * @return 灞炴�х殑淇℃伅
+     */
+    @Override
+    public List<OsBtmTypeAttributeVO> getBizTypeQTDs(String btmName) throws PLException, ParseException {
+        VciBaseUtil.alertNotNull(btmName, "涓氬姟绫诲瀷缂栧彿");
+        List<OsBtmTypeAttributeVO> osBtms = new ArrayList<>();
+        //鏌ヨ绯荤粺榛樿灞炴��
+        Map<String, AttributeDef> collect = Arrays.stream(platformClientUtil.getBtmService().getSysAttributeDefs())
+                .collect(Collectors.toMap(str -> str.name, str -> str));
+        for (String attrName : platformClientUtil.getBtmService().getSysAttributeNames()) {
+            AttributeDef sysAttributeDef = collect.get(attrName.toLowerCase());
+            OsBtmTypeAttributeVO vo = new OsBtmTypeAttributeVO();
+            vo.setOid(sysAttributeDef.oid);
+            vo.setAttrDataType(sysAttributeDef.vtDataType);
+            vo.setPkBtmType(btmName);
+            vo.setCreateTime(new Date(sysAttributeDef.createTime));
+            vo.setCreator(sysAttributeDef.creator);
+            vo.setDefaultValue(sysAttributeDef.defValue);
+            vo.setDescription(sysAttributeDef.description);
+            vo.setRange(sysAttributeDef.rage);
+            vo.setId(attrName);
+            vo.setName(sysAttributeDef.label);
+            vo.setLastModifier(sysAttributeDef.modifier);
+            vo.setLastModifyTime(new Date(sysAttributeDef.modifyTime));
+            osBtms.add(vo);
+        }
+        //鏌ヨ涓氬姟绫诲瀷涓嬬殑灞炴��
+        AttributeDef[] attributeDefs = platformClientUtil.getBtmService().getAttributeDefs(btmName);
+        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        for (AttributeDef attribute : attributeDefs) {
+            OsBtmTypeAttributeVO vo = new OsBtmTypeAttributeVO();
+            vo.setOid(attribute.oid);
+            vo.setAttrDataType(attribute.vtDataType);
+            vo.setPkBtmType(btmName);
+            vo.setCreateTime(new Date(attribute.createTime));
+            vo.setCreator(attribute.creator);
+            vo.setDefaultValue(attribute.defValue);
+            vo.setDescription(attribute.description);
+            vo.setRange(attribute.rage);
+            vo.setId(attribute.name);
+            vo.setName(attribute.label);
+            vo.setTs(formatter.parse(attribute.ts));
+            vo.setLastModifier(attribute.modifier);
+            vo.setOwner(attribute.creator);
+            vo.setLastModifyTime(new Date(attribute.modifyTime));
+            String maxLength = AttributeConstants.getOtherValueByType(attribute.other, AttributeConstants.LENGTH);
+            if(StringUtils.isNotBlank(maxLength)){
+                vo.setAttributeLength(Integer.valueOf(maxLength));
+            }
+            osBtms.add(vo);
+        }
+        return osBtms;
+    }
+
+    private List<Tree> getChildren(BizType[] bizTypes,BizType parentBIzType){
+        List<Tree> trees= new ArrayList<>();
+        for (BizType bizType : bizTypes) {
+            if(StringUtils.isBlank(bizType.fName)){
+                continue;
+            }
+            if(bizType.fName.equals(parentBIzType.name)){
+                Tree tree = new Tree();
+                tree.setOid(bizType.oid);
+                tree.setParentName(parentBIzType.fName);
+                tree.setParentId(parentBIzType.oid);
+                tree.setLeaf(true);
+                tree.setText(bizType.description);
+                tree.setAttributes(WebUtil.objectToMapString(bizType));
+                tree.setChildren(getChildren(bizTypes,bizType));
+                trees.add(tree);
+            }
+        }
+        return trees;
+    }
 
     /**
      * 灏嗕笟鍔$被鍨嬫嫾鎺son

--
Gitblit v1.9.3