From 7f0570d20aac189f1b170942bd7100b281a1c824 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期三, 26 四月 2023 00:07:37 +0800
Subject: [PATCH] 代码整合,新增codefixedcontroller

---
 Source/UBCS-WEB/src/views/code/addbasiccode.vue                                                                       |  567 ++++---
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/po/CodeClassifyPO.java                     |    2 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeBasicSecService.java                  |    4 
 Source/UBCS-WEB/src/const/code/plCodeKeyattrrepeat.js                                                                 |    1 
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClsflowtempEntity.java          |    4 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyValueServiceImpl.java     |   16 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationDataFlowTypeEnum.java       |    2 
 Source/UBCS-WEB/src/api/code/codeClassifyValue.js                                                                     |   12 
 Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMySqlMapperProcessor.java           |    3 
 Source/UBCS-WEB/src/const/code/referBtmDialog.js                                                                      |   16 
 Source/UBCS-WEB/vue.config.js                                                                                         |    4 
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeBasicSecDTO.java                   |   24 
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeAllCode.java                    |    1 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeGetValueTypeEnum.java                 |    7 
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeTempphaseEntity.java            |    3 
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeFixedValueVO.java         |   24 
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/DockingDataVO.java            |    3 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeRuleService.java                      |    3 
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeOsattributeEntity.java          |    3 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeSecTypeEnum.java                      |    7 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstemplateServiceImpl.java       |   16 
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClassify.java                   |    3 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeFixedValueWrapper.java                 |   35 
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeFixedValue.java                 |    1 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyController.java             |   16 
 Source/UBCS-WEB/src/api/code/codeFixedValue.js                                                                        |   44 
 Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeBasicSecMapper.xml                                   |  180 --
 Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMsMapperProcessor.java              |    3 
 Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/service/RevisionModelUtil.java |    6 
 Source/UBCS/ubcs-service/ubcs-code/pom.xml                                                                            |   16 
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeRule.java                       |    1 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyValueService.java             |    9 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationRequestMethodEnum.java      |    6 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationRequestTypeEnum.java        |    6 
 Source/UBCS-WEB/src/const/code/codebasic.js                                                                           |    1 
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeFixedValueDTO.java                 |   26 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeFixedValueMapper.java                   |   22 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstempattrServiceImpl.java       |    7 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClstemplateService.java               |    4 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeRuleServiceImpl.java              |   15 
 Source/UBCS-WEB/src/const/code/classisyValueTreeDialog.js                                                             |   43 
 Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMsMapperProcessor.java              |    3 
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/datapush/BaseModelDTO.java             |    4 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeSecLengthTypeEnum.java                |    6 
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeOsbtmtypeEntity.java            |    3 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeFixedValueService.java                |   90 +
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeKeyattrrepeatServiceImpl.java     |    4 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeRuleController.java                 |    3 
 Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMySqlMapperProcessor.java           |    3 
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeSerialValue.java                |    1 
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeOrderDTO.java                      |    3 
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodePhaseattrEntity.java            |    3 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyValueController.java        |  141 +
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationParamAndReturnTypeEnum.java |    6 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java          |   40 
 Source/UBCS-WEB/src/const/code/parentClassifyParentOptionDialog.js                                                    |   16 
 Source/UBCS/ubcs-service-api/ubcs-code-api/pom.xml                                                                    |    7 
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClstempattrEntity.java          |    3 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeBasicSecController.java             |    6 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeClassifyProcessUseEnum.java           |    7 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClstemplateController.java          |    8 
 Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllOracleMapperProcessor.java          |    4 
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeBasicSecVO.java           |    4 
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeTempbuttonEntity.java           |    3 
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClstemplateEntity.java          |    3 
 Source/UBCS-WEB/src/const/code/fixedValueMgrDialog.js                                                                 |   37 
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/PreApplyCodeOrderDTO.java              |    3 
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/DockingDataDTO.java                    |    3 
 Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/model/TreeWrapperOptions.java  |    1 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeBasicSecWrapper.java                   |    2 
 Source/UBCS-WEB/src/views/code/code.vue                                                                               | 1865 ++++++++++++++++++++----
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeCutTypeEnum.java                      |    6 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeFixedValueController.java           |  141 +
 Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeFixedValueMapper.xml                                 |  109 +
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeFixedValueServiceImpl.java        |  311 ++++
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/sysIntegrationPushTypeEnum.java           |    6 
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClassifyValue.java              |    1 
 Source/UBCS-WEB/src/const/code/selectAttrOptionDialog.js                                                              |    4 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationAuthorityTypeEnum.java      |    6 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java          |   34 
 Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/service/impl/DdlServiceImpl.java                     |    9 
 Source/UBCS-WEB/src/const/code/mdmrule.js                                                                             |    1 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeMapRuleTypeEnum.java                  |    7 
 /dev/null                                                                                                             |  137 -
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/lifecycle/CodeRuleLC.java                          |    3 
 Source/UBCS/ubcs-common/src/main/java/com/vci/ubcs/common/constant/LauncherConstant.java                              |  233 +++
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeLevelTypeEnum.java                    |    6 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeButtonUseEnum.java                    |    9 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeUseButtonPositionTypeEnum.java        |    7 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyService.java                  |    8 
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeBasicSec.java                   |    9 
 Source/UBCS-WEB/src/const/code/classifyTreeOptionDialog.js                                                            |    0 
 Source/UBCS/ubcs-service/ubcs-ddl/pom.xml                                                                             |    6 
 93 files changed, 3,381 insertions(+), 1,120 deletions(-)

diff --git a/Source/UBCS-WEB/src/api/code/codeClassifyValue.js b/Source/UBCS-WEB/src/api/code/codeClassifyValue.js
new file mode 100644
index 0000000..b0c6927
--- /dev/null
+++ b/Source/UBCS-WEB/src/api/code/codeClassifyValue.js
@@ -0,0 +1,12 @@
+import request from '@/router/axios';
+
+export const treeCodeClassifyValue = (params) => {
+  return request({
+    url: '/api/ubcs-code/codeClassifyValueController/treeCodeClassifyValue',
+    method: 'get',
+    params: {
+      ...params,
+      
+    }
+  })
+}
\ No newline at end of file
diff --git a/Source/UBCS-WEB/src/api/code/codeFixedValue.js b/Source/UBCS-WEB/src/api/code/codeFixedValue.js
new file mode 100644
index 0000000..407eb97
--- /dev/null
+++ b/Source/UBCS-WEB/src/api/code/codeFixedValue.js
@@ -0,0 +1,44 @@
+import request from '@/router/axios';
+
+export const gridCodeFixedValue = (current, size, params) => {
+  return request({
+    url: '/api/ubcs-code/codeFixedValueController/gridCodeFixedValue',
+    method: 'get',
+    params: {
+      ...params,
+      current,
+      size,
+    }
+  })
+}
+export const addSaveCodeFixedValue = (codeFixedValueDTO) => {
+  return request({
+    url: '/api/ubcs-code/codeFixedValueController/addSave',
+    method: 'post',
+    data: codeFixedValueDTO,
+  })
+}
+
+export const editCodeFixedValue = (codeFixedValueDTO) => {
+  return request({
+    url: '/api/ubcs-code/codeFixedValueController/editSave',
+    method: 'put',
+    data: codeFixedValueDTO,
+  })
+}
+
+export const deleteCodeFixedValue = (codeFixedValueDTO) => {
+  return request({
+    url: '/api/ubcs-code/codeFixedValueController/deleteData',
+    method: 'delete',
+    data: codeFixedValueDTO,
+  })
+}
+
+export const saveOrder = (data) => {
+  return request({
+    url: '/api/ubcs-code/codeFixedValueController/saveOrder',
+    method: 'post',
+    data: data,
+  })
+}
\ No newline at end of file
diff --git a/Source/UBCS-WEB/src/const/code/classifytreeoption.js b/Source/UBCS-WEB/src/const/code/classifyTreeOptionDialog.js
similarity index 100%
rename from Source/UBCS-WEB/src/const/code/classifytreeoption.js
rename to Source/UBCS-WEB/src/const/code/classifyTreeOptionDialog.js
diff --git a/Source/UBCS-WEB/src/const/code/classisyValueTreeDialog.js b/Source/UBCS-WEB/src/const/code/classisyValueTreeDialog.js
new file mode 100644
index 0000000..574257d
--- /dev/null
+++ b/Source/UBCS-WEB/src/const/code/classisyValueTreeDialog.js
@@ -0,0 +1,43 @@
+import { treeCodeClassifyValue } from "@/api/code/codeClassifyValue";
+
+export default {
+    nodeKey: 'oid',
+    border: true,
+    lazy: true,
+    treeLoad: function (node, resolve) {
+      // const parentId = (node.level === 0) ? 0 : node.data.id;
+      let condtionData = {
+        "queryAllLevel": true,
+        "loadType": "all",
+        "multipleSelect": false,
+        "isMuti": false,
+        "isQueryAllColumn": true,
+        'conditionMap[codeclassifysecoid]':this.currentSelectTreeData.oid}
+      treeCodeClassifyValue().then( res=> {
+        console.log(res);
+        resolve(res.data.map(classifyitem => {
+          let item = {
+            "hasChildren": false,
+            "oid": classifyitem.oid,
+            "key": classifyitem.oid,
+            "parentId": 0,
+            "title": classifyitem.text,
+            "value": classifyitem.oid,
+          }
+          return {
+            ...item,
+            leaf: !item.hasChildren
+          }
+        }))
+      });
+    },
+    addBtn: false,
+    menu: false,
+    size: 'small',
+    props: {
+      labelText: '鏍囬',
+      label: 'title',
+      value: 'value',
+      children: 'children'
+    }
+}
\ No newline at end of file
diff --git a/Source/UBCS-WEB/src/const/code/codebasic.js b/Source/UBCS-WEB/src/const/code/codebasic.js
index 8af8126..78dae04 100644
--- a/Source/UBCS-WEB/src/const/code/codebasic.js
+++ b/Source/UBCS-WEB/src/const/code/codebasic.js
@@ -13,6 +13,7 @@
     viewBtn: false,
     selection: true,
     dialogClickModal: false,
+    highlightCurrentRow: true, //琛岄�変腑鏃堕珮浜�
     column: [
       {
         label: "鐮佹缂栧彿",
diff --git a/Source/UBCS-WEB/src/const/code/fixedValueMgrDialog.js b/Source/UBCS-WEB/src/const/code/fixedValueMgrDialog.js
new file mode 100644
index 0000000..2226b8f
--- /dev/null
+++ b/Source/UBCS-WEB/src/const/code/fixedValueMgrDialog.js
@@ -0,0 +1,37 @@
+export default {
+    with: '70%',
+    height: '55vh',
+    calcHeight: 30,
+    tip: false,
+    editBtn: false,
+    addBtn: false,
+    delBtn: false,
+    searchShow: false,
+    searchMenuSpan: 5,
+    border: true,
+    disablePage: false,
+    index: true,
+    viewBtn: false,
+    selection: false,
+    menu: true,
+    refreshBtn: false,
+    columnBtn: false,
+    dialogClickModal: false,
+    highlightCurrentRow: true,
+    column: [
+      {
+        label: "鐮佸��",
+        prop: "id",
+        search: false,
+        searchLabelWidth: 100,
+        searchSpan: 7,
+      },
+      {
+        label: "鎻忚堪",
+        prop: "description",
+        search: false,
+        searchLabelWidth: 100,
+        searchSpan: 7,
+      },
+    ]
+}
\ No newline at end of file
diff --git a/Source/UBCS-WEB/src/const/code/mdmrule.js b/Source/UBCS-WEB/src/const/code/mdmrule.js
index b18b03c..791bd76 100644
--- a/Source/UBCS-WEB/src/const/code/mdmrule.js
+++ b/Source/UBCS-WEB/src/const/code/mdmrule.js
@@ -10,6 +10,7 @@
   viewBtn: true,
   selection: true,
   dialogClickModal: false,
+  highlightCurrentRow: true,
   column: [
     {
       label: "缂栧彿",
diff --git a/Source/UBCS-WEB/src/const/code/selectattroption.js b/Source/UBCS-WEB/src/const/code/parentClassifyParentOptionDialog.js
similarity index 73%
copy from Source/UBCS-WEB/src/const/code/selectattroption.js
copy to Source/UBCS-WEB/src/const/code/parentClassifyParentOptionDialog.js
index 5fa3fe7..2767104 100644
--- a/Source/UBCS-WEB/src/const/code/selectattroption.js
+++ b/Source/UBCS-WEB/src/const/code/parentClassifyParentOptionDialog.js
@@ -1,43 +1,39 @@
 export default {
     with: '60%',
+    height: '40vh',
     calcHeight: 30,
     tip: false,
     editBtn: false,
     addBtn: false,
     searchShow: true,
     searchMenuSpan: 5,
-    disablePage: false,
     border: true,
+    disablePage: false,
     index: true,
     viewBtn: false,
     selection: true,
     menu: false,
     dialogClickModal: false,
-    
+    highlightCurrentRow: true,
     column: [
       {
-        label: "灞炴�ц嫳鏂囧悕绉�",
+        label: "鑻辨枃鍚嶇О",
         prop: "id",
         search: true,
         searchLabelWidth: 100,
         searchSpan: 7,
       },
       {
-        label: "灞炴�т腑鏂囧悕绉�",
+        label: "涓枃鍚嶇О",
         prop: "name",
         search: true,
         searchLabelWidth: 100,
         searchSpan: 7,
       },
       {
-        label: "灞炴�ч暱搴�",
+        label: "鎻忚堪",
         prop: "description",
         search: false,
       },
-      {
-        label: "灞炴�х被鍨�",
-        prop: "attributeDataTypeText",
-        search: false,
-      }
     ]
 }
\ No newline at end of file
diff --git a/Source/UBCS-WEB/src/const/code/plCodeKeyattrrepeat.js b/Source/UBCS-WEB/src/const/code/plCodeKeyattrrepeat.js
index 771b72c..fb5da2d 100644
--- a/Source/UBCS-WEB/src/const/code/plCodeKeyattrrepeat.js
+++ b/Source/UBCS-WEB/src/const/code/plCodeKeyattrrepeat.js
@@ -9,6 +9,7 @@
   viewBtn: true,
   selection: true,
   dialogClickModal: false,
+  highlightCurrentRow: true,
   column: [
     {
       label: "",
diff --git a/Source/UBCS-WEB/src/const/code/selectattroption.js b/Source/UBCS-WEB/src/const/code/referBtmDialog.js
similarity index 73%
copy from Source/UBCS-WEB/src/const/code/selectattroption.js
copy to Source/UBCS-WEB/src/const/code/referBtmDialog.js
index 5fa3fe7..4ccf4d3 100644
--- a/Source/UBCS-WEB/src/const/code/selectattroption.js
+++ b/Source/UBCS-WEB/src/const/code/referBtmDialog.js
@@ -1,43 +1,39 @@
 export default {
     with: '60%',
+    height: '40vh',
     calcHeight: 30,
     tip: false,
     editBtn: false,
     addBtn: false,
     searchShow: true,
     searchMenuSpan: 5,
-    disablePage: false,
     border: true,
+    disablePage: false,
     index: true,
     viewBtn: false,
     selection: true,
     menu: false,
     dialogClickModal: false,
-    
+    highlightCurrentRow: true,
     column: [
       {
-        label: "灞炴�ц嫳鏂囧悕绉�",
+        label: "涓氬姟绫诲瀷缂栧彿",
         prop: "id",
         search: true,
         searchLabelWidth: 100,
         searchSpan: 7,
       },
       {
-        label: "灞炴�т腑鏂囧悕绉�",
+        label: "涓氬姟绫诲瀷鍚嶇О",
         prop: "name",
         search: true,
         searchLabelWidth: 100,
         searchSpan: 7,
       },
       {
-        label: "灞炴�ч暱搴�",
+        label: "鎻忚堪",
         prop: "description",
         search: false,
       },
-      {
-        label: "灞炴�х被鍨�",
-        prop: "attributeDataTypeText",
-        search: false,
-      }
     ]
 }
\ No newline at end of file
diff --git a/Source/UBCS-WEB/src/const/code/selectattroption.js b/Source/UBCS-WEB/src/const/code/selectAttrOptionDialog.js
similarity index 92%
rename from Source/UBCS-WEB/src/const/code/selectattroption.js
rename to Source/UBCS-WEB/src/const/code/selectAttrOptionDialog.js
index 5fa3fe7..babacb9 100644
--- a/Source/UBCS-WEB/src/const/code/selectattroption.js
+++ b/Source/UBCS-WEB/src/const/code/selectAttrOptionDialog.js
@@ -13,7 +13,7 @@
     selection: true,
     menu: false,
     dialogClickModal: false,
-    
+    highlightCurrentRow: true,
     column: [
       {
         label: "灞炴�ц嫳鏂囧悕绉�",
@@ -31,7 +31,7 @@
       },
       {
         label: "灞炴�ч暱搴�",
-        prop: "description",
+        prop: "attrLength",
         search: false,
       },
       {
diff --git a/Source/UBCS-WEB/src/views/code/addbasiccode.vue b/Source/UBCS-WEB/src/views/code/addbasiccode.vue
index 2a75dd8..86c742e 100644
--- a/Source/UBCS-WEB/src/views/code/addbasiccode.vue
+++ b/Source/UBCS-WEB/src/views/code/addbasiccode.vue
@@ -1,248 +1,268 @@
 <template>
 
-  <div class="total">
-    <span class="left">
-      <el-form :model="form">
-
-          <el-form-item label="鐮佹缂栧彿:" :label-width="leftFormLabelWidth">
-            <el-input v-model="form.id" ></el-input>
-          </el-form-item>
-
-          <el-form-item label="鐮佹鍚嶇О:" :label-width="leftFormLabelWidth">
-            <el-input v-model="form.name"></el-input>
-          </el-form-item>
-
-          <el-form-item label="鐮佹绫诲瀷" :label-width="leftFormLabelWidth" prop="codefixedsec">
-            <el-select v-model="form.sectype" placeholder="璇烽�夋嫨" @change="changeSectypeFormItems">
-              <el-option
-                v-for="item in sectypeList"
-                :key="item.dictValue"
-                :label="item.dictValue"
-                :value="item.dictKey">
-              </el-option>
-            </el-select>
-          </el-form-item>
-
-          <el-form-item label="鎻忚堪:" :label-width="leftFormLabelWidth">
-            <el-input type="textarea" v-model="form.description"></el-input>
-          </el-form-item>
-
-          <el-form-item label="鏄惁娴佹按渚濊禆:" :label-width="leftFormLabelWidth"  prop="serialDependFlag">
-            <el-switch v-model="form.serialDependFlag"></el-switch>
-            <el-input-number v-show="form.serialDependFlag" v-model="form.serialDependOrder" controls-position="right"></el-input-number>
-          </el-form-item>
-
-          <el-form-item label="鏄惁涓虹┖:" :label-width="leftFormLabelWidth">
-            <el-switch v-model="form.nullableFlag"></el-switch>
-          </el-form-item>
-
-      </el-form>
-    </span>
-    <el-divider direction="vertical"></el-divider>
-    <span class="right">
-
-      <!-- 鍥哄畾鐮佹 -->
-      <el-form v-show="form.sectype==='codefixedsec' ? true:false">
-        <el-form-item label="鐮佹闀垮害绫诲瀷:" :label-width="rightFormLabelWidth">
-            <el-select v-model="form.codeSecLengthType" placeholder="璇烽�夋嫨">
-              <el-option
-              v-for="item in codeSecLengthType"
-              :key="item.dictValue"
-              :label="item.dictValue"
-              :value="item.dictKey">
-            </el-option>
-            </el-select>
-          </el-form-item>
-          <el-form-item label="鐮佹鐨勯暱搴�:" :label-width="rightFormLabelWidth">
-            <el-input v-model="form.codeSecLength"></el-input>
-          </el-form-item>
-      </el-form>
-
-      <!-- 灞炴�х爜娈� -->
-      <el-form v-show="form.sectype==='codeattrsec' ? true:false">
-        <el-form-item label="灞炴��:" :label-width="rightFormLabelWidth">
-          <el-input
-            placeholder="璇烽�夋嫨"
-            suffix-icon="el-icon-search"
-            readonly="true"
-            v-model="form.referAttributeName"
-            @focus="openAttrSelectOrGetValue('attr')">
-            <span slot="suffix">
-              <i class="el-icon-circle-close" @click="clearAttrDataByIcon('attr')" style="margin-right: 5px;cursor: pointer;"></i>
-            </span>
-          </el-input>
+  <div class="total" style="overflow-y: auto; height: 70vh">
+    <el-form :model="form" :rules="formRules" ref="form" >
+      <span class="left">
+        <el-form-item label="鐮佹缂栧彿:" :label-width="leftFormLabelWidth" required prop="id">
+          <el-input v-model="form.id" ></el-input>
         </el-form-item>
-        <el-form-item label="灞炴�ф墍鍦ㄥ垎绫�:" :label-width="rightFormLabelWidth">
-          <el-input 
-          v-model="form.referCodeClassifyOidName"
-          disabled>
-        </el-input>
-        </el-form-item>
-        <el-form-item label="鍙栧�艰鍒�:" :label-width="rightFormLabelWidth">
-          <el-input
-            placeholder="璇烽�夋嫨"
-            suffix-icon="el-icon-search"
-            readonly="true"
-            v-model="form.getValueClass"
-            @focus="openAttrSelectOrGetValue('value')">
-            <span slot="suffix">
-              <i class="el-icon-circle-close" @click="clearAttrDataByIcon('value')" style="margin-right: 5px;cursor: pointer;"></i>
-            </span>
-          </el-input>
-        </el-form-item>
-      </el-form>
 
-      <!-- 娴佹按鐮佹 -->
-      <el-form v-show="form.sectype==='codeserialsec' ? true:false">
-        <el-form-item label="鐮佹鐨勯暱搴�:" :label-width="rightFormLabelWidth">
-          <el-input v-model="form.codeSecLength"></el-input>
+        <el-form-item label="鐮佹鍚嶇О:" :label-width="leftFormLabelWidth" required prop="name">
+          <el-input v-model="form.name"></el-input>
         </el-form-item>
-        <el-form-item label="娴佹按鍙风殑璧峰鍊�:" :label-width="rightFormLabelWidth">
-          <el-input v-model="form.serialStart"></el-input>
-        </el-form-item>
-        <el-form-item label="娴佹按鐨勬闀�:" :label-width="rightFormLabelWidth">
-          <el-input v-model="form.serialStep"></el-input>
-        </el-form-item>
-        <el-form-item label="缂栫爜琛ヤ綅鏂瑰紡:" :label-width="rightFormLabelWidth">
-          <el-select v-model="form.codeFillType" placeholder="璇烽�夋嫨">
-            <el-option label="宸﹁ˉ浣�" value="codeattrsec"
-                v-for="item in codeFillType"
-                :key="item.dictValue"
-                :label="item.dictValue"
-                :value="item.dictKey">
-            </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="琛ヤ綅鏃剁殑瀛楃:" :label-width="rightFormLabelWidth">
-          <el-select v-model="form.codeFillSeparatorSelect" filterable placeholder="璇烽�夋嫨">
+
+        <el-form-item label="鐮佹绫诲瀷" :label-width="leftFormLabelWidth" required prop="sectype">
+          <el-select v-model="form.sectype" placeholder="璇烽�夋嫨" @change="changeSectypeFormItems">
             <el-option
-                v-for="item in codeFillSeparator"
-                :key="item.dictValue"
-                :label="item.dictValue"
-                :value="item.dictKey">
-            </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="濉厖闀垮害:" :label-width="rightFormLabelWidth">
-          <el-input v-model="form.codeFillLength"></el-input>
-        </el-form-item>
-        <el-form-item label="娴佹按涓婇檺:" :label-width="rightFormLabelWidth">
-          <el-input v-model="form.codeFillLimit"></el-input>
-        </el-form-item>
-        <el-form-item label="娴佹按鏄惁琛ョ爜:" :label-width="rightFormLabelWidth">
-          <el-switch v-model="form.codeFillFlag"></el-switch>
-        </el-form-item>
-        <el-form-item label="鑷畾涔夌殑娴佹按绠楁硶:" :label-width="rightFormLabelWidth">
-          <el-input v-model="form.customCodeSerialClass"></el-input>
-        </el-form-item>
-      </el-form>
-
-      <!-- 灞傜骇鐮佹 -->
-      <el-form v-show="form.sectype==='codelevelsec' ? true:false">
-        <el-form-item label="灞傜骇绫诲瀷:" :label-width="rightFormLabelWidth">
-          <el-select v-model="form.codeLevelType" placeholder="璇烽�夋嫨">
-            <el-option
-                v-for="item in codeLevelType"
-                :key="item.dictValue"
-                :label="item.dictValue"
-                :value="item.dictKey">
-              </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="灞傜骇鐨勫��:" :label-width="rightFormLabelWidth">
-          <el-input v-model="form.codeLevelValue"></el-input>
-        </el-form-item>
-        <el-form-item label="瀛楃鎴彇绫诲瀷:" :label-width="rightFormLabelWidth">
-          <el-select v-model="form.valueCutType" placeholder="璇烽�夋嫨">
-            <el-option
-              v-for="item in codeCutType"
+              v-for="item in sectypeList"
               :key="item.dictValue"
               :label="item.dictValue"
               :value="item.dictKey">
             </el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="鍙栧�肩被鍨�:" :label-width="rightFormLabelWidth">
-          <el-select v-model="form.codeGetValueType" placeholder="璇烽�夋嫨">
-            <el-option
-              v-for="item in codeGetValueType"
-              :key="item.dictValue"
-              :label="item.dictValue"
-              :value="item.dictKey">
-            </el-option>
-          </el-select>
-        </el-form-item>
-      </el-form>
 
-      <!-- 寮曠敤鐮佹 -->
-      <el-form v-show="form.sectype==='coderefersec' ? true:false">
-        <el-form-item label="鍙傜収寮曠敤鐨勪笟鍔$被鍨�:" :label-width="rightFormLabelWidth">
-          <el-input v-model="form.referBtmId"></el-input>
+        <el-form-item label="鎻忚堪:" :label-width="leftFormLabelWidth">
+          <el-input type="textarea" v-model="form.description"></el-input>
         </el-form-item>
-        <el-form-item label="鍙傜収閰嶇疆:" :label-width="rightFormLabelWidth">
-          <el-input v-model="form.referConfig"></el-input>
-        </el-form-item>
-      </el-form>
 
-      <!-- 鏃ユ湡鐮佹 -->
-      <el-form v-show="form.sectype==='codedatesec' ? true:false">
-        <el-form-item label="鏃ユ湡鏍煎紡:" :label-width="rightFormLabelWidth">
-          <el-input v-model="form.codeDateFormatStr"></el-input>
+        <el-form-item label="鏄惁娴佹按渚濊禆:" :label-width="leftFormLabelWidth">
+          <el-switch v-model="form.serialDependFlag"></el-switch>
+          <el-input-number v-show="form.serialDependFlag" v-model="form.serialDependOrder" controls-position="right"></el-input-number>
         </el-form-item>
-      </el-form>
 
-      <!-- 鍒嗙被鐮佹 -->
-      <el-form v-show="form.sectype==='codeclassifysec' ? true:false">
-        <el-form-item label="鐮佹闀垮害绫诲瀷:" :label-width="rightFormLabelWidth">
-          <el-select v-model="form.codeSecLengthType" placeholder="璇烽�夋嫨">
-            <el-option
+        <el-form-item label="鏄惁涓虹┖:" :label-width="leftFormLabelWidth">
+          <el-switch v-model="form.nullableFlag"></el-switch>
+        </el-form-item>
+      </span>
+
+      <el-divider direction="vertical"></el-divider>
+      
+      <span class="right">
+
+        <!-- 鍥哄畾鐮佹 -->
+        <div v-show="form.sectype==='codefixedsec' ? true:false">
+          <el-form-item label="鐮佹闀垮害绫诲瀷:" :label-width="rightFormLabelWidth" required prop="codeSecLengthType">
+              <el-select v-model="form.codeSecLengthType" placeholder="璇烽�夋嫨">
+                <el-option
                 v-for="item in codeSecLengthType"
                 :key="item.dictValue"
                 :label="item.dictValue"
                 :value="item.dictKey">
-            </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="鐮佹鐨勯暱搴�:" :label-width="rightFormLabelWidth">
-          <el-input v-model="form.codeSecLength"></el-input>
-        </el-form-item>
-        <el-form-item label="鏄惁鑷姩鍒嗛厤鍒嗙被鍊�:" :label-width="rightFormLabelWidth">
-          <el-switch v-model="form.matchClassifyValueFlag"></el-switch>
-        </el-form-item>
-        <el-form-item label="鐖跺垎绫荤爜娈�:" :label-width="rightFormLabelWidth">
-          <el-input v-model="form.parentClassifySecOid"></el-input>
-        </el-form-item>
-      </el-form>
+              </el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="鐮佹鐨勯暱搴�:" :label-width="rightFormLabelWidth" required prop="codeSecLength">
+              <el-input v-model="form.codeSecLength"></el-input>
+            </el-form-item>
+        </div>
 
-      <!-- 鍙彉鐮佹 -->
-      <el-form v-show="form.sectype==='codevariablesec' ? true:false">
-        <el-form-item label="鐮佹鐨勯暱搴�:" :label-width="rightFormLabelWidth">
-          <el-input v-model="form.codeSecLength"></el-input>
-        </el-form-item>
-        <el-form-item label="缂栫爜琛ヤ綅鏂瑰紡:" :label-width="rightFormLabelWidth">
-          <el-select v-model="form.codeFillType" placeholder="璇烽�夋嫨">
-            <el-option
-                v-for="item in codeFillType"
+        <!-- 灞炴�х爜娈� -->
+        <div v-show="form.sectype==='codeattrsec' ? true:false">
+
+          <el-form-item label="灞炴��:" :label-width="rightFormLabelWidth" required prop="referAttributeName">
+            <el-input
+              placeholder="璇烽�夋嫨"
+              prefix-icon="el-icon-search"
+              readonly="true"
+              v-model="form.referAttributeName"
+              @focus="openAttrSelectOrGetValue('attr')">
+              <i slot="suffix" class="el-icon-circle-close" @click="clearAttrDataByIcon('attr')" style="cursor: pointer;"></i>
+            </el-input>
+          </el-form-item>
+
+          <el-form-item label="灞炴�ф墍鍦ㄥ垎绫�:" :label-width="rightFormLabelWidth">
+            <el-input 
+              v-model="form.referCodeClassifyOidName"
+              disabled>
+          </el-input>
+          </el-form-item>
+
+          <el-form-item label="鍙栧�艰鍒�:" :label-width="rightFormLabelWidth">
+            <el-input
+              placeholder="璇烽�夋嫨"
+              prefix-icon="el-icon-search"
+              readonly="true"
+              v-model="form.getValueClass"
+              @focus="openAttrSelectOrGetValue('value')">
+              <i slot="suffix" class="el-icon-circle-close" @click="clearAttrDataByIcon('value')" style="margin-right: 5px;cursor: pointer;"></i>
+            </el-input>
+          </el-form-item>
+
+        </div>
+
+        <!-- 娴佹按鐮佹 -->
+        <div v-show="form.sectype==='codeserialsec' ? true:false">
+          <el-form-item label="鐮佹鐨勯暱搴�:" :label-width="rightFormLabelWidth" required prop="codeSecLength">
+            <el-input v-model="form.codeSecLength"></el-input>
+          </el-form-item>
+          <el-form-item label="娴佹按鍙风殑璧峰鍊�:" :label-width="rightFormLabelWidth" prop="serialStart">
+            <el-input v-model="form.serialStart"></el-input>
+          </el-form-item>
+          <el-form-item label="娴佹按鐨勬闀�:" :label-width="rightFormLabelWidth" prop="serialStep">
+            <el-input v-model="form.serialStep"></el-input>
+          </el-form-item>
+          <el-form-item label="缂栫爜琛ヤ綅鏂瑰紡:" :label-width="rightFormLabelWidth" required prop="codeFillType">
+            <el-select v-model="form.codeFillType" placeholder="璇烽�夋嫨">
+              <el-option label="宸﹁ˉ浣�" value="codeattrsec"
+                  v-for="item in codeFillType"
+                  :key="item.dictValue"
+                  :label="item.dictValue"
+                  :value="item.dictKey">
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="琛ヤ綅鏃剁殑瀛楃:" :label-width="rightFormLabelWidth" prop="codeFillSeparatorSelect">
+            <el-select v-model="form.codeFillSeparatorSelect" filterable placeholder="璇烽�夋嫨">
+              <el-option
+                  v-for="item in codeFillSeparator"
+                  :key="item.dictValue"
+                  :label="item.dictValue"
+                  :value="item.dictKey">
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="濉厖闀垮害:" :label-width="rightFormLabelWidth" required prop="codeFillLength">
+            <el-input v-model="form.codeFillLength"></el-input>
+          </el-form-item>
+          <el-form-item label="娴佹按涓婇檺:" :label-width="rightFormLabelWidth" required prop="codeFillLimit">
+            <el-input v-model="form.codeFillLimit"></el-input>
+          </el-form-item>
+          <el-form-item label="娴佹按鏄惁琛ョ爜:" :label-width="rightFormLabelWidth" required>
+            <el-switch v-model="form.codeFillFlag"></el-switch>
+          </el-form-item>
+          <el-form-item label="鑷畾涔夌殑娴佹按绠楁硶:" :label-width="rightFormLabelWidth">
+            <el-input v-model="form.customCodeSerialClass"></el-input>
+          </el-form-item>
+        </div>
+
+        <!-- 灞傜骇鐮佹 -->
+        <div v-show="form.sectype==='codelevelsec' ? true:false">
+          <el-form-item label="灞傜骇绫诲瀷:" :label-width="rightFormLabelWidth" required prop="codeLevelType">
+            <el-select v-model="form.codeLevelType" placeholder="璇烽�夋嫨">
+              <el-option
+                  v-for="item in codeLevelType"
+                  :key="item.dictValue"
+                  :label="item.dictValue"
+                  :value="item.dictKey">
+                </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="灞傜骇鐨勫��:" :label-width="rightFormLabelWidth" prop="codeLevelValue">
+            <el-input v-model="form.codeLevelValue"></el-input>
+          </el-form-item>
+          <el-form-item label="瀛楃鎴彇绫诲瀷:" :label-width="rightFormLabelWidth" required prop="valueCutType">
+            <el-select v-model="form.valueCutType" placeholder="璇烽�夋嫨">
+              <el-option
+                v-for="item in codeCutType"
                 :key="item.dictValue"
                 :label="item.dictValue"
                 :value="item.dictKey">
-            </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="琛ヤ綅鏃剁殑瀛楃:" :label-width="rightFormLabelWidth">
-          <el-select v-model="form.codeFillSeparatorSelect" placeholder="璇烽�夋嫨">
-            <el-option
-                v-for="item in codeFillSeparator"
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="鍙栧�肩被鍨�:" :label-width="rightFormLabelWidth">
+            <el-select v-model="form.codeGetValueType" placeholder="璇烽�夋嫨">
+              <el-option
+                v-for="item in codeGetValueType"
                 :key="item.dictValue"
                 :label="item.dictValue"
                 :value="item.dictKey">
-            </el-option>
-          </el-select>
-        </el-form-item>
-      </el-form>
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </div>
 
-    </span>
+        <!-- 寮曠敤鐮佹 -->
+        <div v-show="form.sectype==='coderefersec' ? true:false">
+          <el-form-item label="鍙傜収寮曠敤鐨勪笟鍔$被鍨�:" label-width="152px" required prop="referBtmId">
+            <el-input
+              placeholder="璇烽�夋嫨"
+              prefix-icon="el-icon-search"
+              readonly="true"
+              v-model="form.referBtmId"
+              @focus="openAttrSelectOrGetValue('referBtmId')">
+              <i slot="suffix" class="el-icon-circle-close" @click="clearAttrDataByIcon('referBtmId')" style="margin-right: 5px;cursor: pointer;"></i>
+            </el-input>
+          </el-form-item>
+          <el-form-item label="鍙傜収閰嶇疆:" label-width="152px" required prop="referConfig">
+            <el-input
+              placeholder="璇烽�夋嫨"
+              prefix-icon="el-icon-search"
+              readonly="true"
+              v-model="form.referConfig"
+              @focus="openAttrSelectOrGetValue('referConfig')">
+              <i slot="suffix" class="el-icon-circle-close" @click="clearAttrDataByIcon('referConfig')" style="margin-right: 5px;cursor: pointer;"></i>
+            </el-input>
+          </el-form-item>
+        </div>
 
+        <!-- 鏃ユ湡鐮佹 -->
+        <div v-show="form.sectype==='codedatesec' ? true:false">
+          <el-form-item label="鏃ユ湡鏍煎紡:" :label-width="rightFormLabelWidth" required prop="codeDateFormatStr">
+            <el-input v-model="form.codeDateFormatStr"></el-input>
+          </el-form-item>
+        </div>
+
+        <!-- 鍒嗙被鐮佹 -->
+        <div v-show="form.sectype==='codeclassifysec' ? true:false">
+          <el-form-item label="鐮佹闀垮害绫诲瀷:" :label-width="rightFormLabelWidth" required prop="codeSecLengthType">
+            <el-select v-model="form.codeSecLengthType" placeholder="璇烽�夋嫨">
+              <el-option
+                  v-for="item in codeSecLengthType"
+                  :key="item.dictValue"
+                  :label="item.dictValue"
+                  :value="item.dictKey">
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="鐮佹鐨勯暱搴�:" :label-width="rightFormLabelWidth" required prop="codeSecLength">
+            <el-input v-model="form.codeSecLength "></el-input>
+          </el-form-item>
+          <el-form-item label="鏄惁鑷姩鍒嗛厤鍒嗙被鍊�:" :label-width="rightFormLabelWidth">
+            <el-switch v-model="form.matchClassifyValueFlag"></el-switch>
+          </el-form-item>
+          <el-form-item label="鐖跺垎绫荤爜娈�:" :label-width="rightFormLabelWidth">
+            <el-input
+              placeholder="璇烽�夋嫨"
+              prefix-icon="el-icon-search"
+              readonly="true"
+              v-model="form.parentClassifySecOid"
+              @focus="openAttrSelectOrGetValue('parentClassifySecOid')">
+              <i slot="suffix" class="el-icon-circle-close" @click="clearAttrDataByIcon('parentClassifySecOid')" style="margin-right: 5px;cursor: pointer;"></i>
+            </el-input>
+          </el-form-item>
+        </div>
+
+        <!-- 鍙彉鐮佹 -->
+        <div v-show="form.sectype==='codevariablesec' ? true:false">
+          <el-form-item label="鐮佹鐨勯暱搴�:" :label-width="rightFormLabelWidth" required prop="codeSecLength">
+            <el-input v-model="form.codeSecLength"></el-input>
+          </el-form-item>
+          <el-form-item label="缂栫爜琛ヤ綅鏂瑰紡:" :label-width="rightFormLabelWidth" required prop="codeFillType">
+            <el-select v-model="form.codeFillType" placeholder="璇烽�夋嫨">
+              <el-option
+                  v-for="item in codeFillType"
+                  :key="item.dictValue"
+                  :label="item.dictValue"
+                  :value="item.dictKey">
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="琛ヤ綅鏃剁殑瀛楃:" :label-width="rightFormLabelWidth">
+            <el-select v-model="form.codeFillSeparatorSelect" placeholder="璇烽�夋嫨">
+              <el-option
+                  v-for="item in codeFillSeparator"
+                  :key="item.dictValue"
+                  :label="item.dictValue"
+                  :value="item.dictKey">
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </div>
+
+      </span>
+    </el-form>
   </div>
 
 </template>
@@ -266,6 +286,69 @@
         componentCodeFlag: false, //鏄惁鍙備笌缂栫爜
         pkCodeRule: '', //鎵�灞炵紪鐮佽鍒�
       },
+      formRules: {
+        id: [
+          { required: true, message: '璇疯緭鍏ョ爜娈电紪鍙�', trigger: 'blur' },
+        ],
+        name: [
+          { required: true, message: '璇疯緭鍏ョ爜娈靛悕绉�', trigger: 'blur' },
+        ],
+        sectype: [
+          { required: true, message: '璇疯緭鍏ョ爜娈靛悕绉�', trigger: 'blur' },
+        ],
+        codeSecLengthType: [
+          { required: true, message: '璇烽�夋嫨鐮佹闀垮害绫诲瀷', trigger: 'change' },
+        ],
+        codeSecLength: [
+          { required: true, message: '璇疯緭鍏ョ爜娈电殑闀垮害', trigger: 'blur' },
+          { type: 'number', message: '鐮佹鐨勯暱搴﹀繀椤讳负鏁板瓧鍊�'}
+        ],
+        referAttributeName: [
+          { required: true, message: '璇烽�夋嫨灞炴��', trigger: 'blur' },
+        ],
+        serialStart: [
+          { type: 'number', message: '鐮佹鐨勯暱搴﹀繀椤讳负鏁板瓧鍊�'}
+        ],
+        serialStep: [
+          { type: 'number', message: '鐮佹鐨勯暱搴﹀繀椤讳负鏁板瓧鍊�'}
+        ],
+        codeFillType: [
+          { required: true, message: '璇烽�夋嫨缂栫爜琛ヤ綅鏂瑰紡', trigger: 'blur' },
+        ],
+        // 璁剧疆琛ヤ綅鏃剁殑瀛楃锛岄渶瑕佽嚜瀹氫箟鏂规硶鏉ュ仛鍒ゆ柇
+        codeFillSeparatorSelect: [
+          { required: true, message: '璇疯緭鍏ヨˉ浣嶆椂鐨勫瓧绗�', trigger: 'blur' },
+        ],
+        codeFillLength: [
+          { required: true, message: '璇疯緭鍏ュ~鍏呴暱搴�', trigger: 'blur' },
+          { type: 'number', message: '濉厖闀垮害蹇呴』涓烘暟瀛楀��'}
+        ],
+        codeFillLimit: [
+          { required: true, message: '璇疯緭鍏ユ祦姘翠笂闄�', trigger: 'blur' },
+          { type: 'number', message: '娴佹按涓婇檺蹇呴』涓烘暟瀛楀��'}
+        ],
+        codeLevelType: [
+          { required: true, message: '璇烽�夋嫨灞傜骇绫诲瀷', trigger: 'change' },
+        ],
+        codeLevelValue: [
+          { type: 'number', message: '灞傜骇鐨勫�煎繀椤讳负鏁板瓧鍊�'}
+        ],
+        valueCutType: [
+          { required: true, message: '璇烽�夋嫨瀛楃鎴彇绫诲瀷', trigger: 'change' },
+        ],
+        referBtmId: [
+          { required: true, message: '璇烽�夊弬鐓у簲鐢ㄧ殑涓氬姟绫诲瀷', trigger: 'change' },
+        ],
+        referConfig: [
+          { required: true, message: '璇烽�夋嫨鍙傜収閰嶇疆', trigger: 'change' },
+        ],
+        codeDateFormatStr: [
+          { required: true, message: '璇疯緭鍏ユ棩鏈熸牸寮�', trigger: 'blur' },
+        ],
+
+      },
+
+      //鏋氫妇鍜屽彲杈撳彲閫夋煡璇�
       sectypeList:[],    //鐮佹绫诲瀷
       codeSecLengthType:[],  //鐮佹闀垮害绫诲瀷
       codeFillType:[],   //缂栫爜琛ヤ綅鏂瑰紡
@@ -286,9 +369,25 @@
   },
   methods: {
 
+    //缂栬緫鍜屾煡鐪嬫暟鎹洖鏄�
+    showFormData(row){
+      //this.form.sectype = row.sectype;
+      console.log(row);
+      //this.changeSectypeFormItems();
+      //this.form = Object.assign({},this.form,row);
+      this.$emit("showFormData")
+    },
+
+    // 涓虹埗鍒嗙被鐮佹鍙栧�硷紝鍐呭鍥炴樉
+    selectedParentClassify(data){
+      //console.log(data);
+      this.form.parentClassifySecOid = data.parentClassifySecOid;
+      this.form.parentClassifySecText = data.parentClassifySecText;
+    },
+
     //鍏紡鍐呭鍥炶皟鍒板瓙缁勪欢杩涜鍥炴樉
     saveFormulaContent(data){
-      console.log(data);
+      //console.log(data);
       this.form.getValueClass = data;
     },
 
@@ -303,15 +402,20 @@
       })
     },
 
-    // 鎵撳紑涓哄睘鎬ч�夊彇鍊兼垨鑰呭彇鍊艰鍒欑獥鍙�
+    // 鎵撳紑涓哄睘鎬ч�夊彇鍊兼垨鑰呭彇鍊艰鍒欑瓑绐楀彛
     openAttrSelectOrGetValue(condition){
       if(condition === 'attr'){
-        //console.log('attr');
         //璋冪敤鐖剁粍浠剁殑鏂规硶
         this.$emit('openAttrSelectOrGetValue')
       }else if(condition === 'value'){
         //console.log('value');
         this.$emit('openformulaEdit')
+      }else if(condition === 'parentClassifySecOid'){
+        this.$emit('openSelectParentClassify')
+      }else if(condition === 'referBtmId'){
+        this.$emit('openSelectReferBtm')
+      }else if(condition === 'referConfig'){
+        this.$emit('openSelectreferConfig')
       }
     },
 
@@ -324,6 +428,12 @@
         this.form.referCodeClassifyOidName = '';
       }else if(condition === 'value'){
         this.form.getValueClass = '';
+      }else if(condition === 'parentClassifySecOid'){
+        this.form.parentClassifySecOid = '';
+      }else if(condition === 'referBtmId'){
+        this.form.referBtmId = '';
+      }else if(condition === 'referConfig'){
+        this.form.referBtmId = '';
       }
     },
 
@@ -381,7 +491,7 @@
     loadCodeGetValueType(){
       getDictionary({code: "codeGetValueType"}).then(res=>{
         this.codeGetValueType = res.data.data;
-        console.log(this.codeGetValueType);
+        //console.log(this.codeGetValueType);
       })
     },
 
@@ -473,9 +583,8 @@
 
 <style>
   .total{
-    height: 420px;
+    height: 500px;
     width: 100%;
-
   }
 
   .total .el-input__inner,.total .el-textarea__inner {
@@ -483,26 +592,24 @@
   }
 
   .el-divider--vertical {
-      width: 2px;
-      height: 31.5em;
-      margin: 0 5px;
+    width: 2px;
+    height: 72vh;
+    margin: 0 5px;
+    position: fixed;
   }
 
  .left {
     float: left;
     width: 49%;
-    /* border-right: 2px rgb(0, 0, 0); */
  }
  .right {
     float: right;
-    width: 49%;
-    /* border-left: 2px rgb(0, 0, 0); */
+    margin-right: 2.5vw;
+    /* width: 40%; */
  }
  .right > .el-form > .el-form-item{
     margin-bottom: 8px;
  }
 
- .el-input-number > .el-input > .el-input__inner{
-    width: 180px;
- }
+
 </style>
\ No newline at end of file
diff --git a/Source/UBCS-WEB/src/views/code/code.vue b/Source/UBCS-WEB/src/views/code/code.vue
index ba79473..3a0f97e 100644
--- a/Source/UBCS-WEB/src/views/code/code.vue
+++ b/Source/UBCS-WEB/src/views/code/code.vue
@@ -5,52 +5,52 @@
     <basic-container>
       <p style="margin-top: -12px; margin-bottom: 4px; font-weight: 570; font-size: 19px; color: #0e2d5f;">缂栫爜瑙勫垯</p>
       <avue-crud :option="optionRule"
-                :table-loading="loading"
-                :data="data"
-                :page.sync="page"
-                :permission="permissionList"
-                v-model="form"
-                ref="crud"
-                :before-open="beforeOpen"
-                @cell-click="loadBasic"
-                @row-update="rowUpdate"
-                @row-save="rowSave"
-                @search-change="searchChange"
-                @search-reset="searchReset"
-                @selection-change="selectionChange"
-                @current-change="currentChange"
-                @size-change="sizeChange"
-                @refresh-change="refreshChange"
-                @on-load="onLoad">
+        :table-loading="loading"
+        :data="data"
+        :page.sync="page"
+        :permission="permissionList"
+        v-model="ruleForm"
+        ref="crud"
+        :before-open="beforeOpen"
+        @row-click="codeRuleRowClick"
+        @row-update="rowUpdate"
+        @row-save="rowSave"
+        @search-change="searchChange"
+        @search-reset="searchReset"
+        @selection-change="selectionChange"
+        @current-change="currentChange"
+        @size-change="sizeChange"
+        @refresh-change="refreshChange"
+        @on-load="onLoad">
         <!-- 琛ㄦ牸鍐呮搷浣滄寜閽� -->
         <template slot="menu" slot-scope="scope">
           <el-button type="text"
-                    size="small"
-                    icon="el-icon-edit"
-                    v-show="scope.row.lcStatus=='Editing' ? true:false"
-                    plain
-                    @click="openEdit(scope.row)">缂� 杈�
+              size="small"
+              icon="el-icon-edit"
+              v-show="scope.row.lcStatus=='Editing' ? true:false"
+              plain
+              @click="openEdit(scope.row)">缂� 杈�
           </el-button>
           <el-button type="text"
-                    size="small"
-                    icon="el-icon-position"
-                    v-show="scope.row.lcStatus=='Editing' ? true:false"
-                    plain
-                    @click="enableOrDeactivatse(scope.row.oid,'release')">鍙� 甯�
+            size="small"
+            icon="el-icon-position"
+            v-show="scope.row.lcStatus=='Editing' ? true:false"
+            plain
+            @click="enableOrDeactivatse(scope.row.oid,'release')">鍙� 甯�
           </el-button>
           <el-button type="text"
-                    size="small"
-                    v-show="scope.row.lcStatus=='Released' ? true:false"
-                    icon="el-icon-video-pause"
-                    plain
-                    @click="enableOrDeactivatse(scope.row.oid,'disable')">鍋� 鐢�
+            size="small"
+            v-show="scope.row.lcStatus=='Released' ? true:false"
+            icon="el-icon-video-pause"
+            plain
+            @click="enableOrDeactivatse(scope.row.oid,'disable')">鍋� 鐢�
           </el-button>
           <el-button type="text"
-                    size="small"
-                    v-show="scope.row.lcStatus=='Disabled' ? true:false"
-                    icon="el-icon-video-play"
-                    plain
-                    @click="enableOrDeactivatse(scope.row.oid,'enable')">鍚� 鐢�
+            size="small"
+            v-show="scope.row.lcStatus=='Disabled' ? true:false"
+            icon="el-icon-video-play"
+            plain
+            @click="enableOrDeactivatse(scope.row.oid,'enable')">鍚� 鐢�
           </el-button>
         </template>
         <!-- 琛ㄦ牸宸︿笂鏂规寜閽尯鍩� -->
@@ -86,7 +86,7 @@
       </avue-crud>
     </basic-container>
 
-    <!-- 瀵硅瘽妗� -->
+    <!-- 缂栫爜瑙勫垯鐩稿叧瀵硅瘽妗� -->
     <el-dialog title="缂栫爜瑙勫垯浣跨敤鑼冨洿"
         append-to-body
         :visible.sync="codeRangeSettingBox"
@@ -98,96 +98,460 @@
         @refresh-change="refreshUseRangeChange">
       </avue-crud>
     </el-dialog>
-    <!-- 鍏嬮殕瀵硅瘽妗� -->
+    <!--  缂栫爜瑙勫垯鐩稿叧鍏嬮殕瀵硅瘽妗� -->
     <el-dialog title="鍏嬮殕缂栫爜瑙勫垯"
-        append-to-body
-        :visible.sync="cloneSettingBox"
-        width="800px">
+      append-to-body
+      :visible.sync="cloneSettingBox"
+      width="800px">
       <clone-code></clone-code>
     </el-dialog>
 
     <!-- 鍩虹鐮佹灞曠ず鍖哄煙 -->
     <basic-container>
-        <p style="margin-top: -12px; margin-bottom: 4px; font-weight: 570; font-size: 19px; color: #0e2d5f;">鐮佹绠$悊</p>
-        <avue-crud :option="optionBasic"
+      <p style="margin-top: -12px; margin-bottom: 4px; font-weight: 570; font-size: 19px; color: #0e2d5f;">鐮佹绠$悊</p>
+      <avue-crud :option="optionBasic"
+        ref="crudBasic"
         :table-loading="loadingBasic"
         :data="basicData"
         :permission="permissionList"
         @selection-change="selectionBasicChange"
         @refresh-change="refreshChangeBasicSec">
 
-        <!-- 鍩虹鐮佹琛ㄦ牸鍐呮搷浣滄寜閽� -->
-        <template slot="menu" slot-scope="scope">
+      <!-- 鍩虹鐮佹琛ㄦ牸鍐呮搷浣滄寜閽� -->
+      <template slot="menu" slot-scope="scope">
+        <el-button
+          type="text"
+          size="small"
+          icon="el-icon-view"
+          v-show="currentRuleLcStatus != 'Editing'"
+          plain
+          @click="openBasicDialog('view',scope.row)">鏌ョ湅
+        </el-button>
+        <el-button
+          type="text"
+          size="small"
+          icon="el-icon-edit"
+          v-show="currentRuleLcStatus === 'Editing'"
+          plain
+          @click="openBasicDialog('edit',scope.row)">缂栬緫
+        </el-button>
+        <el-button
+          type="text"
+          size="small"
+          icon="el-icon-setting"
+          v-show="scope.row.secType === 'codeclassifysec' || scope.row.secType == 'codefixedsec'"
+          plain
+          @click="openBasicSecCodeValueMgr(scope.row)">鐮佸�肩鐞�
+        </el-button>
+        <el-button
+          type="text"
+          size="small"
+          icon="el-icon-arrow-up"
+          v-show="scope.row.orderNum > 1"
+          plain
+          @click="upOrderNum(scope.row)">涓婄Щ
+        </el-button>
+        <el-button
+          type="text"
+          size="small"
+          icon="el-icon-arrow-down"
+          plain
+          @click="downOrderNum(scope.row)">涓嬬Щ
+        </el-button>
+      </template>
 
-          <el-button type="text"
-                    size="small"
-                    icon="icon-shangyi"
-                    v-show="scope.row.lcStatus != 'Editing' ? true:false"
-                    plain
-                    @click="openEdit(scope.row)">鏌� 鐪�
-          </el-button>
+      <!-- 鍩虹鐮佹琛ㄦ牸宸︿笂鏂规寜閽尯鍩� -->
+      <template slot="menuLeft" slot-scope="scope">
+        <el-button type="primary"
+                  size="small"
+                  icon="el-icon-plus"
+                  @click="addBasicCodeSec">鏂� 澧�
+        </el-button>
+        <el-button type="danger"
+                  size="small"
+                  icon="el-icon-delete"
+                  plain
+                  @click="deleteBasicCode(scope.row)">鍒� 闄�
+        </el-button>
+      </template>
 
-          <el-button type="text"
-                    size="small"
-                    icon="icon-shangyi"
-                    v-show="scope.row.lcStatus == 'Editing' ? true:false"
-                    plain
-                    @click="openEdit(scope.row)">缂� 杈�
-          </el-button>
-
-          <el-button type="text"
-                    size="small"
-                    icon="icon-shangyi"
-                    v-show="scope.row.secType == 'codeclassifysec' || scope.row.secType == 'codefixedsec' ? true:false"
-                    plain
-                    @click="openEdit(scope.row)">鐮佸�肩鐞�
-          </el-button>
-
-          <el-button type="text"
-                    size="small"
-                    icon="icon-shangyi"
-                    v-show="scope.row.orderNum > 1 ? true:false"
-                    plain
-                    @click="upOrderNum(scope.row)">涓� 绉�
-          </el-button>
-          
-          <el-button type="text"
-                    size="small"
-                    icon="icon-xiayi"
-                    plain
-                    @click="downOrderNum(scope.row)">涓� 绉�
-          </el-button>
-          
-        </template>
-
-        <!-- 鍩虹鐮佹琛ㄦ牸宸︿笂鏂规寜閽尯鍩� -->
-        <template slot="menuLeft" slot-scope="scope">
-          <el-button type="primary"
-                    size="small"
-                    icon="el-icon-plus"
-                    @click="addBasicCodeSec">鏂� 澧�
-          </el-button>
-          <el-button type="danger"
-                    size="small"
-                    icon="el-icon-delete"
-                    plain
-                    @click="deleteBasicCode(scope.row)">鍒� 闄�
-          </el-button>
-        </template>
-
-    </avue-crud>
+      </avue-crud>
     </basic-container>
 
-     <!-- 鍩虹缂栫爜瑙勫垯瀵硅瘽妗� -->
-     <el-dialog title="娣诲姞鐮佹淇℃伅"
-        :visible.sync="addBasicCodeSettingBox"
-        width="780px"
+      <!-- 鐮佹鐮佸�肩鐞嗗璇濇 -->
+      <el-dialog title="鐮佹鐮佸�肩鐞�"
+        :visible.sync="isShowBasicSecCodeValueMgr"
+        :width="isShowFixedForm ? '68vw':'50vw'"
         append-to-body
-        style="margin-top: -8vh;"
+        style="height: 116vh; margin-top: -10vh;"
+        @close="clearFixedOrClassifyForm('close')"
         destroy-on-close>
+        <!-- 鍒嗙被鐮佹鐮佸�肩鐞� -->
+        <el-row v-show="!isShowFixedForm">
+          <el-col :span="11">
+            <basic-container>
+              <div class="box" style="height:65vh; margin-bottom:-40px">
+                <el-scrollbar style="border-bottom-right-radius:8px ">
+                  <basic-container>
+                    <div class="abox" style="height:54vh">
+                      <avue-tree
+                        :data="attrClassifyTreeData" 
+                        :option="treeOption" 
+                        @node-click="nodeClick"
+                        style="overflow-y: auto; height: 54vh"/>
+                    </div>
+                  </basic-container>
+                </el-scrollbar>
+              </div>
+              <div style="margin-top:20px; display: flex; align-items:center; justify-content:center;">
+                <el-button size="mini" type="primary" icon="el-icon-arrow-up" class="button">涓婄Щ</el-button>
+                <el-button size="mini" type="primary" icon="el-icon-arrow-down" class="button">涓嬬Щ</el-button>
+              </div>
+            </basic-container>
+          </el-col>
+          <el-col :span="13">
+            <basic-container>
+              <div class="box" style="height:65vh; margin-bottom:-40px">
+                <el-form>
+                  <el-form-item label="鐮佸��:" :label-width="50" required>
+                    <el-input style="width: 18vw" v-model="codeClassifyForm.id"></el-input>
+                  </el-form-item >
+                  <el-form-item label="鍚嶇О:" :label-width="50" required>
+                    <el-input style="width: 18vw" v-model="codeClassifyForm.name"></el-input>
+                  </el-form-item>
+                </el-form>
+              </div>
+              <div style="margin-top:20px; display: flex; align-items:center; justify-content:center;">
+                <el-button size="mini" type="primary" icon="el-icon-circle-plus" class="button">娣诲姞</el-button>
+                <el-button size="mini" type="success" plain icon="el-icon-edit-outline" class="button">淇敼</el-button>
+                <el-button size="mini" type="danger" icon="el-icon-close" class="button">鍒犻櫎</el-button>
+                <el-button size="mini" type="warning" plain icon="el-icon-close" class="button">鍙栨秷</el-button>
+              </div>
+            </basic-container>
+          </el-col>
+        </el-row>
+        <!-- 鍥哄畾鐮佹鐮佸�肩鐞� -->
+        <el-row v-show="isShowFixedForm">
+          <el-col :span="15">
+            <basic-container>
+              <div class="box fixedbox" style="height:65vh; margin-bottom:-40px">
+                <avue-crud
+                  ref="crudFixedValue"
+                  :data="fixedValueData"
+                  :option="fixedValueOption"
+                  :table-loading="fixedValueOptionLoading"
+                  @row-click="selectedCodeValueRow">
+                  <!-- 琛ㄦ牸鍐呮寜閽厤缃� -->
+                  <template slot="menu" slot-scope="scope">
+                    <el-button size="mini" type="text" icon="el-icon-arrow-up" @click="codeFixedValueOpetion('up',scope.row)">涓婄Щ</el-button>
+                    <el-button size="mini" type="text" icon="el-icon-arrow-down" @click="codeFixedValueOpetion('down',scope.row)">涓嬬Щ</el-button>
+                    <el-button size="mini" type="text"icon="el-icon-minus" @click="codeFixedValueOpetion('remove',scope.row)">绉婚櫎</el-button>
+                  </template>
+                </avue-crud>
+              </div>
+              <div style="margin-top:20px;">
+                <el-button size="mini" type="primary" icon="el-icon-success" class="button" @click="saveCodeFixedValueOption">淇濆瓨</el-button>
+              </div>
+            </basic-container>
+          </el-col>
+          <el-col :span="9">
+            <basic-container>
+              <div class="box" style="height: 65vh; margin-bottom:-40px; overflow:hidden;" >
+                <div style="overflow-y:auto;height: 60vh;">
+                  <el-form>
+                    <el-form-item label="鐮佸��:" label-width="54px" required>
+                      <el-input style="width: 19.5vw" v-model="codeFixdForm.id"></el-input>
+                    </el-form-item >
+                    <el-form-item label="鎻忚堪:">
+                      <el-input type="textarea" style="width: 20vw; "v-model="codeFixdForm.description"></el-input>
+                    </el-form-item>
+                  </el-form>
+                </div>
+              </div>
+              <div style="margin-top:20px; display: flex; align-items:center; justify-content:center;">
+                <el-button :disabled="selectedFixedOrCodeclassifyValue!=''" size="mini" type="primary" icon="el-icon-circle-plus" class="button" @click="addCodeSecValue('codefixedsec')">娣诲姞</el-button>
+                <el-button :disabled="selectedFixedOrCodeclassifyValue==''" size="mini" type="success" plain plain icon="el-icon-edit-outline" class="button" @click="editCodeSecValue('codefixedsec')">淇敼</el-button>
+                <el-button :disabled="selectedFixedOrCodeclassifyValue==''" size="mini" type="danger" icon="el-icon-close" class="button"  @click="delCodeSecValue('codefixedsec')">鍒犻櫎</el-button>
+                <el-button size="mini" type="warning" plain icon="el-icon-close" class="button" @click = "clearFixedOrClassifyForm('codefixedsec')">鍙栨秷</el-button>
+              </div>
+            </basic-container>
+          </el-col>
+        </el-row>
+      </el-dialog>
 
-        <!-- 灞炴�х爜娈碉紝灞炴�ч�夋嫨寮圭獥 -->
-        <el-dialog title="涓篬灞炴�閫夊彇鍊�"
+     <!-- 鍩虹鐮佹鏂板鐩稿叧瀵硅瘽妗� -->
+     <el-dialog :title="basicSecDialogTitle"
+        :visible.sync="addBasicCodeSettingBox"
+        width="60vw"
+        append-to-body
+        style="height: 115vh; margin-top: -13vh; overflow: hidden"
+        destroy-on-close
+        @close="clearBasicAddForm">
+
+
+        <!--  绗竴灞傚璇濇,娣诲姞鐮佹淇℃伅瀵硅瘽妗嗕腑鐨勫唴瀹� -->
+        <div class="total" style="overflow-y: auto; height: 70vh">
+          <el-form :model="form" :rules="formRules" ref="form" >
+            <span class="left">
+              <el-form-item label="鐮佹缂栧彿:" :label-width="leftFormLabelWidth" required prop="id">
+                <el-input v-model="form.id" :readonly="basicSecOnlyRead"></el-input>
+              </el-form-item>
+
+              <el-form-item label="鐮佹鍚嶇О:" :label-width="leftFormLabelWidth" required prop="name">
+                <el-input v-model="form.name" :readonly="basicSecOnlyRead"></el-input>
+              </el-form-item>
+              <el-form-item label="鐮佹绫诲瀷" :label-width="leftFormLabelWidth" required prop="secType">
+                <el-select v-model="form.secType" placeholder="璇烽�夋嫨" @change="changeSectypeFormItems(null)" :disabled="basicSecOnlyRead">
+                  <el-option
+                    v-for="item in sectypeList"
+                    :key="item.dictValue"
+                    :label="item.dictValue"
+                    :value="item.dictKey">
+                  </el-option>
+                </el-select>
+              </el-form-item>
+
+              <el-form-item label="鎻忚堪:" :label-width="leftFormLabelWidth">
+                <el-input type="textarea" v-model="form.description" :readonly="basicSecOnlyRead"></el-input>
+              </el-form-item>
+
+              <el-form-item label="鏄惁娴佹按渚濊禆:" :label-width="leftFormLabelWidth">
+                <el-switch v-model="form.serialDependFlag" :disabled="basicSecOnlyRead"></el-switch>
+                <el-input-number v-show="form.serialDependFlag" v-model="form.serialDependOrder" controls-position="right" :readonly="basicSecOnlyRead"></el-input-number>
+              </el-form-item>
+
+              <el-form-item label="鏄惁涓虹┖:" :label-width="leftFormLabelWidth">
+                <el-switch v-model="form.nullableFlag"  :disabled="basicSecOnlyRead"></el-switch>
+              </el-form-item>
+            </span>
+            <el-divider direction="vertical"></el-divider>
+            <span class="right">
+              <!-- 鍥哄畾鐮佹 -->
+              <div v-show="form.secType==='codefixedsec' ? true:false">
+                <el-form-item label="鐮佹闀垮害绫诲瀷:" :label-width="rightFormLabelWidth" required prop="codeSecLengthType">
+                  <el-select v-model="form.codeSecLengthType" placeholder="璇烽�夋嫨" :disabled="basicSecOnlyRead">
+                    <el-option
+                    v-for="item in codeSecLengthType"
+                    :key="item.dictValue"
+                    :label="item.dictValue"
+                    :value="item.dictKey">
+                  </el-option>
+                  </el-select>
+                </el-form-item>
+                <el-form-item label="鐮佹鐨勯暱搴�:" :label-width="rightFormLabelWidth" required prop="codeSecLength">
+                  <el-input v-model="form.codeSecLength" :readonly="basicSecOnlyRead"></el-input>
+                </el-form-item>
+              </div>
+              <!-- 灞炴�х爜娈� -->
+              <div v-show="form.secType==='codeattrsec' ? true:false">
+                <el-form-item label="灞炴��:" :label-width="rightFormLabelWidth" required prop="referAttributeName">
+                  <el-input
+                    placeholder="璇烽�夋嫨"
+                    prefix-icon="el-icon-search"
+                    readonly="true"
+                    v-model="form.referAttributeName"
+                    @focus="openAttrSelectOrGetValue('attr')"
+                    :disabled="basicSecOnlyRead">
+                    <i slot="suffix" class="el-icon-circle-close" @click="clearAttrDataByIcon('attr')" style="cursor: pointer;"></i>
+                  </el-input>
+                </el-form-item>
+                <el-form-item label="灞炴�ф墍鍦ㄥ垎绫�:" :label-width="rightFormLabelWidth">
+                  <el-input 
+                    v-model="form.referCodeClassifyOidName"
+                    disabled>
+                </el-input>
+                </el-form-item>
+                <el-form-item label="鍙栧�艰鍒�:" :label-width="rightFormLabelWidth">
+                  <el-input
+                    placeholder="璇烽�夋嫨"
+                    prefix-icon="el-icon-search"
+                    readonly="true"
+                    v-model="form.getValueClass"
+                    :disabled="basicSecOnlyRead"
+                    @focus="openAttrSelectOrGetValue('value')">
+                    <i slot="suffix" class="el-icon-circle-close" @click="clearAttrDataByIcon('value')" style="margin-right: 5px;cursor: pointer;"></i>
+                  </el-input>
+                </el-form-item>
+              </div>
+              <!-- 娴佹按鐮佹 -->
+              <div v-show="form.secType==='codeserialsec' ? true:false">
+                <el-form-item label="鐮佹鐨勯暱搴�:" :label-width="rightFormLabelWidth" required prop="codeSecLength">
+                  <el-input v-model="form.codeSecLength" :readonly="basicSecOnlyRead"></el-input>
+                </el-form-item>
+                <el-form-item label="娴佹按鍙风殑璧峰鍊�:" :label-width="rightFormLabelWidth" prop="serialStart">
+                  <el-input v-model="form.serialStart" :readonly="basicSecOnlyRead"></el-input>
+                </el-form-item>
+                <el-form-item label="娴佹按鐨勬闀�:" :label-width="rightFormLabelWidth" prop="serialStep">
+                  <el-input v-model="form.serialStep" :readonly="basicSecOnlyRead"></el-input>
+                </el-form-item>
+                <el-form-item label="缂栫爜琛ヤ綅鏂瑰紡:" :label-width="rightFormLabelWidth" required prop="codeFillType">
+                  <el-select v-model="form.codeFillType" placeholder="璇烽�夋嫨" :disabled="basicSecOnlyRead">
+                    <el-option label="宸﹁ˉ浣�" value="codeattrsec"
+                        v-for="item in codeFillType"
+                        :key="item.dictValue"
+                        :label="item.dictValue"
+                        :value="item.dictKey">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+                <el-form-item label="琛ヤ綅鏃剁殑瀛楃:" :label-width="rightFormLabelWidth" prop="codeFillSeparatorSelect">
+                  <el-select v-model="form.codeFillSeparatorSelect" filterable placeholder="璇烽�夋嫨" :disabled="basicSecOnlyRead">
+                    <el-option
+                        v-for="item in codeFillSeparator"
+                        :key="item.dictValue"
+                        :label="item.dictValue"
+                        :value="item.dictKey">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+                <el-form-item label="濉厖闀垮害:" :label-width="rightFormLabelWidth" required prop="codeFillLength">
+                  <el-input v-model="form.codeFillLength" :readonly="basicSecOnlyRead"></el-input>
+                </el-form-item>
+                <el-form-item label="娴佹按涓婇檺:" :label-width="rightFormLabelWidth" required prop="codeFillLimit">
+                  <el-input v-model="form.codeFillLimit" :readonly="basicSecOnlyRead"></el-input>
+                </el-form-item>
+                <el-form-item label="娴佹按鏄惁琛ョ爜:" :label-width="rightFormLabelWidth" required>
+                  <el-switch v-model="form.codeFillFlag" :disabled="basicSecOnlyRead"></el-switch>
+                </el-form-item>
+                <el-form-item label="鑷畾涔夌殑娴佹按绠楁硶:" :label-width="rightFormLabelWidth">
+                  <el-input v-model="form.customCodeSerialClass" :readonly="basicSecOnlyRead"></el-input>
+                </el-form-item>
+              </div>
+              <!-- 灞傜骇鐮佹 -->
+              <div v-show="form.secType==='codelevelsec' ? true:false">
+                <el-form-item label="灞傜骇绫诲瀷:" :label-width="rightFormLabelWidth" required prop="codeLevelType">
+                  <el-select v-model="form.codeLevelType" placeholder="璇烽�夋嫨" :disabled="basicSecOnlyRead">
+                    <el-option
+                        v-for="item in codeLevelType"
+                        :key="item.dictValue"
+                        :label="item.dictValue"
+                        :value="item.dictKey">
+                      </el-option>
+                  </el-select>
+                </el-form-item>
+                <el-form-item label="灞傜骇鐨勫��:" :label-width="rightFormLabelWidth" prop="codeLevelValue">
+                  <el-input v-model="form.codeLevelValue" :readonly="basicSecOnlyRead"></el-input>
+                </el-form-item>
+                <el-form-item label="瀛楃鎴彇绫诲瀷:" :label-width="rightFormLabelWidth" required prop="valueCutType">
+                  <el-select v-model="form.valueCutType" placeholder="璇烽�夋嫨" :disabled="basicSecOnlyRead">
+                    <el-option
+                      v-for="item in codeCutType"
+                      :key="item.dictValue"
+                      :label="item.dictValue"
+                      :value="item.dictKey">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+                <el-form-item label="鍙栧�肩被鍨�:" :label-width="rightFormLabelWidth">
+                  <el-select v-model="form.codeGetValueType" placeholder="璇烽�夋嫨" :disabled="basicSecOnlyRead">
+                    <el-option
+                      v-for="item in codeGetValueType"
+                      :key="item.dictValue"
+                      :label="item.dictValue"
+                      :value="item.dictKey">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+              </div>
+              <!-- 寮曠敤鐮佹 -->
+              <div v-show="form.secType==='coderefersec' ? true:false">
+                <el-form-item label="鍙傜収寮曠敤鐨勪笟鍔$被鍨�:" label-width="152px" required prop="referBtmId">
+                  <el-input
+                    placeholder="璇烽�夋嫨"
+                    prefix-icon="el-icon-search"
+                    readonly="true"
+                    v-model="form.referBtmId"
+                    @focus="openAttrSelectOrGetValue('referBtmId')"
+                    :disabled="basicSecOnlyRead">
+                    <i slot="suffix" class="el-icon-circle-close" @click="clearAttrDataByIcon('referBtmId')" style="margin-right: 5px;cursor: pointer;"></i>
+                  </el-input>
+                </el-form-item>
+                <el-form-item label="鍙傜収閰嶇疆:" label-width="152px" required prop="referConfig">
+                  <el-input
+                    placeholder="璇烽�夋嫨"
+                    prefix-icon="el-icon-search"
+                    readonly="true"
+                    v-model="form.referConfig"
+                    @focus="openAttrSelectOrGetValue('referConfig')"
+                    :disabled="basicSecOnlyRead">
+                    <i slot="suffix" class="el-icon-circle-close" @click="clearAttrDataByIcon('referConfig')" style="margin-right: 5px;cursor: pointer;"></i>
+                  </el-input>
+                </el-form-item>
+              </div>
+              <!-- 鏃ユ湡鐮佹 -->
+              <div v-show="form.secType==='codedatesec' ? true:false">
+                <el-form-item label="鏃ユ湡鏍煎紡:" :label-width="rightFormLabelWidth" required prop="codeDateFormatStr">
+                  <el-input v-model="form.codeDateFormatStr" :readonly="basicSecOnlyRead"></el-input>
+                </el-form-item>
+              </div>
+              <!-- 鍒嗙被鐮佹 -->
+              <div v-show="form.secType==='codeclassifysec' ? true:false">
+                <el-form-item label="鐮佹闀垮害绫诲瀷:" :label-width="rightFormLabelWidth" required prop="codeSecLengthType">
+                  <el-select v-model="form.codeSecLengthType" placeholder="璇烽�夋嫨" :disabled="basicSecOnlyRead">
+                    <el-option
+                        v-for="item in codeSecLengthType"
+                        :key="item.dictValue"
+                        :label="item.dictValue"
+                        :value="item.dictKey">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+                <el-form-item label="鐮佹鐨勯暱搴�:" :label-width="rightFormLabelWidth" required prop="codeSecLength">
+                  <el-input v-model="form.codeSecLength" :readonly="basicSecOnlyRead"></el-input>
+                </el-form-item>
+                <el-form-item label="鏄惁鑷姩鍒嗛厤鍒嗙被鍊�:" :label-width="rightFormLabelWidth">
+                  <el-switch v-model="form.matchClassifyValueFlag" :disabled="basicSecOnlyRead"></el-switch>
+                </el-form-item>
+                <el-form-item label="鐖跺垎绫荤爜娈�:" :label-width="rightFormLabelWidth">
+                  <el-input
+                    placeholder="璇烽�夋嫨"
+                    prefix-icon="el-icon-search"
+                    readonly="true"
+                    v-model="form.parentClassifySecOid"
+                    @focus="openAttrSelectOrGetValue('parentClassifySecOid')"
+                    :disabled="basicSecOnlyRead">
+                    <i slot="suffix" class="el-icon-circle-close" @click="clearAttrDataByIcon('parentClassifySecOid')" style="margin-right: 5px;cursor: pointer;"></i>
+                  </el-input>
+                </el-form-item>
+              </div>
+              <!-- 鍙彉鐮佹 -->
+              <div v-show="form.secType==='codevariablesec' ? true:false">
+                <el-form-item label="鐮佹鐨勯暱搴�:" :label-width="rightFormLabelWidth" required prop="codeSecLength">
+                  <el-input v-model="form.codeSecLength" :readonly="basicSecOnlyRead"></el-input>
+                </el-form-item>
+                <el-form-item label="缂栫爜琛ヤ綅鏂瑰紡:" :label-width="rightFormLabelWidth" required prop="codeFillType">
+                  <el-select v-model="form.codeFillType" placeholder="璇烽�夋嫨" :disabled="basicSecOnlyRead">
+                    <el-option
+                        v-for="item in codeFillType"
+                        :key="item.dictValue"
+                        :label="item.dictValue"
+                        :value="item.dictKey">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+                <el-form-item label="琛ヤ綅鏃剁殑瀛楃:" :label-width="rightFormLabelWidth">
+                  <el-select v-model="form.codeFillSeparatorSelect" placeholder="璇烽�夋嫨" :disabled="basicSecOnlyRead">
+                    <el-option
+                        v-for="item in codeFillSeparator"
+                        :key="item.dictValue"
+                        :label="item.dictValue"
+                        :value="item.dictKey">
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+              </div>
+            </span>
+          </el-form>
+        </div>
+        <!-- 绗竴灞傚璇濇鐨勬寜閽拰锛岀嚎鏉� -->
+        <el-divider direction="horizontal"></el-divider>
+        <div slot="footer" class="dialog-footer">
+          <el-button @click="addBasicCodeSettingBox = false" v-show="showbtn">鍙� 娑�</el-button>
+          <el-button type="primary" @click="saveOrEditBasicCode" v-show="showbtn">淇� 瀛�</el-button>
+        </div>
+
+        <!--  绗簩灞傚璇濇,灞炴�х爜娈碉紝灞炴�ч�夋嫨寮圭獥 -->
+        <el-dialog title="涓恒�愬睘鎬с�戦�夊彇鍊�"
           append-to-body
           :visible.sync="isShowSelectAttrOption"
           width="78%"
@@ -211,15 +575,13 @@
               <el-col span="19">
                 <basic-container>
                   <div class="bbox">
-                  <avue-crud ref="crud"
-                      v-model="form"
-                      :data="selectattrData"
-                      :option="attrOption"
-                      :permission="permissionList"
-                      :table-loading="selectAttrOptionLoading"
-                      @search-change="selectAttrOptionSearchChange"
-                      @search-reset="searchAttrReset"
-                      @selection-change="selectionChangeAttr">
+                  <avue-crud
+                    :data="selectattrData"
+                    :option="attrOption"
+                    :table-loading="selectAttrOptionLoading"
+                    @search-change="selectAttrOptionSearchChange"
+                    @search-reset="searchAttrReset"
+                    @selection-change="selectionChangeAttr">
                   </avue-crud>
                   </div>
                 </basic-container>
@@ -230,12 +592,12 @@
 
           <div slot="footer" class="dialog-footer">
             <el-button @click="isShowSelectAttrOption = false">鍙� 娑�</el-button>
-            <el-button type="primary" @click="savelistClassifyLinkAttr">纭� 瀹�</el-button>
+            <el-button type="primary" @click="selectedListClassifyLinkAttr">纭� 瀹�</el-button>
           </div>
           
         </el-dialog>
 
-         <!-- 灞炴�х爜娈碉紝鍏紡缂栬緫妗嗗脊绐� -->
+         <!-- 绗簩灞傚璇濇,灞炴�х爜娈碉紝鍏紡缂栬緫妗嗗脊绐� -->
         <el-dialog title="鍏紡缂栬緫妗�"
           append-to-body
           :visible.sync="isShowformulaEdit"
@@ -249,9 +611,9 @@
               <el-col :span="14" style="overflow: hidden">
                 <el-card class="box-card" style="height: 33vh; overflow-y: auto; overflow-x: auto;">
                     <div slot="header" class="clearfix">
-                      <span style="font-size: medium;">鍏紡鍐呭</span>
+                      <span style="font-size: medium;" >鍏紡鍐呭</span>
                       <el-button type="primary" size="mini" style="float: right;" @click="saveFormulaContent">纭畾</el-button>
-                      <el-button type="warning" size="mini" style="margin-right: 10px; float: right;" @click="resetformulaContent">娓呯┖鍐呭</el-button>
+                      <el-button type="warning" size="mini" style="margin-right: 10px; float: right;" @click="resetFormulaContent">娓呯┖鍐呭</el-button>
                     </div>
                     <div class="text item">
                       <el-input type="textarea" :rows="5" style="width: 560px;" v-model="formulaContent"></el-input>
@@ -259,39 +621,50 @@
 
                 </el-card>
               </el-col>
-
               <!-- 鍙充晶杩愮畻绗� -->
               <el-col :span="10">
-                <el-card class="box-card" style="height: 33vh;">
+                <el-card class="box-card" style="height: 33vh; overflow-y: auto; overflow-x: auto;">
                   <div slot="header" class="clearfix">
                     <span style="font-size: medium;">杩愮畻绗�</span>
                   </div>
                   <div class="text item">
                     <div class="formula-editor">
+                      <div class="one">
                         <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'7'})">7</button>
                         <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'8'})">8</button>
                         <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'9'})">9</button>
                         <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'/'})">/</button><br/>
+                      </div>
+                      <div class="one">
                         <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'4'})">4</button>
                         <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'5'})">5</button>
                         <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'6'})">6</button>
                         <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'*'})">*</button><br/>
+                      </div>
+                      <div class="one">
                         <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'1'})">1</button>
                         <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'2'})">2</button>
                         <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'3'})">3</button>
                         <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'>'})">-</button><br/>
+                      </div>
+                      <div class="one">
                         <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'0'})">0</button>
                         <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'00'})">00</button>
                         <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'.'})">.</button>
                         <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'+'})">+</button><br/>
+                      </div>
+                      <div class="one">
                         <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'->'})">-></button>
                         <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'=='})">==</button>
                         <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'('})">(</button>
                         <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':')'})">)</button><br/>
+                      </div>
+                      <div class="one">
                         <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'<'})">&lt;</button>
                         <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'>'})">&gt;</button>
                         <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'<='})">&lt;=</button>
                         <button class="formula-editor-btn-sm" @click="dbClickAddContent({'formula':'>='})">&gt;=</button>
+                      </div>
                     </div>
                   </div>
                 </el-card>
@@ -299,7 +672,6 @@
             </el-row>
 
             <el-row>
-
               <!-- 宸︿晶鍏紡閫夋嫨鍖哄煙 -->
               <el-col :span="14" style="overflow: hidden">
                 <el-card class="box-card" style="height: 40vh; overflow-y: auto; overflow-x: auto;">
@@ -399,7 +771,6 @@
                   </div>
                 </el-card>
               </el-col>
-
               <!-- 鍙充晶鍙橀噺閫夋嫨鍖哄煙 -->
               <el-col :span="10" style="overflow: hidden">
                 <el-card class="box-card" style="height: 40vh; overflow-y: auto; overflow-x: auto;">
@@ -449,16 +820,64 @@
           
         </el-dialog>
 
-        <!-- 娣诲姞鐮佹淇℃伅鐨勮嚜瀹氫箟缁勪欢 -->
-        <add-basic-code ref='addBasicChild' @openAttrSelectOrGetValue="openAttrSelectOrGetValue" @openformulaEdit="openformulaEdit"></add-basic-code>
+        <!-- 绗簩灞傚璇濇,涓恒�愮埗鍒嗙被鐮佹銆戦�夊彇鍊煎脊绐� -->
+        <el-dialog title="涓恒�愮埗鍒嗙被鐮佹銆戦�夊彇鍊�"
+          append-to-body
+          :visible.sync="isShowParentClassifyOption"
+          width="65%"
+          style="height: 150vh; margin-top: -13vh;"
+          destroy-on-close>
 
-        <!-- 绗竴灞傚璇濇鐨勬寜閽拰锛岀嚎鏉� -->
-        <el-divider direction="horizontal"></el-divider>
-        <div slot="footer" class="dialog-footer">
-          <el-button @click="addBasicCodeSettingBox = false">鍙� 娑�</el-button>
-          <el-button type="primary" @click="saveBasicCode">淇� 瀛�</el-button>
-        </div>
-      
+          <avue-crud
+            :page.sync="parentClassifyDataPage"
+            ref="crudParentClassify"
+            :option="parentClassifyParentOption" 
+            :table-loading="classifyDialogLoading"
+            :data="parentClassifyData"
+            @refresh-change="refreshParentClassifyDataChange"
+            @search-change="parentClassifySearchChange"
+            @search-reset="parentClassifySearchReset"
+            @selection-change="parentClassifySelectionChange"
+            @current-change="parentClassifyCurrentChange"
+            @size-change="parentClassifySizeChange"
+            @on-load="parentClassifyOnLoad">
+          </avue-crud>
+
+          <div slot="footer" class="dialog-footer">
+            <el-button @click="isShowParentClassifyOption = false">鍙� 娑�</el-button>
+            <el-button type="primary" @click="saveSelectedParentClassify">淇� 瀛�</el-button>
+          </div>
+        </el-dialog>
+
+        <!-- 绗簩灞傚璇濇,涓恒�愬弬鐓у紩鐢ㄧ殑涓氬姟绫诲瀷銆戦�夊彇鍊煎脊绐� -->
+        <el-dialog title="涓恒�愬弬鐓у紩鐢ㄧ殑涓氬姟绫诲瀷銆戦�夊彇鍊�"
+          append-to-body
+          :visible.sync="isShowSelectReferBtmOption"
+          width="65%"
+          style="height: 150vh; margin-top: -13vh;"
+          destroy-on-close>
+
+          <avue-crud
+            :page.sync="referBtmDataPage"
+            ref="crudReferBtm"
+            :option="referBtmOption" 
+            :table-loading="referBtmDialogLoading"
+            :data="referBtmData"
+            @refresh-change="referBtmDataChange"
+            @search-change="referBtmSearchChange"
+            @search-reset="referBtmSearchReset"
+            @selection-change="referBtmSelectionChange"
+            @current-change="referBtmCurrentChange"
+            @size-change="referBtmSizeChange"
+            @on-load="referBtmOnLoad">
+          </avue-crud>
+
+          <div slot="footer" class="dialog-footer">
+            <el-button @click="isShowSelectReferBtmOption = false">鍙� 娑�</el-button>
+            <el-button type="primary" @click="saveSelectedreferBtm">淇� 瀛�</el-button>
+          </div>
+        </el-dialog>
+
       </el-dialog>
 
   </basic-container>
@@ -467,18 +886,35 @@
 
 <script>
   import { gridCodeRule, getDetail, add, update, remove, listUseRange, updateStatus } from "@/api/code/mdmrule";
-  import { gridCodeBasicSec, downOrderNum, upOrderNum, deleteData, editSave, getObjectByOid, listDataByOids, refDataGrid} from "@/api/code/codebasic";
+  import { 
+    gridCodeBasicSec, 
+    downOrderNum, 
+    upOrderNum, 
+    deleteData, 
+    editSave, 
+    getObjectByOid, 
+    listDataByOids, 
+    refDataGrid,
+    addSave,
+    refDataGridClassifySec,
+  } from "@/api/code/codebasic";
   import { treeTopCodeClassify, listClassifyLinkAttr } from "@/api/code/codeclassify";
+  import { gridCodeFixedValue,addSaveCodeFixedValue,deleteCodeFixedValue,editCodeFixedValue,saveOrder } from "@/api/code/codeFixedValue";
+  import { treeCodeClassifyValue } from "@/api/code/codeClassifyValue";
   import optionBasic from "@/const/code/codebasic";
   import optionRule from "@/const/code/mdmrule";
-  import attrOption from "@/const/code/selectattroption";
-  import treeOption from "@/const/code/classifytreeoption";
+  import attrOption from "@/const/code/selectAttrOptionDialog";
+  import treeOption from "@/const/code/classifyTreeOptionDialog";
+  import parentClassifyParentOption from "@/const/code/parentClassifyParentOptionDialog";
+  import referBtmOption from "@/const/code/referBtmDialog";
+  import fixedValueOption from "@/const/code/fixedValueMgrDialog";
+  import { getDictionary } from "@/api/omd/dict";
   import {mapGetters} from "vuex";
 
 export default {
     data() {
       return {
-        form: {},
+        ruleForm: {},
         query: {},
         loading: true,
         currentCodeRuleOid: '',
@@ -490,18 +926,82 @@
         selectionList: [],
         /*缂栫爜瑙勫垯琛ㄦ牸閰嶇疆*/
         optionRule: optionRule,
-
         data: [],
-
+        currentRuleLcStatus: '',
         /*鍏嬮殕鎸夐挳瀵硅瘽妗嗘帶鍒�*/
         cloneSettingBox: false,
-        optionBasic: optionBasic,
+        optionBasic: optionBasic,   
+        /*浣跨敤鑼冨洿瀵硅瘽妗嗘樉绀烘帶鍒�*/
+        codeRangeSettingBox: false,
+        useRangeData: [],
+        dialogLoading: true,
+        /*浣跨敤鑼冨洿瀵硅瘽妗嗛厤缃�*/
+        dialogeOption: {
+          height: 'auto',
+          calcHeight: 30,
+          tip: false,
+          searchShow: false,
+          searchMenuSpan: 6,
+          border: true,
+          index: true,
+          disablePage:false,
+          viewBtn: false,
+          addBtn: false,
+          menu: false,
+          selection: false,
+          dialogClickModal: false,
+          align: 'center',
+          dialogWidth: 400,
+          column: [
+            {
+              label: "鍒嗙被缂栧彿",
+              prop: "id",
+              span: 24
+            },
+            {
+              label: "鍒嗙被鍚嶇О",
+              prop: "name",
+              span: 24,
+            }
+          ]
+        },
 
         /*鍩虹鐮佹鐩稿叧鏁版嵁*/
         basicData:[],
         loadingBasic: true,
         selectionBasicList: [],
         addBasicCodeSettingBox: false,
+        showbtn: false, //鍩虹鐮佹鏂板鏄惁鏄剧ず鍩虹鐮佹
+        basicSecDialogTitle: '', //鍩虹鐮佹绗竴灞傚璇濇鏍囬
+        basicSecOnlyRead: false, //鏂板鍩虹鐮佹琛ㄥ崟鏄惁鍙
+
+
+        /** 鐮佸�肩鐞嗙浉鍏虫暟鎹� */
+        isShowBasicSecCodeValueMgr: false, //鐮佹鐮佸�肩鐞嗗璇濇
+        codefixedsecOrCodeclassifysecOid: '', //瀛樻斁鍩虹鐮佹鐐瑰嚮鐮佸�肩鐞嗘椂鐨勫綋鍓嶈id锛岀敤浜庝繚瀛樼爜鍊兼椂浣跨敤
+        selectedFixedOrCodeclassifyValue: '', //褰撳墠閫変腑鐨勭爜鍊兼暟鎹�
+        //鍥哄畾鐮佹鐮佸�艰〃鍗�
+        codeFixdForm: {
+          codeFixedSecOid: "",
+          description: "",
+          id: "",
+        }, 
+        isShowFixedForm: true, //true鏄剧ず鍥哄畾鐮佹鐮佸�肩鐞嗙晫闈紝false鏄剧ず鍒嗙被鐮佹鐮佸�肩鐞嗙晫闈�
+        fixedValueData: [], //鍥哄畾鐮佹鐮佸�艰〃鏍兼暟鎹�
+        fixedValueOption: fixedValueOption, //琛ㄦ牸閰嶇疆
+        fixedValueOptionLoading: false,  //鍔犺浇琛ㄦ牸鐨勫姩鎬佹晥鏋�
+        fixedValueSelectList: [],  //鍥哄畾鐮佹鐮佸�煎綋鍓嶉�変腑鐨勮
+
+        //鍒嗙被鐮佹鐮佸�艰〃鍗�
+        codeClassifyForm: {
+          codeclassifysecoid: "",
+          id: "",
+          name: "",
+          oid: "",
+          parentclassifyvalueoid: "",
+        },
+
+
         /* 涓哄睘鎬ч�夊彇鍊肩獥鍙f樉绀烘墦寮�鎺у埗鍙橀噺 */
         isShowSelectAttrOption: false,
         /* 涓哄睘鎬ч�夊�煎乏渚ф爲鏁版嵁 */
@@ -513,111 +1013,110 @@
         selectattrData: [],
         selectAttrOptionLoading: false,
         selectionChangeAttrList: [],
-        /*鍏紡缂栬緫妗嗗璇濇*/
+
+        /*鍏紡缂栬緫妗嗗璇濇鐩稿叧鏁版嵁*/
         isShowformulaEdit: false, //鍏紡缂栬緫妗嗗璇濇鏄剧ず鎺у埗
         formulaContent: '', //鍏紡缂栬緫妗嗗唴瀹�
         activeName: 'first', //褰撳墠娲诲姩鐨則ab
         activeNameAttr: 'first', //鍙橀噺涓殑褰撳墠娲诲姩tab
-
-        
         //甯哥敤鍏紡
         commonFormulaTableData: [{
-          "formula": 'if(compare,trueResult,falseResult)',
-          "desc": '濡傛灉compare鐨勮〃杈惧紡涓簍rue锛屽垯鎵цtrueResult鐨勮〃杈惧紡锛屽惁鍒欐墽琛宖laseResult.渚嬪if(3>2,2*(3+2),3/(2-4)),鍊肩瓑浜�10',
-        },
-        {
-          "formula": 'sum(douber1,douber2)',
-          "desc": '涓や釜鏍煎紡涓篸ouber鐨勫弬鏁版眰鍜�',
-        },
-        {
-          "formula": 'sub(douber1,douber2)',
-          "desc": '鏍煎紡涓篸ouber鐨勫弬鏁癲ouber1鍑忓幓鏍煎紡涓篸ouber鐨勫弬鏁癲ouber2',
-        },
-        {
-          "formula": 'mul(douber1,douber2)',
-          "desc": '涓や釜鏍煎紡涓篸ouber鐨勫弬鏁扮浉涔�',
-        },
-        {
-          "formula": 'div(douber1,douber2)',
-          "desc": '鏍煎紡涓篸ouber鐨勫弬鏁癲ouber1闄や互鏍煎紡涓篸ouber鐨勫弬鏁癲ouber2.褰揹ouber2绛変簬0鐨勬椂鍊欙紝杩斿洖0;濡傛灉闄や笉灏界殑鏃跺�欎繚鐣�10浣嶅皬鏁�',
-        },
-        {
-          "formula": 'mod(int,int)',
-          "desc": '姹備綑鏁�',
-        },
-        {
-          "formula": 'toInt(string)',
-          "desc": '杞崲涓篿nt鏍煎紡',
-        },
-        {
-          "formula": 'doubleRound(string,count)',
-          "desc": '澶勭悊douber鐨勫皬鏁颁綅鏁帮紝count琛ㄧず灏忔暟浣嶆暟',
-        },
-        {
-          "formula": 'zeroIfNull(value)',
-          "desc": '濡傛灉鍙傛暟鐨勫�间负null鎴栬��"",灏嗚繑鍥�0',
-        },
-        {
-          "formula": 'endsWith(string,str1)',
-          "desc": '瀛楃涓瞫tring鏄笉鏄互str1缁撳熬',
-        },
-        {
-          "formula": 'startsWith(string,str1)',
-          "desc": '瀛楃涓瞫tring鏄惁浠tr1寮�澶�',
-        },
-        {
-          "formula": 'charAt(string,index)',
-          "desc": '鑾峰彇瀛楃涓瞫tring涓index浣嶇疆鐨勫瓧绗︼紝濡傛灉闀垮害灏忎簬index锛屽垯杩斿洖',
-        },
-        {
-          "formula": 'equalsIgnoreCase(str1,str2)',
-          "desc": '瀛楃涓瞫tr1鍜屽瓧绗︿覆str2鏄惁鐩哥瓑',
-        },
-        {
-          "formula": 'indexOf(str1,str2)',
-          "desc": '瀛楃涓瞫tr2鍦ㄥ瓧绗︿覆str1涓娆″嚭鐜扮殑浣嶇疆',
-        },
-        {
-          "formula": 'isEmpty(str1)',
-          "desc": '鍙傛暟str1鏄惁涓虹┖锛屽叾涓璶ull杩欎釜瀛楃涓蹭篃琛ㄧず涓虹┖',
-        },
-        {
-          "formula": 'lastIndexOf(str1,str2)',
-          "desc": '瀛楃涓瞫tr2鍦ㄥ瓧绗︿覆str1涓渶鍚庡嚭鐜扮殑浣嶇疆',
-        },
-        {
-          "formula": 'leftStr(str1,index)',
-          "desc": '鑾峰彇index浣嶇疆宸︿晶鐨勬墍鏈夊瓧绗�',
-        },
-        {
-          "formula": 'rightStr(str1,str2)',
-          "desc": '鑾峰彇index浣嶇疆鍙充晶鐨勬墍鏈夊瓧绗�',
-        },
-        {
-          "formula": 'length(str1)',
-          "desc": '鍙傛暟str1鐨勯暱搴�',
-        },
-        {
-          "formula": 'mid(str1,start,end)',
-          "desc": '鑾峰彇str1鐨勪粠start鍒癳nd鐩存帴鐨勫瓧绗︿覆锛屽嚭鐜板紓甯告椂杩斿洖',
-        },
-        {
-          "formula": 'tolowercase(str1)',
-          "desc": '灏嗗瓧绗︿覆str1杞负灏忓啓',
-        },
-        {
-          "formula": 'touppercase(str1)',
-          "desc": '灏嗗瓧绗︿覆str1杞负澶у啓',
-        },
-        {
-          "formula": 'trimzero(str1)',
-          "desc": '鍘婚櫎瀛楃涓瞫tr1涓殑0',
-        },
-        {
-          "formula": 'MD5(str1)',
-          "desc": '灏嗗瓧绗︿覆杩涜MD5鍔犲瘑',
-        },
-       ],
+            "formula": 'if(compare,trueResult,falseResult)',
+            "desc": '濡傛灉compare鐨勮〃杈惧紡涓簍rue锛屽垯鎵цtrueResult鐨勮〃杈惧紡锛屽惁鍒欐墽琛宖laseResult.渚嬪if(3>2,2*(3+2),3/(2-4)),鍊肩瓑浜�10',
+          },
+          {
+            "formula": 'sum(douber1,douber2)',
+            "desc": '涓や釜鏍煎紡涓篸ouber鐨勫弬鏁版眰鍜�',
+          },
+          {
+            "formula": 'sub(douber1,douber2)',
+            "desc": '鏍煎紡涓篸ouber鐨勫弬鏁癲ouber1鍑忓幓鏍煎紡涓篸ouber鐨勫弬鏁癲ouber2',
+          },
+          {
+            "formula": 'mul(douber1,douber2)',
+            "desc": '涓や釜鏍煎紡涓篸ouber鐨勫弬鏁扮浉涔�',
+          },
+          {
+            "formula": 'div(douber1,douber2)',
+            "desc": '鏍煎紡涓篸ouber鐨勫弬鏁癲ouber1闄や互鏍煎紡涓篸ouber鐨勫弬鏁癲ouber2.褰揹ouber2绛変簬0鐨勬椂鍊欙紝杩斿洖0;濡傛灉闄や笉灏界殑鏃跺�欎繚鐣�10浣嶅皬鏁�',
+          },
+          {
+            "formula": 'mod(int,int)',
+            "desc": '姹備綑鏁�',
+          },
+          {
+            "formula": 'toInt(string)',
+            "desc": '杞崲涓篿nt鏍煎紡',
+          },
+          {
+            "formula": 'doubleRound(string,count)',
+            "desc": '澶勭悊douber鐨勫皬鏁颁綅鏁帮紝count琛ㄧず灏忔暟浣嶆暟',
+          },
+          {
+            "formula": 'zeroIfNull(value)',
+            "desc": '濡傛灉鍙傛暟鐨勫�间负null鎴栬��"",灏嗚繑鍥�0',
+          },
+          {
+            "formula": 'endsWith(string,str1)',
+            "desc": '瀛楃涓瞫tring鏄笉鏄互str1缁撳熬',
+          },
+          {
+            "formula": 'startsWith(string,str1)',
+            "desc": '瀛楃涓瞫tring鏄惁浠tr1寮�澶�',
+          },
+          {
+            "formula": 'charAt(string,index)',
+            "desc": '鑾峰彇瀛楃涓瞫tring涓index浣嶇疆鐨勫瓧绗︼紝濡傛灉闀垮害灏忎簬index锛屽垯杩斿洖',
+          },
+          {
+            "formula": 'equalsIgnoreCase(str1,str2)',
+            "desc": '瀛楃涓瞫tr1鍜屽瓧绗︿覆str2鏄惁鐩哥瓑',
+          },
+          {
+            "formula": 'indexOf(str1,str2)',
+            "desc": '瀛楃涓瞫tr2鍦ㄥ瓧绗︿覆str1涓娆″嚭鐜扮殑浣嶇疆',
+          },
+          {
+            "formula": 'isEmpty(str1)',
+            "desc": '鍙傛暟str1鏄惁涓虹┖锛屽叾涓璶ull杩欎釜瀛楃涓蹭篃琛ㄧず涓虹┖',
+          },
+          {
+            "formula": 'lastIndexOf(str1,str2)',
+            "desc": '瀛楃涓瞫tr2鍦ㄥ瓧绗︿覆str1涓渶鍚庡嚭鐜扮殑浣嶇疆',
+          },
+          {
+            "formula": 'leftStr(str1,index)',
+            "desc": '鑾峰彇index浣嶇疆宸︿晶鐨勬墍鏈夊瓧绗�',
+          },
+          {
+            "formula": 'rightStr(str1,str2)',
+            "desc": '鑾峰彇index浣嶇疆鍙充晶鐨勬墍鏈夊瓧绗�',
+          },
+          {
+            "formula": 'length(str1)',
+            "desc": '鍙傛暟str1鐨勯暱搴�',
+          },
+          {
+            "formula": 'mid(str1,start,end)',
+            "desc": '鑾峰彇str1鐨勪粠start鍒癳nd鐩存帴鐨勫瓧绗︿覆锛屽嚭鐜板紓甯告椂杩斿洖',
+          },
+          {
+            "formula": 'tolowercase(str1)',
+            "desc": '灏嗗瓧绗︿覆str1杞负灏忓啓',
+          },
+          {
+            "formula": 'touppercase(str1)',
+            "desc": '灏嗗瓧绗︿覆str1杞负澶у啓',
+          },
+          {
+            "formula": 'trimzero(str1)',
+            "desc": '鍘婚櫎瀛楃涓瞫tr1涓殑0',
+          },
+          {
+            "formula": 'MD5(str1)',
+            "desc": '灏嗗瓧绗︿覆杩涜MD5鍔犲瘑',
+          },
+        ],
        //璐㈠姟鍏紡
         financialFormulaTableData: [{
             "formula": 'toChinese(value)',
@@ -794,7 +1293,6 @@
             "desc": '鏌ヨservername涓璽ablename鏁版嵁搴撹〃涓璮ieldname瀛楁鐨勫�硷紝pkfield琛ㄧず涓婚敭鐨勫瓧娈靛悕绉帮紝pkValue琛ㄧず涓婚敭鐨勫�硷紝serverName鐜板湪榛樿涓簂ocalServer'
           },
         ],
-        
         //鏈満鏅彉閲�
         thisSceneTableData: [{
             "formula": '${}',
@@ -860,40 +1358,122 @@
           }
         ],
 
-        /*浣跨敤鑼冨洿瀵硅瘽妗嗘樉绀烘帶鍒�*/
-        codeRangeSettingBox: false,
-        useRangeData: [],
-        dialogLoading: true,
-        /*浣跨敤鑼冨洿瀵硅瘽妗嗛厤缃�*/
-        dialogeOption: {
-        height: 'auto',
-        calcHeight: 30,
-        tip: false,
-        searchShow: false,
-        searchMenuSpan: 6,
-        border: true,
-        index: true,
-        disablePage:false,
-        viewBtn: false,
-        addBtn: false,
-        menu: false,
-        selection: false,
-        dialogClickModal: false,
-        align: 'center',
-        dialogWidth: 400,
-        column: [
-          {
-            label: "鍒嗙被缂栧彿",
-            prop: "id",
-            span: 24
-          },
-          {
-            label: "鍒嗙被鍚嶇О",
-            prop: "name",
-            span: 24,
-          }
-        ]
-      },
+
+        /* 鐖跺垎绫荤爜娈靛璇濇 */
+        isShowParentClassifyOption: false, //鐖跺垎绫荤爜娈靛璇濇鏄剧ず鎺у埗
+        classifyDialogLoading: true, //琛ㄦ牸鏁版嵁鍔犺浇鎻愮ず
+        parentClassifyParentOption: parentClassifyParentOption,  //琛ㄦ牸閰嶇疆
+        parentClassifyData: [], //琛ㄦ牸鏁版嵁
+        //鍒嗛〉鍙傛暟閰嶇疆
+        parentClassifyDataPage: {
+          pageSize: 10,
+          currentPage: 1,
+          total: 0
+        },
+        parentClassifyQuery: {}, //鏌ヨ鏉′欢
+        parentClassifySelectionList: [], //褰撳墠閫変腑琛�
+
+        
+        /** 鍙傜収寮曠敤鐨勪笟鍔$被鍨嬪璇濇鐩稿叧鏁版嵁 */
+        isShowSelectReferBtmOption: false,   //瀵硅瘽妗嗘樉绀烘帶鍒�
+        referBtmDialogLoading: true,   //琛ㄦ牸鏁版嵁鍔犺浇鎻愮ず
+        referBtmDataPage: {
+          pageSize: 10,
+          currentPage: 1,
+          total: 0
+        },
+        referBtmOption: referBtmOption, //琛ㄦ牸閰嶇疆
+        referBtmData: [], //琛ㄦ牸鏁版嵁
+        referBtmQuery: {}, //鏌ヨ鏉′欢
+        referBtmSelectionList: [], //褰撳墠閫変腑琛�
+
+        /** 鍩虹鐮佹鏂板琛ㄥ崟 */
+        form: {
+          id: '', //缂栧彿
+          name: '', //鍚嶇О
+          secType: 'codefixedsec', //鐮佹绫诲瀷
+          description: '', //鎻忚堪
+          serialDependFlag: false, //鏄惁娴佹按渚濊禆
+          serialDependOrder: '', //娴佹按渚濊禆椤哄簭
+          nullableFlag: false, //鏄惁涓虹┖
+          displayFlag: false, //
+          componentCodeFlag: false, //鏄惁鍙備笌缂栫爜
+          pkCodeRule: '', //鎵�灞炵紪鐮佽鍒�
+        },
+        formRules: {
+          id: [
+            { required: true, message: '璇疯緭鍏ョ爜娈电紪鍙�', trigger: 'blur' },
+          ],
+          name: [
+            { required: true, message: '璇疯緭鍏ョ爜娈靛悕绉�', trigger: 'blur' },
+          ],
+          secType: [
+            { required: true, message: '璇疯緭鍏ョ爜娈靛悕绉�', trigger: 'blur' },
+          ],
+          codeSecLengthType: [
+            { required: true, message: '璇烽�夋嫨鐮佹闀垮害绫诲瀷', trigger: 'change' },
+          ],
+          codeSecLength: [
+            { required: true, message: '璇疯緭鍏ョ爜娈电殑闀垮害', trigger: 'blur' },
+            { type: 'number', message: '鐮佹鐨勯暱搴﹀繀椤讳负鏁板瓧鍊�'}
+          ],
+          referAttributeName: [
+            { required: true, message: '璇烽�夋嫨灞炴��', trigger: 'blur' },
+          ],
+          serialStart: [
+            { type: 'number', message: '鐮佹鐨勯暱搴﹀繀椤讳负鏁板瓧鍊�'}
+          ],
+          serialStep: [
+            { type: 'number', message: '鐮佹鐨勯暱搴﹀繀椤讳负鏁板瓧鍊�'}
+          ],
+          codeFillType: [
+            { required: true, message: '璇烽�夋嫨缂栫爜琛ヤ綅鏂瑰紡', trigger: 'blur' },
+          ],
+          // 璁剧疆琛ヤ綅鏃剁殑瀛楃锛岄渶瑕佽嚜瀹氫箟鏂规硶鏉ュ仛鍒ゆ柇
+          codeFillSeparatorSelect: [
+            { required: true, message: '璇疯緭鍏ヨˉ浣嶆椂鐨勫瓧绗�', trigger: 'blur' },
+          ],
+          codeFillLength: [
+            { required: true, message: '璇疯緭鍏ュ~鍏呴暱搴�', trigger: 'blur' },
+            { type: 'number', message: '濉厖闀垮害蹇呴』涓烘暟瀛楀��'}
+          ],
+          codeFillLimit: [
+            { required: true, message: '璇疯緭鍏ユ祦姘翠笂闄�', trigger: 'blur' },
+            { type: 'number', message: '娴佹按涓婇檺蹇呴』涓烘暟瀛楀��'}
+          ],
+          codeLevelType: [
+            { required: true, message: '璇烽�夋嫨灞傜骇绫诲瀷', trigger: 'change' },
+          ],
+          codeLevelValue: [
+            { type: 'number', message: '灞傜骇鐨勫�煎繀椤讳负鏁板瓧鍊�'}
+          ],
+          valueCutType: [
+            { required: true, message: '璇烽�夋嫨瀛楃鎴彇绫诲瀷', trigger: 'change' },
+          ],
+          referBtmId: [
+            { required: true, message: '璇烽�夊弬鐓у簲鐢ㄧ殑涓氬姟绫诲瀷', trigger: 'change' },
+          ],
+          referConfig: [
+            { required: true, message: '璇烽�夋嫨鍙傜収閰嶇疆', trigger: 'change' },
+          ],
+          codeDateFormatStr: [
+            { required: true, message: '璇疯緭鍏ユ棩鏈熸牸寮�', trigger: 'blur' },
+          ],
+
+        },
+        //鏋氫妇鍜屽彲杈撳彲閫夋煡璇�
+        sectypeList:[],    //鐮佹绫诲瀷
+        codeSecLengthType:[],  //鐮佹闀垮害绫诲瀷
+        codeFillType:[],   //缂栫爜琛ヤ綅鏂瑰紡
+        codeFillSeparator:[], //琛ヤ綅鏃剁殑瀛楃锛屽彲杈撳彲閫夊唴瀹�
+        codeLevelType:[],     //灞傜骇绫诲瀷
+        codeCutType:[],       //瀛楃鎴彇绫诲瀷
+        codeGetValueType:[],  //鍙栧�肩被鍨�
+
+        //琛ㄥ崟鍏冪礌鏍囩瀹藉害
+        leftFormLabelWidth: '110px',
+        rightFormLabelWidth: '150px',
+
       };
     },
     computed: {
@@ -909,50 +1489,155 @@
     },
     methods: {
       
-      // 鎵撳紑鍏紡缂栬緫妗嗭紝绗簩灞傚祵濂楀璇濇
+      /** 閫変腑鍙傜収寮曠敤鐨勪笟鍔$被鍨嬶紝绗簩灞傚祵濂楀璇濇锛屽強鍏剁浉鍏虫柟娉�  */
+      saveSelectedreferBtm(){
+        if(this.referBtmSelectionList.length != 1){
+          this.$message.warning("鍙兘閫夋嫨涓�鏉℃暟鎹�!");
+          return false;
+        }
+        //璋冪敤瀛愮粍浠跺苟浼犻�掑綋鍓嶉�変腑鐨勫弬鏁板�硷紝瀹炵幇鍥炴樉
+        this.form.referBtmId = this.referBtmSelectionList[0].id;
+        this.form.referBtmName = this.referBtmSelectionList[0].name;
+        //娓呯┖褰撳墠閫変腑鐨勮
+        this.referBtmSelectionClear();
+        this.isShowSelectReferBtmOption = false;
+      },
+      referBtmSearchReset() {
+        this.referBtmQuery = {};
+        this.referBtmOnLoad(this.referBtmDataPage);
+      },
+      referBtmSearchChange(params, done) {
+        this.referBtmQuery = params;
+        this.referBtmDataPage.currentPage = 1;
+        this.referBtmOnLoad(this.page, params);
+        done();
+      },
+      referBtmSelectionChange(list) {
+        //console.log(list);
+        this.referBtmSelectionList = list;
+      },
+      referBtmSelectionClear() {
+        this.referBtmSelectionList = [];
+        this.$refs.crudReferBtm.toggleSelection();
+      },
+      referBtmCurrentChange(currentPage){
+        this.referBtmDataPage.currentPage = currentPage;
+      },
+      referBtmSizeChange(pageSize){
+        this.referBtmDataPage.pageSize = pageSize;
+      },
+      refreshReferBtmDataChange() {
+        this.referBtmOnLoad(this.referBtmDataPage, this.referBtmQuery);
+      },
+      //鍔犺浇涓弬鐓у紩鐢ㄧ殑涓氬姟绫诲瀷鐨勬暟鎹�
+      referBtmOnLoad(page, params = {}) {
+        this.referBtmDialogLoading = true;
+        let oid = this.selectionList.length==0 ?  this.form.pkCodeRule:this.selectionList[0].oid;
+        Object.assign(params,{pkCodeRule:oid})
+        //鎺ュ彛杩樻湭鎻愪緵锛屽緟鏇存敼
+        refDataGridClassifySec(page.currentPage, page.pageSize, Object.assign(params, this.parentClassifyQuery)).then(res => {
+          //console.log(res.data);
+          const data = res.data.data;
+          this.referBtmDataPage.total = data.total;
+          this.referBtmData = data.records;
+          this.referBtmDialogLoading = false;
+          this.referBtmSelectionClear();
+        });
+      },
+
+
+      /** 鐖跺垎绫婚�夋嫨瀵硅瘽妗嗭紝绗簩灞傚祵濂楀璇濇锛屽強鍏剁浉鍏虫柟娉� */ 
+      // 淇濆瓨褰撳墠鐖跺垎绫荤爜娈电殑閫変腑琛岋紝骞惰繘琛屽瓙缁勪欢鍥炴樉
+      saveSelectedParentClassify(){
+        //console.log(this.parentClassifySelectionList.length);
+        if(this.parentClassifySelectionList.length != 1){
+          this.$message.warning("鍙兘閫夋嫨涓�鏉℃暟鎹�!");
+          return false;
+        }
+        //璋冪敤瀛愮粍浠跺苟浼犻�掑綋鍓嶉�変腑鐨勫弬鏁板�硷紝瀹炵幇鍥炴樉
+        this.form.parentClassifySecOid = this.parentClassifySelectionList[0].id;
+        this.form.parentClassifySecText = this.parentClassifySelectionList[0].name;
+        //娓呯┖褰撳墠閫変腑鐨勮
+        this.parentClassifySelectionClear();
+        this.isShowParentClassifyOption = false;
+      },
+      parentClassifySearchReset() {
+        this.parentClassifyQuery = {};
+        this.parentClassifyOnLoad(this.parentClassifyDataPage);
+      },
+      parentClassifySearchChange(params, done) {
+        this.parentClassifyQuery = params;
+        this.parentClassifyDataPage.currentPage = 1;
+        this.parentClassifyOnLoad(this.page, params);
+        done();
+      },
+      parentClassifySelectionChange(list) {
+        //console.log(this.parentClassifyCurrentChange);
+        this.parentClassifySelectionList = list;
+      },
+      parentClassifySelectionClear() {
+        this.parentClassifySelectionList = [];
+        this.$refs.crudParentClassify.toggleSelection();
+      },
+      parentClassifyCurrentChange(currentPage){
+        this.parentClassifyDataPage.currentPage = currentPage;
+      },
+      parentClassifySizeChange(pageSize){
+        this.parentClassifyDataPage.pageSize = pageSize;
+      },
+      refreshParentClassifyDataChange() {
+        this.parentClassifyOnLoad(this.parentClassifyDataPage, this.parentClassifyQuery);
+      },
+      parentClassifyOnLoad(page, params = {}) {
+        this.classifyDialogLoading = true;
+        let oid = this.selectionList.length==0 ? this.form.pkCodeRule:this.selectionList[0].oid;
+        Object.assign(params,{pkCodeRule:oid})
+        refDataGridClassifySec(page.currentPage, page.pageSize, Object.assign(params, this.parentClassifyQuery)).then(res => {
+          //console.log(res.data);
+          const data = res.data.data;
+          this.parentClassifyDataPage.total = data.total;
+          this.parentClassifyData = data.records;
+          this.classifyDialogLoading = false;
+          this.parentClassifySelectionClear();
+        });
+      },
+      
+      
+      /** 鎵撳紑鍏紡缂栬緫妗嗭紝绗簩灞傚祵濂楀璇濇锛屽強鍏剁浉鍏虫柟娉� */ 
       openformulaEdit(){
         this.isShowformulaEdit = true;
       },
-
       //鍙屽嚮娣诲姞鍏紡鍐呭
       dbClickAddContent(row){
         //console.log(row.formula);
         this.formulaContent = this.formulaContent + row.formula;
       },
-
       //娓呯┖鍏紡鍐呭
-      resetformulaContent(){
+      resetFormulaContent(){
         this.formulaContent = '';
       },
-
       //鍏抽棴鏃舵竻绌轰笂娆″叕寮忓唴瀹�
       closeFormulaEdit(){
-        this.resetformulaContent();
+        this.resetFormulaContent();
       },
-
-      //缂栬緫瀹屾垚鍏紡鍐呭鍥炶皟鍒板瓙缁勪欢杩涜鍥炴樉
+      //缂栬緫瀹屾垚鍏紡鍐呭骞跺洖鏄�
       saveFormulaContent(){
-        console.log(this.formulaContent);
-        if(this.formulaContent.trim == null){
+        //console.log(this.formulaContent);
+        if(this.formulaContent.trim == null || this.formulaContent.trim == ''){
           this.$message.warning("鍏紡鍐呭涓嶈兘涓虹┖锛�");
           return;
         }
-        this.$refs.addBasicChild.saveFormulaContent(this.formulaContent);
+        //鍏紡鍐呭鍥炴樉
+        this.form.getValueClass = this.formulaContent;
         this.isShowformulaEdit = false;  
       },
 
-      // 鎵撳紑灞炴�ч�夊彇鍊硷紝绗簩灞傚祵濂楀璇濇
-      openAttrSelectOrGetValue(){
-        //console.log(111);
-        this.isShowSelectAttrOption = true;
-      },
-      
+      /** 鎵撳紑灞炴�ч�夊彇鍊硷紝绗簩灞傚祵濂楀璇濇锛屽強鍏剁浉鍏虫柟娉� */ 
       // 鑾峰彇褰撳墠琚�変腑鏍戣妭鐐圭殑oid
       nodeClick(data) {
         this.currentSelectTreeData = data;
         this.loadlistClassifyLinkAttr()
       },
-
       // 鍔犺浇鍒嗙被杩炴帴灞炴�ц〃鏍兼暟鎹�
       loadlistClassifyLinkAttr(){
         this.selectAttrOptionLoading = true;
@@ -968,7 +1653,6 @@
         this.selectAttrOptionLoading = false;
         })
       },
-
       // 鐐瑰嚮鎼滅储鍚庤Е鍙戣浜嬩欢
       selectAttrOptionSearchChange(params, done) {
         this.query = params;
@@ -976,44 +1660,216 @@
         this.loadlistClassifyLinkAttr({"page":1,"limit":-1 ,'conditionMap[codeClassifyOid]':this.currentSelectTreeData.oid});
         done();
       },
-
       // 灞炴�у彇鍊煎綋鍓嶉�変腑琛屽彂鐢熷彉鍖栨椂瑙﹀彂
       selectionChangeAttr(list){
         this.selectionChangeAttrList = list;
       },
-
-      //閲嶇疆浣嶅睘鎬ч�夊彇鍊艰〃鏍肩殑鎼滅储妗嗕箣鍚庣殑鍥炶皟
+      // 閲嶇疆浣嶅睘鎬ч�夊彇鍊艰〃鏍肩殑鎼滅储妗嗕箣鍚庣殑鍥炶皟
       searchAttrReset() {
         this.loadlistClassifyLinkAttr()
       },
-
-      // 灞炴�у彇鍊奸�夊彇鎴愬姛淇濆瓨涔嬪悗瑙﹀彂
-      savelistClassifyLinkAttr(){
+      // 涓哄睘鎬ч�夊彇鍊间箣鍚庣殑鍥炴樉
+      selectedListClassifyLinkAttr(){
         if(this.selectionChangeAttrList.length != 1){
           this.$message.warning("鍙兘閫夋嫨涓�鏉℃暟鎹�!");
           return false;
         }
-        let data = {
-          "referAttributeId":this.selectionChangeAttrList[0].id,
-          "referAttributeName":this.selectionChangeAttrList[0].name,
-          "referCodeClassifyOid": this.currentSelectTreeData.key,
-          "referCodeClassifyOidName": this.currentSelectTreeData.title,
-        }
-        //console.log(data);
         //璋冪敤瀛愮粍浠跺苟浼犻�掑綋鍓嶉�変腑鐨勫弬鏁板�硷紝瀹炵幇鍥炴樉
-        this.$refs.addBasicChild.selectedListClassifyLinkAttr(data);
+        this.form = Object.assign({}, this.form, {
+          referAttributeId:this.selectionChangeAttrList[0].id,
+          referAttributeName:this.selectionChangeAttrList[0].name,
+          referCodeClassifyOid: this.currentSelectTreeData.key,
+          referCodeClassifyOidName: this.currentSelectTreeData.title,
+        })
         this.isShowSelectAttrOption = false;
       },
+      
 
-      // 缂栫爜瑙勫垯褰撳墠閫変腑琛屽彉鍖栫殑鏃跺�欒Е鍙�
-      selectionChange(list) {
-        this.selectionList = list;
-        if(this.selectionList.length > 0){
-          this.currentCodeRuleOid = this.selectionList [list.length-1];
-          this.loadBasic(this.selectionList[list.length-1]);
+      /** 鍩虹鐮佹琛ㄤ腑鐨勭爜鍊肩鐞嗙殑鐩稿叧鏂规硶 */
+      // 鐮佸�肩鐞嗗脊绐楁帶鍒�
+      openBasicSecCodeValueMgr(row){
+        //褰撳墠涓哄浐瀹氱爜娈电爜鍊肩鐞嗙爜鍊肩鐞�
+        if(row.secType === "codefixedsec"){
+          this.isShowFixedForm = true;
+          this.loadFixedValueTableData(row);
+        }else{
+          //鍒嗙被鐮佹
+          this.isShowFixedForm = false;
+        }
+        this.codefixedsecOrCodeclassifysecOid = row.oid;
+        this.isShowBasicSecCodeValueMgr = true;
+      },
+      //鍔犺浇鍥哄畾鐮佹鐮佸�艰〃鏁版嵁
+      loadFixedValueTableData(row){
+        this.fixedValueOptionLoading = true;
+        gridCodeFixedValue(1, -1, {"codeFixedSecOid":row.oid}).then(res=>{
+          this.fixedValueData = res.data.data.records;
+          //console.log(this.fixedValueData);
+          this.fixedValueOptionLoading = false;
+        })
+      },
+      //鍔犺浇鍒嗙被鐮佹鐮佸�肩鐞嗛〉闈ree鏁版嵁
+      
+      //鍗曞嚮鍥哄畾鐮佹鐨勭爜鍊艰〃涓鏃惰Е鍙戠殑浜嬩欢
+      selectedCodeValueRow(row){
+        //console.log(row);
+        this.selectedFixedOrCodeclassifyValue = row;
+        this.codeFixdForm.id = row.id;
+        this.codeFixdForm.description = row.description;
+        this.codeFixdForm.codeFixedSecOid = row.codefixedsecoid;
+      },
+      //鏂板鐮佸��
+      addCodeSecValue(condition){
+        if(condition === "codefixedsec"){
+          if(this.codeFixdForm.id.trim() == ''){
+            this.$message.warning("鐮佸�间笉鑳戒负绌猴紒");
+            return;
+          }
+          this.codeFixdForm.codeFixedSecOid = this.codefixedsecOrCodeclassifysecOid;
+          addSaveCodeFixedValue(this.codeFixdForm).then(() => {
+            this.loadFixedValueTableData({"oid":this.codefixedsecOrCodeclassifysecOid});
+            this.clearFixedOrClassifyForm('codefixedsec');
+            this.$message({
+              type: "success",
+              message: "鎿嶄綔鎴愬姛!"
+            });
+          }, error => {
+            window.console.log(error);
+          });
+        }else {
+          
         }
       },
+      // 娓呯┖鐮佸�艰〃鍗�
+      clearFixedOrClassifyForm(condition){
+        //鐐瑰嚮鍙栨秷鏃舵竻绌鸿〃鍗曚笌褰撳墠閫変腑鐨勭爜鍊硷紝骞剁鐢ㄦ寜閽�
+        this.selectedFixedOrCodeclassifyValue = '';
+        if(condition === "close"){
+          this.codeFixdForm.id = '';
+        }
+        if(condition === "codefixedsec" || condition === "close"){
+          this.codeFixdForm.description = '';
+          this.codeFixdForm.codeFixedSecOid = '';
+        }else {
+          this.codeClassifyForm = '';
+        }
+      },
+      //淇敼鐮佸��
+      editCodeSecValue(condition){
+        if(condition=='codefixedsec'){
+          //浠ュ墠鏄洿鎺ユ妸褰撳墠閫変腑琛岀殑鎵�鏈夋暟鎹兘杩涜鎻愪氦锛屼絾鍏跺疄鍙渶瑕佷紶杈撲竴浜涙瘮瑕佸弬鏁板嵆鍙紝杩欏効鍋氫簡淇敼锛岄渶瑕佺┛鍏朵粬鍙傛暟鐨勮鑷娣诲姞
+          let editData = {
+           "oid": this.selectedFixedOrCodeclassifyValue.oid,
+           "ts": new Date().getTime(),
+           "description": this.codeFixdForm.description,
+           "id": this.codeFixdForm.id,
+           "codeFixedSecOid":  this.selectedFixedOrCodeclassifyValue.codefixedsecoid
+          }
+          editCodeFixedValue(editData).then(() => {
+              this.loadFixedValueTableData({"oid":this.codefixedsecOrCodeclassifysecOid})
+              this.$message({
+                type: "success",
+                message: "鎿嶄綔鎴愬姛!"
+              });
+            }, error => {
+              window.console.log(error);
+          });
+        }else {
+          
+        }
+          
+      },
+      //鍒犻櫎鐮佸��
+      delCodeSecValue(condition){ 
+        //鍥哄畾鐮佹鐮佸�煎垹闄�
+        if(condition == 'codefixedsec'){
+          console.log(this.selectedFixedOrCodeclassifyValue.oid);
+          this.$confirm("鏄惁鍒犻櫎杩欐潯鏁版嵁锛熷鏋滆寮曠敤灏嗕笉鑳借鍒犻櫎锛�", {
+          confirmButtonText: "纭畾",
+          cancelButtonText: "鍙栨秷",
+          type: "warning"
+          })
+          .then(() => {
+            let ts = new Date(this.selectedFixedOrCodeclassifyValue.ts).getTime();
+            return deleteCodeFixedValue({"oid": this.selectedFixedOrCodeclassifyValue.oid,"ts": ts});
+          })
+          .then(() => {
+            this.loadFixedValueTableData({"oid":this.codefixedsecOrCodeclassifysecOid})
+            this.clearFixedOrClassifyForm('codefixedsec');
+            this.$message({
+              type: "success",
+              message: "鎿嶄綔鎴愬姛!"
+            });
+          });
+        }else{
+          //鍒嗙被鐮佹鐮佸�煎垹闄�
 
+          this.selectedFixedOrCodeclassifyValue = '';
+        }            
+        
+      },
+      //瀵圭爜鍊艰〃杩涜锛氫笂绉汇�佷笅绉汇�佺Щ闄ゆ搷浣�
+      codeFixedValueOpetion(condition,row){
+        //console.log(this.fixedValueData[row.$index].orderNum);
+        const index = row.$index;
+        if(condition == 'up'){
+          //瀵筼rdeNum鎺掑簭瀛楁杩涜璋冩暣
+          this.fixedValueData[index].orderNum = this.fixedValueData[index].orderNum-1
+          this.fixedValueData[index-1].orderNum = this.fixedValueData[index].orderNum+1
+          //褰撲笅鏍囧噺鍘�1灏忎簬0鎴栬�卭rderNum瀛楁鍑忓幓1灏忎簬0鐨勬椂鍊欎笉鎵ц涓婄Щ鎿嶄綔
+          if(index-1<0 || this.fixedValueData[row.$index].orderNum-1<0){
+            return;
+          }
+          //璋冩暣鏁扮粍鍊奸『搴�
+          let tempOption = this.fixedValueData[index-1];
+          this.$set(this.fixedValueData, index - 1, this.fixedValueData[index])
+          this.$set(this.fixedValueData, index , tempOption)
+
+          //console.log(this.fixedValueData);
+        }else if(condition == 'down'){
+          //瀵筼rdeNum鎺掑簭瀛楁杩涜璋冩暣
+          this.fixedValueData[index].orderNum = this.fixedValueData[index].orderNum+1
+          this.fixedValueData[index+1].orderNum = this.fixedValueData[index].orderNum-1
+          //璋冩暣鏁扮粍鍊奸『搴�
+          let tempOption = this.fixedValueData[index+1];
+          this.$set(this.fixedValueData, index + 1, this.fixedValueData[index]);
+          this.$set(this.fixedValueData, index, tempOption)
+        }else {
+          for(let i=index+1; i<this.fixedValueData.length-1; i++){
+            //console.log(this.fixedValueData[i].orderNum);
+            this.fixedValueData[i].orderNum = this.fixedValueData[i].orderNum-1;
+            //console.log(this.fixedValueData[i].orderNum);
+          }
+          this.$delete(this.fixedValueData, index);
+        }
+        //console.log(this.fixedValueData);
+      },
+      //淇濆瓨瀵瑰浐瀹氱爜娈电爜鍊肩殑鎿嶄綔
+      saveCodeFixedValueOption(){
+        let data = {
+          "codeFixedSecOid": this.codefixedsecOrCodeclassifysecOid,
+          "dtoList": JSON.stringify(this.fixedValueData),
+        }
+        saveOrder(data).then(() => {
+          this.$message({
+            type: "success",
+            message: "淇濆瓨鎴愬姛!"
+          });
+          }, error => {
+            window.console.log(error);
+        });
+      },
+
+
+      /** 鍩虹鐮佹鐩稿叧鏂规硶 */
+      //闃叉鎵撳紑杩囩紪杈戠獥鍙d箣鍚庤〃鍗曚腑瀛樺湪鍊硷紝鎵�浠ラ渶瑕佹竻绌轰箣鍚庡垵濮嬪寲form琛ㄥ崟
+      clearBasicAddForm(){
+        this.form = '';
+        this.form = {
+          secType:'codefixedsec'
+        };
+        this.changeSectypeFormItems(null);
+      },
       // 鎵撳紑鏂板绐楀彛
       addBasicCodeSec(){
         if(!this.tipsMessage(this.selectionList)){
@@ -1023,21 +1879,66 @@
           this.$message.warning('缂栫爜瑙勫垯鐘舵�佷笉鏄�"缂栬緫涓�"锛屼笉鍏佽缂栬緫鐮佹!');
           return;
         }
+        this.openBasicDialog('add',null);
+        this.loadCodeSecType();
+      },
+      //鎵撳紑鏂板鎴栫紪杈戝熀纭�鐮佹瀵硅瘽妗�
+      openBasicDialog(condition,row){
+        //console.log(row);
+        if(condition == 'add') {
+          this.basicSecDialogTitle = '娣诲姞鐮佹淇℃伅';
+          this.showbtn = true;
+          this.basicSecOnlyRead = false;
+        }else if(condition == 'edit'){
+          if(this.selectionList.length!=1){
+            this.$message.warning('璇烽�夋嫨涓�鏉$紪鐮佽鍒欐暟鎹�!');
+            return;
+          }
+          this.basicSecDialogTitle = '淇敼鐮佹淇℃伅';
+          this.showbtn = true;
+          this.basicSecOnlyRead = false;
+          //涓篺orm缁戝畾鍊�
+          this.changeSectypeFormItems(row);
+        }else{
+          this.basicSecDialogTitle = '鏌ョ湅鐮佹淇℃伅';
+          this.showbtn = false;
+          this.basicSecOnlyRead = true;
+          this.changeSectypeFormItems(row);
+        }
+        //console.log(this.form);
         this.addBasicCodeSettingBox = true;
-        this.$nextTick(() => {
-          this.$refs.addBasicChild.loadCodeSecType();
-        })
       },
       // 鏂板鍩虹鐮佹
-      saveBasicCode(){
-        if(this.selectionList[0].oid == null){
+      saveOrEditBasicCode(){
+        if(this.selectionList[0].oid == null ||  this.selectionList[0].oid == ''){
           this.$message.warning('缂哄け蹇呰鍙傛暟锛岃閲嶆柊閫夋嫨缂栫爜瑙勫垯鍚庨噸璇�!');
           return;
+        }        
+        this.form.pkCodeRule = this.selectionList[0].oid;
+        //console.log(this.form);
+        if(this.form.oid == '' || this.form.oid == null){
+           addSave(this.form).then(() => {
+            this.$message({
+              type: "success",
+              message: "鎿嶄綔鎴愬姛!"
+            });
+            }, error => {
+              window.console.log(error);
+          });
+        }else{
+          editSave(this.form).then(() => {
+            this.$message({
+              type: "success",
+              message: "鎿嶄綔鎴愬姛!"
+            });
+            }, error => {
+              window.console.log(error);
+          });
         }
-        this.$refs.addBasicChild.addSave(this.selectionList[0].oid);
+       
         // 鍏抽棴绐楀彛
         this.addBasicCodeSettingBox = false
-        // 鐐瑰嚮鏂板鍩虹鐮佹涔嬪悗鍏抽棴绐楀彛涔嬪悗瑙﹀彂閲嶆柊鍔犺浇
+        // 鐐瑰嚮鏂板鍩虹鐮佹,鍏抽棴绐楀彛涔嬪悗瑙﹀彂閲嶆柊鍔犺浇
         this.loadBasic(this.selectionList[0]);
       },
       // 鍒ゆ柇鏁版嵁鏄惁閫夋嫨浠ュ強鍙兘閫夋嫨鍗曟潯鏁版嵁
@@ -1060,23 +1961,25 @@
           type: "warning"
         })
         .then(() => {
-          let ts = this.selectionBasicList[0].ts;
+          let ts = new Date(this.selectionBasicList[0].ts).getTime();
           return deleteData({"oid": oid,"ts": ts});
         })
         .then(() => {
-          this.loadBasic({"oid":this.currentCodeRuleOid == null ? this.selectionList[0].oid:this.currentCodeRuleOid});
+          this.loadBasic({"oid":this.currentCodeRuleOid == null || this.currentCodeRuleOid == '' ? this.selectionList[0].oid:this.currentCodeRuleOid});
           this.$message({
             type: "success",
             message: "鎿嶄綔鎴愬姛!"
           });
-          //this.$refs.crud.toggleSelection();
+          this.$refs.crudBasic.toggleSelection();
         });
       },
       // 鐐瑰嚮瑙﹀彂鍔犺浇鍩虹鐮佹淇℃伅
       loadBasic(row){
         this.loadingBasic = true;
         //console.log(row.oid);
+        //瀛樺偍褰撳墠鍏宠仈鐨勭紪鐮佽鍒欑浉鍏充俊鎭�
         this.currentCodeRuleOid = row.oid;
+        this.currentRuleLcStatus = row.lcStatus;
         gridCodeBasicSec(1, -1, {"pkCodeRule":row.oid}).then(res => {
           const data = res.data.data;
           this.basicData = data.records;
@@ -1137,8 +2040,11 @@
       },
       //鍩虹鐮佹鏌ヨ
       refreshChangeBasicSec(){
-        this.loadBasic({"oid":this.currentCodeRuleOid == null ? this.selectionList[0].oid:this.currentCodeRuleOid});
+        this.loadBasic({"oid":this.currentCodeRuleOid == null || this.currentCodeRuleOid == '' ? this.selectionList[0].oid:this.currentCodeRuleOid});
       },
+
+ 
+      /** 缂栫爜瑙勫垯鐩稿叧鏂规硶 */
       // 鏌ヨ浣跨敤鑼冨洿
       handleRange(){
         if(!this.tipsMessage(this.selectionList)){
@@ -1147,6 +2053,7 @@
         this.codeRangeSettingBox = true;
         this.getRangeCodeList()
       },
+      //鍔犺浇浣跨敤鑼冨洿鍒楄〃
       getRangeCodeList(){        
         this.dialogLoading = true;
         if(this.selectionList[0].oid==null){
@@ -1159,8 +2066,15 @@
           this.dialogLoading = false;
         });
       },
+      //鍒锋柊浣跨敤鑼冨洿鍒楄〃
       refreshUseRangeChange(){
         this.getRangeCodeList();
+      },
+      //鍗曞嚮缂栫爜瑙勫垯瀹炵幇琛岄�夋嫨
+      codeRuleRowClick (row) {
+        //console.log(row);
+        this.$refs.crud.toggleRowSelection(row);
+        this.loadBasic(row);
       },
       // 鍚敤涓庡仠鐢�
       enableOrDeactivatse(oId,update){
@@ -1232,7 +2146,7 @@
           .then(() => {
             // 鍙敮鎸佹瘡娆″崟鏉¤褰曞垹闄�
             let oid = this.selectionList[0].oid;
-            let ts = this.selectionList[0].ts;
+            let ts = new Date(this.selectionList[0].ts).getTime();
             return remove({oid: oid,ts: ts});
           })
           .then(() => {
@@ -1247,8 +2161,8 @@
       // 鎵撳紑淇敼
       beforeOpen(done, type) {
         if (["edit", "view"].includes(type)) {
-          getDetail(this.form.oid).then(res => {
-            this.form = res.data.data;
+          getDetail(this.ruleForm.oid).then(res => {
+            this.ruleForm = res.data.data;
           });
         }
         done();
@@ -1262,11 +2176,15 @@
         this.page.currentPage = 1;
         this.onLoad(this.page, params);
         done();
-      },
+      }, 
+      // 缂栫爜瑙勫垯褰撳墠閫変腑琛屽彉鍖栫殑鏃跺�欒Е鍙�
       selectionChange(list) {
         this.selectionList = list;
+        this.$refs.crud.setCurrentRow(this.selectionList [list.length-1]);
         if(this.selectionList.length > 0){
-          this.currentCodeRuleOid = this.selectionList [list.length-1];
+          this.currentCodeRuleOid = this.selectionList[list.length-1].oid;
+          this.currentRuleLcStatus = this.selectionList [list.length-1].lcStatus;
+          //console.log(this.currentRuleLcStatus);
           this.loadBasic(this.selectionList[list.length-1]);
         }
       },
@@ -1286,25 +2204,227 @@
       onLoad(page, params = {}) {
         this.loading = true;
         gridCodeRule(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
-          //console.log(res);
+          //console.log(res.data);
           const data = res.data.data;
           this.page.total = data.total;
           this.data = data.records;
           this.loading = false;
-          this.loadBasic(data.records[0])
-          this.selectionClear();
+          this.loadBasic(this.data[0])
+          this.$nextTick(() => {
+            this.$refs.crud.toggleRowSelection(this.data[0]);
+            this.$refs.crud.setCurrentRow(this.data[0]);
+          })
+          this.selectionList = data.records[0];
+          //this.selectionClear();
         });
-      }
+      },
+
+
+      /** 绗竴灞傚璇濇鐩稿叧鏂规硶 */
+      // 鎵撳紑浜屽眰寮圭獥鏂规硶
+      openAttrSelectOrGetValue(condition){
+        if(condition === 'attr'){
+          this.isShowSelectAttrOption = true;
+        }else if(condition === 'value'){
+          this.isShowformulaEdit = true;
+        }else if(condition === 'parentClassifySecOid'){
+          this.isShowParentClassifyOption = true;
+        }else if(condition === 'referBtmId'){
+          this.isShowSelectReferBtmOption = true;
+        }else if(condition === 'referConfig'){
+          //this.$emit('openSelectreferConfig')
+        }
+      },
+
+      // 鐐瑰嚮杈撳叆妗嗙殑脳鍙凤紝娓呯┖杈撳叆妗嗕腑鐨勫唴瀹�
+      clearAttrDataByIcon(condition){
+        if(condition === 'attr'){
+          this.form.referAttributeName = '';
+          this.form.referAttributeId = '';
+          this.form.referCodeClassifyOid = '';
+          this.form.referCodeClassifyOidName = '';
+        }else if(condition === 'value'){
+          this.form.getValueClass = '';
+        }else if(condition === 'parentClassifySecOid'){
+          this.form.parentClassifySecOid = '';
+        }else if(condition === 'referBtmId'){
+          this.form.referBtmId = '';
+        }else if(condition === 'referConfig'){
+          this.form.referBtmId = '';
+        }
+      },
+
+      // 鐮佹绫诲瀷鏀瑰彉鏃讹紝澧炲姞瀵瑰簲鐨刦orm琛ㄥ崟涓殑灞炴��
+      changeSectypeFormItems(row){     
+        console.log(row);   
+        if(this.sectypeList.length==0){
+          this.loadCodeSecType();
+        }
+        if(row != null){
+          this.form = {};
+          this.form = Object.assign({},this.form,{
+              oid: row.oid,
+              id: row.id, //缂栧彿,
+              name: row.name,//鍚嶇О
+              secType: row.secType,//鐮佹绫诲瀷
+              description: row.description,//鎻忚堪
+              serialDependFlag: row.serialDependFlag=='true' ?  true:false,//鏄惁娴佹按渚濊禆
+              serialDependOrder: row.serialDependOrder,//娴佹按渚濊禆椤哄簭
+              nullableFlag: row.nullableFlag=='true' ?  true:false,//鏄惁涓虹┖
+              displayFlag: row.displayFlag=='true' ?  true:false,
+              componentCodeFlag: row.componentCodeFlag=='true' ?  true:false,//鏄惁鍙備笌缂栫爜
+              pkCodeRule: row.pkCodeRule, //鎵�灞炵紪鐮佽鍒�
+            }
+          );
+        }else {
+          this.form = {
+            oid: this.form.oid,
+            id: this.form.id, //缂栧彿
+            name: this.form.name, //鍚嶇О
+            secType: this.form.secType, //鐮佹绫诲瀷
+            description: this.form.description, //鎻忚堪
+            serialDependFlag:  this.form.serialDependFlag, //鏄惁娴佹按渚濊禆
+            serialDependOrder: this.form.serialDependOrder, //娴佹按渚濊禆椤哄簭
+            nullableFlag:  this.form.nullableFlag, //鏄惁涓虹┖
+            displayFlag:  this.form.displayFlag, //
+            componentCodeFlag:  this.form.componentCodeFlag, //鏄惁鍙備笌缂栫爜
+            pkCodeRule: this.form.pkCodeRule, //鎵�灞炵紪鐮佽鍒�
+          };
+          //console.log(this.form);
+        }
+        if(this.form.secType==='codefixedsec'){
+          //鍥哄畾鐮佹
+          this.form = Object.assign({}, this.form,{
+            codeSecLength: row!=null&&row.codeSecLength != '' ? row.codeSecLength:'',
+            codeSecLengthType: row!=null&&row.codeSecLengthType != '' ? row.codeSecLengthType:'code_sec_length_variable'
+          });
+          this.loadCodeSecLength();
+        }else if(this.form.secType==='codeattrsec'){
+          //灞炴�х爜娈�
+          this.form = Object.assign({}, this.form, {
+            referCodeClassifyOid: row!=null&&row.referCodeClassifyOid != '' ? row.referCodeClassifyOid:'',     //灞炴�d
+            referCodeClassifyOidName: row!=null&&row.referCodeClassifyOidName != '' ? row.referCodeClassifyOidName:'', //灞炴�ф墍鍦ㄥ垎绫�
+            referAttributeId: row!=null&&row.referAttributeId != '' ? row.referAttributeId:'',    //灞炴�х紪鍙�
+            referAttributeName: row!=null&&row.referAttributeName != '' ? row.referAttributeName:'',   //灞炴��
+            getValueClass: row!=null&&row.getValueClass != '' ? row.getValueClass:''         //鍙栧�艰鍒�
+          });
+        }else if(this.form.secType==='codeserialsec'){
+          //娴佹按鐮佹
+          this.form = Object.assign({}, this.form,{
+            codeSecLength: row!=null&&row.codeSecLength != '' ? row.codeSecLength:'', //鐮佹鐨勯暱搴�
+            serialStart: row!=null&&row.serialStart != '' ? row.serialStart:'1',  //娴佹按鍙疯捣濮嬪��
+            serialStep: row!=null&&row.serialStep != '' ? row.serialStep:'1',   //娴佹按鐨勬闀�
+            codeFillType: row!=null&&row.codeFillType != '' ? row.codeFillType:'code_fill_right', //缂栫爜琛ヤ綅鏂瑰紡
+            codeFillSeparatorSelect: row!=null&&row.codeFillSeparatorSelect != '' ? row.codeFillSeparatorSelect:'0',    //琛ヤ綅鏃剁殑瀛楃锛岄�変腑鐨勪笅鎷夋鐨勪笅鏍�
+            codeFillSeparator: row!=null&&row.codeFillSeparator != '' ? row.codeFillSeparator:'0',          //琛ヤ綅鏃剁殑瀛楃
+            codeFillLength: row!=null&&row.codeFillLength != '' ? row.codeFillLength:'',              //濉厖闀垮害
+            codeFillLimit: row!=null&&row.codeFillLimit != '' ? row.codeFillLimit:'',               //娴佹按涓婇檺
+            codeFillFlag: row!=null&&row.codeFillFlag != '' ? row.codeFillFlag=='true' ?  true:false :false,      //娴佹按鏄惁琛ョ爜
+            customCodeSerialClass: row!=null&&row.customCodeSerialClass != '' ? row.customCodeSerialClass:'',     //鑷畾涔夋祦姘寸畻娉�
+          });
+          this.loadCodeFillType();
+          this.loadCodeFillSeparator();
+        }else if(this.form.secType==='codelevelsec'){
+          //灞傜骇鐮佹
+          this.form = Object.assign({}, this.form,{
+            codeLevelType: row!=null&&row.codeLevelType != '' ? row.codeLevelType:'code_level_min',     //灞傜骇绫诲瀷  鏋氫妇鏌ヨ
+            codeLevelValue: row!=null&&row.codeLevelValue != '' ? row.codeLevelValue:'',    //灞傜骇鐨勫��
+            valueCutType: row!=null&&row.valueCutType != '' ? row.valueCutType:'code_cut_none',      //瀛楃鎴彇绫诲瀷 鏋氫妇鏌ヨ
+            valueCutLength: row!=null&&row.valueCutLength != '' ? row.valueCutLength:'',    //
+            codeGetValueType: row!=null&&row.codeGetValueType != '' ? row.codeGetValueType:'code_get_value_all_up',  //鍙栧�肩被鍨� 鏋氫妇鏌ヨ
+          });
+          this.loadCodeLevelType();
+          this.loadCodeCutType();
+          this.loadCodeGetValueType();
+        }else if(this.form.secType==='coderefersec'){
+          //寮曠敤鐮佹
+          this.form = Object.assign({}, this.form,{
+            referBtmId: row!=null&&row.referBtmId != '' ? row.referBtmId:'',   //鍙傜収寮曠敤鐨勪笟鍔$被鍨嬶紝鐨刬d
+            referBtmName: row!=null&&row.referBtmName != '' ? row.referBtmName:'', //鍙傜収寮曠敤鐨勪笟鍔$被鍨�
+            referConfig: row!=null&&row.referConfig != '' ? row.referConfig:'',  //鍙傜収閰嶇疆
+          });
+        }else if(this.form.secType==='codedatesec'){
+          //鏃ユ湡鐮佹
+          this.form = Object.assign({}, this.form,{
+            codeDateFormatStr:  row!=null&&row.codeDateFormatStr != '' ? row.codeDateFormatStr:'',   //鏃ユ湡鏍煎紡
+          });
+        }else if(this.form.secType==='codeclassifysec'){
+          //鍒嗙被鐮佹
+          this.form = Object.assign({}, this.form,{
+            codeSecLengthType: row!=null&&row.codeSecLengthType != '' ? row.codeSecLengthType:'code_sec_length_variable',    //鐮佹闀垮害绫诲瀷
+            codeSecLength: row!=null&&row.codeSecLength != '' ? row.codeSecLength:'',  //鐮佹鐨勯暱搴�
+            matchClassifyValueFlag: row!=null&&row.matchClassifyValueFlag != '' ? row.matchClassifyValueFlag=='true' ?  true:false :false,  //鏄惁鑷姩鍖归厤鍊�
+            parentClassifySecOid: row!=null&&row.parentClassifySecOid != '' ? row.parentClassifySecOid:'',    //鐖跺垎绫荤爜娈甸�変腑鐨刬d
+            parentClassifySecText: row!=null&&row.parentClassifySecText != '' ? row.parentClassifySecText:'',  //鐖跺垎绫荤爜娈�
+          });
+          this.loadCodeSecLength();
+        }else if(this.form.secType==='codevariablesec'){
+          //鍙彉鐮佹
+          this.form = Object.assign({}, this.form,{
+            codeSecLength: row!=null&&row.codeSecLength != '' ? row.codeSecLength:'',             //鐮佹鐨勯暱搴�
+            codeFillType: row!=null&&row.codeFillType != '' ? row.codeFillType:'code_fill_right', //缂栫爜閮ㄤ綅鏂瑰紡锛屾灇涓炬煡璇�
+            codeFillSeparatorSelect: row!=null&&row.codeFillSeparatorSelect != '' ? row.codeFillSeparatorSelect:'0',  //閫変腑鐨勮ˉ浣嶆椂鐨勫瓧绗︾殑涓嬫爣
+            codeFillSeparator: row!=null&&row.codeFillSeparator != '' ? row.codeFillSeparator:'', //琛ヤ綅鏃剁殑瀛楃锛屽彲杈撳彲閫夋煡璇�
+          });
+          this.loadCodeFillType();
+          this.loadCodeFillSeparator();
+        }
+        //console.log(this.form);
+      },
+      //鏋氫妇鍜屽彲杈撳彲閫夊唴瀹规煡璇�
+      loadCodeSecType(){
+        getDictionary({code: "codeBasicSecType"}).then(res=>{
+          this.sectypeList = res.data.data;
+        })
+        this.loadCodeSecLength();
+        //console.log(this.sectypeList);
+      },
+      loadCodeSecLength(){
+        getDictionary({code: "codeSecLength"}).then(res=>{
+          this.codeSecLengthType = res.data.data;
+        })
+      },
+      loadCodeFillType(){
+        getDictionary({code: "codeFillType"}).then(res=>{
+          this.codeFillType = res.data.data;
+        })
+      },
+      loadCodeFillSeparator(){
+        getDictionary({code: "codeFillSeparator"}).then(res=>{
+          this.codeFillSeparator = res.data.data;
+        })
+      },
+      loadCodeLevelType(){
+        getDictionary({code: "codeLevelType"}).then(res=>{
+          this.codeLevelType = res.data.data;
+        })
+      },
+      loadCodeCutType(){
+        getDictionary({code: "codeCutType"}).then(res=>{
+          this.codeCutType = res.data.data;
+        })
+      },
+      loadCodeGetValueType(){
+        getDictionary({code: "codeGetValueType"}).then(res=>{
+          this.codeGetValueType = res.data.data;
+          //console.log(this.codeGetValueType);
+        })
+      },
+      
+      
     }
 };
 </script>
 
 <style>
+
   .el-divider--horizontal {
       margin-top: 19px !important;
       margin-bottom: -20px !important;
       height: 2px;
       margin: 0;
+      position: fixed;
+      width: 57.5vw;
   }
 
   .el-card__body > .abox {
@@ -1319,8 +2439,79 @@
     width:60px;
   }
 
-  .formula-editor{
-    
+  .el-input-number {
+    width: 120px;
   }
 
+  .el-input-number >.el-input > .el-input__inner {
+    width:120px;
+  } 
+
+  .formula-editor{
+    margin-top: -15px;
+    margin-left: 2vw;
+    /*璁剧疆寮规�х洅瀛�*/
+    display: flex;
+    /*瀛愬厓绱犱互绔栧垪鎺掑垪锛屼竴鍏辨湁6鍒�*/
+    flex-direction:column;
+    width: 360px;
+    height: 285px;
+    /*宸﹀彸鍧囧寑鎺掑垪*/
+    justify-content: space-around;
+    /*涓婁笅鍧囧寑鎺掑垪*/
+    align-items: center;
+  }
+
+  .one{
+    display: flex;
+    /*浠ヨ鎺掑垪*/
+    flex-direction: row;
+    width: 296px;
+    height: 60px;
+    justify-content: space-between;
+    align-items: center;
+	}    
+
+  .formula-editor-btn-sm {
+    width: 72px;
+    height: 45px;
+    background: rgb(153, 214, 240);
+    border-radius: 10%;
+  }
+  
+  .el-col>.el-card > .el-card__header {
+    background: rgb(213 231 239);
+    border-radius: inherit;
+  }
+
+  /** 鏂板鐮佹 */
+  .total{
+    height: 500px;
+    width: 100%;
+  }
+
+  .total .el-input__inner,.total .el-textarea__inner {
+    width: 220px;
+  }
+
+  .el-divider--vertical {
+    width: 2px;
+    height: 72vh;
+    margin: 0 5px;
+    position: fixed;
+  }
+
+ .left {
+    float: left;
+    width: 49%;
+ }
+ .right {
+    float: right;
+    margin-right: 2.5vw;
+    /* width: 40%; */
+ }
+ .right > .el-form > .el-form-item{
+    margin-bottom: 8px;
+ }
+
 </style>
\ No newline at end of file
diff --git a/Source/UBCS-WEB/vue.config.js b/Source/UBCS-WEB/vue.config.js
index e6df65f..4933f0c 100644
--- a/Source/UBCS-WEB/vue.config.js
+++ b/Source/UBCS-WEB/vue.config.js
@@ -26,8 +26,8 @@
     proxy: {
       '/api': {
         //鏈湴鏈嶅姟鎺ュ彛鍦板潃
-        //target: 'http://localhost:37000',
-        target: 'http://dev.vci-tech.com:37000',
+        target: 'http://localhost:37000',
+        //target: 'http://dev.vci-tech.com:37000',
         //杩滅▼婕旂ず鏈嶅姟鍦板潃,鍙敤浜庣洿鎺ュ惎鍔ㄩ」鐩�
         //target: 'https://saber.bladex.vip/api',
         ws: true,
diff --git a/Source/UBCS/ubcs-common/src/main/java/com/vci/ubcs/common/constant/LauncherConstant.java b/Source/UBCS/ubcs-common/src/main/java/com/vci/ubcs/common/constant/LauncherConstant.java
new file mode 100644
index 0000000..45cdb5a
--- /dev/null
+++ b/Source/UBCS/ubcs-common/src/main/java/com/vci/ubcs/common/constant/LauncherConstant.java
@@ -0,0 +1,233 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 搴勯獮 (smallchill@163.com)
+ */
+package com.vci.ubcs.common.constant;
+
+import org.springblade.core.launch.constant.AppConstant;
+
+import static org.springblade.core.launch.constant.AppConstant.APPLICATION_NAME_PREFIX;
+
+/**
+ * 鍚姩甯搁噺
+ *
+ * @author Chill
+ */
+public interface LauncherConstant {
+
+	/**
+	 * xxljob
+	 */
+	String APPLICATION_XXLJOB_NAME = APPLICATION_NAME_PREFIX + "xxljob";
+
+	/**
+	 * xxljob
+	 */
+	String APPLICATION_XXLJOB_ADMIN_NAME = APPLICATION_NAME_PREFIX + "xxljob-admin";
+
+	/**
+	 * nacos dev 鍦板潃
+	 */
+	//String NACOS_DEV_ADDR = "dev.vci-tech.com:38848";
+	String NACOS_DEV_ADDR = "192.168.93.167:38848";
+
+	/**
+	 * nacos prod 鍦板潃
+	 */
+	//String NACOS_PROD_ADDR = "dev.vci-tech.com:38848";
+	String NACOS_PROD_ADDR = "192.168.93.129:38848";
+
+	/**
+	 * nacos test 鍦板潃
+	 */
+	//String NACOS_TEST_ADDR = "dev.vci-tech.com:38848";
+	String NACOS_TEST_ADDR = "192.168.93.133:38848";
+
+	/**
+	 * sentinel dev 鍦板潃
+	 */
+	//String SENTINEL_DEV_ADDR = "127.0.0.1:8858";
+
+	/**
+	 * sentinel prod 鍦板潃
+	 */
+	//String SENTINEL_PROD_ADDR = "172.30.0.58:8858";
+
+	/**
+	 * sentinel test 鍦板潃
+	 */
+	//String SENTINEL_TEST_ADDR = "172.30.0.58:8858";
+
+	/**
+	 * seata dev 鍦板潃
+	 */
+	String SEATA_DEV_ADDR = "127.0.0.1:8091";
+
+	/**
+	 * seata prod 鍦板潃
+	 */
+	String SEATA_PROD_ADDR = "172.30.0.68:8091";
+
+	/**
+	 * seata test 鍦板潃
+	 */
+	String SEATA_TEST_ADDR = "172.30.0.68:8091";
+
+	/**
+	 * zipkin dev 鍦板潃
+	 */
+	String ZIPKIN_DEV_ADDR = "http://dev.vci-tech.com:38006";
+
+	/**
+	 * zipkin prod 鍦板潃
+	 */
+	String ZIPKIN_PROD_ADDR = "http://172.30.0.71:9411";
+
+	/**
+	 * zipkin test 鍦板潃
+	 */
+	String ZIPKIN_TEST_ADDR = "http://172.30.0.71:9411";
+
+	/**
+	 * elk dev 鍦板潃
+	 */
+	String ELK_DEV_ADDR = "dev.vci-tech.com:38002";
+
+	/**
+	 * elk prod 鍦板潃
+	 */
+	String ELK_PROD_ADDR = "dev.vci-tech.com:38002";
+
+	/**
+	 * elk test 鍦板潃
+	 */
+	String ELK_TEST_ADDR = "dev.vci-tech.com:38002";
+
+	/**
+	 * seata file妯″紡
+	 */
+	String FILE_MODE = "file";
+
+	/**
+	 * seata nacos妯″紡
+	 */
+	String NACOS_MODE = "nacos";
+
+	/**
+	 * seata default妯″紡
+	 */
+	String DEFAULT_MODE = "default";
+
+	/**
+	 * seata group鍚庣紑
+	 */
+	String GROUP_NAME = "-group";
+
+	/**
+	 * seata 鏈嶅姟缁勬牸寮�
+	 *
+	 * @param appName 鏈嶅姟鍚�
+	 * @return group
+	 */
+	static String seataServiceGroup(String appName) {
+		return appName.concat(GROUP_NAME);
+	}
+
+	/**
+	 * 鍔ㄦ�佽幏鍙杗acos鍦板潃
+	 *
+	 * @param profile 鐜鍙橀噺
+	 * @return addr
+	 */
+	static String nacosAddr(String profile) {
+		switch (profile) {
+			case (AppConstant.PROD_CODE):
+				return NACOS_PROD_ADDR;
+			case (AppConstant.TEST_CODE):
+				return NACOS_TEST_ADDR;
+			default:
+				return NACOS_DEV_ADDR;
+		}
+	}
+
+	/**
+	 * 鍔ㄦ�佽幏鍙杝entinel鍦板潃
+	 *
+	 * @param profile 鐜鍙橀噺
+	 * @return addr
+	 */
+/*	static String sentinelAddr(String profile) {
+		switch (profile) {
+			case (AppConstant.PROD_CODE):
+				return SENTINEL_PROD_ADDR;
+			case (AppConstant.TEST_CODE):
+				return SENTINEL_TEST_ADDR;
+			default:
+				return SENTINEL_DEV_ADDR;
+		}
+	}*/
+
+	/**
+	 * 鍔ㄦ�佽幏鍙杝eata鍦板潃
+	 *
+	 * @param profile 鐜鍙橀噺
+	 * @return addr
+	 */
+	static String seataAddr(String profile) {
+		switch (profile) {
+			case (AppConstant.PROD_CODE):
+				return SEATA_PROD_ADDR;
+			case (AppConstant.TEST_CODE):
+				return SEATA_TEST_ADDR;
+			default:
+				return SEATA_DEV_ADDR;
+		}
+	}
+
+	/**
+	 * 鍔ㄦ�佽幏鍙杬ipkin鍦板潃
+	 *
+	 * @param profile 鐜鍙橀噺
+	 * @return addr
+	 */
+	static String zipkinAddr(String profile) {
+		switch (profile) {
+			case (AppConstant.PROD_CODE):
+				return ZIPKIN_PROD_ADDR;
+			case (AppConstant.TEST_CODE):
+				return ZIPKIN_TEST_ADDR;
+			default:
+				return ZIPKIN_DEV_ADDR;
+		}
+	}
+
+	/**
+	 * 鍔ㄦ�佽幏鍙杄lk鍦板潃
+	 *
+	 * @param profile 鐜鍙橀噺
+	 * @return addr
+	 */
+	static String elkAddr(String profile) {
+		switch (profile) {
+			case (AppConstant.PROD_CODE):
+				return ELK_PROD_ADDR;
+			case (AppConstant.TEST_CODE):
+				return ELK_TEST_ADDR;
+			default:
+				return ELK_DEV_ADDR;
+		}
+	}
+
+}
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/pom.xml b/Source/UBCS/ubcs-service-api/ubcs-code-api/pom.xml
index 1156ae8..c341358 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/pom.xml
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/pom.xml
@@ -78,6 +78,13 @@
             <groupId>com.alibaba</groupId>
             <artifactId>fastjson</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.vci.ubcs</groupId>
+            <artifactId>ubcs-util-api</artifactId>
+            <version>3.0.1.RELEASE</version>
+            <scope>compile</scope>
+        </dependency>
+
     </dependencies>
     <packaging>jar</packaging>
 
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/bo/TreeWrapperOptions.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/bo/TreeWrapperOptions.java
deleted file mode 100644
index 3825007..0000000
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/bo/TreeWrapperOptions.java
+++ /dev/null
@@ -1,122 +0,0 @@
-package com.vci.ubcs.code.bo;
-
-
-import com.vci.ubcs.code.vo.pagemodel.TreeQueryObject;
-
-import java.io.Serializable;
-
-public class TreeWrapperOptions implements Serializable {
-	private static final long serialVersionUID = 3183500138266494574L;
-	private String textFieldName = "name";
-	private String textValueSep = " ";
-	private String parentFieldName;
-	private String oidFieldName = "oid";
-	private String oidValueSep = ",";
-	private boolean allAttributes = true;
-	private String parentOid;
-	private boolean multipleSelect = false;
-	private boolean showCheckBox = false;
-
-	public TreeWrapperOptions() {
-	}
-
-	public TreeWrapperOptions(String parentFieldName) {
-		this.parentFieldName = parentFieldName;
-	}
-
-	public TreeWrapperOptions(String textFieldName, String parentFieldName) {
-		this.textFieldName = textFieldName;
-		this.parentFieldName = parentFieldName;
-	}
-
-	public TreeWrapperOptions(String textFieldName, String parentFieldName, String parentOid) {
-		this.textFieldName = textFieldName;
-		this.parentFieldName = parentFieldName;
-		this.parentOid = parentOid;
-	}
-
-	public void copyFromTreeQuery(TreeQueryObject treeQueryObject) {
-		if (treeQueryObject != null) {
-			this.parentOid = treeQueryObject.getParentOid();
-			this.multipleSelect = treeQueryObject.isMultipleSelect();
-			this.showCheckBox = treeQueryObject.isShowCheckBox();
-		}
-
-	}
-
-	public String getTextFieldName() {
-		return this.textFieldName;
-	}
-
-	public void setTextFieldName(String textFieldName) {
-		this.textFieldName = textFieldName;
-	}
-
-	public String getParentFieldName() {
-		return this.parentFieldName;
-	}
-
-	public void setParentFieldName(String parentFieldName) {
-		this.parentFieldName = parentFieldName;
-	}
-
-	public String getOidFieldName() {
-		return this.oidFieldName;
-	}
-
-	public void setOidFieldName(String oidFieldName) {
-		this.oidFieldName = oidFieldName;
-	}
-
-	public boolean isAllAttributes() {
-		return this.allAttributes;
-	}
-
-	public void setAllAttributes(boolean allAttributes) {
-		this.allAttributes = allAttributes;
-	}
-
-	public String getParentOid() {
-		return this.parentOid;
-	}
-
-	public void setParentOid(String parentOid) {
-		this.parentOid = parentOid;
-	}
-
-	public boolean isMultipleSelect() {
-		return this.multipleSelect;
-	}
-
-	public void setMultipleSelect(boolean multipleSelect) {
-		this.multipleSelect = multipleSelect;
-	}
-
-	public boolean isShowCheckBox() {
-		return this.showCheckBox;
-	}
-
-	public void setShowCheckBox(boolean showCheckBox) {
-		this.showCheckBox = showCheckBox;
-	}
-
-	public String getTextValueSep() {
-		return this.textValueSep;
-	}
-
-	public void setTextValueSep(String textValueSep) {
-		this.textValueSep = textValueSep;
-	}
-
-	public String getOidValueSep() {
-		return this.oidValueSep;
-	}
-
-	public void setOidValueSep(String oidValueSep) {
-		this.oidValueSep = oidValueSep;
-	}
-
-	public String toString() {
-		return "TreeWrapperOptions{textFieldName='" + this.textFieldName + '\'' + ", textValueSep='" + this.textValueSep + '\'' + ", parentFieldName='" + this.parentFieldName + '\'' + ", oidFieldName='" + this.oidFieldName + '\'' + ", oidValueSep='" + this.oidValueSep + '\'' + ", allAttributes=" + this.allAttributes + ", parentOid='" + this.parentOid + '\'' + ", multipleSelect=" + this.multipleSelect + ", showCheckBox=" + this.showCheckBox + '}';
-	}
-}
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeBasicSecDTO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeBasicSecDTO.java
index f2b43df..fccd42b 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeBasicSecDTO.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeBasicSecDTO.java
@@ -19,12 +19,12 @@
 	/**
 	 * 鐮佹绫诲瀷
 	 */
-	private String sectype;
+	private String secType;
 
 	/**
 	 * 鐮佹绫诲瀷鏄剧ず鏂囨湰
 	 */
-	private String sectypeText;
+	private String secTypeText;
 
 	/**
 	 * 缂栫爜瑙勫垯涓婚敭
@@ -243,23 +243,23 @@
 	/**
 	 * 鑾峰彇 鐮佹绫诲瀷
 	 */
-	public String getSectype (){
-		return sectype;
+	public String getSecType (){
+		return secType;
 	}
 
 	/**
 	 * 璁剧疆 鐮佹绫诲瀷
 	 */
-	public void setSectype (String sectype){
-		this.sectype = sectype;
+	public void setSecType (String sectype){
+		this.secType = sectype;
 	}
 
-	public String getSectypeText() {
-		return sectypeText;
+	public String getSecTypeText() {
+		return secTypeText;
 	}
 
-	public void setSectypeText(String sectypeText) {
-		this.sectypeText = sectypeText;
+	public void setSecTypeText(String secTypeText) {
+		this.secTypeText = secTypeText;
 	}
 
 	/**
@@ -620,8 +620,8 @@
 	@Override
 	public String toString() {
 		return "CodeBasicSecDTO{" +
-				"sectype='" + sectype + '\'' +
-				", sectypeText='" + sectypeText + '\'' +
+				"sectype='" + secType + '\'' +
+				", secTypeText='" + secTypeText + '\'' +
 				", pkCodeRule='" + pkCodeRule + '\'' +
 				", orderNum=" + orderNum +
 				", referBtmId='" + referBtmId + '\'' +
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeFixedValueDTO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeFixedValueDTO.java
index 3e30710..2c6d133 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeFixedValueDTO.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeFixedValueDTO.java
@@ -6,7 +6,7 @@
 /**
  * 鍥哄畾鐮佹鐨勭爜鍊兼暟鎹紶杈撳璞�
  *
- * @author weidy
+ * @author ludc
  * @date 2022-01-24
  */
 public class CodeFixedValueDTO extends BaseModelVO {
@@ -19,7 +19,7 @@
 	/**
 	 * 鍥哄畾鐮佹涓婚敭
 	 */
-	private String codefixedsecoid;
+	private String codeFixedSecOid;
 
 	/**
 	 * 鍥哄畾鐮佹涓婚敭鏄剧ず鏂囨湰
@@ -28,21 +28,21 @@
 	/**
 	 * 鐮佸�煎簭鍙�
 	 */
-	private Integer ordernum;
+	private Integer orderNum;
 
 
 	/**
 	 * 鑾峰彇 鍥哄畾鐮佹涓婚敭
 	 */
-	public String getCodefixedsecoid (){
-		return codefixedsecoid;
+	public String getCodeFixedSecOid (){
+		return codeFixedSecOid;
 	}
 
 	/**
 	 * 璁剧疆 鍥哄畾鐮佹涓婚敭
 	 */
-	public void setCodefixedsecoid (String codefixedsecoid){
-		this.codefixedsecoid = codefixedsecoid;
+	public void setCodeFixedSecOid (String codeFixedSecOid){
+		this.codeFixedSecOid = codeFixedSecOid;
 	}
 
 	/**
@@ -61,24 +61,24 @@
 	/**
 	 * 鑾峰彇 鐮佸�煎簭鍙�
 	 */
-	public Integer getOrdernum (){
-		return ordernum;
+	public Integer getOrderNum (){
+		return orderNum;
 	}
 
 	/**
 	 * 璁剧疆 鐮佸�煎簭鍙�
 	 */
-	public void setOrdernum (Integer ordernum){
-		this.ordernum = ordernum;
+	public void setOrderNum (Integer ordernum){
+		this.orderNum = ordernum;
 	}
 
 
 	@Override
 	public String toString() {
 		return "CodeFixedValueDTO{" +
-		"codefixedsecoid='" + codefixedsecoid +"',"+
+		"codeFixedSecOid='" + codeFixedSecOid +"',"+
 		"codefixedsecoidName='" + codefixedsecoidName +"'," +
-		"ordernum='" + ordernum +"',"+
+		"orderNum='" + orderNum +"',"+
 		"}" + super.toString();
 	}
 }
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeOrderDTO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeOrderDTO.java
index 994d4a6..e6c9f24 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeOrderDTO.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeOrderDTO.java
@@ -1,6 +1,7 @@
 package com.vci.ubcs.code.dto;
 
-import com.vci.web.dto.BaseModelDTO;
+
+import com.vci.ubcs.code.dto.datapush.BaseModelDTO;
 
 import java.util.List;
 
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/DockingDataDTO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/DockingDataDTO.java
index fbf62ab..094a2c9 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/DockingDataDTO.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/DockingDataDTO.java
@@ -1,6 +1,7 @@
 package com.vci.ubcs.code.dto;
 
-import com.vci.ubcs.code.entity.BaseModel;
+
+import com.vci.ubcs.starter.revision.model.BaseModel;
 
 /**
  * 瑕佹帹閫佸緱鏁版嵁
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/PreApplyCodeOrderDTO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/PreApplyCodeOrderDTO.java
index a56fef7..18bedae 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/PreApplyCodeOrderDTO.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/PreApplyCodeOrderDTO.java
@@ -1,6 +1,7 @@
 package com.vci.ubcs.code.dto;
 
-import com.vci.web.dto.BaseModelDTO;
+
+import com.vci.ubcs.code.dto.datapush.BaseModelDTO;
 
 import java.util.List;
 
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/datapush/BaseModelDTO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/datapush/BaseModelDTO.java
index d14778e..5318bd6 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/datapush/BaseModelDTO.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/datapush/BaseModelDTO.java
@@ -1,7 +1,7 @@
-package com.vci.web.dto;
+package com.vci.ubcs.code.dto.datapush;
 
 
-import com.vci.ubcs.code.entity.BaseModel;
+import com.vci.ubcs.starter.revision.model.BaseModel;
 
 import java.util.ArrayList;
 import java.util.HashMap;
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/BaseModel.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/BaseModel.java
deleted file mode 100644
index 73e18ca..0000000
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/BaseModel.java
+++ /dev/null
@@ -1,355 +0,0 @@
-package com.vci.ubcs.code.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
-import io.swagger.annotations.ApiModelProperty;
-import org.springframework.data.annotation.Transient;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.io.Serializable;
-import java.util.Date;
-import java.util.Map;
-
-public class BaseModel implements Serializable {
-	@JsonSerialize(
-		using = ToStringSerializer.class
-	)
-	@ApiModelProperty("涓婚敭id")
-	@TableId(value = "OID",type = IdType.ASSIGN_UUID)
-	private String oid;
-
-	private String id;
-
-	private String name;
-
-	private String description;
-
-	private String revisionOid;
-
-	private String nameOid;
-
-	private String btmname;
-
-	private String lastR;
-
-	private String firstR;
-
-	private String lastV;
-
-	private String firstV;
-
-	private String creator;
-	@DateTimeFormat(
-		pattern = "yyyy-MM-dd HH:mm:ss"
-	)
-	@JsonFormat(
-		pattern = "yyyy-MM-dd HH:mm:ss"
-	)
-	private Date createTime;
-
-	private String lastModifier;
-	@DateTimeFormat(
-		pattern = "yyyy-MM-dd HH:mm:ss"
-	)
-	@JsonFormat(
-		pattern = "yyyy-MM-dd HH:mm:ss"
-	)
-	private Date lastModifyTime;
-
-	private String revisionRule;
-
-	private Integer revisionSeq;
-
-	private String revisionValue;
-
-	private String versionRule;
-
-	private Integer versionSeq;
-
-	private String versionValue;
-
-	@Transient
-	private String lctid;
-
-	private String lcStatus;
-
-	@TableField(exist = false)
-	private String lcStatusText;
-
-	@JsonFormat(
-		pattern = "yyyy-MM-dd HH:mm:ss.SSS"
-	)
-	private Date ts;
-
-	private String owner;
-
-	private String copyFromVersion;
-
-	//	@VciUseEnum(
-//		value = "Enumsecretgrade",
-//		showTextField = "secretGradeText"
-//	)
-	@TableField(exist = false)
-	private Integer secretGrade;
-
-	@Transient
-	@TableField(exist = false)
-	private String secretGradeText;
-
-	@Transient
-	@TableField(exist = false)
-	private Map<String, String> data;
-
-	public BaseModel() {
-	}
-
-	public String getOid() {
-		return this.oid;
-	}
-
-	public void setOid(String oid) {
-		this.oid = oid;
-	}
-
-	public String getId() {
-		return this.id;
-	}
-
-	public void setId(String id) {
-		this.id = id;
-	}
-
-	public String getName() {
-		return this.name;
-	}
-
-	public void setName(String name) {
-		this.name = name;
-	}
-
-	public String getDescription() {
-		return this.description;
-	}
-
-	public void setDescription(String description) {
-		this.description = description;
-	}
-
-	public String getRevisionOid() {
-		return this.revisionOid;
-	}
-
-	public void setRevisionOid(String revisionOid) {
-		this.revisionOid = revisionOid;
-	}
-
-	public String getNameOid() {
-		return this.nameOid;
-	}
-
-	public void setNameOid(String nameOid) {
-		this.nameOid = nameOid;
-	}
-
-	public String getBtmname() {
-		return this.btmname;
-	}
-
-	public void setBtmname(String btmname) {
-		this.btmname = btmname;
-	}
-
-	public String getLastR() {
-		return this.lastR;
-	}
-
-	public void setLastR(String lastR) {
-		this.lastR = lastR;
-	}
-
-	public String getFirstR() {
-		return this.firstR;
-	}
-
-	public void setFirstR(String firstR) {
-		this.firstR = firstR;
-	}
-
-	public String getLastV() {
-		return this.lastV;
-	}
-
-	public void setLastV(String lastV) {
-		this.lastV = lastV;
-	}
-
-	public String getFirstV() {
-		return this.firstV;
-	}
-
-	public void setFirstV(String firstV) {
-		this.firstV = firstV;
-	}
-
-	public String getCreator() {
-		return this.creator;
-	}
-
-	public void setCreator(String creator) {
-		this.creator = creator;
-	}
-
-	public String getLastModifier() {
-		return this.lastModifier;
-	}
-
-	public void setLastModifier(String lastModifier) {
-		this.lastModifier = lastModifier;
-	}
-
-	public Date getLastModifyTime() {
-		return this.lastModifyTime;
-	}
-
-	public void setLastModifyTime(Date lastModifyTime) {
-		this.lastModifyTime = lastModifyTime;
-	}
-
-	public String getRevisionRule() {
-		return this.revisionRule;
-	}
-
-	public void setRevisionRule(String revisionRule) {
-		this.revisionRule = revisionRule;
-	}
-
-	public String getVersionRule() {
-		return this.versionRule;
-	}
-
-	public void setVersionRule(String versionRule) {
-		this.versionRule = versionRule;
-	}
-
-	public Integer getRevisionSeq() {
-		return this.revisionSeq;
-	}
-
-	public void setRevisionSeq(Integer revisionSeq) {
-		this.revisionSeq = revisionSeq;
-	}
-
-	public String getRevisionValue() {
-		return this.revisionValue;
-	}
-
-	public void setRevisionValue(String revisionValue) {
-		this.revisionValue = revisionValue;
-	}
-
-	public Integer getVersionSeq() {
-		return this.versionSeq;
-	}
-
-	public void setVersionSeq(Integer versionSeq) {
-		this.versionSeq = versionSeq;
-	}
-
-	public String getVersionValue() {
-		return this.versionValue;
-	}
-
-	public void setVersionValue(String versionValue) {
-		this.versionValue = versionValue;
-	}
-
-	public String getLcStatus() {
-		return this.lcStatus;
-	}
-
-	public void setLcStatus(String lcStatus) {
-		this.lcStatus = lcStatus;
-	}
-
-	public Date getTs() {
-		return this.ts;
-	}
-
-	public void setTs(Date ts) {
-		this.ts = ts;
-	}
-
-	public String getOwner() {
-		return this.owner;
-	}
-
-	public void setOwner(String owner) {
-		this.owner = owner;
-	}
-
-	public String getCopyFromVersion() {
-		return this.copyFromVersion;
-	}
-
-	public void setCopyFromVersion(String copyFromVersion) {
-		this.copyFromVersion = copyFromVersion;
-	}
-
-	public String getLcStatusText() {
-		return this.lcStatusText;
-	}
-
-	public void setLcStatusText(String lcStatusText) {
-		this.lcStatusText = lcStatusText;
-	}
-
-	public Date getCreateTime() {
-		return this.createTime;
-	}
-
-	public void setCreateTime(Date createTime) {
-		this.createTime = createTime;
-	}
-
-	public Integer getSecretGrade() {
-		return this.secretGrade;
-	}
-
-	public void setSecretGrade(Integer secretGrade) {
-		this.secretGrade = secretGrade;
-	}
-
-	public String getSecretGradeText() {
-		return this.secretGradeText;
-	}
-
-	public void setSecretGradeText(String secretGradeText) {
-		this.secretGradeText = secretGradeText;
-	}
-
-	public String getLctid() {
-		return this.lctid;
-	}
-
-	public void setLctid(String lctid) {
-		this.lctid = lctid;
-	}
-
-	public Map<String, String> getData() {
-		return this.data;
-	}
-
-	public void setData(Map<String, String> data) {
-		this.data = data;
-	}
-
-	@Override
-	public String toString() {
-		return "BaseModel{oid='" + this.oid + '\'' + ", id='" + this.id + '\'' + ", name='" + this.name + '\'' + ", description='" + this.description + '\'' + ", revisionOid='" + this.revisionOid + '\'' + ", nameOid='" + this.nameOid + '\'' + ", btmname='" + this.btmname + '\'' + ", lastR='" + this.lastR + '\'' + ", firstR='" + this.firstR + '\'' + ", lastV='" + this.lastV + '\'' + ", firstV='" + this.firstV + '\'' + ", creator='" + this.creator + '\'' + ", createTime=" + this.createTime + ", lastModifier='" + this.lastModifier + '\'' + ", lastModifyTime=" + this.lastModifyTime + ", revisionRule='" + this.revisionRule + '\'' + ", revisionSeq=" + this.revisionSeq + ", revisionValue='" + this.revisionValue + '\'' + ", versionRule='" + this.versionRule + '\'' + ", versionSeq=" + this.versionSeq + ", versionValue='" + this.versionValue + '\'' + ", lctid='" + this.lctid + '\'' + ", lcStatus='" + this.lcStatus + '\'' + ", lcStatusText='" + this.lcStatusText + '\'' + ", ts=" + this.ts + ", owner='" + this.owner + '\''  + ", copyFromVersion='" + this.copyFromVersion + '\'' + ", secretGrade=" + this.secretGrade + ", secretGradeText='" + this.secretGradeText + '\'' + ", data=" + this.data + '}';
-	}
-
-}
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeAllCode.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeAllCode.java
index 63d4b5f..371a319 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeAllCode.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeAllCode.java
@@ -18,6 +18,7 @@
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.vci.ubcs.starter.revision.model.BaseModel;
 import io.swagger.annotations.ApiModel;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeBasicSec.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeBasicSec.java
index 6e62873..7c76ebe 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeBasicSec.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeBasicSec.java
@@ -2,10 +2,9 @@
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.vci.ubcs.com.vci.starter.annotation.Transient;
-import com.vci.ubcs.com.vci.starter.web.annotation.VciUseEnum;
-import com.vci.ubcs.com.vci.starter.web.constant.EnumIdConstant;
-import com.vci.ubcs.com.vci.starter.web.constant.MdmEnumIdConstant;
+
+import com.vci.ubcs.starter.annotation.Transient;
+import com.vci.ubcs.starter.revision.model.BaseModel;
 import io.swagger.annotations.ApiModel;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -20,7 +19,7 @@
 @TableName("PL_CODE_BASICSEC")
 @ApiModel(value = "CodeBasicSec瀵硅薄", description = "鐮佹鍩虹淇℃伅")
 @EqualsAndHashCode(callSuper = true)
-public class CodeBasicSec extends BaseModel{
+public class CodeBasicSec extends BaseModel {
 
 	/**
 	 * 搴忓垪鍖�
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClassify.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClassify.java
index 24530a6..cf9eb71 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClassify.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClassify.java
@@ -2,7 +2,8 @@
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.vci.ubcs.com.vci.starter.annotation.Transient;
+import com.vci.ubcs.starter.annotation.Transient;
+import com.vci.ubcs.starter.revision.model.BaseModel;
 import io.swagger.annotations.ApiModel;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClassifyValue.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClassifyValue.java
index 3ec9702..de38c78 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClassifyValue.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClassifyValue.java
@@ -1,6 +1,7 @@
 package com.vci.ubcs.code.entity;
 
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.vci.ubcs.starter.revision.model.BaseModel;
 import io.swagger.annotations.ApiModel;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClsflowtempEntity.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClsflowtempEntity.java
index e0edcca..1675e12 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClsflowtempEntity.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClsflowtempEntity.java
@@ -17,12 +17,12 @@
 package com.vci.ubcs.code.entity;
 
 import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.vci.ubcs.starter.revision.model.BaseModel;
 import lombok.Data;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import java.util.Date;
 import lombok.EqualsAndHashCode;
-import org.springblade.core.tenant.mp.TenantEntity;
 
 /**
  * 缂栫爜搴撳畾涔�-妯℃澘娴佺▼ 瀹炰綋绫�
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClstempattrEntity.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClstempattrEntity.java
index d200636..057e533 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClstempattrEntity.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClstempattrEntity.java
@@ -17,12 +17,11 @@
 package com.vci.ubcs.code.entity;
 
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.vci.ubcs.starter.revision.model.BaseModel;
 import lombok.Data;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import java.util.Date;
 import lombok.EqualsAndHashCode;
-import org.springblade.core.tenant.mp.TenantEntity;
 
 /**
  * 缂栫爜搴撳畾涔�-妯℃澘灞炴�� 瀹炰綋绫�
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClstemplateEntity.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClstemplateEntity.java
index 08a3e33..882d72d 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClstemplateEntity.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClstemplateEntity.java
@@ -17,7 +17,8 @@
 package com.vci.ubcs.code.entity;
 
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.vci.ubcs.com.vci.starter.annotation.Transient;
+import com.vci.ubcs.starter.annotation.Transient;
+import com.vci.ubcs.starter.revision.model.BaseModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeFixedValue.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeFixedValue.java
index e9993c1..af993c8 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeFixedValue.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeFixedValue.java
@@ -1,6 +1,7 @@
 package com.vci.ubcs.code.entity;
 
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.vci.ubcs.starter.revision.model.BaseModel;
 import io.swagger.annotations.ApiModel;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeOsattributeEntity.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeOsattributeEntity.java
index e547826..d79bed8 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeOsattributeEntity.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeOsattributeEntity.java
@@ -17,12 +17,11 @@
 package com.vci.ubcs.code.entity;
 
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.vci.ubcs.starter.revision.model.BaseModel;
 import lombok.Data;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import java.util.Date;
 import lombok.EqualsAndHashCode;
-import org.springblade.core.tenant.mp.TenantEntity;
 
 /**
  * 灞炴�ф樉绀哄璞� 瀹炰綋绫�
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeOsbtmtypeEntity.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeOsbtmtypeEntity.java
index 401da89..8d35164 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeOsbtmtypeEntity.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeOsbtmtypeEntity.java
@@ -17,6 +17,7 @@
 package com.vci.ubcs.code.entity;
 
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.vci.ubcs.starter.revision.model.BaseModel;
 import lombok.Data;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -32,7 +33,7 @@
 @TableName("PL_CODE_OSBTMTYPE")
 @ApiModel(value = "PLCodeOsbtmtype瀵硅薄", description = "涓氬姟绫诲瀷")
 @EqualsAndHashCode(callSuper = true)
-public class CodeOsbtmtypeEntity  extends BaseModel  {
+public class CodeOsbtmtypeEntity  extends BaseModel {
 
 	/**
 	 * 搴忓垪鍖�
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodePhaseattrEntity.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodePhaseattrEntity.java
index 801b91b..7cdeac6 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodePhaseattrEntity.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodePhaseattrEntity.java
@@ -17,12 +17,11 @@
 package com.vci.ubcs.code.entity;
 
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.vci.ubcs.starter.revision.model.BaseModel;
 import lombok.Data;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import java.util.Date;
 import lombok.EqualsAndHashCode;
-import org.springblade.core.tenant.mp.TenantEntity;
 
 /**
  * 缂栫爜搴撳畾涔�-妯℃澘闃舵-灞炴�� 瀹炰綋绫�
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeRule.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeRule.java
index 0292e2c..e7fae53 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeRule.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeRule.java
@@ -17,6 +17,7 @@
 package com.vci.ubcs.code.entity;
 
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.vci.ubcs.starter.revision.model.BaseModel;
 import io.swagger.annotations.ApiModel;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeSerialValue.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeSerialValue.java
index 29cb0b7..4fbaffc 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeSerialValue.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeSerialValue.java
@@ -2,6 +2,7 @@
 
 
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.vci.ubcs.starter.revision.model.BaseModel;
 import io.swagger.annotations.ApiModel;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeTempbuttonEntity.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeTempbuttonEntity.java
index 7685da9..465317c 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeTempbuttonEntity.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeTempbuttonEntity.java
@@ -17,12 +17,11 @@
 package com.vci.ubcs.code.entity;
 
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.vci.ubcs.starter.revision.model.BaseModel;
 import lombok.Data;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import java.util.Date;
 import lombok.EqualsAndHashCode;
-import org.springblade.core.tenant.mp.TenantEntity;
 
 /**
  * 缂栫爜搴撳畾涔�-妯℃澘鎸夐挳鎵╁睍 瀹炰綋绫�
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeTempphaseEntity.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeTempphaseEntity.java
index 234d260..185a3e9 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeTempphaseEntity.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeTempphaseEntity.java
@@ -17,12 +17,11 @@
 package com.vci.ubcs.code.entity;
 
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.vci.ubcs.starter.revision.model.BaseModel;
 import lombok.Data;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import java.util.Date;
 import lombok.EqualsAndHashCode;
-import org.springblade.core.tenant.mp.TenantEntity;
 
 /**
  * 缂栫爜搴撳畾涔�-妯℃澘闃舵 瀹炰綋绫�
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/po/CodeClassifyPO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/po/CodeClassifyPO.java
index 97a9784..a50a4e7 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/po/CodeClassifyPO.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/po/CodeClassifyPO.java
@@ -1,6 +1,6 @@
 package com.vci.ubcs.code.po;
 
-import com.vci.ubcs.com.vci.starter.poi.annotation.ExcelColumn;
+import com.vci.ubcs.starter.poi.annotation.ExcelColumn;
 
 /**
  * 涓婚搴撳垎绫荤殑瀵煎叆瀵煎嚭瀵硅薄
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeBasicSecVO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeBasicSecVO.java
index 4c1c979..43e837a 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeBasicSecVO.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeBasicSecVO.java
@@ -350,8 +350,8 @@
 	/**
 	* 璁剧疆 鐮佹绫诲瀷
 	*/
-	public void setSecType (String sectype){
-		this.secType = sectype;
+	public void setSecType (String secType){
+		this.secType = secType;
 	}
 
 	public String getSecTypeText() {
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeFixedValueVO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeFixedValueVO.java
index caf497e..ae7e7bf 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeFixedValueVO.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeFixedValueVO.java
@@ -18,7 +18,7 @@
 	/**
 	* 鍥哄畾鐮佹涓婚敭
 	*/
-	private String codefixedsecoid;
+	private String codeFixedSecOid;
 
 	/**
 	* 鍥哄畾鐮佹涓婚敭鏄剧ず鏂囨湰
@@ -28,22 +28,22 @@
 	/**
 	* 鐮佸�煎簭鍙�
 	*/
-	private Integer ordernum;
+	private Integer orderNum;
 
 
 
 	/**
 	 * 鑾峰彇 鍥哄畾鐮佹涓婚敭
 	 */
-	public String getCodefixedsecoid (){
-		return codefixedsecoid;
+	public String getCodeFixedSecOid (){
+		return codeFixedSecOid;
 	}
 
 	/**
 	* 璁剧疆 鍥哄畾鐮佹涓婚敭
 	*/
-	public void setCodefixedsecoid (String codefixedsecoid){
-		this.codefixedsecoid = codefixedsecoid;
+	public void setCodeFixedSecOid (String codefixedsecoid){
+		this.codeFixedSecOid = codefixedsecoid;
 	}
 	/**
 	 * 鑾峰彇鍥哄畾鐮佹涓婚敭鏄剧ず鏂囨湰
@@ -61,23 +61,23 @@
 	/**
 	 * 鑾峰彇 鐮佸�煎簭鍙�
 	 */
-	public Integer getOrdernum (){
-		return ordernum;
+	public Integer getOrderNum (){
+		return orderNum;
 	}
 
 	/**
 	* 璁剧疆 鐮佸�煎簭鍙�
 	*/
-	public void setOrdernum (Integer ordernum){
-		this.ordernum = ordernum;
+	public void setOrderNum (Integer orderNum){
+		this.orderNum = orderNum;
 	}
 
 	@Override
 	public String toString() {
 		return "CodeFixedValueVO{" +
-		"codefixedsecoid='" + codefixedsecoid +"'," +
+		"codeFixedSecOid='" + codeFixedSecOid +"'," +
 		"codefixedsecoidName='" + codefixedsecoidName +"'," +
-		"ordernum='" + ordernum +"'," +
+		"orderNum='" + orderNum +"'," +
 		"}" + super.toString();
 	}
 }
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/DockingDataVO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/DockingDataVO.java
index 1c0f61d..79afada 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/DockingDataVO.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/DockingDataVO.java
@@ -1,6 +1,7 @@
 package com.vci.ubcs.code.vo.pagemodel;
 
-import com.vci.ubcs.code.entity.BaseModel;
+
+import com.vci.ubcs.starter.revision.model.BaseModel;
 
 /**
  * 瑕佹帹閫佸緱鏁版嵁
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/TreeQueryObject.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/TreeQueryObject.java
deleted file mode 100644
index 7213221..0000000
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/TreeQueryObject.java
+++ /dev/null
@@ -1,137 +0,0 @@
-package com.vci.ubcs.code.vo.pagemodel;
-
-//
-// Source code recreated from a .class file by IntelliJ IDEA
-// (powered by FernFlower decompiler)
-//
-
-import java.io.Serializable;
-import java.util.Map;
-
-public class TreeQueryObject implements Serializable {
-	private static final long serialVersionUID = -7570704940199743059L;
-	private Map<String, String> conditionMap;
-	private boolean multipleSelect;
-	private boolean showCheckBox;
-	private boolean queryAllLevel;
-	private String parentOid;
-	private String parentBtmName;
-	private String valueField = "oid";
-	private String textField = "name";
-	private String parentFieldName;
-	private Map<String, String> extandParamsMap;
-	private boolean queryAllRev;
-	private String sort;
-	private String order;
-
-	public TreeQueryObject() {
-	}
-
-	public String getValueField() {
-		return this.valueField;
-	}
-
-	public void setValueField(String valueField) {
-		this.valueField = valueField;
-	}
-
-	public String getTextField() {
-		return this.textField;
-	}
-
-	public void setTextField(String textField) {
-		this.textField = textField;
-	}
-
-	public String getParentFieldName() {
-		return this.parentFieldName;
-	}
-
-	public void setParentFieldName(String parentFieldName) {
-		this.parentFieldName = parentFieldName;
-	}
-
-	public Map<String, String> getConditionMap() {
-		return this.conditionMap;
-	}
-
-	public void setConditionMap(Map<String, String> conditionMap) {
-		this.conditionMap = conditionMap;
-	}
-
-	public boolean isMultipleSelect() {
-		return this.multipleSelect;
-	}
-
-	public void setMultipleSelect(boolean multipleSelect) {
-		this.multipleSelect = multipleSelect;
-	}
-
-	public boolean isShowCheckBox() {
-		return this.showCheckBox;
-	}
-
-	public void setShowCheckBox(boolean showCheckBox) {
-		this.showCheckBox = showCheckBox;
-	}
-
-	public String getParentOid() {
-		return this.parentOid;
-	}
-
-	public void setParentOid(String parentOid) {
-		this.parentOid = parentOid;
-	}
-
-	public String getParentBtmName() {
-		return this.parentBtmName;
-	}
-
-	public void setParentBtmName(String parentBtmName) {
-		this.parentBtmName = parentBtmName;
-	}
-
-	public Map<String, String> getExtandParamsMap() {
-		return this.extandParamsMap;
-	}
-
-	public void setExtandParamsMap(Map<String, String> extandParamsMap) {
-		this.extandParamsMap = extandParamsMap;
-	}
-
-	public boolean isQueryAllLevel() {
-		return this.queryAllLevel;
-	}
-
-	public void setQueryAllLevel(boolean queryAllLevel) {
-		this.queryAllLevel = queryAllLevel;
-	}
-
-	public boolean isQueryAllRev() {
-		return this.queryAllRev;
-	}
-
-	public void setQueryAllRev(boolean queryAllRev) {
-		this.queryAllRev = queryAllRev;
-	}
-
-	public String getSort() {
-		return this.sort;
-	}
-
-	public void setSort(String sort) {
-		this.sort = sort;
-	}
-
-	public String getOrder() {
-		return this.order;
-	}
-
-	public void setOrder(String order) {
-		this.order = order;
-	}
-
-	public String toString() {
-		return "TreeQueryObject{conditionMap=" + this.conditionMap + ", multipleSelect=" + this.multipleSelect + ", showCheckBox=" + this.showCheckBox + ", queryAllLevel=" + this.queryAllLevel + ", parentOid='" + this.parentOid + '\'' + ", parentBtmName='" + this.parentBtmName + '\'' + ", valueField='" + this.valueField + '\'' + ", textField='" + this.textField + '\'' + ", parentFieldName='" + this.parentFieldName + '\'' + ", extandParamsMap=" + this.extandParamsMap + ", queryAllRev=" + this.queryAllRev + ", sort='" + this.sort + '\'' + ", order='" + this.order + '\'' + '}';
-	}
-}
diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/model/TreeWrapperOptions.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/model/TreeWrapperOptions.java
index b0119ed..2f161fd 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/model/TreeWrapperOptions.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/model/TreeWrapperOptions.java
@@ -115,6 +115,7 @@
 		this.oidValueSep = oidValueSep;
 	}
 
+	@Override
 	public String toString() {
 		return "TreeWrapperOptions{textFieldName='" + this.textFieldName + '\'' + ", textValueSep='" + this.textValueSep + '\'' + ", parentFieldName='" + this.parentFieldName + '\'' + ", oidFieldName='" + this.oidFieldName + '\'' + ", oidValueSep='" + this.oidValueSep + '\'' + ", allAttributes=" + this.allAttributes + ", parentOid='" + this.parentOid + '\'' + ", multipleSelect=" + this.multipleSelect + ", showCheckBox=" + this.showCheckBox + '}';
 	}
diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/service/RevisionModelUtil.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/service/RevisionModelUtil.java
index 28bd390..e7675ec 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/service/RevisionModelUtil.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/service/RevisionModelUtil.java
@@ -1,10 +1,4 @@
 package com.vci.ubcs.starter.revision.service;
-
-//
-// Source code recreated from a .class file by IntelliJ IDEA
-// (powered by FernFlower decompiler)
-//
-
 //package com.vci.starter.revision.service;
 
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
diff --git a/Source/UBCS/ubcs-service/ubcs-code/pom.xml b/Source/UBCS/ubcs-service/ubcs-code/pom.xml
index f87d98f..457db9e 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/pom.xml
+++ b/Source/UBCS/ubcs-service/ubcs-code/pom.xml
@@ -23,11 +23,17 @@
             <version>3.0.1.RELEASE</version>
             <scope>compile</scope>
         </dependency>
-        <dependency>
-            <groupId>com.vci.ubcs</groupId>
-            <artifactId>ubcs-ddl</artifactId>
-            <version>3.0.1.RELEASE</version>
-        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>com.vci.ubcs</groupId>-->
+<!--            <artifactId>ubcs-ddl</artifactId>-->
+<!--            <version>3.0.1.RELEASE</version>-->
+<!--            <exclusions>-->
+<!--                <exclusion>-->
+<!--                    <groupId>com.vci</groupId>-->
+<!--                    <artifactId>vci-starter-word</artifactId>-->
+<!--                </exclusion>-->
+<!--            </exclusions>-->
+<!--        </dependency>-->
         <dependency>
             <groupId>com.vci.ubcs</groupId>
             <artifactId>ubcs-omd-api</artifactId>
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeBasicSecController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeBasicSecController.java
index fef60d8..e70d868 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeBasicSecController.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeBasicSecController.java
@@ -7,8 +7,8 @@
 import com.vci.ubcs.code.service.ICodeBasicSecService;
 import com.vci.ubcs.code.vo.pagemodel.CodeBasicSecVO;
 import com.vci.ubcs.code.wrapper.CodeBasicSecWrapper;
-import com.vci.ubcs.com.vci.starter.exception.VciBaseException;
-import com.vci.ubcs.com.vci.starter.web.util.VciBaseUtil;
+import com.vci.ubcs.starter.exception.VciBaseException;
+import com.vci.ubcs.starter.web.util.VciBaseUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springblade.core.mp.support.Condition;
@@ -158,7 +158,7 @@
 	@ApiOperationSupport(order = 9)
 	@ApiOperation(value = "鍙傛暟鍒嗙被鐮佹鍩虹淇℃伅鍒楄〃", notes = "codeBasicSecVO")
     public R<IPage<CodeBasicSecVO>> refDataGridClassifySec(CodeBasicSecVO codeBasicSecVO, Query query){
-        return R.data(codeBasicSecService.refDataGridClassifySec(Condition.getPage(query), codeBasicSecVO));
+        return R.data(codeBasicSecService.refDataGridClassifySec(Condition.getPage(query.setAscs("ordernum")), codeBasicSecVO));
     }
 
     /**
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyController.java
index c854d94..b311f99 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyController.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyController.java
@@ -24,15 +24,15 @@
 import com.vci.ubcs.code.service.ICodeClassifyService;
 import com.vci.ubcs.code.vo.CodeOsattributeVO;
 import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO;
-import com.vci.ubcs.code.vo.pagemodel.TreeQueryObject;
 import com.vci.ubcs.code.wrapper.CodeClassifyWrapper;
-import com.vci.ubcs.com.vci.starter.util.LocalFileUtil;
-import com.vci.ubcs.com.vci.starter.web.pagemodel.BaseQueryObject;
-import com.vci.ubcs.com.vci.starter.web.pagemodel.DataGrid;
-import com.vci.ubcs.com.vci.starter.web.pagemodel.Tree;
-import com.vci.ubcs.com.vci.starter.web.util.ControllerUtil;
-import com.vci.ubcs.com.vci.starter.web.util.LangBaseUtil;
-import com.vci.ubcs.com.vci.starter.web.util.VciBaseUtil;
+import com.vci.ubcs.starter.revision.model.TreeQueryObject;
+import com.vci.ubcs.starter.util.LocalFileUtil;
+import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject;
+import com.vci.ubcs.starter.web.pagemodel.DataGrid;
+import com.vci.ubcs.starter.web.pagemodel.Tree;
+import com.vci.ubcs.starter.web.util.ControllerUtil;
+import com.vci.ubcs.starter.web.util.LangBaseUtil;
+import com.vci.ubcs.starter.web.util.VciBaseUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyValueController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyValueController.java
new file mode 100644
index 0000000..2d3afc3
--- /dev/null
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyValueController.java
@@ -0,0 +1,141 @@
+package com.vci.ubcs.code.controller;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.vci.ubcs.code.dto.CodeClassifyValueDTO;
+import com.vci.ubcs.code.service.ICodeClassifyValueService;
+import com.vci.ubcs.code.vo.pagemodel.CodeClassifyValueVO;
+import com.vci.ubcs.starter.revision.model.TreeQueryObject;
+
+import com.vci.ubcs.starter.web.pagemodel.Tree;
+import com.vci.ubcs.starter.web.util.VciBaseUtil;
+import org.springblade.core.tool.api.R;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 鍒嗙被鐮佹鐨勭爜鍊兼帶鍒跺櫒
+ *
+ * @author weidy
+ * @date 2022-01-24
+ */
+@RestController
+@RequestMapping("/codeClassifyValueController")
+public class CodeClassifyValueController {
+    /**
+    * 鍒嗙被鐮佹鐨勭爜鍊� 鏈嶅姟
+    */
+    @Autowired
+    private ICodeClassifyValueService codeClassifyValueService;
+
+    /**
+     * 鍒嗙被鐮佹鐨勭爜鍊兼爲
+     * @param treeQueryObject 鏍戝舰鏌ヨ瀵硅薄
+     * @return 鍒嗙被鐮佹鐨勭爜鍊兼樉绀烘爲
+     */
+    @GetMapping("/treeCodeClassifyValue")
+    public List<Tree> treeCodeClassifyValue(TreeQueryObject treeQueryObject)  {
+        return  codeClassifyValueService.treeCodeClassifyValue(treeQueryObject);
+    }
+
+    /**
+     * 澧炲姞 鍒嗙被鐮佹鐨勭爜鍊�
+     * @param codeClassifyValueDTO 鍒嗙被鐮佹鐨勭爜鍊兼暟鎹紶杈撳璞�
+     * @return 鎵ц缁撴灉锛宻uccess涓簍rue琛ㄧず鎴愬姛锛宮sg鏄け璐ョ殑鎻愮ず淇℃伅锛宱bj鏄坊鍔犲畬鎴愬悗鐨勬樉绀哄璞�
+     */
+    @PostMapping( "/addSave")
+    public R<CodeClassifyValueVO> addSave(@RequestBody CodeClassifyValueDTO codeClassifyValueDTO){
+		return R.status(codeClassifyValueService.addSave(codeClassifyValueDTO));
+    }
+
+    /**
+     * 淇敼 鍒嗙被鐮佹鐨勭爜鍊�
+     * @param codeClassifyValueDTO 鍒嗙被鐮佹鐨勭爜鍊兼暟鎹紶杈撳璞�
+     * @return 鎵ц缁撴灉锛宻uccess涓簍rue琛ㄧず鎴愬姛锛宮sg鏄け璐ョ殑鎻愮ず淇℃伅锛宱bj鏄坊鍔犲畬鎴愬悗鐨勬樉绀哄璞�
+     */
+    @PutMapping("/editSave")
+    public R<CodeClassifyValueVO> editSave(@RequestBody CodeClassifyValueDTO codeClassifyValueDTO){
+        return R.status(codeClassifyValueService.editSave(codeClassifyValueDTO));
+    }
+
+    /**
+    * 妫�鏌� 鍒嗙被鐮佹鐨勭爜鍊兼槸鍚﹀垹闄�
+    * @param codeClassifyValueDTO 鍒嗙被鐮佹鐨勭爜鍊兼暟鎹紶杈撳璞★紝蹇呴』瑕佹湁oid鍜宼s灞炴��
+    * @return 鎵ц缁撴灉 success涓簍rue涓哄彲浠ュ垹闄わ紝false琛ㄧず鏈夋暟鎹紩鐢紝obj涓簍rue琛ㄧず鏈変笅绾�
+    */
+    @PostMapping( "/checkIsCanDelete")
+    public R checkIsCanDelete( CodeClassifyValueDTO codeClassifyValueDTO)  {
+        return codeClassifyValueService.checkIsCanDelete(codeClassifyValueDTO);
+    }
+
+    /**
+     * 鍒犻櫎鍒嗙被鐮佹鐨勭爜鍊�
+     * @param codeClassifyValueDTO 鍒嗙被鐮佹鐨勭爜鍊兼暟鎹紶杈撳璞★紝oid鍜宼s闇�瑕佷紶杈�
+     * @return 鍒犻櫎缁撴灉鍙嶉锛氾細success锛氭垚鍔燂紝fail锛氬け璐�
+     */
+    @DeleteMapping( "/deleteData")
+    public R delCodeClassifyValue( CodeClassifyValueDTO codeClassifyValueDTO) {
+        return codeClassifyValueService.deleteCodeClassifyValue(codeClassifyValueDTO);
+    }
+
+    /**
+    * 涓婚敭鑾峰彇鍒嗙被鐮佹鐨勭爜鍊�
+    * @param oid 涓婚敭
+    * @return 鍒嗙被鐮佹鐨勭爜鍊兼樉绀哄璞�
+    */
+    @GetMapping("/getObjectByOid")
+    public R<CodeClassifyValueVO> getObjectByOid(String oid){
+        CodeClassifyValueVO codeClassifyValueVO = codeClassifyValueService.getObjectByOid(oid);
+        return R.data(codeClassifyValueVO);
+    }
+
+    /**
+     * 涓婚敭鎵归噺鑾峰彇鍒嗙被鐮佹鐨勭爜鍊�
+     * @param oids 涓婚敭锛屽涓互閫楀彿鍒嗛殧锛屼絾鏄彈鎬ц兘褰卞搷锛屽缓璁竴娆℃煡璇笉瓒呰繃10000涓�
+     * @return 鍒嗙被鐮佹鐨勭爜鍊兼樉绀哄璞�
+     */
+    @GetMapping("/listDataByOids")
+    public R<Collection<CodeClassifyValueVO>> listCodeClassifyValueByOids(String oids){
+        Collection<CodeClassifyValueVO> voCollection =  codeClassifyValueService.listCodeClassifyValueByOids(VciBaseUtil.str2List(oids));
+        return R.data(voCollection);
+    }
+
+    /**
+    * 鍙傜収鏍� 鍒嗙被鐮佹鐨勭爜鍊�
+    * @param treeQueryObject 鏍戝舰鏌ヨ瀵硅薄
+    * @return 鍒嗙被鐮佹鐨勭爜鍊兼樉绀烘爲
+    */
+    @GetMapping("/referTree")
+        public List<Tree> referTree(TreeQueryObject treeQueryObject)  {
+        return codeClassifyValueService.referTree(treeQueryObject);
+    }
+
+    /**
+     * 淇濆瓨椤甸潰涓婄殑鍒嗙被鐮佹鐮佸�硷紝涓昏鏄繚瀛樺簭鍙风敤浜庢帓搴忋�傚鏋滄暟鎹簱涓瓨鍦ㄩ〉闈紶杈撳璞¢泦鍚堜腑涓嶅瓨鍦ㄧ殑鍊硷紝鍒欏垹闄ゃ��
+     * @param param 鍙傛暟锛屽寘鎷琩toList 椤甸潰浼犺緭瀵硅薄闆嗗悎 鍜宑odeclassifysecoid 鍒嗙被鐮佹涓婚敭
+     * @return 鎵ц缁撴灉
+     */
+    @PostMapping("/saveOrder")
+    public R saveOrder(@RequestBody Map<String,Object> param){
+        JSONArray json = JSONArray.parseArray(String.valueOf(param.get("dtoList")));
+        List<CodeClassifyValueDTO> dtoList = new ArrayList<>();
+        for (int i = 0; i < json.size(); i++) {
+            CodeClassifyValueDTO codeFixedValueDTO = JSONObject.toJavaObject(JSONObject.parseObject(JSONObject.toJSONString(json.get(i))), CodeClassifyValueDTO.class);
+            dtoList.add(codeFixedValueDTO);
+        }
+        String codeclassifysecoid = (String) param.get("codeclassifysecoid");
+        VciBaseUtil.alertNotNull(dtoList,"鐮佸�奸泦鍚�");
+        if (CollectionUtils.isEmpty(dtoList)){
+            return R.success("");
+        }
+        return codeClassifyValueService.batchSave4Order(dtoList,codeclassifysecoid);
+    }
+
+}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClstemplateController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClstemplateController.java
index 980f9a4..4f61b25 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClstemplateController.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClstemplateController.java
@@ -25,10 +25,10 @@
 import com.vci.ubcs.code.mapper.CodeClstemplateMapper;
 import com.vci.ubcs.code.service.ICodeClstemplateService;
 import com.vci.ubcs.code.vo.CodeClstemplateVO;
-import com.vci.ubcs.code.vo.pagemodel.TreeQueryObject;
+import com.vci.ubcs.starter.revision.model.TreeQueryObject;
 import com.vci.ubcs.code.wrapper.PlCodeClstemplateWrapper;
-import com.vci.ubcs.com.vci.starter.web.pagemodel.Tree;
-import com.vci.ubcs.com.vci.starter.web.util.VciBaseUtil;
+import com.vci.ubcs.starter.web.pagemodel.Tree;
+import com.vci.ubcs.starter.web.util.VciBaseUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -210,7 +210,7 @@
 
 	/**
 	 * 鍚敤
-	 * @param codeClstemplateEntity oid
+	 * @param codeClstemplateDTO oid
 	 * @return
 	 */
 	@PostMapping( "/enableData")
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeFixedValueController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeFixedValueController.java
new file mode 100644
index 0000000..0ffc334
--- /dev/null
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeFixedValueController.java
@@ -0,0 +1,141 @@
+package com.vci.ubcs.code.controller;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.vci.ubcs.code.dto.CodeFixedValueDTO;
+import com.vci.ubcs.code.entity.CodeFixedValue;
+import com.vci.ubcs.code.service.ICodeFixedValueService;
+import com.vci.ubcs.code.vo.pagemodel.CodeFixedValueVO;
+import com.vci.ubcs.starter.web.util.VciBaseUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 鍥哄畾鐮佹鐨勭爜鍊兼帶鍒跺櫒
+ *
+ * @author ludc
+ * @date 2022-01-24
+ */
+@RestController
+@RequestMapping("/codeFixedValueController")
+@Api(value = "鍥哄畾鐮佹鐨勭爜鍊兼帶鍒跺櫒", tags = "鍥哄畾鐮佹鐨勭爜鍊兼帶鍒跺櫒")
+public class CodeFixedValueController {
+
+    /**
+    * 鍥哄畾鐮佹鐨勭爜鍊� 鏈嶅姟
+    */
+    @Autowired
+    private ICodeFixedValueService codeFixedValueService;
+
+    /**
+     * 鍥哄畾鐮佹鐨勭爜鍊煎垪琛�
+     * @param codeFixedValueVO query 鍩虹鏌ヨ瀵硅薄锛屽寘鍚煡璇㈡潯浠讹紝鍒嗛〉锛屾帓搴忕瓑
+     * @return 鍥哄畾鐮佹鐨勭爜鍊兼樉绀哄璞″垪琛�
+     */
+    @GetMapping("/gridCodeFixedValue")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "鍒嗛〉 鐮佹鍩虹淇℃伅鍒楄〃", notes = "CodeFixedValueVO")
+    public R<IPage<CodeFixedValueVO>> gridCodeFixedValue(CodeFixedValueVO codeFixedValueVO, Query query){
+        return R.data(codeFixedValueService.gridCodeFixedValue(codeFixedValueVO, Condition.getPage(query.setAscs("ordernum"))));
+    }
+
+    /**
+     * 澧炲姞 鍥哄畾鐮佹鐨勭爜鍊�
+     * @param codeFixedValueDTO 鍥哄畾鐮佹鐨勭爜鍊兼暟鎹紶杈撳璞�
+     * @return 鎵ц缁撴灉锛宻uccess涓簍rue琛ㄧず鎴愬姛锛宮sg鏄け璐ョ殑鎻愮ず淇℃伅锛宱bj鏄坊鍔犲畬鎴愬悗鐨勬樉绀哄璞�
+     */
+    @PostMapping( "/addSave")
+    public R addSave(@RequestBody CodeFixedValueDTO codeFixedValueDTO){
+         boolean resBoolean = codeFixedValueService.addSave(codeFixedValueDTO);
+         return R.status(resBoolean);
+    }
+
+    /**
+     * 淇敼 鍥哄畾鐮佹鐨勭爜鍊�
+     * @param codeFixedValueDTO 鍥哄畾鐮佹鐨勭爜鍊兼暟鎹紶杈撳璞�
+     * @return 鎵ц缁撴灉锛宻uccess涓簍rue琛ㄧず鎴愬姛锛宮sg鏄け璐ョ殑鎻愮ず淇℃伅锛宱bj鏄坊鍔犲畬鎴愬悗鐨勬樉绀哄璞�
+     */
+    @PutMapping("/editSave")
+    public R editSave(@RequestBody CodeFixedValueDTO codeFixedValueDTO){
+		boolean resBoolean = codeFixedValueService.editSave(codeFixedValueDTO);
+		return R.status(resBoolean);
+    }
+
+    /**
+     * 鍒犻櫎鍥哄畾鐮佹鐨勭爜鍊�
+     * @param codeFixedValueDTO 鍥哄畾鐮佹鐨勭爜鍊兼暟鎹紶杈撳璞★紝oid鍜宼s闇�瑕佷紶杈�
+     * @return 鍒犻櫎缁撴灉鍙嶉锛氾細success锛氭垚鍔燂紝fail锛氬け璐�
+     */
+    @DeleteMapping( "/deleteData")
+    public R delCodeFixedValue(@RequestBody CodeFixedValueDTO codeFixedValueDTO) {
+        return codeFixedValueService.deleteCodeFixedValue(codeFixedValueDTO);
+    }
+
+    /**
+    * 涓婚敭鑾峰彇鍥哄畾鐮佹鐨勭爜鍊�
+    * @param oid 涓婚敭
+    * @return 鍥哄畾鐮佹鐨勭爜鍊兼樉绀哄璞�
+    */
+    @GetMapping("/getObjectByOid")
+    public R<CodeFixedValueVO> getObjectByOid(String oid){
+        CodeFixedValueVO codeFixedValueVO = codeFixedValueService.getObjectByOid(oid);
+        return R.data(codeFixedValueVO);
+    }
+
+    /**
+     * 涓婚敭鎵归噺鑾峰彇鍥哄畾鐮佹鐨勭爜鍊�
+     * @param oids 涓婚敭锛屽涓互閫楀彿鍒嗛殧锛屼絾鏄彈鎬ц兘褰卞搷锛屽缓璁竴娆℃煡璇笉瓒呰繃10000涓�
+     * @return 鍥哄畾鐮佹鐨勭爜鍊兼樉绀哄璞�
+     */
+    @GetMapping("/listDataByOids")
+    public R<Collection<CodeFixedValueVO>> listCodeFixedValueByOids(String oids){
+        Collection<CodeFixedValueVO> voCollection =  codeFixedValueService.listCodeFixedValueByOids(VciBaseUtil.str2List(oids));
+        return R.data(voCollection);
+    }
+
+    /**
+     * 鍙傜収鍥哄畾鐮佹鐨勭爜鍊煎垪琛�
+     * @param codeFixedValueVO query 鍩虹鏌ヨ瀵硅薄锛屽寘鍚煡璇㈡潯浠讹紝鍒嗛〉锛屾帓搴忕瓑
+     * @return 鍥哄畾鐮佹鐨勭爜鍊兼樉绀哄璞″垪琛紝鐢熸晥鐨勫唴瀹�
+     */
+    @GetMapping("/refDataGrid")
+    public R<IPage<CodeFixedValueVO>> refDataGridCodeFixedValue(CodeFixedValueVO codeFixedValueVO, Query query){
+        return R.data(codeFixedValueService.refDataGridCodeFixedValue(codeFixedValueVO,Condition.getPage(query.setAscs("ordernum"))));
+    }
+
+    /**
+     * 鎵归噺娣诲姞鍥哄畾鐮佹鐨勭爜鍊硷紝濡傛灉淇濆瓨鐨勯泦鍚堜腑涓嶅瓨鍦ㄥ凡鍦ㄦ暟鎹簱涓殑鐮佸�煎垯鍒犻櫎銆備富瑕佹槸淇濆瓨鐮佸�肩殑搴忓彿
+     * @param param 鍙傛暟锛屽寘鎷琩toList 椤甸潰浼犺緭瀵硅薄闆嗗悎 codefixedsecoid 鍥哄畾鐮佹涓婚敭
+     * @return 鎵ц缁撴灉
+     */
+    @PostMapping("/saveOrder")
+    public R batchSave4Order(@RequestBody Map<String,Object> param){
+		JSONArray json = JSONArray.parseArray(String.valueOf(param.get("dtoList")));
+        List<CodeFixedValueDTO> dtoList = new ArrayList<>();
+        for (int i = 0; i < json.size(); i++) {
+            CodeFixedValueDTO codeFixedValueDTO = JSONObject.toJavaObject(JSONObject.parseObject(JSONObject.toJSONString(json.get(i))), CodeFixedValueDTO.class);
+            dtoList.add(codeFixedValueDTO);
+        }
+        String codefixedsecoid = (String) param.get("codeFixedSecOid");
+        VciBaseUtil.alertNotNull(dtoList,"鐮佸�煎璞¢泦鍚�",codefixedsecoid,"鍥哄畾鐮佹鐨勪富閿�");
+        if (CollectionUtils.isEmpty(dtoList)){
+            return R.status(codeFixedValueService.batchDeleteBySecOid(codefixedsecoid));
+        }
+        return codeFixedValueService.batchSave4Order(dtoList,codefixedsecoid);
+    }
+
+}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeRuleController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeRuleController.java
index 881e106..0540298 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeRuleController.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeRuleController.java
@@ -24,7 +24,8 @@
 import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO;
 import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO;
 import com.vci.ubcs.code.wrapper.CodeRuleWrapper;
-import com.vci.ubcs.com.vci.starter.web.util.VciBaseUtil;
+
+import com.vci.ubcs.starter.web.util.VciBaseUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeButtonUseEnum.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeButtonUseEnum.java
index 7e56beb..4339f39 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeButtonUseEnum.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeButtonUseEnum.java
@@ -1,9 +1,12 @@
 package com.vci.ubcs.code.enumpack;
 
 
-import com.vci.ubcs.com.vci.starter.annotation.VciEnum;
-import com.vci.ubcs.com.vci.starter.web.enumpck.BaseEnum;
-import com.vci.ubcs.com.vci.starter.web.constant.MdmEnumIdConstant;
+
+
+import com.vci.ubcs.starter.annotation.VciEnum;
+import com.vci.ubcs.starter.web.constant.MdmEnumIdConstant;
+import com.vci.ubcs.starter.web.enumpck.BaseEnum;
+
 
 /**
  * 妯℃澘鐨勬寜閽敤閫�
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeClassifyProcessUseEnum.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeClassifyProcessUseEnum.java
index 2dad86f..3129d37 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeClassifyProcessUseEnum.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeClassifyProcessUseEnum.java
@@ -1,8 +1,9 @@
 package com.vci.ubcs.code.enumpack;
 
-import com.vci.ubcs.com.vci.starter.annotation.VciEnum;
-import com.vci.ubcs.com.vci.starter.web.constant.MdmEnumIdConstant;
-import com.vci.ubcs.com.vci.starter.web.enumpck.BaseEnum;
+
+import com.vci.ubcs.starter.annotation.VciEnum;
+import com.vci.ubcs.starter.web.constant.MdmEnumIdConstant;
+import com.vci.ubcs.starter.web.enumpck.BaseEnum;
 
 /**
  * 鍒嗙被鐨勬祦绋嬬殑鐢ㄩ��
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeCutTypeEnum.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeCutTypeEnum.java
index 5fd2104..9d68e0f 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeCutTypeEnum.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeCutTypeEnum.java
@@ -1,9 +1,9 @@
 package com.vci.ubcs.code.enumpack;
 
 
-import com.vci.ubcs.com.vci.starter.annotation.VciEnum;
-import com.vci.ubcs.com.vci.starter.web.constant.MdmEnumIdConstant;
-import com.vci.ubcs.com.vci.starter.web.enumpck.BaseEnum;
+import com.vci.ubcs.starter.annotation.VciEnum;
+import com.vci.ubcs.starter.web.constant.MdmEnumIdConstant;
+import com.vci.ubcs.starter.web.enumpck.BaseEnum;
 
 /**
  * 鎴彇绫诲瀷
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeGetValueTypeEnum.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeGetValueTypeEnum.java
index f7598a6..c531f55 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeGetValueTypeEnum.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeGetValueTypeEnum.java
@@ -1,10 +1,9 @@
 package com.vci.ubcs.code.enumpack;
 
 
-
-import com.vci.ubcs.com.vci.starter.annotation.VciEnum;
-import com.vci.ubcs.com.vci.starter.web.constant.MdmEnumIdConstant;
-import com.vci.ubcs.com.vci.starter.web.enumpck.BaseEnum;
+import com.vci.ubcs.starter.annotation.VciEnum;
+import com.vci.ubcs.starter.web.constant.MdmEnumIdConstant;
+import com.vci.ubcs.starter.web.enumpck.BaseEnum;
 
 /**
  * 鍙栧�肩被鍨�
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeLevelTypeEnum.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeLevelTypeEnum.java
index 5924802..5f75d90 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeLevelTypeEnum.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeLevelTypeEnum.java
@@ -1,9 +1,9 @@
 package com.vci.ubcs.code.enumpack;
 
 
-import com.vci.ubcs.com.vci.starter.annotation.VciEnum;
-import com.vci.ubcs.com.vci.starter.web.constant.MdmEnumIdConstant;
-import com.vci.ubcs.com.vci.starter.web.enumpck.BaseEnum;
+import com.vci.ubcs.starter.annotation.VciEnum;
+import com.vci.ubcs.starter.web.constant.MdmEnumIdConstant;
+import com.vci.ubcs.starter.web.enumpck.BaseEnum;
 
 /**
  * 灞傜骇鐮佹鐨勫眰绾х被鍨�
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeMapRuleTypeEnum.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeMapRuleTypeEnum.java
index 6810f5b..51ed055 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeMapRuleTypeEnum.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeMapRuleTypeEnum.java
@@ -1,10 +1,9 @@
 package com.vci.ubcs.code.enumpack;
 
 
-
-import com.vci.ubcs.com.vci.starter.annotation.VciEnum;
-import com.vci.ubcs.com.vci.starter.web.constant.MdmEnumIdConstant;
-import com.vci.ubcs.com.vci.starter.web.enumpck.BaseEnum;
+import com.vci.ubcs.starter.annotation.VciEnum;
+import com.vci.ubcs.starter.web.constant.MdmEnumIdConstant;
+import com.vci.ubcs.starter.web.enumpck.BaseEnum;
 
 /**
  * 鏄犲皠瑙勫垯绫诲瀷
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeSecLengthTypeEnum.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeSecLengthTypeEnum.java
index d11e275..9321e22 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeSecLengthTypeEnum.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeSecLengthTypeEnum.java
@@ -1,9 +1,9 @@
 package com.vci.ubcs.code.enumpack;
 
 
-import com.vci.ubcs.com.vci.starter.annotation.VciEnum;
-import com.vci.ubcs.com.vci.starter.web.constant.MdmEnumIdConstant;
-import com.vci.ubcs.com.vci.starter.web.enumpck.BaseEnum;
+import com.vci.ubcs.starter.annotation.VciEnum;
+import com.vci.ubcs.starter.web.constant.MdmEnumIdConstant;
+import com.vci.ubcs.starter.web.enumpck.BaseEnum;
 
 /**
  * 鐮佹闀垮害鎺у埗绫诲瀷
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeSecTypeEnum.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeSecTypeEnum.java
index 36be6d2..14d4f22 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeSecTypeEnum.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeSecTypeEnum.java
@@ -1,8 +1,9 @@
 package com.vci.ubcs.code.enumpack;
 
-import com.vci.ubcs.com.vci.starter.web.constant.MdmEnumIdConstant;
-import com.vci.ubcs.com.vci.starter.web.enumpck.BaseEnum;
-import com.vci.ubcs.com.vci.starter.annotation.VciEnum;
+
+import com.vci.ubcs.starter.annotation.VciEnum;
+import com.vci.ubcs.starter.web.constant.MdmEnumIdConstant;
+import com.vci.ubcs.starter.web.enumpck.BaseEnum;
 
 /**
  * 鐮佹鐨勭被鍨�
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeUseButtonPositionTypeEnum.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeUseButtonPositionTypeEnum.java
index 51935a3..1449047 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeUseButtonPositionTypeEnum.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeUseButtonPositionTypeEnum.java
@@ -1,8 +1,9 @@
 package com.vci.ubcs.code.enumpack;
 
-import com.vci.ubcs.com.vci.starter.annotation.VciEnum;
-import com.vci.ubcs.com.vci.starter.web.constant.MdmEnumIdConstant;
-import com.vci.ubcs.com.vci.starter.web.enumpck.BaseEnum;
+
+import com.vci.ubcs.starter.annotation.VciEnum;
+import com.vci.ubcs.starter.web.constant.MdmEnumIdConstant;
+import com.vci.ubcs.starter.web.enumpck.BaseEnum;
 
 /**
  * 鎸夐挳浣跨敤浣嶇疆
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationAuthorityTypeEnum.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationAuthorityTypeEnum.java
index b794b9b..e8b4cb7 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationAuthorityTypeEnum.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationAuthorityTypeEnum.java
@@ -1,9 +1,9 @@
 package com.vci.ubcs.code.enumpack;
 
 
-import com.vci.ubcs.com.vci.starter.annotation.VciEnum;
-import com.vci.ubcs.com.vci.starter.web.constant.MdmEnumIdConstant;
-import com.vci.ubcs.com.vci.starter.web.enumpck.BaseEnum;
+import com.vci.ubcs.starter.annotation.VciEnum;
+import com.vci.ubcs.starter.web.constant.MdmEnumIdConstant;
+import com.vci.ubcs.starter.web.enumpck.BaseEnum;
 
 /**
  * Description: 绯荤粺闆嗘垚楠岃瘉鏂瑰紡
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationDataFlowTypeEnum.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationDataFlowTypeEnum.java
index de77139..316825f 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationDataFlowTypeEnum.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationDataFlowTypeEnum.java
@@ -1,7 +1,7 @@
 package com.vci.ubcs.code.enumpack;
 
 
-import com.vci.ubcs.com.vci.starter.web.enumpck.BaseEnum;
+import com.vci.ubcs.starter.web.enumpck.BaseEnum;
 
 /**
  * Description:鏁版嵁娴佸悜鏂瑰紡
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationParamAndReturnTypeEnum.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationParamAndReturnTypeEnum.java
index 0d52784..fa36bee 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationParamAndReturnTypeEnum.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationParamAndReturnTypeEnum.java
@@ -1,9 +1,9 @@
 package com.vci.ubcs.code.enumpack;
 
 
-import com.vci.ubcs.com.vci.starter.annotation.VciEnum;
-import com.vci.ubcs.com.vci.starter.web.constant.MdmEnumIdConstant;
-import com.vci.ubcs.com.vci.starter.web.enumpck.BaseEnum;
+import com.vci.ubcs.starter.annotation.VciEnum;
+import com.vci.ubcs.starter.web.constant.MdmEnumIdConstant;
+import com.vci.ubcs.starter.web.enumpck.BaseEnum;
 
 /**
  * Description: 绯荤粺闆嗘垚鎺ュ彛鍙傛暟涓庤繑鍥炲�肩被鍨�
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationRequestMethodEnum.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationRequestMethodEnum.java
index a8390e4..ceda9e9 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationRequestMethodEnum.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationRequestMethodEnum.java
@@ -1,9 +1,9 @@
 package com.vci.ubcs.code.enumpack;
 
 
-import com.vci.ubcs.com.vci.starter.annotation.VciEnum;
-import com.vci.ubcs.com.vci.starter.web.constant.MdmEnumIdConstant;
-import com.vci.ubcs.com.vci.starter.web.enumpck.BaseEnum;
+import com.vci.ubcs.starter.annotation.VciEnum;
+import com.vci.ubcs.starter.web.constant.MdmEnumIdConstant;
+import com.vci.ubcs.starter.web.enumpck.BaseEnum;
 
 /**
  * Description:绯荤粺闆嗘垚鎺ュ彛璇锋眰鏂瑰紡绫诲瀷
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationRequestTypeEnum.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationRequestTypeEnum.java
index 238ecf6..5bb1945 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationRequestTypeEnum.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationRequestTypeEnum.java
@@ -1,9 +1,9 @@
 package com.vci.ubcs.code.enumpack;
 
 
-import com.vci.ubcs.com.vci.starter.annotation.VciEnum;
-import com.vci.ubcs.com.vci.starter.web.constant.MdmEnumIdConstant;
-import com.vci.ubcs.com.vci.starter.web.enumpck.BaseEnum;
+import com.vci.ubcs.starter.annotation.VciEnum;
+import com.vci.ubcs.starter.web.constant.MdmEnumIdConstant;
+import com.vci.ubcs.starter.web.enumpck.BaseEnum;
 
 /**
  * Description:绯荤粺闆嗘垚鎺ュ彛鐨勭被鍨�
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/sysIntegrationPushTypeEnum.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/sysIntegrationPushTypeEnum.java
index e945db8..6d792ed 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/sysIntegrationPushTypeEnum.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/sysIntegrationPushTypeEnum.java
@@ -1,9 +1,9 @@
 package com.vci.ubcs.code.enumpack;
 
 
-import com.vci.ubcs.com.vci.starter.annotation.VciEnum;
-import com.vci.ubcs.com.vci.starter.web.constant.MdmEnumIdConstant;
-import com.vci.ubcs.com.vci.starter.web.enumpck.BaseEnum;
+import com.vci.ubcs.starter.annotation.VciEnum;
+import com.vci.ubcs.starter.web.constant.MdmEnumIdConstant;
+import com.vci.ubcs.starter.web.enumpck.BaseEnum;
 
 @VciEnum(name = MdmEnumIdConstant.SYS_INTEGRATION_PUSH_TYPE,text = "绯荤粺鎺ュ彛鎺ㄩ�佹柟寮�",description = "")
 public enum sysIntegrationPushTypeEnum implements BaseEnum {
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/lifecycle/CodeRuleLC.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/lifecycle/CodeRuleLC.java
index 98a3e2c..27efdcf 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/lifecycle/CodeRuleLC.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/lifecycle/CodeRuleLC.java
@@ -1,8 +1,9 @@
 package com.vci.ubcs.code.lifecycle;
 
 
-import com.vci.ubcs.com.vci.starter.web.enumpck.BaseEnum;
+
 import com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant;
+import com.vci.ubcs.starter.web.enumpck.BaseEnum;
 
 /**
  * 缂栫爜瑙勫垯鐨勭敓鍛藉懆鏈�
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeFixedValueMapper.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeFixedValueMapper.java
index 6070d0f..393b5e4 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeFixedValueMapper.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeFixedValueMapper.java
@@ -1,7 +1,14 @@
 package com.vci.ubcs.code.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.vci.ubcs.code.entity.CodeFixedValue;
+import com.vci.ubcs.code.vo.pagemodel.CodeFixedValueVO;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.data.domain.Page;
+
+import java.util.Collection;
+import java.util.List;
 
 /**
  * 鍥哄畾鐮佹鐨勭爜鍊兼暟鎹搷浣滃眰
@@ -11,5 +18,20 @@
  */
 public interface CodeFixedValueMapper extends BaseMapper<CodeFixedValue> {
 
+	/**
+	 * 鑷畾涔夊垎椤垫煡璇�
+	 * @param codeFixedValueVO
+	 * @param page
+	 * @return
+	 */
+	List<CodeFixedValue> selectByPage(@Param("codeFixedValueVO") CodeFixedValueVO codeFixedValueVO, IPage<CodeFixedValueVO> page);
+
+	/**
+	 * 澶氭潯codefixedsecoid鐨勫垎椤垫煡璇�
+	 * @return
+	 */
+	List<CodeFixedValue> selectByPageByCodeFixedSecOid(@Param("secOids") Collection<String> secOids, IPage<CodeFixedValueVO> page);
+
+
 
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeBasicSecService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeBasicSecService.java
index 4fe4c35..e8aeda0 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeBasicSecService.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeBasicSecService.java
@@ -5,8 +5,8 @@
 import com.vci.ubcs.code.dto.CodeBasicSecDTO;
 import com.vci.ubcs.code.entity.CodeBasicSec;
 import com.vci.ubcs.code.vo.pagemodel.CodeBasicSecVO;
-import com.vci.ubcs.com.vci.starter.exception.VciBaseException;
-import com.vci.ubcs.com.vci.starter.web.pagemodel.KeyValue;
+import com.vci.ubcs.starter.exception.VciBaseException;
+import com.vci.ubcs.starter.web.pagemodel.KeyValue;
 import org.springblade.core.tool.api.R;
 
 import java.util.Collection;
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyService.java
index e07b507..a9fc3a5 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyService.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyService.java
@@ -6,10 +6,10 @@
 import com.vci.ubcs.code.entity.CodeClassify;
 import com.vci.ubcs.code.vo.CodeOsattributeVO;
 import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO;
-import com.vci.ubcs.code.vo.pagemodel.TreeQueryObject;
-import com.vci.ubcs.com.vci.starter.web.pagemodel.BaseQueryObject;
-import com.vci.ubcs.com.vci.starter.web.pagemodel.DataGrid;
-import com.vci.ubcs.com.vci.starter.web.pagemodel.Tree;
+import com.vci.ubcs.starter.revision.model.TreeQueryObject;
+import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject;
+import com.vci.ubcs.starter.web.pagemodel.DataGrid;
+import com.vci.ubcs.starter.web.pagemodel.Tree;
 import org.springblade.core.tool.api.R;
 
 import java.io.File;
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyValueService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyValueService.java
index 67c0d8d..6350c98 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyValueService.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyValueService.java
@@ -2,14 +2,17 @@
 
 
 import com.baomidou.mybatisplus.extension.service.IService;
+
 import com.vci.ubcs.code.dto.CodeClassifyValueDTO;
 import com.vci.ubcs.code.entity.CodeClassifyValue;
 import com.vci.ubcs.code.vo.pagemodel.CodeClassifyValueVO;
-import com.vci.ubcs.code.vo.pagemodel.TreeQueryObject;
-import com.vci.ubcs.com.vci.starter.exception.VciBaseException;
-import com.vci.ubcs.com.vci.starter.web.pagemodel.Tree;
+
+import com.vci.ubcs.starter.exception.VciBaseException;
+import com.vci.ubcs.starter.revision.model.TreeQueryObject;
+import com.vci.ubcs.starter.web.pagemodel.Tree;
 import org.springblade.core.tool.api.R;
 
+
 import java.util.Collection;
 import java.util.List;
 
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClstemplateService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClstemplateService.java
index b485109..71898f2 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClstemplateService.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClstemplateService.java
@@ -21,8 +21,8 @@
 import com.vci.ubcs.code.dto.CodeClstemplateDTO;
 import com.vci.ubcs.code.entity.CodeClstemplateEntity;
 import com.vci.ubcs.code.vo.CodeClstemplateVO;
-import com.vci.ubcs.code.vo.pagemodel.TreeQueryObject;
-import com.vci.ubcs.com.vci.starter.web.pagemodel.Tree;
+import com.vci.ubcs.starter.revision.model.TreeQueryObject;
+import com.vci.ubcs.starter.web.pagemodel.Tree;
 import org.springblade.core.tool.api.R;
 
 import java.util.Collection;
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeFixedValueService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeFixedValueService.java
index bb3787d..8b8a3b9 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeFixedValueService.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeFixedValueService.java
@@ -1,7 +1,17 @@
 package com.vci.ubcs.code.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.vci.ubcs.code.dto.CodeFixedValueDTO;
 import com.vci.ubcs.code.entity.CodeFixedValue;
+import com.vci.ubcs.code.vo.pagemodel.CodeFixedValueVO;
+import com.vci.ubcs.starter.exception.VciBaseException;
+import org.springblade.core.tool.api.R;
+import org.springframework.data.domain.Page;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
 
 /**
  * 鍥哄畾鐮佹鐨勭爜鍊兼湇鍔℃帴鍙�
@@ -11,5 +21,85 @@
  */
 public interface ICodeFixedValueService extends IService<CodeFixedValue> {
 
+	/**
+	 * 鏌ヨ鎵�鏈夌殑鍥哄畾鐮佹鐨勭爜鍊�
+	 * @param codeFixedValueVO 鏌ヨ鏉′欢
+	 * @param page 鍒嗛〉鍜屾帓搴�
+	 * @return 鎵ц缁撴灉
+	 * @throws VciBaseException 鏌ヨ鏉′欢鍜屽垎椤靛嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父
+	 */
+	IPage<CodeFixedValueVO> gridCodeFixedValue(CodeFixedValueVO codeFixedValueVO,IPage<CodeFixedValueVO> page) throws VciBaseException;
+
+	/**
+	 * 澧炲姞鍥哄畾鐮佹鐨勭爜鍊�
+	 * @param codeFixedValueDTO 鍥哄畾鐮佹鐨勭爜鍊兼暟鎹紶杈撳璞�
+	 * @return 鎵ц缁撴灉
+	 * @throws VciBaseException 鍙傛暟涓虹┖锛屽敮涓�椤癸紝蹇呰緭椤逛笉閫氳繃鏃朵細鎶涘嚭寮傚父
+	 */
+	boolean addSave(CodeFixedValueDTO codeFixedValueDTO) throws VciBaseException;
+
+	/**
+	 * 淇敼鍥哄畾鐮佹鐨勭爜鍊�
+	 * @param codeFixedValueDTO 鍥哄畾鐮佹鐨勭爜鍊兼暟鎹紶杈撳璞�
+	 * @return 鎵ц缁撴灉
+	 * @throws VciBaseException 鍙傛暟涓虹┖锛屽敮涓�椤癸紝蹇呰緭椤逛笉閫氳繃鏃朵細鎶涘嚭寮傚父
+	 */
+	boolean editSave(CodeFixedValueDTO codeFixedValueDTO) throws VciBaseException;
+
+	/**
+	 * 鍒犻櫎鍥哄畾鐮佹鐨勭爜鍊�
+	 * @param codeFixedValueDTO 鍥哄畾鐮佹鐨勭爜鍊兼暟鎹紶杈撳璞★紝oid鍜宼s闇�瑕佷紶杈�
+	 * @return 鍒犻櫎缁撴灉鍙嶉锛氾細success锛氭垚鍔燂紝fail锛氬け璐�
+	 * @throws VciBaseException 鍙傛暟涓虹┖锛岃寮曠敤鏃舵姏鍑哄紓甯�
+	 */
+	R deleteCodeFixedValue(CodeFixedValueDTO codeFixedValueDTO) throws VciBaseException;
+
+	/**
+	 * 涓婚敭鑾峰彇鍥哄畾鐮佹鐨勭爜鍊�
+	 * @param oid 涓婚敭
+	 * @return 鍥哄畾鐮佹鐨勭爜鍊兼樉绀哄璞�
+	 * @throws VciBaseException 鍙傛暟涓虹┖锛屾暟鎹笉瀛樺湪鏃朵細鎶涘嚭寮傚父
+	 */
+	CodeFixedValueVO getObjectByOid(String oid) throws VciBaseException;
+
+	/**
+	 * 涓婚敭鎵归噺鑾峰彇鍥哄畾鐮佹鐨勭爜鍊�
+	 * @param oidCollections 涓婚敭闆嗗悎锛屼絾鏄彈鎬ц兘褰卞搷锛屽缓璁竴娆℃煡璇笉瓒呰繃10000涓�
+	 * @return 鍥哄畾鐮佹鐨勭爜鍊兼樉绀哄璞�
+	 * @throws VciBaseException 鏌ヨ鍑虹幇寮傚父鏃朵細鎶涘嚭
+	 */
+	Collection<CodeFixedValueVO> listCodeFixedValueByOids(Collection<String> oidCollections) throws VciBaseException;
+
+	/**
+	 * 鍙傜収鍥哄畾鐮佹鐨勭爜鍊煎垪琛�
+	 * @param codeFixedValueVO 鏌ヨ鏉′欢
+	 * @param page 鍒嗛〉鍜屾帓搴�
+	 * @return 鍥哄畾鐮佹鐨勭爜鍊兼樉绀哄璞″垪琛紝鐢熸晥鐨勫唴瀹�
+	 * @throws VciBaseException 鏌ヨ鏉′欢鍜屽垎椤靛嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父
+	 */
+	IPage<CodeFixedValueVO> refDataGridCodeFixedValue(CodeFixedValueVO codeFixedValueVO, IPage<CodeFixedValueVO> page) throws VciBaseException;
+
+	/**
+	 * 浣跨敤鐮佹鐨勪富閿幏鍙栧浐瀹氱爜鐨勭爜鍊�
+	 * @param secOidCollection 鐮佹鐨勪富閿�
+	 * @return 鐮佸�兼樉绀哄璞�
+	 * @throws VciBaseException 鏌ヨ鐨勬椂鍊欏嚭鐜颁簡閿欒浼氭姏鍑哄紓甯�
+	 */
+	Map<String,List<CodeFixedValueVO>> listCodeFixedValueBySecOids(Collection<String> secOidCollection) throws VciBaseException;
+
+	/**
+	 * 鎵归噺娣诲姞鍥哄畾鐮佹鐨勭爜鍊硷紝濡傛灉淇濆瓨鐨勯泦鍚堜腑涓嶅瓨鍦ㄥ凡鍦ㄦ暟鎹簱涓殑鐮佸�煎垯鍒犻櫎銆備富瑕佹槸淇濆瓨鐮佸�肩殑搴忓彿
+	 * @param dtoList 鍥哄畾鐮佹鐨勭爜鍊煎垪琛�
+	 * @param codefixedsecoid 鍥哄畾鐮佹鐨勪富閿�
+	 * @return 鎵ц缁撴灉
+	 */
+	R<CodeFixedValueVO> batchSave4Order(List<CodeFixedValueDTO> dtoList, String codefixedsecoid);
+
+	/**
+	 * 鏍规嵁鐮佹涓婚敭鍒犻櫎鍏跺瓨鍦ㄧ殑鐮佸�煎璞�
+	 * @param codefixedsecoid 鍥哄畾鐮佹鐨勪富閿�
+	 * @return 鎵ц缁撴灉
+	 */
+	boolean batchDeleteBySecOid(String codefixedsecoid);
 
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeRuleService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeRuleService.java
index dd5694a..3459537 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeRuleService.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeRuleService.java
@@ -22,7 +22,8 @@
 import com.vci.ubcs.code.entity.CodeRule;
 import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO;
 import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO;
-import com.vci.ubcs.com.vci.starter.exception.VciBaseException;
+
+import com.vci.ubcs.starter.exception.VciBaseException;
 import org.springblade.core.tool.api.R;
 
 import java.util.Collection;
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java
index 55478c2..6237099 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java
@@ -11,7 +11,7 @@
 import com.vci.ubcs.code.entity.CodeClassify;
 import com.vci.ubcs.code.entity.CodeClassifyValue;
 import com.vci.ubcs.code.entity.CodeFixedValue;
-import com.vci.ubcs.code.enumpack.CodeSecTypeEnum;
+import com.vci.ubcs.code.enumpack.*;
 import com.vci.ubcs.code.lifecycle.CodeRuleLC;
 import com.vci.ubcs.code.mapper.CodeBasicSecMapper;
 import com.vci.ubcs.code.mapper.CodeClassifyValueMapper;
@@ -22,16 +22,17 @@
 import com.vci.ubcs.code.vo.pagemodel.CodeBasicSecVO;
 import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO;
 import com.vci.ubcs.code.wrapper.CodeBasicSecWrapper;
-import com.vci.ubcs.com.vci.starter.exception.VciBaseException;
-import com.vci.ubcs.com.vci.starter.revision.service.RevisionModelUtil;
-import com.vci.ubcs.com.vci.starter.web.enumpck.OsCodeFillTypeEnum;
-import com.vci.ubcs.com.vci.starter.web.pagemodel.KeyValue;
-import com.vci.ubcs.com.vci.starter.web.pagemodel.UIFormReferVO;
-import com.vci.ubcs.com.vci.starter.web.util.BeanUtilForVCI;
-import com.vci.ubcs.com.vci.starter.web.util.VciBaseUtil;
-import com.vci.ubcs.com.vci.starter.web.util.WebUtil;
+import com.vci.ubcs.starter.exception.VciBaseException;
+import com.vci.ubcs.starter.revision.service.RevisionModelUtil;
+import com.vci.ubcs.starter.web.enumpck.OsCodeFillTypeEnum;
+import com.vci.ubcs.starter.web.pagemodel.KeyValue;
+import com.vci.ubcs.starter.web.pagemodel.UIFormReferVO;
+import com.vci.ubcs.starter.web.util.BeanUtilForVCI;
+import com.vci.ubcs.starter.web.util.VciBaseUtil;
+import com.vci.ubcs.starter.web.util.WebUtil;
 import com.vci.ubcs.system.entity.DictBiz;
 import com.vci.ubcs.system.feign.IDictBizClient;
+import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springframework.context.annotation.Lazy;
@@ -160,8 +161,8 @@
 	 */
 	@Override
 	public KeyValue checkAttrNullableBySecType(CodeBasicSecDTO codeBasicSecDTO) {
-		VciBaseUtil.alertNotNull(codeBasicSecDTO.getSectype(), "鐮佹鍒嗙被");
-		String secType = codeBasicSecDTO.getSectype();
+		VciBaseUtil.alertNotNull(codeBasicSecDTO.getSecType(), "鐮佹鍒嗙被");
+		String secType = codeBasicSecDTO.getSecType();
 		HashMap<String, String> attrMap = JSONObject.parseObject(JSONObject.toJSONString(codeBasicSecDTO), HashMap.class);
 		Map<String, String> notNullableAttr = getNotNullableAttr(secType);
 		if (notNullableAttr == null) {
@@ -204,6 +205,22 @@
 		//灏咲TO杞崲涓篋O
 		CodeBasicSec codeBasicSecDO = new CodeBasicSec();
 		BeanUtilForVCI.copyPropertiesIgnoreCase(codeBasicSecDTO, codeBasicSecDO);
+		//text杞崲
+		codeBasicSecDO.setSecTypeText(CodeSecTypeEnum.getTextByValue(codeBasicSecDTO.getSecType()));
+		codeBasicSecDO.setCodeLevelTypeText(CodeLevelTypeEnum.getTextByValue(codeBasicSecDTO.getCodeLevelType()));
+		codeBasicSecDO.setCodeSecLengthTypeText(CodeSecLengthTypeEnum.getTextByValue(codeBasicSecDTO.getCodeSecLengthType()));
+		codeBasicSecDO.setValueCutTypeText(CodeCutTypeEnum.getValueByText(codeBasicSecDTO.getValueCutType()));
+		codeBasicSecDO.setCodeGetValueTypeText(CodeGetValueTypeEnum.getValueByText(codeBasicSecDTO.getCodeGetValueType()));
+		//濉厖涓�浜涢粯璁ゅ��
+		codeBasicSecDO.setOid(VciBaseUtil.getPk());
+		codeBasicSecDO.setRevisionOid(VciBaseUtil.getPk());
+		codeBasicSecDO.setNameOid(VciBaseUtil.getPk());
+		codeBasicSecDO.setBtmname(MdmBtmTypeConstant.CODE_BASIC_SEC);
+		codeBasicSecDO.setTs(new Date());
+		codeBasicSecDO.setCreateTime(new Date());
+		codeBasicSecDO.setCreator(AuthUtil.getUserId().toString());
+		codeBasicSecDO.setLastModifier(AuthUtil.getUserId().toString());
+		codeBasicSecDO.setLastModifyTime(new Date());
 		//鎺掑簭鍙凤紝榛樿绛変簬褰撳墠宸叉湁鐨勬暟閲忓姞1
 		Long total = codeBasicSecMapper.selectCount(Wrappers.<CodeBasicSec>query()
 			.lambda()
@@ -288,6 +305,7 @@
 			resBoolean = codeBasicSecMapper.updateById(codeBasicSecDO)>0;
 			//SessionInfo sessionInfo = VciBaseUtil.getCurrentUserSessionInfo();
 			if(StringUtils.isNotBlank(codeBasicSecDO.getCodeFillSeparator())){
+				//杩欏効鐩墠闇�瑕佹敼 2023/4/24
 				DictBiz dictBiz = new DictBiz();
 				dictBiz.setCode(MdmBtmTypeConstant.CODE_BASIC_SEC);
 				dictBiz.setDictKey("codefileseparator");
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java
index f26c5de..6547785 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java
@@ -5,7 +5,8 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
-import com.vci.ubcs.code.bo.TreeWrapperOptions;
+import com.vci.ubcs.starter.revision.model.TreeQueryObject;
+import com.vci.ubcs.starter.revision.model.TreeWrapperOptions;
 import com.vci.ubcs.code.entity.CodeClassify;
 import com.vci.ubcs.code.entity.CodeClstemplateEntity;
 import com.vci.ubcs.code.entity.CodeOsbtmtypeEntity;
@@ -24,27 +25,26 @@
 import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO;
 import com.vci.ubcs.code.vo.pagemodel.CodeKeyAttrRepeatRuleVO;
 import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO;
-import com.vci.ubcs.code.vo.pagemodel.TreeQueryObject;
-import com.vci.ubcs.com.vci.starter.bo.WriteExcelData;
-import com.vci.ubcs.com.vci.starter.exception.VciBaseException;
-import com.vci.ubcs.com.vci.starter.poi.bo.ReadExcelOption;
-import com.vci.ubcs.com.vci.starter.poi.bo.WriteExcelOption;
-import com.vci.ubcs.com.vci.starter.poi.constant.ExcelLangCodeConstant;
-import com.vci.ubcs.com.vci.starter.poi.util.ExcelUtil;
-import com.vci.ubcs.com.vci.starter.revision.service.RevisionModelUtil;
-import com.vci.ubcs.com.vci.starter.util.LocalFileUtil;
-import com.vci.ubcs.com.vci.starter.web.pagemodel.BaseQueryObject;
-import com.vci.ubcs.com.vci.starter.web.pagemodel.DataGrid;
-import com.vci.ubcs.com.vci.starter.web.pagemodel.Tree;
-import com.vci.ubcs.com.vci.starter.web.util.BeanUtilForVCI;
-import com.vci.ubcs.com.vci.starter.web.util.LangBaseUtil;
-import com.vci.ubcs.com.vci.starter.web.util.VciBaseUtil;
+import com.vci.ubcs.starter.revision.model.TreeQueryObject;
+import com.vci.ubcs.starter.bo.WriteExcelData;
+import com.vci.ubcs.starter.exception.VciBaseException;
+import com.vci.ubcs.starter.poi.bo.ReadExcelOption;
+import com.vci.ubcs.starter.poi.bo.WriteExcelOption;
+import com.vci.ubcs.starter.poi.constant.ExcelLangCodeConstant;
+import com.vci.ubcs.starter.poi.util.ExcelUtil;
+import com.vci.ubcs.starter.revision.service.RevisionModelUtil;
+import com.vci.ubcs.starter.util.LocalFileUtil;
+import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject;
+import com.vci.ubcs.starter.web.pagemodel.DataGrid;
+import com.vci.ubcs.starter.web.pagemodel.Tree;
+import com.vci.ubcs.starter.web.util.BeanUtilForVCI;
+import com.vci.ubcs.starter.web.util.LangBaseUtil;
+import com.vci.ubcs.starter.web.util.VciBaseUtil;
 import org.springblade.core.log.exception.ServiceException;
 import org.apache.poi.hssf.util.HSSFColor;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springblade.core.cache.utils.CacheUtil;
-import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyValueServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyValueServiceImpl.java
index 0e33f97..e9749c9 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyValueServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyValueServiceImpl.java
@@ -4,7 +4,6 @@
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.vci.ubcs.code.bo.TreeWrapperOptions;
 import com.vci.ubcs.code.dto.CodeClassifyValueDTO;
 import com.vci.ubcs.code.entity.CodeClassifyValue;
 import com.vci.ubcs.code.enumpack.FrameworkDataLCStatus;
@@ -12,13 +11,14 @@
 import com.vci.ubcs.code.service.ICodeBasicSecService;
 import com.vci.ubcs.code.service.ICodeClassifyValueService;
 import com.vci.ubcs.code.vo.pagemodel.CodeClassifyValueVO;
-import com.vci.ubcs.code.vo.pagemodel.TreeQueryObject;
 import com.vci.ubcs.code.wrapper.CodeClassifyValueWrapper;
-import com.vci.ubcs.com.vci.starter.exception.VciBaseException;
-import com.vci.ubcs.com.vci.starter.revision.service.RevisionModelUtil;
-import com.vci.ubcs.com.vci.starter.web.pagemodel.Tree;
-import com.vci.ubcs.com.vci.starter.web.util.BeanUtilForVCI;
-import com.vci.ubcs.com.vci.starter.web.util.VciBaseUtil;
+import com.vci.ubcs.starter.exception.VciBaseException;
+import com.vci.ubcs.starter.revision.model.TreeQueryObject;
+import com.vci.ubcs.starter.revision.model.TreeWrapperOptions;
+import com.vci.ubcs.starter.revision.service.RevisionModelUtil;
+import com.vci.ubcs.starter.web.pagemodel.Tree;
+import com.vci.ubcs.starter.web.util.BeanUtilForVCI;
+import com.vci.ubcs.starter.web.util.VciBaseUtil;
 import org.springblade.core.tool.api.R;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
@@ -251,7 +251,7 @@
 	 * @throws VciBaseException 鏌ヨ鏉′欢鍜屽垎椤靛嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父
 	 */
 	@Override
-	public List<Tree> referTree(TreeQueryObject treeQueryObject)  throws VciBaseException{
+	public List<Tree> referTree(TreeQueryObject treeQueryObject)  throws VciBaseException {
 		if(treeQueryObject == null){
 			treeQueryObject = new TreeQueryObject();
 		}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstempattrServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstempattrServiceImpl.java
index 05ae817..404f4d4 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstempattrServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstempattrServiceImpl.java
@@ -22,9 +22,10 @@
 import com.vci.ubcs.code.mapper.CodeClstempattrMapper;
 import com.vci.ubcs.code.service.ICodeClstempattrService;
 import com.vci.ubcs.code.vo.CodeClstempattrVO;
-import com.vci.ubcs.com.vci.starter.web.enumpck.VciFieldTypeEnum;
-import com.vci.ubcs.com.vci.starter.web.util.BeanUtilForVCI;
-import com.vci.ubcs.com.vci.starter.web.util.VciBaseUtil;
+
+import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum;
+import com.vci.ubcs.starter.web.util.BeanUtilForVCI;
+import com.vci.ubcs.starter.web.util.VciBaseUtil;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstemplateServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstemplateServiceImpl.java
index 632c040..c2f8b5e 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstemplateServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstemplateServiceImpl.java
@@ -19,7 +19,6 @@
 import com.alibaba.nacos.api.utils.StringUtils;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.vci.ubcs.code.bo.TreeWrapperOptions;
 import com.vci.ubcs.code.dto.CodeClstemplateDTO;
 import com.vci.ubcs.code.entity.CodeClstempattrEntity;
 import com.vci.ubcs.code.entity.CodeClstemplateEntity;
@@ -30,12 +29,15 @@
 import com.vci.ubcs.code.service.ICodeClstemplateService;
 import com.vci.ubcs.code.vo.CodeClstempattrVO;
 import com.vci.ubcs.code.vo.CodeClstemplateVO;
-import com.vci.ubcs.code.vo.pagemodel.TreeQueryObject;
-import com.vci.ubcs.com.vci.starter.exception.VciBaseException;
-import com.vci.ubcs.com.vci.starter.revision.service.RevisionModelUtil;
-import com.vci.ubcs.com.vci.starter.web.pagemodel.Tree;
-import com.vci.ubcs.com.vci.starter.web.util.BeanUtilForVCI;
-import com.vci.ubcs.com.vci.starter.web.util.VciBaseUtil;
+import com.vci.ubcs.starter.exception.VciBaseException;
+import com.vci.ubcs.starter.revision.model.TreeQueryObject;
+
+
+import com.vci.ubcs.starter.revision.model.TreeWrapperOptions;
+import com.vci.ubcs.starter.revision.service.RevisionModelUtil;
+import com.vci.ubcs.starter.web.pagemodel.Tree;
+import com.vci.ubcs.starter.web.util.BeanUtilForVCI;
+import com.vci.ubcs.starter.web.util.VciBaseUtil;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.tool.api.R;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeFixedValueServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeFixedValueServiceImpl.java
index 1bf6076..3660668 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeFixedValueServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeFixedValueServiceImpl.java
@@ -1,19 +1,328 @@
 package com.vci.ubcs.code.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.vci.ubcs.code.constant.MdmBtmTypeConstant;
+import com.vci.ubcs.code.dto.CodeFixedValueDTO;
 import com.vci.ubcs.code.entity.CodeFixedValue;
 import com.vci.ubcs.code.mapper.CodeFixedValueMapper;
 import com.vci.ubcs.code.service.ICodeFixedValueService;
+import com.vci.ubcs.code.vo.pagemodel.CodeFixedValueVO;
+import com.vci.ubcs.code.wrapper.CodeFixedValueWrapper;
+import com.vci.ubcs.starter.exception.VciBaseException;
+import com.vci.ubcs.starter.revision.service.RevisionModelUtil;
+import com.vci.ubcs.starter.web.util.BeanUtilForVCI;
+import com.vci.ubcs.starter.web.util.VciBaseUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.api.R;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+
+import javax.annotation.Resource;
+import java.util.*;
+import java.util.stream.Collectors;
+
+import static com.vci.ubcs.code.constant.FrameWorkLangCodeConstant.DATA_LINKED_NOT_DELETE;
+import static com.vci.ubcs.code.constant.FrameWorkLangCodeConstant.DATA_OID_NOT_EXIST;
 
 /**
  * 鍥哄畾鐮佹鐨勭爜鍊兼湇鍔�
- * @author weidy
+ * @author ludc
  * @date 2022-01-24
  */
 @Service
 public class CodeFixedValueServiceImpl extends ServiceImpl<CodeFixedValueMapper, CodeFixedValue> implements ICodeFixedValueService {
 
+	/**
+	 * 鏁版嵁鎿嶄綔灞�
+	 */
+	@Resource
+	private CodeFixedValueMapper codeFixedValueMapper;
+
+	/**
+	 * 瀵硅薄鐨勬搷浣�
+	 */
+	@Resource
+	private RevisionModelUtil revisionModelUtil;
+
+	/**
+	 * 鏌ヨ鎵�鏈夌殑鍥哄畾鐮佹鐨勭爜鍊�
+	 * @param codeFixedValueVO 鏌ヨ鏉′欢
+	 * @param page 鍒嗛〉鍜屾帓搴�
+	 * @return 鎵ц缁撴灉
+	 * @throws VciBaseException 鏌ヨ鏉′欢鍜屽垎椤靛嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父
+	 */
+	@Override
+	public IPage<CodeFixedValueVO> gridCodeFixedValue(CodeFixedValueVO codeFixedValueVO,IPage<CodeFixedValueVO> page) throws VciBaseException{
+		String secOid = codeFixedValueVO.getCodeFixedSecOid();
+		if(StringUtils.isBlank(secOid)){
+			return null;
+		}
+		List<CodeFixedValue> doList = codeFixedValueMapper.selectByPage(codeFixedValueVO,page);
+		return page.setRecords(CodeFixedValueWrapper.build().listVO(doList));
+	}
+
+	/**
+	 * 澧炲姞鍥哄畾鐮佹鐨勭爜鍊�
+	 * @param codeFixedValueDTO 鍥哄畾鐮佹鐨勭爜鍊兼暟鎹紶杈撳璞�
+	 * @return 鎵ц缁撴灉
+	 * @throws VciBaseException 鍙傛暟涓虹┖锛屽敮涓�椤癸紝蹇呰緭椤逛笉閫氳繃鏃朵細鎶涘嚭寮傚父
+	 */
+	@Override
+	public boolean addSave(CodeFixedValueDTO codeFixedValueDTO) throws VciBaseException{
+		VciBaseUtil.alertNotNull(codeFixedValueDTO,"闇�瑕佹坊鍔犵殑鏁版嵁瀵硅薄");
+		//灏咲TO杞崲涓篋O
+		CodeFixedValue codeFixedValueDO = new CodeFixedValue();
+		BeanUtilForVCI.copyPropertiesIgnoreCase(codeFixedValueDTO,codeFixedValueDO);
+		//濉厖涓�浜涢粯璁ゅ��
+		codeFixedValueDO.setOid(VciBaseUtil.getPk());
+		codeFixedValueDO.setRevisionOid(VciBaseUtil.getPk());
+		codeFixedValueDO.setNameOid(VciBaseUtil.getPk());
+		codeFixedValueDO.setBtmname(MdmBtmTypeConstant.CODE_FIXED_VALUE);
+		codeFixedValueDO.setCreateTime(new Date());
+		codeFixedValueDO.setCreator(AuthUtil.getUserId().toString());
+		codeFixedValueDO.setLastModifier(AuthUtil.getUserId().toString());
+		codeFixedValueDO.setLastModifyTime(new Date());
+		codeFixedValueDO.setTs(new Date());
+		Long count = this.codeFixedValueMapper.selectCount(Wrappers.<CodeFixedValue>query()
+			.lambda().eq(CodeFixedValue::getCodeFixedSecOid, codeFixedValueDO.getCodeFixedSecOid())
+		)+1L;
+		codeFixedValueDO.setOrderNum(count.intValue());
+		boolean resBoolean = this.codeFixedValueMapper.insert(codeFixedValueDO) > 0;
+		return resBoolean;
+	}
+
+	/**
+	 * 淇敼鍥哄畾鐮佹鐨勭爜鍊�
+	 * @param codeFixedValueDTO 鍥哄畾鐮佹鐨勭爜鍊兼暟鎹紶杈撳璞�
+	 * @return 鎵ц缁撴灉
+	 * @throws VciBaseException 鍙傛暟涓虹┖锛屽敮涓�椤癸紝蹇呰緭椤逛笉閫氳繃鏃朵細鎶涘嚭寮傚父
+	 */
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public boolean editSave(CodeFixedValueDTO codeFixedValueDTO) throws VciBaseException{
+		VciBaseUtil.alertNotNull(codeFixedValueDTO,"鏁版嵁瀵硅薄",codeFixedValueDTO.getOid(),"鍥哄畾鐮佹鐨勭爜鍊间富閿�");
+		//灏咲TO杞崲涓篋O
+		CodeFixedValue codeFixedValueDO = selectByOid(codeFixedValueDTO.getOid());
+		revisionModelUtil.copyFromDTOIgnore(codeFixedValueDTO,codeFixedValueDO);
+		//濉厖涓�浜涢粯璁ゅ��
+		codeFixedValueDO.setLastModifier(AuthUtil.getUserId().toString());
+		codeFixedValueDO.setLastModifyTime(new Date());
+		codeFixedValueDO.setTs(new Date());
+		boolean resBoolean = codeFixedValueMapper.updateById(codeFixedValueDO) > 0;
+		return resBoolean;
+	}
+
+	/**
+	 * 鏍¢獙鏄惁鍙互鍒犻櫎锛屽鏋滃瓨鍦ㄤ笅绾э紝骞朵笖涓嬬骇鏈夋暟鎹紩鐢ㄥ垯涓嶈兘鍒犻櫎
+	 * @param codeFixedValueDTO 鏁版嵁浼犺緭瀵硅薄
+	 * @param codeFixedValueDO 鏁版嵁搴撲腑鐨勬暟鎹璞�
+	 * @return success涓簍rue涓哄彲浠ュ垹闄わ紝false琛ㄧず鏈夋暟鎹紩鐢紝obj涓簍rue琛ㄧず鏈変笅绾�
+	 */
+	private R checkIsCanDeleteForDO(CodeFixedValueDTO codeFixedValueDTO, CodeFixedValue codeFixedValueDO) {
+		//boService.checkTs(codeFixedValueDTO);
+		if(!checkIsLinked(codeFixedValueDO.getOid())) {
+			return R.status(true);
+		}else{
+			return R.fail(DATA_LINKED_NOT_DELETE);
+		}
+	}
+
+	/**
+	 * 鏍¢獙鏄惁琚紩鐢�
+	 * @param oid 涓婚敭
+	 * @throws VciBaseException 琚紩鐢ㄧ殑鏃跺�欎細鎶涘嚭寮傚父
+	 */
+	private boolean checkIsLinked(String oid) throws VciBaseException{
+		//TODO 娣诲姞闇�瑕佹牎楠屽紩鐢ㄧ殑鍦版柟
+		return false;
+	}
+
+	/**
+	 * 鍒犻櫎鍥哄畾鐮佹鐨勭爜鍊�
+	 * @param codeFixedValueDTO 鍥哄畾鐮佹鐨勭爜鍊兼暟鎹紶杈撳璞★紝oid鍜宼s闇�瑕佷紶杈�
+	 * @return 鍒犻櫎缁撴灉鍙嶉锛氾細success锛氭垚鍔燂紝fail锛氬け璐�
+	 * @throws VciBaseException 鍙傛暟涓虹┖锛岃寮曠敤鏃舵姏鍑哄紓甯�
+	 */
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public R deleteCodeFixedValue(CodeFixedValueDTO codeFixedValueDTO) throws VciBaseException {
+		VciBaseUtil.alertNotNull(codeFixedValueDTO,"鍥哄畾鐮佹鐨勭爜鍊兼暟鎹璞�",codeFixedValueDTO.getOid(),"鍥哄畾鐮佹鐨勭爜鍊肩殑涓婚敭");
+		CodeFixedValue codeFixedValueDO = selectByOid(codeFixedValueDTO.getOid());
+		R baseResult = checkIsCanDeleteForDO(codeFixedValueDTO,codeFixedValueDO);
+		if(!baseResult.isSuccess()) {
+			return baseResult;
+		}
+		//鎵ц鍒犻櫎鎿嶄綔
+		boolean resBoolean = codeFixedValueMapper.deleteById(codeFixedValueDO.getOid())>0;
+		return R.status(resBoolean);
+	}
+
+	/**
+	 * 涓婚敭鑾峰彇鍥哄畾鐮佹鐨勭爜鍊�
+	 * @param oid 涓婚敭
+	 * @return 鍥哄畾鐮佹鐨勭爜鍊兼樉绀哄璞�
+	 * @throws VciBaseException 鍙傛暟涓虹┖锛屾暟鎹笉瀛樺湪鏃朵細鎶涘嚭寮傚父
+	 */
+	@Override
+	public CodeFixedValueVO getObjectByOid(String oid) throws VciBaseException{
+		return CodeFixedValueWrapper.build().entityVO(selectByOid(oid));
+	}
+
+	/**
+	 * 涓婚敭鏌ヨ鏁版嵁瀵硅薄
+	 * @param oid 涓婚敭
+	 * @return  鏁版嵁瀵硅薄
+	 * @throws VciBaseException 鍙傛暟涓虹┖锛屽苟涓旀暟鎹笉瀛樺湪鐨勬椂鍊欎細鎶涘嚭寮傚父
+	 */
+	private CodeFixedValue selectByOid(String oid) throws VciBaseException{
+		VciBaseUtil.alertNotNull(oid,"涓婚敭");
+		CodeFixedValue codeFixedValueDO = codeFixedValueMapper.selectById(oid.trim());
+		if(codeFixedValueDO == null || StringUtils.isBlank(codeFixedValueDO.getOid())){
+			throw new VciBaseException(DATA_OID_NOT_EXIST);
+		}
+		return codeFixedValueDO;
+	}
+
+	/**
+	 * 涓婚敭鎵归噺鑾峰彇鍥哄畾鐮佹鐨勭爜鍊�
+	 * @param oidCollections 涓婚敭闆嗗悎锛屼絾鏄彈鎬ц兘褰卞搷锛屽缓璁竴娆℃煡璇笉瓒呰繃10000涓�
+	 * @return 鍥哄畾鐮佹鐨勭爜鍊兼樉绀哄璞�
+	 * @throws VciBaseException 鏌ヨ鍑虹幇寮傚父鏃朵細鎶涘嚭
+	 */
+	@Override
+	public Collection<CodeFixedValueVO> listCodeFixedValueByOids(Collection<String> oidCollections) throws VciBaseException {
+		VciBaseUtil.alertNotNull(oidCollections,"鏁版嵁瀵硅薄涓婚敭闆嗗悎");
+		List<CodeFixedValue> codeFixedValueDOList = listCodeFixedValueDOByOidCollections(oidCollections);
+		return CodeFixedValueWrapper.build().listVO(codeFixedValueDOList);
+	}
+
+	/**
+	 * 浣跨敤涓婚敭闆嗗悎鏌ヨ鏁版嵁瀵硅薄
+	 * @param oidCollections 涓婚敭鐨勯泦鍚�
+	 * @return 鏁版嵁瀵硅薄鍒楄〃
+	 */
+	private List<CodeFixedValue> listCodeFixedValueDOByOidCollections(Collection<String> oidCollections){
+		List<CodeFixedValue> codeFixedValueDOList = new ArrayList<>();
+		if(!CollectionUtils.isEmpty(oidCollections)){
+			Collection<Collection<String>> oidCollectionsList = VciBaseUtil.switchCollectionForOracleIn(oidCollections);
+			for(Collection<String> oids: oidCollectionsList){
+				List<CodeFixedValue> tempDOList =  codeFixedValueMapper.selectBatchIds(oids);
+				if(!CollectionUtils.isEmpty(tempDOList)){
+					codeFixedValueDOList.addAll(tempDOList);
+				}
+			}
+		}
+		return  codeFixedValueDOList;
+	}
+
+	/**
+	 * 鍙傜収鍥哄畾鐮佹鐨勭爜鍊煎垪琛�
+	 * @param codeFixedValueVO 鏌ヨ鏉′欢
+	 * @param page 鍒嗛〉鍜屾帓搴�
+	 * @return 鍥哄畾鐮佹鐨勭爜鍊兼樉绀哄璞″垪琛紝鐢熸晥鐨勫唴瀹�
+	 * @throws VciBaseException 鏌ヨ鏉′欢鍜屽垎椤靛嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父
+	 */
+	@Override
+	public IPage<CodeFixedValueVO> refDataGridCodeFixedValue(CodeFixedValueVO codeFixedValueVO,IPage<CodeFixedValueVO> page) throws VciBaseException{
+		return gridCodeFixedValue(codeFixedValueVO,page);
+	}
+
+	/**
+	 * 浣跨敤鐮佹鐨勪富閿幏鍙栧浐瀹氱爜鐨勭爜鍊�
+	 *
+	 * @param secOidCollection 鐮佹鐨勪富閿�
+	 * @return 鐮佸�兼樉绀哄璞�
+	 * @throws VciBaseException 鏌ヨ鐨勬椂鍊欏嚭鐜颁簡閿欒浼氭姏鍑哄紓甯�
+	 */
+	@Override
+	public Map<String, List<CodeFixedValueVO>> listCodeFixedValueBySecOids(Collection<String> secOidCollection) throws VciBaseException {
+		if(CollectionUtils.isEmpty(secOidCollection)){
+			return  new HashMap<>();
+		}
+		List<CodeFixedValueVO> voList = new ArrayList<>();
+		VciBaseUtil.switchCollectionForOracleIn(secOidCollection).forEach(secOids->{
+			Query query = new Query();
+			query.setDescs("orderNum");
+			query.setSize(-1);
+			query.setCurrent(1);
+			List<CodeFixedValue> valueDOS = this.codeFixedValueMapper.selectByPageByCodeFixedSecOid(secOids,Condition.getPage(query));
+			voList.addAll(CodeFixedValueWrapper.build().listVO(Optional.ofNullable(valueDOS).orElseGet(() -> new ArrayList<>())));
+		});
+		return voList.stream().collect(Collectors.groupingBy(CodeFixedValueVO::getCodeFixedSecOid));
+	}
+
+	/**
+	 * 鎵归噺娣诲姞鍥哄畾鐮佹鐨勭爜鍊硷紝濡傛灉淇濆瓨鐨勯泦鍚堜腑涓嶅瓨鍦ㄥ凡鍦ㄦ暟鎹簱涓殑鐮佸�煎垯鍒犻櫎銆備富瑕佹槸淇濆瓨鐮佸�肩殑搴忓彿
+	 * @param dtoList 鍥哄畾鐮佹鐨勭爜鍊煎垪琛�
+	 * @param codefixedsecoid 鍥哄畾鐮佹鐨勪富閿�
+	 * @return 鎵ц缁撴灉
+	 */
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public R<CodeFixedValueVO> batchSave4Order(List<CodeFixedValueDTO> dtoList, String codefixedsecoid) {
+		VciBaseUtil.alertNotNull(codefixedsecoid,"鍥哄畾鐮佹涓婚敭");
+		List<CodeFixedValue> doList = codeFixedValueMapper.selectList(Wrappers.<CodeFixedValue>query()
+			.lambda().eq(CodeFixedValue::getCodeFixedSecOid,codefixedsecoid)
+		);
+		List<CodeFixedValue> updateList = new ArrayList<>();
+		List<String> deleteOidList = new ArrayList<>();
+		dtoList.forEach(dto -> {
+			if (StringUtils.isNotBlank(dto.getOid())){
+				List<CodeFixedValue> valueDOList = doList.stream().filter(value -> {
+					return value.getOid().equals(dto.getOid());
+				}).collect(Collectors.toList());
+				valueDOList.forEach(valueDO -> {
+					valueDO.setId(dto.getId());
+					valueDO.setName(dto.getName());
+					valueDO.setOrderNum(dto.getOrderNum());
+					updateList.add(valueDO);
+				});
+			}else{
+				throw new VciBaseException("鍥哄畾鐮佹涓婚敭涓嶈兘涓虹┖");
+			}
+		});
+		if (doList.size() != dtoList.size()){
+			List<String> oidList = dtoList.stream().map(CodeFixedValueDTO::getOid).collect(Collectors.toList());
+			List<CodeFixedValue> deleteList = new ArrayList<>();
+			for (CodeFixedValue value : doList) {
+				if (!oidList.contains(value.getOid())){
+					deleteList.add(value);
+				}
+			}
+			deleteOidList = deleteList.stream().map(CodeFixedValue::getOid).collect(Collectors.toList());
+		}
+		boolean resBooleanUpdate = this.updateBatchById(updateList);
+		if (!CollectionUtils.isEmpty(deleteOidList)) {
+			codeFixedValueMapper.deleteBatchIds(deleteOidList);
+		}
+		return R.status(resBooleanUpdate);
+	}
+
+	/**
+	 * 鏍规嵁鐮佹涓婚敭鍒犻櫎鍏跺瓨鍦ㄧ殑鐮佸�煎璞�
+	 * @param codefixedsecoid 鍥哄畾鐮佹鐨勪富閿�
+	 * @return 鎵ц缁撴灉
+	 */
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public boolean batchDeleteBySecOid(String codefixedsecoid) {
+		VciBaseUtil.alertNotNull(codefixedsecoid,"鍥哄畾鐮佹涓婚敭");
+		List<CodeFixedValue> doList = codeFixedValueMapper.selectList(Wrappers.<CodeFixedValue>query()
+			.lambda().eq(CodeFixedValue::getCodeFixedSecOid,codefixedsecoid)
+		);
+		boolean resBoolean = codeFixedValueMapper.deleteBatchIds(doList.stream().map(CodeFixedValue::getOid).collect(Collectors.toList())) > 0;
+		return resBoolean;
+	}
 
 
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeKeyattrrepeatServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeKeyattrrepeatServiceImpl.java
index 7c44be8..0d51c52 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeKeyattrrepeatServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeKeyattrrepeatServiceImpl.java
@@ -22,8 +22,8 @@
 import com.vci.ubcs.code.mapper.CodeKeyattrrepeatMapper;
 import com.vci.ubcs.code.service.ICodeKeyattrrepeatService;
 import com.vci.ubcs.code.vo.pagemodel.CodeKeyAttrRepeatRuleVO;
-import com.vci.ubcs.com.vci.starter.web.util.BeanUtilForVCI;
-import com.vci.ubcs.com.vci.starter.web.util.VciBaseUtil;
+import com.vci.ubcs.starter.web.util.BeanUtilForVCI;
+import com.vci.ubcs.starter.web.util.VciBaseUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeRuleServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeRuleServiceImpl.java
index fd7c939..3049bac 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeRuleServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeRuleServiceImpl.java
@@ -36,12 +36,12 @@
 import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO;
 import com.vci.ubcs.code.wrapper.CodeClassifyWrapper;
 import com.vci.ubcs.code.wrapper.CodeRuleWrapper;
-import com.vci.ubcs.com.vci.starter.exception.VciBaseException;
-import com.vci.ubcs.com.vci.starter.revision.service.RevisionModelUtil;
-import com.vci.ubcs.com.vci.starter.web.pagemodel.KeyValue;
-import com.vci.ubcs.com.vci.starter.web.util.BeanUtilForVCI;
-import com.vci.ubcs.com.vci.starter.web.util.VciBaseUtil;
-import com.vci.ubcs.com.vci.starter.web.util.WebUtil;
+import com.vci.ubcs.starter.exception.VciBaseException;
+import com.vci.ubcs.starter.revision.service.RevisionModelUtil;
+import com.vci.ubcs.starter.web.pagemodel.KeyValue;
+import com.vci.ubcs.starter.web.util.BeanUtilForVCI;
+import com.vci.ubcs.starter.web.util.VciBaseUtil;
+import com.vci.ubcs.starter.web.util.WebUtil;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
@@ -113,12 +113,13 @@
 	 * @throws VciBaseException 鍙傛暟涓虹┖锛屽敮涓�椤癸紝蹇呰緭椤逛笉閫氳繃鏃朵細鎶涘嚭寮傚父
 	 */
 	@Override
-	public boolean addSave(CodeRuleDTO codeRuleDTO) throws VciBaseException{
+	public boolean addSave(CodeRuleDTO codeRuleDTO) throws VciBaseException {
 		VciBaseUtil.alertNotNull(codeRuleDTO, "闇�瑕佹坊鍔犵殑鏁版嵁瀵硅薄");
 		//灏咲TO杞崲涓篋O
 		CodeRule codeRule = Objects.requireNonNull(BeanUtil.copy(codeRuleDTO, CodeRule.class));
 		String userId = AuthUtil.getUserId().toString();
 		codeRule.setOid(VciBaseUtil.getPk());
+
 		codeRule.setRevisionOid(VciBaseUtil.getPk());
 		codeRule.setNameOid(VciBaseUtil.getPk());
 		codeRule.setBtmname("coderule");
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeBasicSecWrapper.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeBasicSecWrapper.java
index 3e2edaa..c703da7 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeBasicSecWrapper.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeBasicSecWrapper.java
@@ -34,7 +34,7 @@
  * @author ludc
  * @since 2023-04-03
  */
-public class CodeBasicSecWrapper extends BaseEntityWrapper<CodeBasicSec, CodeBasicSecVO>  {
+public class CodeBasicSecWrapper extends BaseEntityWrapper<CodeBasicSec, CodeBasicSecVO> {
 
 	public static CodeBasicSecWrapper build() {
 		return new CodeBasicSecWrapper();
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeFixedValueWrapper.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeFixedValueWrapper.java
new file mode 100644
index 0000000..84d7706
--- /dev/null
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeFixedValueWrapper.java
@@ -0,0 +1,35 @@
+package com.vci.ubcs.code.wrapper;
+
+import com.vci.ubcs.code.entity.CodeBasicSec;
+import com.vci.ubcs.code.entity.CodeFixedValue;
+import com.vci.ubcs.code.enumpack.*;
+import com.vci.ubcs.code.vo.pagemodel.CodeBasicSecVO;
+import com.vci.ubcs.code.vo.pagemodel.CodeFixedValueVO;
+import org.springblade.core.mp.support.BaseEntityWrapper;
+import org.springblade.core.tool.utils.BeanUtil;
+
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+public class CodeFixedValueWrapper extends BaseEntityWrapper<CodeFixedValue, CodeFixedValueVO> {
+
+	public static CodeFixedValueWrapper build() {
+		return new CodeFixedValueWrapper();
+	}
+
+	@Override
+	public CodeFixedValueVO entityVO(CodeFixedValue codeFixedValue) {
+		CodeFixedValueVO codeFixedValueVO = Objects.requireNonNull(BeanUtil.copy(codeFixedValue, CodeFixedValueVO.class));
+
+		//codeFixedValueVO.setLcStatusText(CodeRuleLC.getTextByValue(codeBasicSec.getLcStatus()));
+
+		return codeFixedValueVO;
+	}
+
+	@Override
+	public List<CodeFixedValueVO> listVO(List<CodeFixedValue> list) {
+		return (List)list.stream().map(this::entityVO).collect(Collectors.toList());
+	}
+
+}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeBasicSecMapper.xml b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeBasicSecMapper.xml
index 01bf33c..9ee8a57 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeBasicSecMapper.xml
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeBasicSecMapper.xml
@@ -36,7 +36,7 @@
         <result property="getValueClass" column="GETVALUECLASS" jdbcType="VARCHAR"/>
         <result property="codeDateFormatStr" column="CODEDATEFORMATSTR" jdbcType="VARCHAR"/>
         <result property="codeSecLengthType" column="CODESECLENGTHTYPE" jdbcType="VARCHAR"/>
-        <result property="codeFillLength" column="CODESECLENGTH" jdbcType="VARCHAR"/>
+        <result property="codeSecLength" column="CODESECLENGTH" jdbcType="VARCHAR"/>
         <result property="codeLevelType" column="CODELEVELTYPE" jdbcType="VARCHAR"/>
         <result property="codeLevelValue" column="CODELEVELVALUE" jdbcType="INTEGER"/>
         <result property="valueCutLength" column="VALUECUTLENGTH" jdbcType="INTEGER"/>
@@ -66,6 +66,7 @@
         <result property="referAttributeId" column="REFERATTRIBUTEID" jdbcType="VARCHAR"/>
         <result property="referBtmName" column="REFERBTMNAME" jdbcType="VARCHAR"/>
         <result property="referBtmId" column="REFERBTMID" jdbcType="VARCHAR"/>
+        <result property="referCodeClassifyOidName" column="c__name" jdbcType="VARCHAR"/>
     </resultMap>
 
     <select id="selectCodeBasicSecPage" resultMap="CodeBasicsecMap">
@@ -143,188 +144,24 @@
             <if test="codeBasicSec.oid != null and codeBasicSec.oid != ''">
                 and PL_CODE_BASICSEC.OID = #{codeBasicSec.oid}
             </if>
-            <if test="codeBasicSec.revisionOid != null and codeBasicSec.revisionOid != ''">
-                and PL_CODE_BASICSEC.REVISIONOID = #{codeBasicSec.revisionOid}
-            </if>
-            <if test="codeBasicSec.nameOid != null and codeBasicSec.nameOid != ''">
-                and PL_CODE_BASICSEC.NAMEOID = #{codeBasicSec.nameOid}
-            </if>
-            <if test="codeBasicSec.btmname != null and codeBasicSec.btmname != ''">
-                and PL_CODE_BASICSEC.BTMNAME = #{codeBasicSec.btmname}
-            </if>
-            <if test="codeBasicSec.lastR != null and codeBasicSec.lastR != ''">
-                and PL_CODE_BASICSEC.LASTR = #{codeBasicSec.lastR}
-            </if>
-            <if test="codeBasicSec.firstR != null and codeBasicSec.firstR != ''">
-                and PL_CODE_BASICSEC.FIRSTR = #{codeBasicSec.firstR}
-            </if>
-            <if test="codeBasicSec.lastV != null and codeBasicSec.lastv != ''">
-                and PL_CODE_BASICSEC.LASTV = #{codeBasicSec.lastV}
-            </if>
-            <if test="codeBasicSec.firstV != null and codeBasicSec.firstV != ''">
-                and PL_CODE_BASICSEC.FIRSTV = #{codeBasicSec.firstV}
-            </if>
-            <if test="codeBasicSec.creator != null and codeBasicSec.creator != ''">
-                and PL_CODE_BASICSEC.CREATOR = #{codeBasicSec.creator}
-            </if>
-            <if test="codeBasicSec.createTime != null and codeBasicSec.createTime != ''">
-                and PL_CODE_BASICSEC.CREATETIME = #{codeBasicSec.createTime}
-            </if>
-            <if test="codeBasicSec.lastModifier != null and codeBasicSec.lastModifier != ''">
-                and PL_CODE_BASICSEC.LASTMODIFIER = #{codeBasicSec.lastModifier}
-            </if>
-            <if test="codeBasicSec.lastModifyTime != null and codeBasicSec.lastModifyTime != ''">
-                and PL_CODE_BASICSEC.LASTMODIFYTIME = #{codeBasicSec.lastModifyTime}
-            </if>
-            <if test="codeBasicSec.revisionRule != null and codeBasicSec.revisionRule != ''">
-                and PL_CODE_BASICSEC.REVISIONRULE = #{codeBasicSec.revisionRule}
-            </if>
-            <if test="codeBasicSec.versionRule != null and codeBasicSec.versionRule != ''">
-                and PL_CODE_BASICSEC.VERSIONRULE = #{codeBasicSec.versionRule}
-            </if>
-            <if test="codeBasicSec.revisionSeq != null">
-                and PL_CODE_BASICSEC.REVISIONSEQ = #{codeBasicSec.revisionSeq}
-            </if>
-            <if test="codeBasicSec.revisionValue != null and codeBasicSec.revisionValue != ''">
-                and PL_CODE_BASICSEC.REVISIONVALUE = #{codeBasicSec.revisionValue}
-            </if>
-            <if test="codeBasicSec.versionSeq != null">
-                and PL_CODE_BASICSEC.VERSIONSEQ = #{codeBasicSec.versionSeq}
-            </if>
-            <if test="codeBasicSec.versionValue != null and codeBasicSec.versionValue != ''">
-                and PL_CODE_BASICSEC.VERSIONVALUE = #{codeBasicSec.versionValue}
-            </if>
-            <if test="codeBasicSec.lctid != null and codeBasicSec.lctid != ''">
-                and PL_CODE_BASICSEC.LCTID = #{codeBasicSec.lctid}
-            </if>
-            <if test="codeBasicSec.lcStatus != null and codeBasicSec.lcStatus != ''">
-                and PL_CODE_BASICSEC.LCSTATUS = #{codeBasicSec.lcStatus}
-            </if>
             <if test="codeBasicSec.ts != null and codeBasicSec.ts != ''">
                 and PL_CODE_BASICSEC.TS = #{codeBasicSec.ts}
             </if>
             <if test="codeBasicSec.id != null and codeBasicSec.id != ''">
-                and PL_CODE_BASICSEC.ID = #{codeBasicSec.id}
+
+                and PL_CODE_BASICSEC.ID like CONCAT(CONCAT('%', #{codeBasicSec.id}), '%')
             </if>
             <if test="codeBasicSec.name != null and codeBasicSec.name != ''">
-                and PL_CODE_BASICSEC.NAME = #{codeBasicSec.name}
+                and PL_CODE_BASICSEC.NAME like CONCAT(CONCAT('%', #{codeBasicSec.name}), '%')
             </if>
             <if test="codeBasicSec.description != null and codeBasicSec.description != ''">
-                and PL_CODE_BASICSEC.DESCRIPTION = #{codeBasicSec.description}
-            </if>
-            <if test="codeBasicSec.owner != null and codeBasicSec.owner != ''">
-                and PL_CODE_BASICSEC.OWNER = #{codeBasicSec.owner}
-            </if>
-            <if test="codeBasicSec.copyFromVersion != null and codeBasicSec.copyFromVersion != ''">
-                and PL_CODE_BASICSEC.COPYFROMVERSION = #{codeBasicSec.copyFromVersion}
+                and PL_CODE_BASICSEC.DESCRIPTION like CONCAT(CONCAT('%', #{codeBasicSec.description}), '%')
             </if>
             <if test="codeBasicSec.secType != null and codeBasicSec.sectype != ''">
-                and PL_CODE_BASICSEC.SECTYPE = #{codeBasicSec.sectype}
+                and PL_CODE_BASICSEC.SECTYPE = #{codeBasicSec.secType}
             </if>
             <if test="codeBasicSec.pkCodeRule != null and codeBasicSec.pkCodeRule != ''">
                 and PL_CODE_BASICSEC.PKCODERULE = #{codeBasicSec.pkCodeRule}
-            </if>
-            <if test="codeBasicSec.orderNum != null">
-                and PL_CODE_BASICSEC.ORDERNUM = #{codeBasicSec.orderNum}
-            </if>
-            <if test="codeBasicSec.getValueClass != null and codeBasicSec.getValueClass != ''">
-                and PL_CODE_BASICSEC.GETVALUECLASS = #{codeBasicSec.getValueClass}
-            </if>
-            <if test="codeBasicSec.codeDateFormatStr != null and codeBasicSec.codeDateFormatStr != ''">
-                and PL_CODE_BASICSEC.CODEDATEFORMATSTR = #{codeBasicSec.codeDateFormatStr}
-            </if>
-            <if test="codeBasicSec.codeSecLengthType != null and codeBasicSec.codeSecLengthType != ''">
-                and PL_CODE_BASICSEC.CODESECLENGTHTYPE = #{codeBasicSec.codeSecLengthType}
-            </if>
-            <if test="codeBasicSec.codeSecLength != null and codeBasicSec.codeSecLength != ''">
-                and PL_CODE_BASICSEC.CODESECLENGTH = #{codeBasicSec.codeSecLength}
-            </if>
-            <if test="codeBasicSec.codeLevelType != null and codeBasicSec.codeLevelType != ''">
-                and PL_CODE_BASICSEC.CODELEVELTYPE = #{codeBasicSec.codeLevelType}
-            </if>
-            <if test="codeBasicSec.codeLevelValue != null">
-                and PL_CODE_BASICSEC.CODELEVELVALUE = #{codeBasicSec.codeLevelValue}
-            </if>
-            <if test="codeBasicSec.valueCutLength != null">
-                and PL_CODE_BASICSEC.VALUECUTLENGTH = #{codeBasicSec.valueCutLength}
-            </if>
-            <if test="codeBasicSec.valueCutType != null and codeBasicSec.valueCutType != ''">
-                and PL_CODE_BASICSEC.VALUECUTTYPE = #{codeBasicSec.valueCutType}
-            </if>
-            <if test="codeBasicSec.codeGetValueType != null and codeBasicSec.codeGetValueType != ''">
-                and PL_CODE_BASICSEC.CODEGETVALUETYPE = #{codeBasicSec.codeGetValueType}
-            </if>
-            <if test="codeBasicSec.referCodeClassifyOid != null and codeBasicSec.referCodeClassifyOid != ''">
-                and PL_CODE_BASICSEC.REFERCODECLASSIFYOID = #{codeBasicSec.referCodeClassifyOid}
-            </if>
-            <if test="codeBasicSec.referConfig != null and codeBasicSec.referConfig != ''">
-                and PL_CODE_BASICSEC.REFERCONFIG = #{codeBasicSec.referConfig}
-            </if>
-            <if test="codeBasicSec.referValueInfo != null and codeBasicSec.referValueInfo != ''">
-                and PL_CODE_BASICSEC.REFERVALUEINFO = #{codeBasicSec.referValueInfo}
-            </if>
-            <if test="codeBasicSec.filterSql != null and codeBasicSec.filterSql != ''">
-                and PL_CODE_BASICSEC.FILTERSQL = #{codeBasicSec.filterSql}
-            </if>
-            <if test="codeBasicSec.serialStart != null and scodeBasicSec.serialStart != ''">
-                and PL_CODE_BASICSEC.SERIALSTART = #{codeBasicSec.serialStart}
-            </if>
-            <if test="codeBasicSec.serialStep != null">
-                and PL_CODE_BASICSEC.SERIALSTEP = #{codeBasicSec.serialStep}
-            </if>
-            <if test="codeBasicSec.codeFillType != null and codeBasicSec.codeFillType != ''">
-                and PL_CODE_BASICSEC.CODEFILLTYPE = #{codeBasicSec.codeFillType}
-            </if>
-            <if test="codeBasicSec.codeFillTypeText != null and codeBasicSec.codeFillTypeText != ''">
-                and PL_CODE_BASICSEC.CODEFILLTYPETEXT = #{codeBasicSec.codeFillTypeText}
-            </if>
-            <if test="codeBasicSec.codeFillSeparator != null and codeBasicSec.codeFillSeparator != ''">
-                and PL_CODE_BASICSEC.CODEFILLSEPARATOR = #{codeBasicSec.codeFillSeparator}
-            </if>
-            <if test="codeBasicSec.codeFillLength != null and codeBasicSec.codeFillLength != ''">
-                and PL_CODE_BASICSEC.CODEFILLLENGTH = #{codeBasicSec.codeFillLength}
-            </if>
-            <if test="codeBasicSec.codeFillLimit != null">
-                and PL_CODE_BASICSEC.CODEFILLLIMIT = #{codeBasicSec.codeFillLimit}
-            </if>
-            <if test="codeBasicSec.codeFillFlag != null and codeBasicSec.codeFillFlag != ''">
-                and PL_CODE_BASICSEC.CODEFILLFLAG = #{codeBasicSec.codeFillFlag}
-            </if>
-            <if test="codeBasicSec.customCodeSerialClass != null and codeBasicSec.customCodeSerialClass != ''">
-                and PL_CODE_BASICSEC.CUSTOMCODESERIALCLASS = #{codeBasicSec.customCodeSerialClass}
-            </if>
-            <if test="codeBasicSec.matchClassifyValueFlag != null and codeBasicSec.matchClassifyValueFlag != ''">
-                and PL_CODE_BASICSEC.MATCHCLASSIFYVALUEFLAG = #{codeBasicSec.matchClassifyValueFlag}
-            </if>
-            <if test="codeBasicSec.parentClassifySecOid != null and codeBasicSec.parentClassifySecOid != ''">
-                and PL_CODE_BASICSEC.PARENTCLASSIFYSECOID = #{codeBasicSec.parentClassifySecOid}
-            </if>
-            <if test="codeBasicSec.nullableFlag != null and codeBasicSec.nullableFlag != ''">
-                and PL_CODE_BASICSEC.NULLABLEFLAG = #{codeBasicSec.nullableFlag}
-            </if>
-            <if test="codeBasicSec.componentCodeFlag != null and codeBasicSec.componentCodeFlag != ''">
-                and PL_CODE_BASICSEC.COMPONENTCODEFLAG = #{codeBasicSec.componentCodeFlag}
-            </if>
-            <if test="codeBasicSec.serialDependFlag != null and codeBasicSec.serialDependFlag != ''">
-                and PL_CODE_BASICSEC.SERIALDEPENDFLAG = #{codeBasicSec.serialDependFlag}
-            </if>
-            <if test="codeBasicSec.displayFlag != null and codeBasicSec.displayFlag != ''">
-                and PL_CODE_BASICSEC.DISPLAYFLAG = #{codeBasicSec.displayFlag}
-            </if>
-            <if test="codeBasicSec.serialDependOrder != null">
-                and PL_CODE_BASICSEC.SERIALDEPENDORDER = #{codeBasicSec.serialDependOrder}
-            </if>
-            <if test="codeBasicSec.referAttributeName != null and codeBasicSec.referAttributeName != ''">
-                and PL_CODE_BASICSEC.REFERATTRIBUTENAME = #{codeBasicSec.referAttributeName}
-            </if>
-            <if test="codeBasicSec.referAttributeId != null and codeBasicSec.referAttributeId != ''">
-                and PL_CODE_BASICSEC.REFERATTRIBUTEID = #{codeBasicSec.referAttributeId}
-            </if>
-            <if test="codeBasicSec.referBtmName != null and codeBasicSec.referBtmName != ''">
-                and PL_CODE_BASICSEC.REFERBTMNAME = #{codeBasicSec.referBtmName}
-            </if>
-            <if test="codeBasicSec.referBtmId != null and codeBasicSec.referBtmId != ''">
-                and PL_CODE_BASICSEC.REFERBTMID = #{codeBasicSec.referBtmId}
             </if>
         </where>
 
@@ -360,18 +197,15 @@
         </foreach>
     </insert>
 
-
     <select id="countByCondition" resultType="java.lang.Long">
 
 
     </select>
-
 
     <select id="getOidByCodeclassifysecOid" resultType="java.lang.String">
         SELECT OID
         FROM PLATFORMBTM_CODEBASICSEC START WITH OID = #{codeClassifySecOid}
         CONNECT BY PRIOR PARENTCLASSIFYSECOID = OID
     </select>
-
 
 </mapper>
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeFixedValueMapper.xml b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeFixedValueMapper.xml
index f4287d6..d642a2e 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeFixedValueMapper.xml
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeFixedValueMapper.xml
@@ -3,5 +3,114 @@
 <mapper namespace="com.vci.ubcs.code.mapper.CodeFixedValueMapper">
 
 
+    <resultMap type="com.vci.ubcs.code.entity.CodeFixedValue" id="CodeFixedvalueMap">
+        <result property="oid" column="OID" jdbcType="VARCHAR"/>
+        <result property="revisionOid" column="REVISIONOID" jdbcType="VARCHAR"/>
+        <result property="nameOid" column="NAMEOID" jdbcType="VARCHAR"/>
+        <result property="btmname" column="BTMNAME" jdbcType="VARCHAR"/>
+        <result property="lastR" column="LASTR" jdbcType="VARCHAR"/>
+        <result property="firstR" column="FIRSTR" jdbcType="VARCHAR"/>
+        <result property="lastV" column="LASTV" jdbcType="VARCHAR"/>
+        <result property="firstV" column="FIRSTV" jdbcType="VARCHAR"/>
+        <result property="creator" column="CREATOR" jdbcType="VARCHAR"/>
+        <result property="createTime" column="CREATETIME" jdbcType="VARCHAR"/>
+        <result property="lastModifier" column="LASTMODIFIER" jdbcType="VARCHAR"/>
+        <result property="lastModifyTime" column="LASTMODIFYTIME" jdbcType="VARCHAR"/>
+        <result property="revisionRule" column="REVISIONRULE" jdbcType="VARCHAR"/>
+        <result property="versionRule" column="VERSIONRULE" jdbcType="VARCHAR"/>
+        <result property="revisionSeq" column="REVISIONSEQ" jdbcType="INTEGER"/>
+        <result property="revisionValue" column="REVISIONVALUE" jdbcType="VARCHAR"/>
+        <result property="versionSeq" column="VERSIONSEQ" jdbcType="INTEGER"/>
+        <result property="versionValue" column="VERSIONVALUE" jdbcType="VARCHAR"/>
+        <result property="lctid" column="LCTID" jdbcType="VARCHAR"/>
+        <result property="lcStatus" column="LCSTATUS" jdbcType="VARCHAR"/>
+        <result property="ts" column="TS" jdbcType="VARCHAR"/>
+        <result property="id" column="ID" jdbcType="VARCHAR"/>
+        <result property="name" column="NAME" jdbcType="VARCHAR"/>
+        <result property="description" column="DESCRIPTION" jdbcType="VARCHAR"/>
+        <result property="owner" column="OWNER" jdbcType="VARCHAR"/>
+        <result property="copyFromVersion" column="COPYFROMVERSION" jdbcType="VARCHAR"/>
+        <result property="codeFixedSecOid" column="CODEFIXEDSECOID" jdbcType="VARCHAR"/>
+        <result property="orderNum" column="ORDERNUM" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <select id="selectByPage" resultMap="CodeFixedvalueMap">
+        SELECT
+            PL_CODE_FIXEDVALUE.oid,
+            PL_CODE_FIXEDVALUE.revisionoid,
+            PL_CODE_FIXEDVALUE.nameoid,
+            PL_CODE_FIXEDVALUE.btmname,
+            PL_CODE_FIXEDVALUE.lastr,
+            PL_CODE_FIXEDVALUE.firstr,
+            PL_CODE_FIXEDVALUE.lastv,
+            PL_CODE_FIXEDVALUE.firstv,
+            PL_CODE_FIXEDVALUE.creator,
+            PL_CODE_FIXEDVALUE.createtime,
+            PL_CODE_FIXEDVALUE.lastmodifier,
+            PL_CODE_FIXEDVALUE.lastmodifytime,
+            PL_CODE_FIXEDVALUE.revisionrule,
+            PL_CODE_FIXEDVALUE.versionrule,
+            PL_CODE_FIXEDVALUE.revisionseq,
+            PL_CODE_FIXEDVALUE.revisionvalue,
+            PL_CODE_FIXEDVALUE.versionseq,
+            PL_CODE_FIXEDVALUE.versionvalue,
+            PL_CODE_FIXEDVALUE.lctid,
+            PL_CODE_FIXEDVALUE.lcstatus,
+            PL_CODE_FIXEDVALUE.ts,
+            PL_CODE_FIXEDVALUE.id,
+            PL_CODE_FIXEDVALUE.name,
+            PL_CODE_FIXEDVALUE.description,
+            PL_CODE_FIXEDVALUE.owner,
+            PL_CODE_FIXEDVALUE.copyfromversion,
+            PL_CODE_FIXEDVALUE.codefixedsecoid,
+            PL_CODE_FIXEDVALUE.ordernum,
+            COUNT( * ) OVER ( ) "##VCI_COUNT_VCI##"
+        FROM
+            PL_CODE_FIXEDVALUE
+        WHERE
+            PL_CODE_FIXEDVALUE.codefixedsecoid = #{codeFixedValueVO.codeFixedSecOid}
+    </select>
+
+    <select id="selectByPageByCodeFixedSecOid" resultMap="CodeFixedvalueMap">
+        SELECT
+            PL_CODE_FIXEDVALUE.oid,
+            PL_CODE_FIXEDVALUE.revisionoid,
+            PL_CODE_FIXEDVALUE.nameoid,
+            PL_CODE_FIXEDVALUE.btmname,
+            PL_CODE_FIXEDVALUE.lastr,
+            PL_CODE_FIXEDVALUE.firstr,
+            PL_CODE_FIXEDVALUE.lastv,
+            PL_CODE_FIXEDVALUE.firstv,
+            PL_CODE_FIXEDVALUE.creator,
+            PL_CODE_FIXEDVALUE.createtime,
+            PL_CODE_FIXEDVALUE.lastmodifier,
+            PL_CODE_FIXEDVALUE.lastmodifytime,
+            PL_CODE_FIXEDVALUE.revisionrule,
+            PL_CODE_FIXEDVALUE.versionrule,
+            PL_CODE_FIXEDVALUE.revisionseq,
+            PL_CODE_FIXEDVALUE.revisionvalue,
+            PL_CODE_FIXEDVALUE.versionseq,
+            PL_CODE_FIXEDVALUE.versionvalue,
+            PL_CODE_FIXEDVALUE.lctid,
+            PL_CODE_FIXEDVALUE.lcstatus,
+            PL_CODE_FIXEDVALUE.ts,
+            PL_CODE_FIXEDVALUE.id,
+            PL_CODE_FIXEDVALUE.name,
+            PL_CODE_FIXEDVALUE.description,
+            PL_CODE_FIXEDVALUE.owner,
+            PL_CODE_FIXEDVALUE.copyfromversion,
+            PL_CODE_FIXEDVALUE.codefixedsecoid,
+            PL_CODE_FIXEDVALUE.ordernum,
+            COUNT( * ) OVER ( ) "##VCI_COUNT_VCI##"
+        FROM
+            PL_CODE_FIXEDVALUE
+        WHERE
+            PL_CODE_FIXEDVALUE.codefixedsecoid in
+        <foreach collection="secOids" index="index" item="item" open="(" close=")" separator=",">
+            #{item}
+        </foreach>
+
+    </select>
+
 
 </mapper>
diff --git a/Source/UBCS/ubcs-service/ubcs-ddl/pom.xml b/Source/UBCS/ubcs-service/ubcs-ddl/pom.xml
index 3a76ae5..85cf200 100644
--- a/Source/UBCS/ubcs-service/ubcs-ddl/pom.xml
+++ b/Source/UBCS/ubcs-service/ubcs-ddl/pom.xml
@@ -32,6 +32,12 @@
             <groupId>com.vci</groupId>
             <artifactId>vci-starter-word</artifactId>
             <version>1.0-SNAPSHOT</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>com.vci</groupId>
+                    <artifactId>vci-starter-web</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
         <dependency>
             <groupId>org.springblade</groupId>
diff --git a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMsMapperProcessor.java b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMsMapperProcessor.java
index 729658f..c69fd05 100644
--- a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMsMapperProcessor.java
+++ b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMsMapperProcessor.java
@@ -1,8 +1,9 @@
 package com.vci.ubcs.ddl.processor.ddl;
 
-import com.vci.starter.web.util.VciBaseUtil;
+
 import com.vci.ubcs.ddl.mapper.DdlMSMapper;
 import com.vci.ubcs.ddl.mapper.DdlMapper;
+import com.vci.ubcs.starter.web.util.VciBaseUtil;
 import org.springframework.util.CollectionUtils;
 
 import javax.annotation.PostConstruct;
diff --git a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMySqlMapperProcessor.java b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMySqlMapperProcessor.java
index 14c08ce..4973cdb 100644
--- a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMySqlMapperProcessor.java
+++ b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMySqlMapperProcessor.java
@@ -1,8 +1,9 @@
 package com.vci.ubcs.ddl.processor.ddl;
 
-import com.vci.starter.web.util.VciBaseUtil;
+
 import com.vci.ubcs.ddl.mapper.DdlMapper;
 import com.vci.ubcs.ddl.mapper.DdlMySqlMapper;
+import com.vci.ubcs.starter.web.util.VciBaseUtil;
 import org.springframework.stereotype.Repository;
 import org.springframework.util.CollectionUtils;
 
diff --git a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMsMapperProcessor.java b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMsMapperProcessor.java
index 47dbf05..4f5f19c 100644
--- a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMsMapperProcessor.java
+++ b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMsMapperProcessor.java
@@ -1,11 +1,12 @@
 package com.vci.ubcs.ddl.processor.dll;
 
-import com.vci.starter.web.enumpck.VciFieldTypeEnum;
+
 import com.vci.ubcs.ddl.mapper.DllMapper;
 import com.vci.ubcs.ddl.mapper.DllMsMapper;
 import com.vci.ubcs.ddl.mapper.DllOracleMapper;
 import com.vci.ubcs.omd.vo.OmdBtmTypeAttributeVO;
 import com.vci.ubcs.starter.exception.VciBaseException;
+import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum;
 import org.apache.commons.lang3.StringUtils;
 
 import javax.annotation.PostConstruct;
diff --git a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMySqlMapperProcessor.java b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMySqlMapperProcessor.java
index e45416e..609aa10 100644
--- a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMySqlMapperProcessor.java
+++ b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMySqlMapperProcessor.java
@@ -1,10 +1,11 @@
 package com.vci.ubcs.ddl.processor.dll;
 
-import com.vci.starter.web.enumpck.VciFieldTypeEnum;
+
 import com.vci.ubcs.ddl.mapper.DllMapper;
 import com.vci.ubcs.ddl.mapper.DllOracleMapper;
 import com.vci.ubcs.omd.vo.OmdBtmTypeAttributeVO;
 import com.vci.ubcs.starter.exception.VciBaseException;
+import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum;
 import org.apache.commons.lang3.StringUtils;
 
 import javax.annotation.PostConstruct;
diff --git a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllOracleMapperProcessor.java b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllOracleMapperProcessor.java
index db2a485..41ed763 100644
--- a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllOracleMapperProcessor.java
+++ b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllOracleMapperProcessor.java
@@ -1,12 +1,10 @@
 package com.vci.ubcs.ddl.processor.dll;
 
-import com.vci.starter.web.enumpck.DataBaseEnum;
-import com.vci.starter.web.enumpck.VciFieldTypeEnum;
-import com.vci.starter.web.util.VciBaseUtil;
 import com.vci.ubcs.ddl.mapper.DllMapper;
 import com.vci.ubcs.ddl.mapper.DllOracleMapper;
 import com.vci.ubcs.omd.vo.OmdBtmTypeAttributeVO;
 import com.vci.ubcs.starter.exception.VciBaseException;
+import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.util.CollectionUtils;
 
diff --git a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/service/impl/DdlServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/service/impl/DdlServiceImpl.java
index 4889862..f9470ae 100644
--- a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/service/impl/DdlServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/service/impl/DdlServiceImpl.java
@@ -1,7 +1,7 @@
 package com.vci.ubcs.ddl.service.impl;
 
 import com.alibaba.nacos.client.naming.NacosNamingService;
-import com.vci.starter.web.util.VciBaseUtil;
+
 import com.vci.starter.word.bo.WordMergeStartTableDataBO;
 import com.vci.ubcs.ddl.bo.DdlTableBO;
 import com.vci.ubcs.ddl.bo.DdlTableInDataBaseBO;
@@ -20,6 +20,7 @@
 import com.vci.ubcs.omd.vo.OsLinkTypeAttributeVO;
 import com.vci.ubcs.omd.vo.OsLinkTypeVO;
 import com.vci.ubcs.starter.exception.VciBaseException;
+import com.vci.ubcs.starter.web.util.VciBaseUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
@@ -314,7 +315,7 @@
 		btmTypeHasAttributeVOMap.forEach((k, v) -> {
 			OmdBtmTypeVO btmTypeVO = OmdBtmTypeCache.getDetail(k);
 			if (btmTypeVO == null || StringUtils.isBlank(btmTypeVO.getOid())) {
-				throw new com.vci.starter.web.exception.VciBaseException("瑕佷慨鏀瑰睘鎬у垪闀垮害鐨勪笟鍔$被鍨嬩笉瀛樺湪");
+				throw new VciBaseException("瑕佷慨鏀瑰睘鎬у垪闀垮害鐨勪笟鍔$被鍨嬩笉瀛樺湪");
 			}
 			if (!isCompatibilityTable(btmTypeVO.getId(), null)) {
 				addColumnForTable(btmTypeVO.getTableName(), v);
@@ -327,9 +328,9 @@
 	 *
 	 * @param tableName       琛ㄦ牸鍚嶇О
 	 * @param attributeVOList 灞炴�х殑鏄剧ず瀵硅薄
-	 * @throws com.vci.starter.web.exception.VciBaseException 鎵ц鎴栬�呰幏鍙杝ql璇彞鐨勬椂鍊欏嚭鐜伴敊璇細鎶涘嚭寮傚父
+	 * @throws VciBaseException 鎵ц鎴栬�呰幏鍙杝ql璇彞鐨勬椂鍊欏嚭鐜伴敊璇細鎶涘嚭寮傚父
 	 */
-	private void addColumnForTable(String tableName, List<OmdBtmTypeAttributeVO> attributeVOList) {
+	private void addColumnForTable(String tableName, List<OmdBtmTypeAttributeVO> attributeVOList) throws VciBaseException{
 		String attributeSql = dllMapper.getCreateSqlByAttributeForBtm(attributeVOList);
 		//鍏堝垽鏂〃鏍兼槸鍚﹀瓨鍦�
 		if (!checkTableExistByTableName(tableName)) {

--
Gitblit v1.9.3