From f0b8a8d9966d0ccbb23ee8baaedf4ff8ba6060ed Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期四, 08 八月 2024 18:15:42 +0800
Subject: [PATCH] 业务类型新增、修改、删除、查看使用范围、创建视图、一致性检查、一致性检查修复、删除数据、删除数据界面查询、删除全部类型接口上传。

---
 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsLinkTypeServiceImpl.java |   57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 54 insertions(+), 3 deletions(-)

diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsLinkTypeServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsLinkTypeServiceImpl.java
index 0395363..bd33e47 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsLinkTypeServiceImpl.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsLinkTypeServiceImpl.java
@@ -51,6 +51,7 @@
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 /**
@@ -703,9 +704,14 @@
     @Override
     public List<OsLinkTypeAttributeVO> getAllAttributeByLink(String name) throws PLException, ParseException {
         AttributeDef[] attributes = platformClientUtil.getLinkTypeService().getAttributes(name);
-        AttributeDef[] sysAttributeDefs = platformClientUtil.getLinkTypeService().getSysAttributeDefs();
+        Map<String, AttributeDef> collect = Arrays.stream(platformClientUtil.getLinkTypeService().getSysAttributeDefs())
+                .collect(Collectors.toMap(str -> str.name, str -> str));
+
         List<OsLinkTypeAttributeVO> links = new ArrayList<>();
-        for (AttributeDef sysAttributeDef : sysAttributeDefs) {
+        String[] sysAttibutes = { "OID", "Creator", "CreateTime", "LastModifier", "LASTMODIFYTIME", "F_OID",
+                "F_REVISIONOID", "F_NAMEOID", "F_BtwName", "T_OID", "T_REVISIONOID", "T_NAMEOID", "T_BtwName", "TS" };
+        for (String sysname : sysAttibutes) {
+            AttributeDef sysAttributeDef = collect.get(sysname.toLowerCase());
             OsLinkTypeAttributeVO vo = new OsLinkTypeAttributeVO();
             vo.setOid(sysAttributeDef.oid);
             vo.setAttrDataType(sysAttributeDef.vtDataType);
@@ -715,7 +721,7 @@
             vo.setDefaultValue(sysAttributeDef.defValue);
             vo.setDescription(sysAttributeDef.description);
             vo.setRange(sysAttributeDef.rage);
-            vo.setId(sysAttributeDef.name);
+            vo.setId(sysname);
             vo.setName(sysAttributeDef.label);
             vo.setLastModifier(sysAttributeDef.modifier);
             vo.setLastModifyTime(new Date(sysAttributeDef.modifyTime));
@@ -982,4 +988,49 @@
         return null;
     }
 
+    /**
+     * 鑾峰彇浣跨敤璇ヤ笟鍔$被鍨嬬殑閾炬帴绫诲瀷鍚�
+     * @param btmName 涓氬姟绫诲瀷鍚嶇О
+     * @return
+     */
+    @Override
+    public List<String> getUsedBtmLinkList(String btmName) {
+        try {
+            List<String> list = new ArrayList<String>();
+            LinkType[] linkTypes = platformClientUtil.getLinkTypeService().getLinkTypes();
+            for(int i = 0; i < linkTypes.length; i++){
+                LinkType linkType = linkTypes[i];
+                if(this.containsBtm(linkType, btmName)){
+                    list.add(linkType.name);
+                }
+            }
+            return list;
+        } catch (PLException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    /**
+     * 鎸囧畾鐨勯摼鎺ョ被鍨嬫槸鍚︿娇鐢ㄤ簡鎸囧畾鐨勪笟鍔$被鍨�
+     * @param link
+     * @param btmName
+     * @return
+     */
+    private boolean containsBtm(LinkType link, String btmName){
+        String[] btms = link.btmItemsFrom;
+        for(int i = 0; i < btms.length; i++){
+            if(btmName.equalsIgnoreCase(btms[i])){
+                return true;
+            }
+        }
+        btms = link.btmItemsTo;
+        for(int i = 0; i < btms.length; i++){
+            if(btmName.equalsIgnoreCase(btms[i])){
+                return true;
+            }
+        }
+        return false;
+    }
+
 }

--
Gitblit v1.9.3