Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsBtmServiceImpl.java
@@ -1,20 +1,25 @@
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.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;
@@ -42,8 +47,8 @@
    /**
     * 平台的调用工具类
     */
    //@Autowired
    //private PlatformClientUtil platformClientUtil;
    @Autowired
    private PlatformClientUtil platformClientUtil;
    /**
     * 属性的服务
@@ -86,9 +91,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 +341,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;
    }
    /**
     * 获取名字以filter开始的业务类型(for 查询),主要用于属性池的业务类型选择对话框
     * 获取全部业务类型,传参filter为""
     * @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 +525,53 @@
        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);
    }
    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;
    }
    /**
     * 将业务类型拼接json