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