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