From 5b59d04408cc6602fcb9edd2544f62bef709b8b1 Mon Sep 17 00:00:00 2001 From: wangting <wangting@vci-tech.com> Date: 星期三, 15 一月 2025 11:53:08 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsBtmServiceImpl.java | 130 ++++++++++++++++++++----------------------- 1 files changed, 60 insertions(+), 70 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 a2c6224..fcba915 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 @@ -19,6 +19,7 @@ import com.vci.corba.omd.lcm.LifeCycle; import com.vci.corba.omd.ltm.LinkType; import com.vci.corba.omd.stm.StatePool; +import com.vci.corba.omd.tim.TypeIndexDef; import com.vci.corba.omd.vrm.VersionRule; import com.vci.dto.OsBtmTypeDTO; import com.vci.model.IndexObject; @@ -1285,29 +1286,18 @@ if (Func.isEmpty(conditionMap)) { return new ArrayList<>(); } - List<String> indexNameList = new ArrayList<String>(); - QueryTemplate qtl = new QueryTemplate(); - List<String> list = new ArrayList<String>(); - list.add("*"); - qtl.setBtmType("indexobject"); - qtl.setClauseList(list); - qtl.setId("p"); - qtl.setType("btm"); - qtl.setRightFlag(false); - Condition condition = OQTool.getCondition(conditionMap); - qtl.setCondition(condition); - //HashMap<String, String> indexmap = new HashMap<String, String>(); - BusinessObject findBTMObjects[] = platformClientUtil.getQueryService().findBTMObjects(qtl.getId(), OQTool.qtTOXMl(qtl).asXML()); List<IndexObject> indexObjects = new ArrayList<>(); - for (int i = 0; i < findBTMObjects.length; i++) { - BusinessObject findBTMObject = findBTMObjects[i]; + TypeIndexDef[] typenames = ClientServiceProvider.getOMDService().getTypeIndexService().getBTIndexDefs(conditionMap.get("typename")); + + for (int i = 0; i < typenames.length; i++) { + TypeIndexDef typename = typenames[i]; IndexObject indexObject = new IndexObject(); - indexObject.setOid(findBTMObject.oid); - indexObject.setDescription(findBTMObject.description); - indexObject.setCreateTime(Func.format(new Date(findBTMObject.createTime), DateUtil.PATTERN_DATE)); - indexObject.setIndexName(ObjectTool.getBOAttributeValue(findBTMObject, "indexname")); - indexObject.setTypeName(ObjectTool.getBOAttributeValue(findBTMObject, "typename")); - indexObject.setAttrNames(ObjectTool.getBOAttributeValue(findBTMObject, "attrname")); + indexObject.setOid(typename.oid); + indexObject.setDescription(typename.description); + indexObject.setCreateTime(Func.format(new Date(typename.createTime), DateUtil.PATTERN_DATE)); + indexObject.setIndexName(typename.name); + indexObject.setTypeName(typename.typeName); + indexObject.setAttrNames(typename.attributes); indexObjects.add(indexObject); } return indexObjects; @@ -1323,11 +1313,8 @@ @Override public boolean delIndex(String btmName, String indexName) throws PLException { VciBaseUtil.alertNotNull(btmName, "涓氬姟绫诲瀷鍚�", indexName, "绱㈠紩鍚�"); - Map<String, String> conditionMap = new HashMap<>(); - conditionMap.put("typename", btmName); - conditionMap.put("indexname", indexName); - List<IndexObject> bo2 = getIndexByCondition(conditionMap); - if (bo2 != null && bo2.size() > 0) { + TypeIndexDef[] typeIndexDef= ClientServiceProvider.getOMDService().getTypeIndexService().getBTIndexDefs(btmName); + if( typeIndexDef != null && typeIndexDef.length > 0 ){ String[] indexAttr = {indexName}; boolean alterFlag = platformClientUtil.getBtmService().dropIndex(btmName, indexAttr); @@ -1335,10 +1322,12 @@ if (!alterFlag) { return false; } - for (int i = 0; i < bo2.size(); i++) { - String oid = bo2.get(i).getOid(); - BusinessObject bo = platformClientUtil.getBOFactoryService().readBusinessObject(oid, "indexobject"); - platformClientUtil.getBOFactoryService().deleteBusinessObject(bo, 1); + for (int i = 0; i < typeIndexDef.length; i++) { + if(!typeIndexDef[i].name.equals(indexName)) { + continue; + } + String oid = typeIndexDef[i].oid; + ClientServiceProvider.getOMDService().getTypeIndexService().delIndexDef(oid); } } return true; @@ -1356,49 +1345,50 @@ String btmName = indexObjectList.get(0).getTypeName(); String indexNames = indexObjectList.stream().map(IndexObject::getIndexName).collect(Collectors.joining(",")); String[] oldindexAttr = {indexNames}; - BusinessObject bo; - List<BusinessObject> boList = new ArrayList<>(); - //鍏堟煡璇㈠綋鍓嶆坊鍔犵储寮曟槸鍚﹀凡缁忓瓨鍦紝濡傛灉瀛樺湪灏卞厛鍒犻櫎鍐嶆柊澧炲疄鐜版浛鎹㈡搷浣� - Map<String, String> conditionMap = new HashMap<>(); - conditionMap.put("typename", btmName); - //鍏堣繖鏍峰鐞嗭紝鍓嶇鐜板湪鍙仛浜嗗崟娆′繚瀛橈紝鎵�浠ヤ笉鐢╥n - conditionMap.put("indexname", indexNames); - List<IndexObject> indexObjects = getIndexByCondition(conditionMap); - if (indexObjects != null && indexObjects.size() > 0) { - //绱㈠紩涓嶅瓨鍦ㄦ椂鍒犻櫎灏变細鎶ラ敊绱㈠紩涓嶅瓨鍦紝鎵�浠ヨ繖閲屾湁绱㈠紩鎵嶅幓鍒犻櫎 - boolean b = platformClientUtil.getBtmService().dropIndex(btmName, oldindexAttr); - if (b) { - for (int i = 0; i < indexObjects.size(); i++) { - String oid = (String) indexObjects.get(i).getOid(); - bo = platformClientUtil.getBOFactoryService().readBusinessObject(oid, "indexobject"); - platformClientUtil.getBOFactoryService().deleteBusinessObject(bo, 1); - } - } - } +// BusinessObject bo; +// List<BusinessObject> boList = new ArrayList<>(); +// //鍏堟煡璇㈠綋鍓嶆坊鍔犵储寮曟槸鍚﹀凡缁忓瓨鍦紝濡傛灉瀛樺湪灏卞厛鍒犻櫎鍐嶆柊澧炲疄鐜版浛鎹㈡搷浣� +// Map<String, String> conditionMap = new HashMap<>(); +// conditionMap.put("typename", btmName); +// //鍏堣繖鏍峰鐞嗭紝鍓嶇鐜板湪鍙仛浜嗗崟娆′繚瀛橈紝鎵�浠ヤ笉鐢╥n +// conditionMap.put("indexname", indexNames); + TypeIndexDef[] typeIndexDefs = platformClientUtil.getTypeIndexService().getBTIndexDefs(btmName); - for (int i = 0; i < indexObjectList.size(); i++) { - IndexObject indexObject = indexObjectList.get(i); - //bo = platformClientUtil.getBOFService().initBusinessObject("indexobject"); - bo = boService.createCBOByBtmName("indexobject"); - List<AttributeValue> attributeValues = new ArrayList<>(); - attributeValues.add(new AttributeValue("typename", btmName)); - attributeValues.add(new AttributeValue("indexname", indexObject.getIndexName())); - attributeValues.add(new AttributeValue("attrname", indexObject.getAttrNames())); - bo.newAttrValList = attributeValues.toArray(new AttributeValue[attributeValues.size()]); - bo.description = indexObject.getDescription(); - String[] indexAttr = {indexObject.getIndexName(), indexObject.getAttrNames()}; - //缁欐寚瀹氫笟鍔$被鍨嬬殑鎸囧畾灞炴�у垱寤虹储寮� - boolean alterFlag = platformClientUtil.getBtmService().addIndex(btmName, indexAttr); - //绱㈠紩鍒涘缓鎴愬姛涔嬪悗锛岄渶瑕佸瓨鍌ㄦ垚鍔熺储寮曞埌绱㈠紩琛ㄤ腑 - if (!alterFlag) { - return false; + if(typeIndexDefs!=null && typeIndexDefs.length>0){ + boolean hasIndex = false; + for(int i = 0; i < typeIndexDefs.length; i ++){ + if(!typeIndexDefs[i].name.equals(indexNames)) { + continue; + } + String oid = typeIndexDefs[i].oid; + platformClientUtil.getTypeIndexService().delIndexDef(oid); + hasIndex = true; } - boList.add(bo); - //娣诲姞绱㈠紩淇℃伅鍒扮储寮曠殑涓氬姟琛ㄤ腑 - //platformClientUtil.getBOFactoryService().createBusinessObject(bo,false,false); + //绱㈠紩涓嶅瓨鍦ㄦ椂鍒犻櫎灏变細鎶ラ敊绱㈠紩涓嶅瓨鍦紝鎵�浠ヨ繖閲屾湁绱㈠紩鎵嶅幓鍒犻櫎 + if(hasIndex) { + platformClientUtil.getBtmService().dropIndex(btmName, oldindexAttr); + } } - //娣诲姞绱㈠紩淇℃伅鍒扮储寮曠殑涓氬姟琛ㄤ腑 - platformClientUtil.getBOFactoryService().batchCreateBusinessObject(boList.toArray(new BusinessObject[boList.size()]), false, false); + StringBuilder sb = new StringBuilder(); + List<TypeIndexDef> saveDefs = new ArrayList<>(); + for(int i = 0; i < indexObjectList.size(); i ++){ + TypeIndexDef saveDef = new TypeIndexDef(); + saveDef.typeName = indexObjectList.get(i).getTypeName(); + saveDef.name = indexObjectList.get(i).getIndexName(); + saveDef.description = indexObjectList.get(i).getDescription(); + saveDef.attributes = indexObjectList.get(i).getAttrNames(); + sb.append(indexObjectList.get(i).getAttrNames()); + if(i<indexObjectList.size()-1){ + sb.append(","); + } + saveDefs.add(saveDef); + } + String[] indexAttr = {indexObjectList.get(0).getIndexName(),sb.toString()}; + boolean alterFlag = platformClientUtil.getBtmService().addIndex(btmName, indexAttr); + if(!alterFlag) { + return false; + } + ClientServiceProvider.getOMDService().getTypeIndexService().saveIndexDefs(saveDefs.toArray(new TypeIndexDef[saveDefs.size()])); return true; } -- Gitblit v1.9.3