From c6a54f63df671de4592e336b9b8cd8406d4e3b51 Mon Sep 17 00:00:00 2001
From: fujunling <2984387807@qq.com>
Date: 星期五, 02 六月 2023 16:25:27 +0800
Subject: [PATCH] 解决动态模块冲突

---
 Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/mapper/LinkTypeMapper.java                                                |   11 
 Source/UBCS-WEB/src/components/refer/vciWebRefer.vue                                                                                       |    1 
 Source/UBCS-WEB/src/views/modeling/LinkType.vue                                                                                            |  263 +++++++++++++++
 Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/LinkTypeServiceImpl.java                                     |   42 ++
 Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/controller/BtmTypeController.java                                         |    4 
 Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/BtmTypeClient.java                                                  |   41 ++
 Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/controller/DockingPreApplyCodeController.java          |    9 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/DockingManagementController.java                             |   29 +
 Source/UBCS/ubcs-service-api/ubcs-webservice-api/src/main/java/com/vci/ubcs/code/webservice/vo/collection/DockingPreAttrMappingVOList.java |   29 +
 Source/UBCS-WEB/src/views/modeling/Business.vue                                                                                            |   10 
 Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/entity/LinkType.java                                              |    5 
 Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/dto/LinkTypeDTO.java                                              |    5 
 Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IBtmTypeFallback.java                                       |   51 ++
 Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/controller/LinkTypeController.java                                        |  169 +++++++++
 Source/UBCS/ubcs-service/ubcs-omd/src/main/resources/mapper/LinkTypeMapper.xml                                                             |    8 
 Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/BtmAttributeServiceImpl.java                                 |   96 +++++
 Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/ILinkTypeService.java                                             |    6 
 Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/LinkTypeVO.java                                                |    5 
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/DockingSystemConfig.java                                 |    1 
 Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/IBtmTypeAttributeService.java                                     |   15 
 Source/UBCS-WEB/src/api/omd/linkType.js                                                                                                    |   71 ++++
 Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IBtmTypeClient.java                                         |   43 ++
 Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/BtmTreeVO.java                                                 |    6 
 Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/IBtmTypeService.java                                              |   28 +
 Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/BtmTypeServiceImpl.java                                      |   58 +++
 25 files changed, 956 insertions(+), 50 deletions(-)

diff --git a/Source/UBCS-WEB/src/api/omd/linkType.js b/Source/UBCS-WEB/src/api/omd/linkType.js
new file mode 100644
index 0000000..e69fc12
--- /dev/null
+++ b/Source/UBCS-WEB/src/api/omd/linkType.js
@@ -0,0 +1,71 @@
+import request from '@/router/axios';
+
+export const initTree = () => {
+    return request({
+        url: '/api/ubcs-omd/link-type/tree-domain',
+        method: 'get',
+    })
+}
+
+export const refOnLoad = (domain) => {
+    return request({
+        url: '/api/ubcs-omd/link-type/get-from-table',
+        method: 'get',
+        params: {
+            domain: domain
+        }
+    })
+}
+
+export const getDomain = () => {
+    return request({
+        url: '/api/ubcs-omd/link-type/domain',
+        method: 'get'
+    })
+}
+
+export const saveFromTable = (list,domain) => {
+    return request({
+        url: '/api/ubcs-omd/link-type/save-from-table/' + domain,
+        method: 'post',
+        data: list
+    })
+}
+
+export const getDetail = (oid) => {
+    return request({
+        url: '/api/ubcs-omd/link-type/detail',
+        method: 'get',
+        params: {
+            oid: oid
+        }
+    })
+}
+
+export const add = (linkType,auto) => {
+    return request({
+        url: '/api/ubcs-omd/link-type/submit/' + auto,
+        method: 'post',
+        data: linkType
+    })
+}
+
+export const update = (linkType) => {
+    return request({
+        url: '/api/ubcs-omd/link-type/submit/' + auto,
+        method: 'post',
+        data: linkType
+    })
+}
+
+export const btmPage = (current,size,params) => {
+    return request ({
+        url: '/api/ubcs-omd/link-type/page',
+        method: 'get',
+        params: {
+            current,
+            size,
+            ...params
+        }
+    })
+}
\ No newline at end of file
diff --git a/Source/UBCS-WEB/src/components/refer/vciWebRefer.vue b/Source/UBCS-WEB/src/components/refer/vciWebRefer.vue
index 9d6f311..90e7944 100644
--- a/Source/UBCS-WEB/src/components/refer/vciWebRefer.vue
+++ b/Source/UBCS-WEB/src/components/refer/vciWebRefer.vue
@@ -18,6 +18,7 @@
     };
   },
   created() {
+    console.log(this.refertype)
     if(this.refertype=='tree'){
       console.log('referConfig:')
       console.log(this.options)
diff --git a/Source/UBCS-WEB/src/views/modeling/Business.vue b/Source/UBCS-WEB/src/views/modeling/Business.vue
index 483d1b1..476fe62 100644
--- a/Source/UBCS-WEB/src/views/modeling/Business.vue
+++ b/Source/UBCS-WEB/src/views/modeling/Business.vue
@@ -1,13 +1,16 @@
 <template>
   <el-container>
     <el-header class="businessHeader" style="height: 40px;">
-      <el-button type="primary" @click="businessAdd" size="small">鏂板</el-button>
-      <el-button type="primary" @click="businessEdit" size="small">淇敼</el-button>
-      <el-button type="primary" @click="selectFromTable" size="small">浠庡凡鏈変腑鑾峰彇</el-button>
+      <el-button-group>
+        <el-button type="primary" @click="businessAdd" size="small"> <i class="el-icon-plus"></i>&nbsp; 鏂板</el-button>
+        <el-button type="primary" @click="businessEdit" size="small"><i class="el-icon-edit"></i>&nbsp; 淇敼</el-button>
+        <el-button type="primary" @click="selectFromTable" size="small"><i class="el-icon-thumb"></i>&nbsp; 浠庡凡鏈変腑鑾峰彇</el-button>
+      </el-button-group>
     </el-header>
     <el-container>
       <el-aside width="240px">
         <basic-container class="businessTreeContainer">
+          <p style="margin-top: 10px;font-weight: 570;font-size: 19px">{{ treeOption.title }}</p>
           <avue-tree id="basic" :data="treeData" :option="treeOption" @node-click="nodeClick" class="businessTree">
             <span class="el-tree-node__label" slot-scope="{ node, data }">
               <span>
@@ -161,6 +164,7 @@
       treeOption: {
         defaultExpandAll: true,
         title: '涓氬姟绫诲瀷鏍�',
+        addBtn: false,
         props: {
           labelText: '',
           label: 'name',
diff --git a/Source/UBCS-WEB/src/views/modeling/LinkType.vue b/Source/UBCS-WEB/src/views/modeling/LinkType.vue
new file mode 100644
index 0000000..18e6791
--- /dev/null
+++ b/Source/UBCS-WEB/src/views/modeling/LinkType.vue
@@ -0,0 +1,263 @@
+<template>
+    <el-container>
+        <!-- 椤剁鎸夐挳 -->
+        <el-header class="businessHeader" style="height: 40px;">
+            <el-button-group>
+                <el-button type="primary" @click="linkTypeAdd" size="small">
+                    <i class="el-icon-plus"></i>&nbsp;
+                    鏂板
+                </el-button>
+                <el-button type="primary" @click="linkTypeEdit" size="small">
+                    <i class="el-icon-edit"></i>&nbsp;
+                    淇敼
+                </el-button>
+                <el-button type="primary" @click="selectFromTable" size="small">
+                    <i class="el-icon-thumb"></i>&nbsp;
+                    浠庡凡鏈変腑鑾峰彇
+                </el-button>
+            </el-button-group>
+        </el-header>
+        <!-- 渚ц竟鏍忔爲 -->
+        <el-container>
+            <el-aside width="240px">
+                <basic-container class="businessTreeContainer">
+                    <p style="margin-top: 10px;font-weight: 570;font-size: 19px">{{ treeOption.title }}</p>
+                    <avue-tree id="basic" :data="treeData" :option="treeOption" @node-click="nodeClick"
+                        class="businessTree">
+                        <span class="el-tree-node__label" slot-scope="{ node, data }">
+                            <span>
+                                <i class="el-icon-star-on"></i>
+                                {{ (node || {}).label }}
+                            </span>
+                        </span>
+                    </avue-tree>
+                </basic-container>
+            </el-aside>
+            <el-container>
+                <el-main>
+                    <basic-container>
+                        <p style="margin-top: 10px;font-weight: 570;font-size: 19px">鍩烘湰淇℃伅</p>
+                        <el-descriptions class="margin-top" :column="2" size="medium" border>
+                            <el-descriptions-item labelStyle="text-align:center;width:120px"
+                                contentStyle="width:240px;text-align:center;word-break;break-all;">
+                                <template slot="label">
+                                    <i class="el-icon-finished"></i>
+                                    鑻辨枃鍚嶇О
+                                </template>
+                                {{ obj.id }}
+                            </el-descriptions-item>
+                            <el-descriptions-item labelStyle="text-align:center;width:120px"
+                                contentStyle="width:240px;text-align:center;word-break;break-all;">
+                                <template slot="label">
+                                    <i class="el-icon-info"></i>
+                                    涓枃鍚嶇О
+                                </template>
+                                {{ obj.name }}
+                            </el-descriptions-item>
+                            <el-descriptions-item labelStyle="text-align:center;width:120px"
+                                contentStyle="width:240px;text-align:center;word-break;break-all;">
+                                <template slot="label">
+                                    <i class="el-icon-date"></i>
+                                    鏁版嵁搴撹〃鍚�
+                                </template>
+                                {{ obj.tableName }}
+                            </el-descriptions-item>
+                            <el-descriptions-item labelStyle="text-align:center;width:120px"
+                                contentStyle="width:240px;text-align:center;word-break;break-all;">
+                                <template slot="label">
+                                    <i class="el-icon-folder-opened"></i>
+                                    鎵�灞為鍩�
+                                </template>
+                                <el-tag size="small">
+                                    {{ obj.domainText }}
+                                </el-tag>
+                            </el-descriptions-item>
+                        </el-descriptions>
+                        <el-descriptions class="margin-top" direction="vertical" :column="2" border>
+                            <el-descriptions-item labelStyle="text-align:center;width:120px"
+                                contentStyle="width:240px;text-align:center;word-break;break-all;">
+                                <template slot="label">
+                                    <i class="el-icon-sort-down"></i>
+                                    From绔被鍨�
+                                </template>
+                                <span v-for="item in obj.fromBtmTypes" style="margin-left:2px;">
+                                    <el-tag size="small" effect="plain" style="width:130px;margin-top: 2px;">
+                                        {{ item.id + '锛�' + item.name + '锛�' }}
+                                    </el-tag>
+                                </span>
+                            </el-descriptions-item>
+                            <el-descriptions-item labelStyle="text-align:center;width:120px"
+                                contentStyle="width:240px;text-align:center;word-break;break-all;">
+                                <template slot="label">
+                                    <i class="el-icon-sort-up"></i>
+                                    To娈电被鍨�
+                                </template>
+                                <span v-for="item in obj.toBtmTypes" style="height:26px;width:140px;margin-left:2px">
+                                    <el-tag size="small" effect="plain" style="width:130px;margin-top: 2px;">
+                                        {{ item.id + '锛�' + item.name + '锛�' }}
+                                    </el-tag>
+                                </span>
+                            </el-descriptions-item>
+                        </el-descriptions>
+
+                        <el-descriptions class="margin-top" :column="2" size="medium" border>
+                            <el-descriptions-item labelStyle="text-align:center;width:120px"
+                                contentStyle="width:240px;text-align:center;word-break;break-all;">
+                                <template slot="label">
+                                    <i class="el-icon-info"></i>
+                                    涓荤被鍨�
+                                </template>
+                                {{ obj.fromBtmTypeName }}
+                            </el-descriptions-item>
+                            <el-descriptions-item labelStyle="text-align:center;width:120px"
+                                contentStyle="width:240px;text-align:center;word-break;break-all;">
+                                <template slot="label">
+                                    <i class="el-icon-info"></i>
+                                    涓荤被鍨�
+                                </template>
+                                {{ obj.toBtmTypeName }}
+                            </el-descriptions-item>
+                            <el-descriptions-item span='2' labelStyle="text-align:center;width:120px">
+                                <template slot="label">
+                                    <i class="el-icon-chat-line-square"></i>
+                                    鎻忚堪
+                                </template>
+                                {{ obj.description }}
+                            </el-descriptions-item>
+                        </el-descriptions>
+                    </basic-container>
+                    <!-- 灞炴�у垪琛�-->
+                    <basic-container>
+                        <p style="margin-top: 10px;font-weight: 570;font-size: 19px">灞炴�у垪琛�</p>
+                        <avue-crud class="attributeCrud" v-model="obj" :data="obj.attributes" :option="loadOption">
+                            <template slot="attrDataType" slot-scope="{row}">
+                                <el-tag>{{ row.attrDataType }}</el-tag>
+                            </template>
+                        </avue-crud>
+                    </basic-container>
+                </el-main>
+            </el-container>
+        </el-container>
+
+
+    </el-container>
+</template>
+  
+<script>
+import {
+    initTree,
+    refOnLoad,
+    getDomain,
+    saveFromTable,
+    getDetail
+} from "@/api/omd/linkType"
+export default {
+    name: "LinkType",
+    data() {
+        return {
+            treeData: [
+                { id: "1", name: "2", label: "label" },
+                { id: "a", name: "b", label: "c" }
+            ],
+            loadOption: {
+                border: true,
+                height: 360,
+                editBtn: false,
+                addBtn: false,
+                menu: false,
+                highlightCurrentRow: true,
+                refreshBtn: false,
+                columnBtn: false,
+                column: [
+                    {
+                        label: '鑻辨枃鍚嶇О',
+                        prop: 'id',
+                        align: 'center'
+                    }, {
+                        label: '涓枃鍚嶇О',
+                        prop: 'name',
+                        align: 'center'
+                    },
+                    {
+                        label: '绫诲瀷',
+                        prop: 'attrDataType',
+                        align: 'center',
+                        slot: true
+                    },
+                    {
+                        label: '榛樿鍊�',
+                        prop: 'defaultValue',
+                        align: 'center'
+                    },
+                    {
+                        label: '璇存槑',
+                        prop: 'description',
+                        align: 'center'
+                    }
+                ]
+            },
+            obj: {
+                id: 'linkType',
+                name: '閾炬帴绫诲瀷',
+                tableName: 'PLLT_OMD_LINKTYPE',
+                domain: 'ubcs-omd',
+                domainText: '瀵硅薄寤烘ā',
+                fromBtmTypes: [
+                    { id: 'btm', name: '涓氬姟绫诲瀷' },
+                    { id: 'btm2', name: '涓氬姟绫诲瀷2' }
+                ],
+                toBtmTypes: [{ id: 'btm', name: '涓氬姟绫诲瀷' }, { id: 'btm2', name: '涓氬姟绫诲瀷2' }],
+                fromBtmTypeName: '',
+                toBtmTypeName: '',
+            },
+            treeOption: {
+                defaultExpandAll: true,
+                title: '閾炬帴绫诲瀷鏍�',
+                addBtn: false,
+                props: {
+                    labelText: '',
+                    label: 'name',
+                    value: 'oid',
+                    children: 'childList',
+                }
+            },
+        }
+    },
+    created() {
+        this.initTreeOnLoad();
+        // this.initDomainOption();
+    },
+
+    methods: {
+        // 鏍戠偣鍑�
+        nodeClick(data) {
+            console.log(data);
+        },
+        // 娣诲姞鎸夐挳鐐瑰嚮浜嬩欢
+        linkTypeAdd() {
+
+        },
+        // 缂栬緫鎸夐挳鐐瑰嚮浜嬩欢
+        linkTypeEdit() {
+
+        },
+        // 浠庡凡鏈変腑鑾峰彇鎸夐挳鐐瑰嚮浜嬩欢
+        selectFromTable() {
+
+        },
+        initTreeOnLoad() {
+            initTree().then(res => {
+                this.treeData = res.data.data;
+            });
+        }
+
+    }
+}
+</script>
+  
+<style lang="scss">
+.attributeCrud>.el-card:nth-of-type(2)>.el-card__body>.avue-crud__menu {
+    display: none !important;
+}
+</style>
+  
\ No newline at end of file
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/DockingSystemConfig.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/DockingSystemConfig.java
index 528d94f..a4b5f02 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/DockingSystemConfig.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/DockingSystemConfig.java
@@ -285,6 +285,7 @@
 	@TableField(value = "targname")
 	private String targetName;
 
+
 	/***
 	 * 鎺ㄩ�佺被鍨� 1:鏁版嵁鎺ㄩ��/2鍒嗙被鎺ㄩ�侊紝榛樿鏁版嵁鎺ㄩ��
 	 */
diff --git a/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/dto/LinkTypeDTO.java b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/dto/LinkTypeDTO.java
index d0eab19..ab03c86 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/dto/LinkTypeDTO.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/dto/LinkTypeDTO.java
@@ -48,6 +48,11 @@
      */
     private String implClass;
 
+	/**
+	 * 鏁版嵁琛ㄥ悕
+	 */
+	private String tableName;
+
     /**
      * from绔笟鍔$被鍨�
      */
diff --git a/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/entity/LinkType.java b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/entity/LinkType.java
index c8df463..6a409cc 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/entity/LinkType.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/entity/LinkType.java
@@ -53,6 +53,11 @@
      */
     private String implClass;
 
+	/**
+	 * 鏁版嵁琛ㄥ悕
+	 */
+	private String tableName;
+
     /**
      * from绔笟鍔$被鍨�
      */
diff --git a/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IBtmTypeClient.java b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IBtmTypeClient.java
index 741d9bd..7fea663 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IBtmTypeClient.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IBtmTypeClient.java
@@ -1,10 +1,9 @@
 package com.vci.ubcs.omd.feign;
 
-import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.vci.ubcs.omd.vo.BtmTypeVO;
 import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject;
 import org.springblade.core.launch.constant.AppConstant;
-import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -12,9 +11,7 @@
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
 
-import java.util.Collection;
 import java.util.List;
-import java.util.Map;
 
 /**
  * Description: 涓氬姟绫诲瀷Feign鎺ュ彛绫�
@@ -53,6 +50,12 @@
 	 */
 	String GET_BY_OIDS = API_PREFIX + "/btm-type/get-by-oids";
 
+	String GET_DEFAULT_ATTR_BY_BTM_ID = API_PREFIX + "/btm-attribute/get-default-attr-by-btm-id";
+
+	String GET_ALL_ATTR_BY_BTM_ID = API_PREFIX + "/btm-attribute/get-all-attr-by-btm-id";
+
+	String GET_ALL_ATTR_BY_BTM_OID = API_PREFIX + "/btm-attribute/get-all-attr-by-btm-oid";
+
 	/**
 	 * 鑾峰彇涓氬姟绫诲瀷璇︽儏淇℃伅
 	 *
@@ -64,11 +67,12 @@
 
 	/**
 	 * 鍙傜収鍒楄〃鏌ヨ
+	 *
 	 * @param baseQueryObject 鏌ヨ鏉′欢瀵硅薄
 	 * @return 鏌ヨ缁撴灉
 	 */
-	@GetMapping(GET_REF_PAGE)
-	R<IPage<BtmTypeVO>> getRefPage(@RequestBody BaseQueryObject baseQueryObject);
+	@PostMapping(GET_REF_PAGE)
+	R<Page<BtmTypeVO>> getRefPage(@RequestBody BaseQueryObject baseQueryObject);
 
 	/**
 	 * 鍙傜収鍒楄〃鏌ヨ
@@ -93,4 +97,31 @@
 	 */
 	@PostMapping(GET_BY_OIDS)
 	R<List<BtmTypeVO>> listBtmTypeByOidCollection(@RequestBody List<String> pkBtmTypeCollection);
+
+	/**
+	 * 鑾峰彇涓氬姟绫诲瀷锛屽彧鏈夐粯璁ゅ瓧娈�
+	 *
+	 * @param btmTypeId 涓氬姟绫诲瀷id
+	 * @return 榛樿瀛楁灞炴��
+	 */
+	@GetMapping(GET_DEFAULT_ATTR_BY_BTM_ID)
+	R<BtmTypeVO> getDefaultAttrByBtmId(@RequestParam("btmTypeId") String btmTypeId);
+
+	/**
+	 * 鑾峰彇涓氬姟绫诲瀷锛屾湁鎵�鏈夌殑瀛楁
+	 *
+	 * @param btmTypeId 涓氬姟绫诲瀷id
+	 * @return 鎵�鏈夊瓧娈�
+	 */
+	@GetMapping(GET_ALL_ATTR_BY_BTM_ID)
+	R<BtmTypeVO> getAllAttributeByBtmId(@RequestParam("btmTypeId") String btmTypeId);
+
+	/**
+	 * 鑾峰彇涓氬姟绫诲瀷锛屾湁鎵�鏈夌殑瀛楁
+	 *
+	 * @param btmTypeOid 涓氬姟绫诲瀷涓婚敭
+	 * @return 鎵�鏈夊瓧娈�
+	 */
+	@GetMapping(GET_ALL_ATTR_BY_BTM_OID)
+	R<BtmTypeVO> getAllAttributeByBtmOid(@RequestParam("btmTypeOid") String btmTypeOid);
 }
diff --git a/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IBtmTypeFallback.java b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IBtmTypeFallback.java
index 31f9b9a..6e1762c 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IBtmTypeFallback.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IBtmTypeFallback.java
@@ -16,17 +16,13 @@
  */
 package com.vci.ubcs.omd.feign;
 
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.vci.ubcs.omd.entity.Attribute;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.vci.ubcs.omd.vo.BtmTypeVO;
 import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject;
-import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
 import org.springframework.stereotype.Component;
 
-import java.util.Collection;
 import java.util.List;
-import java.util.Map;
 
 /**
  * Feign澶辫触閰嶇疆
@@ -47,13 +43,13 @@
 	}
 
 	/**
-	 * 鍙傜収鍒楄〃鏌ヨ
-	 *
-	 * @param baseQueryObject 鏌ヨ鏉′欢瀵硅薄
-	 * @return 鏌ヨ缁撴灉
-	 */
+     * 鍙傜収鍒楄〃鏌ヨ
+     *
+     * @param baseQueryObject 鏌ヨ鏉′欢瀵硅薄
+     * @return 鏌ヨ缁撴灉
+     */
 	@Override
-	public R<IPage<BtmTypeVO>> getRefPage(BaseQueryObject baseQueryObject) {
+	public R<Page<BtmTypeVO>> getRefPage(BaseQueryObject baseQueryObject) {
 		return R.fail("鑾峰彇鏁版嵁澶辫触");
 	}
 
@@ -89,4 +85,37 @@
 	public R<List<BtmTypeVO>> selectByIdCollection(List<String> ids) {
 		return R.fail("鑾峰彇鏁版嵁澶辫触");
 	}
+
+	/**
+	 * 鎸夌収涓氬姟绫诲瀷鑾峰彇榛樿瀛楁
+	 *
+	 * @param btmTypeId 涓氬姟绫诲瀷id
+	 * @return 榛樿瀛楁灞炴��
+	 */
+	@Override
+	public R<BtmTypeVO> getDefaultAttrByBtmId(String btmTypeId) {
+		return R.fail("鑾峰彇鏁版嵁澶辫触");
+	}
+
+	/**
+	 * 鎸変笟鍔$被鍨媔d鑾峰彇鎵�鏈夌殑瀛楁
+	 *
+	 * @param btmTypeId 涓氬姟绫诲瀷id
+	 * @return 鎵�鏈夊瓧娈�
+	 */
+	@Override
+	public R<BtmTypeVO> getAllAttributeByBtmId(String btmTypeId) {
+		return R.fail("鑾峰彇鏁版嵁澶辫触");
+	}
+
+	/**
+	 * 鎸変笟鍔$被鍨嬩富閿幏鍙栨墍鏈夌殑瀛楁
+	 *
+	 * @param btmTypeOid 涓氬姟绫诲瀷涓婚敭
+	 * @return 鎵�鏈夊瓧娈�
+	 */
+	@Override
+	public R<BtmTypeVO> getAllAttributeByBtmOid(String btmTypeOid) {
+		return R.fail("鑾峰彇鏁版嵁澶辫触");
+	}
 }
diff --git a/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/BtmTypeTreeVO.java b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/BtmTreeVO.java
similarity index 77%
rename from Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/BtmTypeTreeVO.java
rename to Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/BtmTreeVO.java
index 40ea05a..7e45251 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/BtmTypeTreeVO.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/BtmTreeVO.java
@@ -13,7 +13,7 @@
  * @date 2023/5/5
  */
 @Data
-public class BtmTypeTreeVO implements Serializable{
+public class BtmTreeVO implements Serializable{
 	/**
 	 * 搴忓垪鍖�
 	 */
@@ -25,5 +25,7 @@
 
 	private String oid;
 
-	private List<BtmTypeTreeVO> childList;
+	private String type;
+
+	private List<BtmTreeVO> childList;
 }
diff --git a/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/LinkTypeVO.java b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/LinkTypeVO.java
index 264ddb6..423bac7 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/LinkTypeVO.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/LinkTypeVO.java
@@ -119,6 +119,11 @@
      */
     private Date ts;
 
+	/**
+	 * 棰嗗煙鍊�
+	 */
+	private String domain;
+
     /**
      * 鍖呭惈灞炴��
      */
diff --git a/Source/UBCS/ubcs-service-api/ubcs-webservice-api/src/main/java/com/vci/ubcs/code/webservice/vo/collection/DockingPreAttrMappingVOList.java b/Source/UBCS/ubcs-service-api/ubcs-webservice-api/src/main/java/com/vci/ubcs/code/webservice/vo/collection/DockingPreAttrMappingVOList.java
new file mode 100644
index 0000000..ecd85b1
--- /dev/null
+++ b/Source/UBCS/ubcs-service-api/ubcs-webservice-api/src/main/java/com/vci/ubcs/code/webservice/vo/collection/DockingPreAttrMappingVOList.java
@@ -0,0 +1,29 @@
+package com.vci.ubcs.code.webservice.vo.collection;
+
+import com.vci.ubcs.code.webservice.vo.DockingPreAttrMappingVO;
+
+import java.io.Serializable;
+import java.util.List;
+
+/***
+ * 灞炴�ф槧灏勪繚瀛樻椂鍊欓泦鍚堝璞℃槧灏�
+ */
+public class DockingPreAttrMappingVOList implements Serializable {
+
+	private List<DockingPreAttrMappingVO> dockingPreAttrMappingVOList;
+
+	public List<DockingPreAttrMappingVO> getDockingPreAttrMappingVOList() {
+		return dockingPreAttrMappingVOList;
+	}
+
+	public void setDockingPreAttrMappingVOList(List<DockingPreAttrMappingVO> dockingPreAttrMappingVOList) {
+		this.dockingPreAttrMappingVOList = dockingPreAttrMappingVOList;
+	}
+
+	@Override
+	public String toString() {
+		return "DockingPreAttrMappingVOList{" +
+			"dockingPreAttrMappingVOList=" + dockingPreAttrMappingVOList +
+			'}';
+	}
+}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/DockingManagementController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/DockingManagementController.java
index 014e1b4..07131a6 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/DockingManagementController.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/DockingManagementController.java
@@ -5,11 +5,16 @@
 import com.vci.ubcs.code.dto.DockingSystemDTO;
 import com.vci.ubcs.code.entity.CodeRule;
 import com.vci.ubcs.code.entity.DockingSystem;
+import com.vci.ubcs.code.entity.DockingSystemConfig;
+import com.vci.ubcs.code.service.IDockingSystemConfigService;
 import com.vci.ubcs.code.service.IDockingSystemService;
 import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO;
+import com.vci.ubcs.code.vo.pagemodel.DockingSystemConfigVO;
 import com.vci.ubcs.code.vo.pagemodel.DockingSystemVO;
 import com.vci.ubcs.code.wrapper.CodeRuleWrapper;
+import com.vci.ubcs.code.wrapper.DockingSystemConfigWrapper;
 import com.vci.ubcs.code.wrapper.DockingSystemWrapper;
+import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
@@ -29,7 +34,17 @@
 @RequestMapping("/dockingManagement")
 @Api(value = "鎺ュ彛绠$悊", tags = "缂栫爜鐩稿叧鎺ュ彛绠$悊淇℃伅")
 public class DockingManagementController {
+	/***
+	 * 闆嗘垚绯荤粺绠$悊鏈嶅姟
+	 */
 	private  final IDockingSystemService dockingSystemService;
+	/***
+	 * 闆嗘垚鎺ュ彛閰嶇疆鏈嶅姟
+	 */
+	private  final IDockingSystemConfigService dockingSystemConfigService;
+
+
+
 
 	/**绯荤粺闆嗘垚鐨勭郴缁熶俊鎭垪琛�
 	 * @param dockingSystem 鍩虹鏌ヨ瀵硅薄锛屽寘鍚煡璇㈡潯浠讹紝鍒嗛〉锛屾帓搴忕瓑
@@ -69,12 +84,24 @@
 
 	/**
 	 * 鍒犻櫎绯荤粺闆嗘垚鐨勭郴缁熶俊鎭�
-	 * @param sysIntBaseDTO 绯荤粺闆嗘垚鐨勭郴缁熶俊鎭暟鎹紶杈撳璞★紝oid鍜宼s闇�瑕佷紶杈�
+	 * @param dockingSystemDTO 绯荤粺闆嗘垚鐨勭郴缁熶俊鎭暟鎹紶杈撳璞★紝oid鍜宼s闇�瑕佷紶杈�
 	 * @return 鍒犻櫎缁撴灉鍙嶉锛氾細success锛氭垚鍔燂紝fail锛氬け璐�
 	 */
 	@DeleteMapping( "/deleteData")
 	public R delSystemData( DockingSystemDTO dockingSystemDTO) {
 		return R.status(dockingSystemService.delSystemData(dockingSystemDTO));
 	}
+	/**
+	 * 绯荤粺闆嗘垚鍩虹淇℃伅鍒楄〃
+	 * @param DockingSystemConfig 鍩虹鏌ヨ瀵硅薄锛屽寘鍚煡璇㈡潯浠讹紝鍒嗛〉锛屾帓搴忕瓑
+	 * @return 绯荤粺闆嗘垚鍩虹淇℃伅鏄剧ず瀵硅薄鍒楄〃
+	 */
+	@GetMapping("/gridSysIntInfo")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "鍒嗛〉", notes = "DockingSystemConfig")
+	public R<IPage<DockingSystemConfigVO>> gridSysIntInfo(DockingSystemConfig DockingSystemConfig, Query query){
+		IPage<DockingSystemConfig> pages = dockingSystemConfigService.page(Condition.getPage(query), Condition.getQueryWrapper(DockingSystemConfig));
+		return R.data(DockingSystemConfigWrapper.build().pageVO(pages));
+	}
 
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/controller/BtmTypeController.java b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/controller/BtmTypeController.java
index 4613774..beee556 100644
--- a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/controller/BtmTypeController.java
+++ b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/controller/BtmTypeController.java
@@ -11,7 +11,7 @@
 import com.vci.ubcs.omd.entity.BtmType;
 import com.vci.ubcs.omd.repeater.DomainRepeater;
 import com.vci.ubcs.omd.service.IBtmTypeService;
-import com.vci.ubcs.omd.vo.BtmTypeTreeVO;
+import com.vci.ubcs.omd.vo.BtmTreeVO;
 import com.vci.ubcs.omd.vo.BtmTypeVO;
 import com.vci.ubcs.omd.vo.DomainVO;
 import com.vci.ubcs.omd.wrapper.BtmTypeWrapper;
@@ -161,7 +161,7 @@
 	@GetMapping("/tree-domain")
 	@ApiOperationSupport(order = 7)
 	@ApiOperation(value = "涓氬姟绫诲瀷鏍戝舰缁撴瀯", notes = "涓氬姟绫诲瀷鏍戝舰缁撴瀯")
-	public R<List<BtmTypeTreeVO>> treeDomain(){
+	public R<List<BtmTreeVO>> treeDomain(){
 		return R.data(btmTypeService.treeDomain());
 	}
 
diff --git a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/controller/LinkTypeController.java b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/controller/LinkTypeController.java
new file mode 100644
index 0000000..6d8170b
--- /dev/null
+++ b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/controller/LinkTypeController.java
@@ -0,0 +1,169 @@
+package com.vci.ubcs.omd.controller;
+
+import com.alibaba.cloud.commons.lang.StringUtils;
+import com.alibaba.nacos.api.exception.NacosException;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.vci.ubcs.omd.constant.OmdCacheConstant;
+import com.vci.ubcs.omd.dto.LinkTypeDTO;
+import com.vci.ubcs.omd.entity.LinkType;
+import com.vci.ubcs.omd.repeater.DomainRepeater;
+import com.vci.ubcs.omd.service.ILinkTypeService;
+import com.vci.ubcs.omd.vo.BtmTreeVO;
+import com.vci.ubcs.omd.vo.LinkTypeVO;
+import com.vci.ubcs.omd.vo.DomainVO;
+import com.vci.ubcs.omd.wrapper.LinkTypeWrapper;
+import io.swagger.annotations.*;
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringPool;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import javax.validation.Valid;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * Description:閾炬帴绫诲瀷鎺у埗鍣�
+ *
+ * @author LiHang
+ * @date 2023/5/29
+ */
+@NonDS
+@RestController
+@AllArgsConstructor
+@RequestMapping("/link-type")
+@Api(value = "閾炬帴绫诲瀷鎺у埗鍣�", tags = "閾炬帴绫诲瀷鎺у埗鍣�")
+public class LinkTypeController extends BladeController {
+	/**
+	 * 閾炬帴绫诲瀷鏈嶅姟
+	 */
+	private final ILinkTypeService linkTypeService;
+
+	/**
+	 * 鏌ョ湅璇︽儏
+	 *
+	 * @param oid 涓婚敭
+	 * @return 鎵ц缁撴灉
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "鏌ョ湅璇︽儏", notes = "浼犲叆涓婚敭")
+	public R<LinkTypeVO> detail(String oid) {
+		return R.data(linkTypeService.getLinkTypeByOid(oid));
+	}
+
+	/**
+	 * 鍒楄〃
+	 *
+	 * @param condition 鏌ヨ鏉′欢
+	 * @return 鎵ц缁撴灉
+	 */
+	@GetMapping("/list")
+	@ApiImplicitParams({
+		@ApiImplicitParam(name = "oid", value = "涓婚敭", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "id", value = "閾炬帴绫诲瀷鑻辨枃鍚嶇О", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "name", value = "閾炬帴绫诲瀷涓枃鍚嶇О", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "tableName", value = "閾炬帴绫诲瀷鏁版嵁搴撹〃鍚�", paramType = "query", dataType = "string"),
+	})
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "鏌ヨ鍒楄〃", notes = "浼犲叆鏌ヨ")
+	public R<List<LinkTypeVO>> list(@ApiIgnore @RequestParam Map<String, Object> condition) {
+		return R.data(LinkTypeWrapper.build().listEntityVO(linkTypeService.list(Condition.getQueryWrapper(condition, LinkType.class).lambda().orderByAsc(LinkType::getId))));
+	}
+
+	/**
+	 * 鍒嗛〉鍒楄〃
+	 *
+	 * @param condition 鏌ヨ鏉′欢
+	 */
+	@GetMapping("/page")
+	@ApiImplicitParams({
+		@ApiImplicitParam(name = "oid", value = "涓婚敭", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "id", value = "閾炬帴绫诲瀷鑻辨枃鍚嶇О", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "name", value = "閾炬帴绫诲瀷涓枃鍚嶇О", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "tableName", value = "閾炬帴绫诲瀷鏁版嵁搴撹〃鍚�", paramType = "query", dataType = "string"),
+	})
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "鏌ヨ鍒楄〃", notes = "浼犲叆鏌ヨ")
+	public R<IPage<LinkTypeVO>> parentList(@ApiIgnore @RequestParam Map<String, Object> condition, Query query) {
+		IPage<LinkTypeVO> pageVO = new Page<>();
+		IPage<LinkType> page = linkTypeService.page(Condition.getPage(query), Condition.getQueryWrapper(condition, LinkType.class).lambda().orderByAsc(LinkType::getId));
+		BeanUtil.copy(page, pageVO);
+		pageVO.setRecords(LinkTypeWrapper.build().listEntityVO(page.getRecords()));
+		return R.data(pageVO);
+	}
+
+
+	/**
+	 * 鏂板鎴栦慨鏀�
+	 *
+	 * @param dto 鍏冩暟鎹〉闈紶杈撳璞�
+	 * @return 鎵ц缁撴灉
+	 */
+	@PostMapping("/submit/{auto}")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "鏂板鎴栦慨鏀�", notes = "浼犲叆閾炬帴绫诲瀷瀵硅薄")
+	public R submit(@Valid @RequestBody LinkTypeVO dto, @PathVariable(value = "auto") boolean auto) {
+		CacheUtil.clear(OmdCacheConstant.LINK_CACHE);
+		if (StringUtils.isNotBlank(dto.getOid())){
+			return R.data(linkTypeService.editSave(dto));
+		}else {
+			return R.data(linkTypeService.addSave(dto));
+		}
+	}
+
+	/**
+	 * 鍒犻櫎
+	 *
+	 * @param ids 涓婚敭闆嗗悎
+	 * @return 鎵ц缁撴灉
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "鍒犻櫎", notes = "涓婚敭闆嗗悎")
+	public R remove(@ApiParam(value = "涓婚敭闆嗗悎", required = true) @RequestParam String ids) {
+		CacheUtil.clear(OmdCacheConstant.LINK_CACHE);
+		List<String> oidList = new ArrayList<>();
+		if (ids.contains(",")) {
+			oidList.addAll(Func.toStrList(",", ids));
+		} else {
+			oidList.add(ids);
+		}
+		return R.status(linkTypeService.removeBatchByIds(oidList));
+	}
+
+	/**
+	 * 鑾峰彇棰嗗煙鍊�
+	 */
+	@GetMapping("/domain")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "鑾峰彇棰嗗煙鍊�")
+	public R<List<DomainVO>> getDomain(){
+		try {
+			return R.data(DomainRepeater.getDomain());
+		} catch (NacosException e) {
+			return R.fail(e.getErrMsg());
+		}
+	}
+
+	/**
+	 * 鎸塪omain鍒嗙粍锛屾煡璇㈤摼鎺ョ被鍨嬬殑鏍戝舰缁撴瀯
+	 */
+	@GetMapping("/tree-domain")
+	@ApiOperationSupport(order = 7)
+	@ApiOperation(value = "閾炬帴绫诲瀷鏍戝舰缁撴瀯", notes = "閾炬帴绫诲瀷鏍戝舰缁撴瀯")
+	public R<List<BtmTreeVO>> treeDomain(){
+		return R.data(linkTypeService.treeDomain());
+	}
+}
diff --git a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/BtmTypeClient.java b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/BtmTypeClient.java
index 997bea0..84d76d9 100644
--- a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/BtmTypeClient.java
+++ b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/BtmTypeClient.java
@@ -51,7 +51,7 @@
 	@Override
 	@GetMapping(GET_DETAIL)
 	public R<BtmTypeVO> getDetail(String oid) {
-		return R.data(btmTypeService.getBtmTypeByOid(oid));
+		return R.data(btmTypeService.getAllAttributeByBtmOid(oid));
 	}
 
 	/**
@@ -62,7 +62,7 @@
 	 */
 	@Override
 	@PostMapping(GET_REF_PAGE)
-	public R<IPage<BtmTypeVO>> getRefPage(BaseQueryObject baseQueryObject) {
+	public R<Page<BtmTypeVO>> getRefPage(BaseQueryObject baseQueryObject) {
 		Map<String, String> conditionMap = baseQueryObject.getConditionMap();
 		if (conditionMap == null){
 			conditionMap = new HashMap<>(16);
@@ -83,10 +83,10 @@
 		query.setSize(pageHelper.getLimit());
 		query.setCurrent(pageHelper.getPage());
 		IPage<BtmType> page = btmTypeService.page(Condition.getPage(query), Condition.getQueryWrapper(queryObj).lambda().eq(BtmType::getDomain, domainValue).orderByAsc(BtmType::getId));
-		IPage<BtmTypeVO> pageVO = new Page<>();
+		Page<BtmTypeVO> pageVO = new Page<>();
 		BeanUtil.copy(page,pageVO);
 		pageVO.setRecords(BtmTypeWrapper.build().listEntityVO(page.getRecords()));
-		R<IPage<BtmTypeVO>> r = R.data(pageVO);
+		R<Page<BtmTypeVO>> r = R.data(pageVO);
 		r.setSuccess(true);
 		return r;
 	}
@@ -152,4 +152,37 @@
 		);
 		return R.data(voList);
 	}
+
+	/**
+	 * 鑾峰彇涓氬姟绫诲瀷锛屽彧鏈夐粯璁ゅ瓧娈�
+	 *
+	 * @param btmTypeId 涓氬姟绫诲瀷id
+	 * @return 榛樿瀛楁灞炴��
+	 */
+	@Override
+	public R<BtmTypeVO> getDefaultAttrByBtmId(String btmTypeId) {
+		return R.data(Optional.ofNullable(btmTypeService.getDefaultAttrByBtmId(btmTypeId)).orElseGet(BtmTypeVO::new));
+	}
+
+	/**
+	 * 鑾峰彇涓氬姟绫诲瀷锛屾湁鎵�鏈夌殑瀛楁
+	 *
+	 * @param btmTypeId 涓氬姟绫诲瀷id
+	 * @return 鎵�鏈夊瓧娈�
+	 */
+	@Override
+	public R<BtmTypeVO> getAllAttributeByBtmId(String btmTypeId) {
+		return R.data(Optional.ofNullable(btmTypeService.getAllAttributeByBtmId(btmTypeId)).orElseGet(BtmTypeVO::new));
+	}
+
+	/**
+	 * 鑾峰彇涓氬姟绫诲瀷锛屾湁鎵�鏈夌殑瀛楁
+	 *
+	 * @param btmTypeOid 涓氬姟绫诲瀷涓婚敭
+	 * @return 鎵�鏈夊瓧娈�
+	 */
+	@Override
+	public R<BtmTypeVO> getAllAttributeByBtmOid(String btmTypeOid) {
+		return R.data(Optional.ofNullable(btmTypeService.getAllAttributeByBtmOid(btmTypeOid)).orElseGet(BtmTypeVO::new));
+	}
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/mapper/LinkTypeMapper.java b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/mapper/LinkTypeMapper.java
index aa779f4..38abcd1 100644
--- a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/mapper/LinkTypeMapper.java
+++ b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/mapper/LinkTypeMapper.java
@@ -1,13 +1,22 @@
 package com.vci.ubcs.omd.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.vci.ubcs.omd.entity.BtmType;
 import com.vci.ubcs.omd.entity.LinkType;
 
+import java.util.List;
+
 /**
- * Description:
+ * Description: 閾炬帴绫诲瀷鏁版嵁灞�
  *
  * @author LiHang
  * @date 2023/5/24
  */
 public interface LinkTypeMapper extends BaseMapper<LinkType> {
+
+	/**
+	 * 鏌ヨ鍏ㄩ儴鐨勯摼鎺�
+	 * @return 閾炬帴绫诲瀷鏁版嵁瀵硅薄鍒楄〃
+	 */
+	List<LinkType> selectAll();
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/IBtmTypeAttributeService.java b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/IBtmTypeAttributeService.java
index 2e06c1f..a9a5392 100644
--- a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/IBtmTypeAttributeService.java
+++ b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/IBtmTypeAttributeService.java
@@ -3,6 +3,7 @@
 import com.vci.ubcs.omd.dto.BtmTypeLinkAttributesDTO;
 import com.vci.ubcs.omd.entity.BtmTypeAttribute;
 import com.vci.ubcs.omd.vo.BtmTypeAttributeVO;
+import com.vci.ubcs.omd.vo.BtmTypeVO;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.base.BaseService;
 
@@ -74,4 +75,18 @@
 	 * @return 鍖呭惈鐨勫睘鎬�
 	 */
 	List<BtmTypeAttribute> selectByBtmTypeIds(List<String> idList);
+
+	/**
+	 * 鑾峰彇榛樿瀛楁
+	 * @param btmType 涓氬姟绫诲瀷
+	 * @return 鎵ц缁撴灉
+	 */
+	List<BtmTypeAttributeVO> getDefaultAttribute(BtmTypeVO btmType);
+
+	/**
+	 * 鑾峰彇鎵�鏈夊瓧娈�
+	 * @param btmType 涓氬姟绫诲瀷
+	 * @return 鎵ц缁撴灉
+	 */
+	List<BtmTypeAttributeVO> getAllAttribute(BtmTypeVO btmType);
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/IBtmTypeService.java b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/IBtmTypeService.java
index d47082a..0049267 100644
--- a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/IBtmTypeService.java
+++ b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/IBtmTypeService.java
@@ -1,11 +1,9 @@
 package com.vci.ubcs.omd.service;
 
 import com.vci.ubcs.omd.dto.BtmTypeDTO;
-import com.vci.ubcs.omd.dto.BtmTypeLinkAttributesDTO;
 import com.vci.ubcs.omd.entity.BtmType;
-import com.vci.ubcs.omd.entity.BtmTypeAttribute;
 import com.vci.ubcs.omd.entity.ModifyAttributeInfo;
-import com.vci.ubcs.omd.vo.BtmTypeTreeVO;
+import com.vci.ubcs.omd.vo.BtmTreeVO;
 import com.vci.ubcs.omd.vo.BtmTypeVO;
 import com.vci.ubcs.omd.vo.BtmTypeAttributeVO;
 import com.vci.ubcs.omd.vo.LinkTypeVO;
@@ -14,7 +12,6 @@
 import org.springblade.core.tool.api.R;
 
 import java.util.Collection;
-import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -216,7 +213,7 @@
 	 * 鎸塪omain鍒嗙粍锛屾煡璇笟鍔$被鍨嬪睘鎬х粨鏋�
 	 * @return 鏌ヨ缁撴灉
 	 */
-    List<BtmTypeTreeVO> treeDomain();
+    List<BtmTreeVO> treeDomain();
 
 	/**
 	 * 浠庢暟鎹簱琛ㄤ腑鑾峰彇
@@ -232,4 +229,25 @@
 	 * @return 鎵ц缁撴灉
 	 */
 	List<BtmTypeVO> saveFromTable(List<BtmTypeDTO> btmTypeDTOList,String domain);
+
+	/**
+	 * 鎸夌収涓氬姟绫诲瀷id鑾峰彇榛樿灞炴��
+	 * @param btmTypeId 涓氬姟绫诲瀷id
+	 * @return 涓氬姟绫诲瀷
+	 */
+    BtmTypeVO getDefaultAttrByBtmId(String btmTypeId);
+
+	/**
+	 * 鎸夌収涓氬姟绫诲瀷id鑾峰彇鎵�鏈夌殑灞炴��
+	 * @param btmTypeId 涓氬姟绫诲瀷id
+	 * @return 涓氬姟绫诲瀷
+	 */
+	BtmTypeVO getAllAttributeByBtmId(String btmTypeId);
+
+	/**
+	 * 鎸夌収涓氬姟绫诲瀷涓婚敭鑾峰彇鎵�鏈夌殑灞炴��
+	 * @param btmTypeOid 涓氬姟绫诲瀷涓婚敭
+	 * @return 涓氬姟绫诲瀷
+	 */
+	BtmTypeVO getAllAttributeByBtmOid(String btmTypeOid);
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/ILinkTypeService.java b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/ILinkTypeService.java
index 716a052..203a3cd 100644
--- a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/ILinkTypeService.java
+++ b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/ILinkTypeService.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.vci.ubcs.omd.entity.LinkType;
+import com.vci.ubcs.omd.vo.BtmTreeVO;
 import com.vci.ubcs.omd.vo.LinkTypeAttributeVO;
 import com.vci.ubcs.omd.vo.LinkTypeVO;
 import com.vci.ubcs.starter.exception.VciBaseException;
@@ -203,4 +204,9 @@
 	 * @return 鑻辨枃鍚嶇О鑻辨枃灏忓啓
 	 */
 	Set<String> listUsedBtmType();
+	/**
+	 * 鎸塪omain鍒嗙粍锛屾煡璇笟鍔$被鍨嬪睘鎬х粨鏋�
+	 * @return 鏌ヨ缁撴灉
+	 */
+	List<BtmTreeVO> treeDomain();
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/BtmAttributeServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/BtmAttributeServiceImpl.java
index a37c01c..6742b49 100644
--- a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/BtmAttributeServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/BtmAttributeServiceImpl.java
@@ -1,15 +1,20 @@
 package com.vci.ubcs.omd.service.impl;
 
+import com.alibaba.cloud.commons.lang.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.vci.ubcs.omd.constant.BtmTypeConstant;
+import com.vci.ubcs.omd.constant.BtmTypeFieldConstant;
 import com.vci.ubcs.omd.dto.BtmTypeLinkAttributesDTO;
 import com.vci.ubcs.omd.entity.BtmTypeAttribute;
 import com.vci.ubcs.omd.mapper.BtmTypeAttributeMapper;
 import com.vci.ubcs.omd.service.IAttributeService;
 import com.vci.ubcs.omd.service.IBtmTypeAttributeService;
 import com.vci.ubcs.omd.vo.BtmTypeAttributeVO;
+import com.vci.ubcs.omd.vo.BtmTypeVO;
 import com.vci.ubcs.omd.wrapper.BtmTypeAttributeWrapper;
 import com.vci.ubcs.starter.exception.VciBaseException;
+import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum;
 import com.vci.ubcs.starter.web.util.VciBaseUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -169,4 +174,95 @@
 	public List<BtmTypeAttribute> selectByBtmTypeIds(List<String> idList) {
 		return baseMapper.selectByBtmTypeIds(idList);
 	}
+
+	/**
+	 * 鑾峰彇榛樿瀛楁
+	 *
+	 * @param btmType 涓氬姟绫诲瀷
+	 * @return 鎵ц缁撴灉
+	 */
+	@Override
+	public List<BtmTypeAttributeVO> getDefaultAttribute(BtmTypeVO btmType) {
+		List<BtmTypeAttributeVO> list = new ArrayList<>();
+		// 涓氬姟绫诲瀷鐨勫熀鏈瓧娈�
+		BtmTypeFieldConstant.BASIC_FIELD_MAP.forEach((id,name) -> {
+			BtmTypeAttributeVO vo = new BtmTypeAttributeVO();
+			vo.setId(id);
+			vo.setName(name);
+			vo.setPkBtmType(btmType.getOid());
+			if (StringUtils.equals(id,"oid")){
+				vo.setNullableFlag(false);
+			}else {
+				vo.setNullableFlag(true);
+			}
+			if (Arrays.asList("createtime","lastmodifytime","owner").contains(id)){
+				vo.setAttrDataType(VciFieldTypeEnum.VTDateTime.name());
+				vo.setAttributeLength(6);
+			}else {
+				vo.setAttrDataType(VciFieldTypeEnum.VTString.name());
+				vo.setAttributeLength(150);
+			}
+			list.add(vo);
+		});
+
+		// 鐗堟湰瑙勫垯瀛楁
+		if (StringUtils.isNotBlank(btmType.getRevisionRuleId())){
+			BtmTypeFieldConstant.REVISION_MANAGE_FIELD_MAP.forEach((id,name) -> {
+				BtmTypeAttributeVO vo = new BtmTypeAttributeVO();
+				vo.setId(id);
+				vo.setName(name);
+				vo.setPkBtmType(btmType.getOid());
+				if (Arrays.asList("lastr","firstr","lastv","firstv","revisionseq","versionseq","revisionvalue","versionvalue").contains(id)){
+					vo.setAttributeLength(5);
+					vo.setAttrDataType(VciFieldTypeEnum.VTInteger.name());
+				}
+				if (Arrays.asList("checkintime","checkouttime").contains(id)){
+					vo.setAttrDataType(VciFieldTypeEnum.VTDateTime.name());
+					vo.setAttributeLength(6);
+				}
+				list.add(vo);
+			});
+		}
+
+		// 鐢熷懡鍛ㄦ湡瀛楁
+		if (StringUtils.isNotBlank(btmType.getLifeCycleId())){
+			BtmTypeFieldConstant.LIFECYCLE_MANAGE_FIELD_MAP.forEach((id,name) -> {
+				BtmTypeAttributeVO vo = new BtmTypeAttributeVO();
+				vo.setId(id);
+				vo.setName(name);
+				vo.setPkBtmType(btmType.getOid());
+				vo.setAttributeLength(50);
+				vo.setAttrDataType(VciFieldTypeEnum.VTString.name());
+				list.add(vo);
+			});
+		}
+
+		// 瀵嗙骇瀛楁
+		if (btmType.isSecretFlag()){
+			BtmTypeFieldConstant.SECRET_MANAGE_FIELD_MAP.forEach((id,name) -> {
+				BtmTypeAttributeVO vo = new BtmTypeAttributeVO();
+				vo.setId(id);
+				vo.setName(name);
+				vo.setPkBtmType(btmType.getOid());
+				vo.setAttributeLength(5);
+				vo.setAttrDataType(VciFieldTypeEnum.VTInteger.name());
+				list.add(vo);
+			});
+		}
+
+		return list;
+	}
+
+	/**
+	 * 鑾峰彇鎵�鏈夊瓧娈�
+	 *
+	 * @param btmType 涓氬姟绫诲瀷
+	 * @return 鎵ц缁撴灉
+	 */
+	@Override
+	public List<BtmTypeAttributeVO> getAllAttribute(BtmTypeVO btmType) {
+		List<BtmTypeAttributeVO> list = getAttributeByBtmTypeOid(btmType.getOid());
+		list.addAll(getDefaultAttribute(btmType));
+		return list;
+	}
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/BtmTypeServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/BtmTypeServiceImpl.java
index 266fe5a..2e7f48f 100644
--- a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/BtmTypeServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/BtmTypeServiceImpl.java
@@ -88,7 +88,7 @@
 	/**
 	 * 琛ㄥ悕鍓嶇紑
 	 */
-	public static final String PL = "PL";
+	public static final String PL = "PLBT";
 
 	/**
 	 * 璁剧疆骞冲彴鏈韩鐨勪笟鍔$被鍨�
@@ -639,20 +639,20 @@
 	 * @return 鏌ヨ缁撴灉
 	 */
 	@Override
-	public List<BtmTypeTreeVO> treeDomain() {
+	public List<BtmTreeVO> treeDomain() {
 		try {
 			Map<String, String> domain = Optional.ofNullable(DomainRepeater.getDomain()).orElseGet(ArrayList::new).stream().collect(Collectors.toMap(s -> s.getValue(), t -> t.getLabel()));
 			List<BtmTypeVO> vos = BtmTypeWrapper.build().listEntityVO(baseMapper.selectAll());
 			Map<String, List<BtmTypeVO>> domainMap = vos.stream().collect(Collectors.groupingBy(BtmTypeVO::getDomain));
-			List<BtmTypeTreeVO> treeList = new ArrayList<>();
+			List<BtmTreeVO> treeList = new ArrayList<>();
 			domainMap.forEach((k,v)-> {
 				if (domain.containsKey(k)){
 					String label = domain.get(k);
-					BtmTypeTreeVO parent = new BtmTypeTreeVO();
+					BtmTreeVO parent = new BtmTreeVO();
 					parent.setName(label);
 					parent.setId(k);
 					parent.setChildList(v.stream().map(s -> {
-						BtmTypeTreeVO child = new BtmTypeTreeVO();
+						BtmTreeVO child = new BtmTreeVO();
 						child.setOid(s.getOid());
 						child.setName(s.getId() + " " + (s.getName() == null ? "" : s.getName()));
 						child.setId(s.getId());
@@ -810,4 +810,52 @@
 		}
 		return BtmTypeWrapper.build().listEntityVO(btmList);
 	}
+
+	/**
+	 * 鎸夌収涓氬姟绫诲瀷id鑾峰彇榛樿灞炴��
+	 *
+	 * @param btmTypeId 涓氬姟绫诲瀷id
+	 * @return 涓氬姟绫诲瀷
+	 */
+	@Override
+	public BtmTypeVO getDefaultAttrByBtmId(String btmTypeId) {
+		BtmTypeVO btmType = getBtmTypeById(btmTypeId);
+		if (btmType == null){
+			return null;
+		}
+		btmType.setAttributes(btmTypeAttributeService.getDefaultAttribute(btmType));
+		return btmType;
+	}
+
+	/**
+	 * 鎸夌収涓氬姟绫诲瀷id鑾峰彇鎵�鏈夌殑灞炴��
+	 *
+	 * @param btmTypeId 涓氬姟绫诲瀷id
+	 * @return 涓氬姟绫诲瀷
+	 */
+	@Override
+	public BtmTypeVO getAllAttributeByBtmId(String btmTypeId) {
+		BtmTypeVO btmType = getBtmTypeById(btmTypeId);
+		if (btmType == null){
+			return null;
+		}
+		btmType.setAttributes(btmTypeAttributeService.getAllAttribute(btmType));
+		return btmType;
+	}
+
+	/**
+	 * 鎸夌収涓氬姟绫诲瀷涓婚敭鑾峰彇鎵�鏈夌殑灞炴��
+	 *
+	 * @param btmTypeOid 涓氬姟绫诲瀷涓婚敭
+	 * @return 涓氬姟绫诲瀷
+	 */
+	@Override
+	public BtmTypeVO getAllAttributeByBtmOid(String btmTypeOid) {
+		BtmTypeVO btmType = getBtmTypeByOid(btmTypeOid);
+		if (btmType == null){
+			return null;
+		}
+		btmType.setAttributes(btmTypeAttributeService.getAllAttribute(btmType));
+		return btmType;
+	}
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/LinkTypeServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/LinkTypeServiceImpl.java
index 80820f9..e616cd2 100644
--- a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/LinkTypeServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/LinkTypeServiceImpl.java
@@ -26,8 +26,8 @@
 import com.vci.ubcs.omd.mapper.LinkTypeMapper;
 import com.vci.ubcs.omd.repeater.DomainRepeater;
 import com.vci.ubcs.omd.service.*;
-import com.vci.ubcs.omd.vo.LinkTypeAttributeVO;
-import com.vci.ubcs.omd.vo.LinkTypeVO;
+import com.vci.ubcs.omd.vo.*;
+import com.vci.ubcs.omd.wrapper.BtmTypeWrapper;
 import com.vci.ubcs.omd.wrapper.LinkTypeAttributeWrapper;
 import com.vci.ubcs.omd.wrapper.LinkTypeWrapper;
 import com.vci.ubcs.starter.exception.VciBaseException;
@@ -95,12 +95,10 @@
 	@Autowired
 	private IModifyAttributeService modifyAttributeService;
 
-	public final String BTM_NAME = "linkType";
-
 	/**
 	 * 琛ㄥ悕鍓嶇紑
 	 */
-	public static final String PL = "PL";
+	public static final String PL = "PLLT";
 
 
 	/**
@@ -865,4 +863,38 @@
 		}
 		return btmTypeSet;
 	}
+
+	/**
+	 * 鎸塪omain鍒嗙粍锛屾煡璇㈤摼鎺ョ被鍨嬪睘鎬х粨鏋�
+	 *
+	 * @return 鏌ヨ缁撴灉
+	 */
+	@Override
+	public List<BtmTreeVO> treeDomain() {
+		try {
+			Map<String, String> domain = Optional.ofNullable(DomainRepeater.getDomain()).orElseGet(ArrayList::new).stream().collect(Collectors.toMap(DomainVO::getValue, DomainVO::getLabel));
+			List<LinkTypeVO> vos = LinkTypeWrapper.build().listEntityVO(baseMapper.selectAll());
+			Map<String, List<LinkTypeVO>> domainMap = vos.stream().collect(Collectors.groupingBy(LinkTypeVO::getDomain));
+			List<BtmTreeVO> treeList = new ArrayList<>();
+			domainMap.forEach((k,v)-> {
+				if (domain.containsKey(k)){
+					String label = domain.get(k);
+					BtmTreeVO parent = new BtmTreeVO();
+					parent.setName(label);
+					parent.setId(k);
+					parent.setChildList(v.stream().map(s -> {
+						BtmTreeVO child = new BtmTreeVO();
+						child.setOid(s.getOid());
+						child.setName(s.getId() + " " + (s.getName() == null ? "" : s.getName()));
+						child.setId(s.getId());
+						return child;
+					}).collect(Collectors.toList()));
+					treeList.add(parent);
+				}
+			});
+			return treeList;
+		} catch (NacosException e) {
+			throw new RuntimeException(e);
+		}
+	}
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-omd/src/main/resources/mapper/LinkTypeMapper.xml b/Source/UBCS/ubcs-service/ubcs-omd/src/main/resources/mapper/LinkTypeMapper.xml
index c21779e..0034781 100644
--- a/Source/UBCS/ubcs-service/ubcs-omd/src/main/resources/mapper/LinkTypeMapper.xml
+++ b/Source/UBCS/ubcs-service/ubcs-omd/src/main/resources/mapper/LinkTypeMapper.xml
@@ -23,7 +23,7 @@
     </resultMap>
 
     <sql id="base_query_column">
-        oid, id, name, descrption, shape, impl_class, from_btm_type, from_btm_type_name,
+        oid, id, name, description, shape, impl_class, from_btm_type, from_btm_type_name,
             to_btm_type, to_btm_type_name, btm_name, owner, creator, create_time, last_modifier, last_modify_time,
             ts, domain
     </sql>
@@ -31,4 +31,10 @@
     <sql id="tableName">
         pl_omd_link_type
     </sql>
+
+    <select id="selectAll" resultMap="BaseResultMap">
+        select <include refid="base_query_column"/>
+        from <include refid="tableName" />
+    </select>
+
 </mapper>
diff --git a/Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/controller/DockingPreApplyCodeController.java b/Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/controller/DockingPreApplyCodeController.java
index 08eebfe..d530041 100644
--- a/Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/controller/DockingPreApplyCodeController.java
+++ b/Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/controller/DockingPreApplyCodeController.java
@@ -4,9 +4,9 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import com.vci.ubcs.code.feign.ICodeClassifyClient;
-import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateAttrVO;
 import com.vci.ubcs.code.webservice.service.*;
 import com.vci.ubcs.code.webservice.vo.*;
+import com.vci.ubcs.code.webservice.vo.collection.DockingPreAttrMappingVOList;
 import com.vci.ubcs.code.webservice.wrapper.DockingPreApplyFormWrapper;
 import com.vci.ubcs.starter.exception.VciBaseException;
 import com.vci.ubcs.starter.revision.model.TreeQueryObject;
@@ -19,7 +19,7 @@
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
 import org.springframework.web.bind.annotation.*;
-import javax.validation.Valid;
+
 import java.util.ArrayList;
 import java.util.List;
 
@@ -119,10 +119,11 @@
 	@PostMapping( "/batchAddSave")
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "淇濆瓨灞炴�ф槧灏勯厤缃�", notes = "dockingPreAttrMappingVOList")
-	public R batchSave(@Valid @RequestBody List<DockingPreAttrMappingVO> dockingPreAttrMappingVOList){
+	public R batchSave(@RequestBody DockingPreAttrMappingVOList dockingPreAttrMappingVOList){
+		List<DockingPreAttrMappingVO> dockingPreAttrMappingVOs = dockingPreAttrMappingVOList.getDockingPreAttrMappingVOList();
 		List<DockingPreAttrMappingVO> dockingPreAttrRangeVOS=new ArrayList<>();
 		try {
-			 dockingPreAttrRangeVOS = dockingPreAttrMappingService.batchAddSave(dockingPreAttrMappingVOList);
+			 dockingPreAttrRangeVOS = dockingPreAttrMappingService.batchAddSave(dockingPreAttrMappingVOs);
 		}catch (Exception e){
 			return R.fail("闆嗗洟闆嗘垚灞炴�ф槧灏勯厤缃繚瀛樺け璐ワ細"+e.getMessage());
 		}

--
Gitblit v1.9.3