From bd8e5225fc4a0e5068b40003321044493b7b4f77 Mon Sep 17 00:00:00 2001
From: xiejun <xj@2023>
Date: 星期四, 24 八月 2023 16:19:31 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 Source/UBCS-WEB/src/api/docking/info.js                                                                        |   59 ++
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeBasicSecService.java           |   19 
 Source/UBCS-WEB/src/components/refer/vciWebRefer.vue                                                           |    2 
 Source/UBCS-WEB/src/views/system/menu.vue                                                                      |    3 
 Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue                                                    |   20 
 Source/UBCS-WEB/src/api/GetItem.js                                                                             |   10 
 Source/UBCS-WEB/src/components/refer/vciWebReferDefalut.vue                                                    |   12 
 Source/UBCS-WEB/src/views/docking/infoForm.vue                                                                 |  627 ++++++++++++++++++++++++++++
 Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue                                                   |   45 ++
 Source/UBCS-WEB/vue.config.js                                                                                  |    3 
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeOrderDTO.java               |   35 +
 Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue                                                      |   12 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java   |  152 ++++++
 Source/UBCS-WEB/src/views/docking/info.vue                                                                     |  213 ++++-----
 Source/UBCS-WEB/src/components/FormTemplate/index.vue                                                          |   12 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeBasicSecController.java      |   27 +
 Source/UBCS-WEB/src/App.vue                                                                                    |    3 
 Source/UBCS-WEB/src/components/code-dialog-page/maxSerialnumDialog.vue                                         |    4 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmProductCodeServiceImpl.java |    5 
 Source/UBCS-WEB/src/components/refer/vciWebReferTree.vue                                                       |    3 
 20 files changed, 1,125 insertions(+), 141 deletions(-)

diff --git a/Source/UBCS-WEB/src/App.vue b/Source/UBCS-WEB/src/App.vue
index aa919b5..3bf8519 100644
--- a/Source/UBCS-WEB/src/App.vue
+++ b/Source/UBCS-WEB/src/App.vue
@@ -28,4 +28,7 @@
 .avue--detail .el-col{
   margin-bottom: 0;
 }
+.avue-dialog .el-dialog__body {
+  margin-bottom: 10px
+}
 </style>
diff --git a/Source/UBCS-WEB/src/api/GetItem.js b/Source/UBCS-WEB/src/api/GetItem.js
index 5ebd527..190225d 100644
--- a/Source/UBCS-WEB/src/api/GetItem.js
+++ b/Source/UBCS-WEB/src/api/GetItem.js
@@ -90,3 +90,13 @@
     data:data
   })
 }
+// 鐢宠闆嗗洟鐮佸�兼暟鎹�
+export function applyGroupCode(params) {
+  return request({
+    url: 'api/ubcs-applyjtcodeservice/DockingPreApplyCode/applyGroupCode',
+    method: 'post',
+    params: {
+      ...params
+    }
+  })
+}
diff --git a/Source/UBCS-WEB/src/api/docking/info.js b/Source/UBCS-WEB/src/api/docking/info.js
new file mode 100644
index 0000000..2d17aad
--- /dev/null
+++ b/Source/UBCS-WEB/src/api/docking/info.js
@@ -0,0 +1,59 @@
+import request from '@/router/axios';
+
+export const getList = (page, size, params) => {
+  return request({
+    url: '/api/ubcs-code/dockingManagement/gridDockingSystem',
+    method: 'get',
+    params: {
+      ...params,
+      page,
+      size
+    }
+  })
+}
+
+// 鏂板
+export const add = (data) => {
+  return request({
+    url: '/api/ubcs-code/dockingManagement/addSaveSystemConfig',
+    method: 'post',
+    data
+  })
+}
+// 淇敼
+export const edit = (data) => {
+  return request({
+    url: '/api/ubcs-code/dockingManagement/editSystemConfig',
+    method: 'post',
+    data
+  })
+}
+
+// 鍒犻櫎
+export const del = (data) => {
+  let url = '/api/ubcs-code/dockingManagement/deleteSystemConfigsById'
+  return request({
+    url,
+    method: 'delete',
+    data
+  })
+}
+
+
+// 鍚屾
+export const push = (data) => {
+  return request({
+    url: '/api/ubcs-code/dockingManagement/pushData',
+    method: 'post',
+    data
+  })
+}
+
+// 鍋滅敤鍚敤
+export const updateStatus = (data) => {
+  return request({
+    url: '/api/ubcs-code/dockingManagement/updateStatus',
+    method: 'post',
+    data
+  })
+}
diff --git a/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue b/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue
index b53cf1a..e516be0 100644
--- a/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue
+++ b/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue
@@ -170,6 +170,12 @@
           message = "璇疯緭鍏�";
           trigger = "blur";
         }
+        let fieldMapKey=''
+        if( formItem.type == "refer"){
+          if(!formItem.fieldMap){
+            fieldMapKey=formItem.field+'Id'
+          }
+        }
         let columnItem = {
           label: formItem.text,
           labelslot: true,
@@ -200,8 +206,9 @@
                   title: formItem.text,
                   showField: formItem.showField || formItem.field,
                   field: formItem.field,
+                  fieldMap:formItem.fieldMap || {fieldMapKey:'id'},
                   placeholder: formItem.inputTip,
-                  options: formItem.referConfig,
+                  options: formItem.referConfig
                 }
               : {},
           span: formItem.span
@@ -356,6 +363,42 @@
       if (data.field) {
         this.form[data.field] = data.value || "";
         this.form[data.showField] = data.text || "";
+        if (data.fieldMap) {
+          //璇存槑闇�瑕佹槧灏�
+          for (let key in data.fieldMap) {
+            let mapFields = data.fieldMap[key].split(",");
+            let value = [];
+            data.rawData.forEach(_item => {
+              var temp;
+              if (!_item.attributes) {
+                _item.attributes = _item;
+              }
+              if (mapFields.length == 1) {
+                var mapField = mapFields[0];
+                if (mapField.indexOf("attribute.") > -1) {
+                  temp = _item['attributes'][mapField.subString("attribute.".length)];
+                } else {
+                  temp = _item['attributes'][mapField] || _item[mapField];
+                }
+              } else {
+                //鏈夊涓�
+                var mutiTemp = [];
+                layui.each(mapFields, function (_indexField, _itemField) {
+                  if (_itemField.indexOf("attribute.") > -1) {
+                    mutiTemp.push(_item['attributes'][_itemField.subString("attribute.".length)]);
+                  } else {
+                    mutiTemp.push(_item['attributes'][_itemField] || _item[_itemField]);
+                  }
+                });
+                temp = mutiTemp.join(' ');
+              }
+              if (temp != null && temp != '') {
+                value.push(temp);
+              }
+            })
+            this.form[key] = value.join(',');
+          }
+        }
         this.$emit("getFormData", this.form);
         this.$emit("referConfigDataUpdate", data);
       }
diff --git a/Source/UBCS-WEB/src/components/FormTemplate/index.vue b/Source/UBCS-WEB/src/components/FormTemplate/index.vue
index d2585c3..8bcb7ef 100644
--- a/Source/UBCS-WEB/src/components/FormTemplate/index.vue
+++ b/Source/UBCS-WEB/src/components/FormTemplate/index.vue
@@ -134,12 +134,12 @@
       showCodeApply: false,
       showResembleQuery: false,
       selfColumnType: {
-        codefixedsec: "combox",
-        codeclassifysec: "refer",
-        codevariablesec: "text",
+        codefixedsec: "combox",//鍥哄畾鐮佹
+        codeclassifysec: "refer",//鍒嗙被鐮佹
+        codevariablesec: "text",//鍙彉鐮佹
+        coderefersec: "refer",//寮曠敤鐮佹
         codeattrsec: "text",
         codelevelsec: "text",
-        coderefersec: "refer",
         codedatesec: "date"
       },
       selfColumnConfig: {
@@ -301,6 +301,8 @@
         if (item.parentClassifySecOid === field) {
           this.$refs.CodeApply.form[item.oid] = undefined;
           this.$refs.CodeApply.form[item.name] = undefined;
+          item.readOnly=false;
+          item.referConfig.extraParams.parentClassifyValueOid=data.value;
         }
         return item;
       });
@@ -414,6 +416,7 @@
     getReferConfig(item) {
       let params = {};
       if (item.secType == "codeclassifysec") {
+        //鍒嗙被鐮佹
         params = {
           isMuti: false,
           type: "grid",
@@ -458,6 +461,7 @@
           },
         };
       } else if (item.secType == "coderefersec") {
+        //寮曠敤鐮佹
         params = JSON.parse(item.referValueInfo);
       }
       return params;
diff --git a/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue b/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue
index ed137cd..dc32f16 100644
--- a/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue
+++ b/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue
@@ -116,7 +116,7 @@
   </basic-container>
 </template>
 <script>
-import {MasterTable, TableData, FindData, addSaveCode, editSaveCode, deleteCode, upSaveCode} from "@/api/GetItem";
+import {MasterTable, TableData, FindData, addSaveCode, editSaveCode, deleteCode, upSaveCode,applyGroupCode} from "@/api/GetItem";
 import {processTS, changeStatus} from "@/api/template/setPersonnel"
 import {listCodeAttributeByClassId} from "@/api/integration/integration.js";
 import integrationTransfer from "@/views/integration/integrationTransfer";
@@ -412,10 +412,28 @@
         if (uniqueFlag === 'CODERECYCLE') return this.Recovery()
         //鍒犻櫎
         if (uniqueFlag === 'CODEDELETE') return this.enumDeleteRow()
+        //鐢宠闆嗗洟鐮佹暟鎹�
+        if (uniqueFlag === 'applyGroupCode') return this.applyGroupCode()
+        //鏇存柊闆嗗洟鐮佹暟鎹�
+        // if (uniqueFlag === 'applyGroupCode') return this.applyGroupCode()
         //  鐩镐技椤规煡璇�
         //  if(uniqueFlag === 'CODEEDIT') return this.similarHandler()
       });
     },
+    //鐢宠闆嗗洟鐮佹暟鎹�
+    applyGroupCode(){
+      if(this.selectRow.length <= 0){
+        this.$message.warning('璇烽�夋嫨涓�鏉℃暟鎹ā鏉匡紒')
+      }else {
+        // const requestData = this.selectRow.forEach(item => {
+        //   return { oids: item.oid, btmName: item.btmname };
+        // });
+        const oids = this.selectRow.map(item => item.oid).join(',');
+        applyGroupCode({ oids, btmName: this.selectRow[0].btmname }).then(res => {
+          console.log(res);
+        });
+      }
+    },
     openD() {
       this.getListCodeByClassId();
     },
diff --git a/Source/UBCS-WEB/src/components/code-dialog-page/maxSerialnumDialog.vue b/Source/UBCS-WEB/src/components/code-dialog-page/maxSerialnumDialog.vue
index 6db53ba..83740c1 100644
--- a/Source/UBCS-WEB/src/components/code-dialog-page/maxSerialnumDialog.vue
+++ b/Source/UBCS-WEB/src/components/code-dialog-page/maxSerialnumDialog.vue
@@ -161,7 +161,8 @@
             console.log(objcodekey)
             const filteredObj = objcodekey.reduce((acc, key) => {
                 const pattern = /[\u4e00-\u9fa5]/; // 鍖归厤涓枃瀛楃鐨勬鍒欒〃杈惧紡
-                if (!pattern.test(key)) {
+                const patterns = /\$/;
+                if (!pattern.test(key)&&!patterns.test(key)) {
                     acc[key] = this.codeApplyForm[key];
                 }
                 return acc;
@@ -230,6 +231,7 @@
             if (item.secType == "codeclassifysec") {
                 params = {
                     isMuti: false,
+                    valueField: 'id',
                     type: "grid",
                     tableConfig: {
                         limit: -1,
diff --git a/Source/UBCS-WEB/src/components/refer/vciWebRefer.vue b/Source/UBCS-WEB/src/components/refer/vciWebRefer.vue
index a253841..a421c47 100644
--- a/Source/UBCS-WEB/src/components/refer/vciWebRefer.vue
+++ b/Source/UBCS-WEB/src/components/refer/vciWebRefer.vue
@@ -48,6 +48,8 @@
       deep: true,
       immediate: true,
       handler(newV) {
+        this.text=newV.text;
+        this.value=newV.value;
         this.$emit("setReferValue", newV);
       }
     }
diff --git a/Source/UBCS-WEB/src/components/refer/vciWebReferDefalut.vue b/Source/UBCS-WEB/src/components/refer/vciWebReferDefalut.vue
index ab1ee06..7e53e35 100644
--- a/Source/UBCS-WEB/src/components/refer/vciWebReferDefalut.vue
+++ b/Source/UBCS-WEB/src/components/refer/vciWebReferDefalut.vue
@@ -178,11 +178,15 @@
       } else {
         this.option.column = this.options.tableConfig.cols.map(item => {
           if (item.field != 'LAY_TABLE_INDEX' && item.field != 'LAY_CHECKED') {
+            let formatter=item.template || item.templet;
+            if(typeof formatter == "string" && formatter !=''){
+              formatter=eval("(" + formatter + ")")
+            }
             return {
               ...item,
               label: item.title,
               prop: item.field,
-              formatter:item.template,
+              formatter:formatter,
               search:this.options.tableConfig.queryColumns.some(qItem=>{
                 return qItem.field==item.field
               })
@@ -236,7 +240,7 @@
 
       this.value=value.join(',');
       this.text=text.join(',')
-      this.$emit("setValue", {field:this.referConfig.field,showField:this.referConfig.showField,value:this.value,text:this.text,rawData:this.selectionList});
+      this.$emit("setValue", {field:this.referConfig.field,showField:this.referConfig.showField,value:this.value,text:this.text,rawData:this.selectionList,fieldMap:this.referConfig.fieldMap});
       this.visible=false;
     },
     searchReset() {
@@ -284,8 +288,8 @@
           }
         }
         getList(Object.assign(params,this.params,this.query, query),page.currentPage, page.pageSize, this.url, this.method).then(res => {
-          this.data = res.data.records;
-          this.page.total=res.data.total
+          this.data = res.data.records || res.data.data.records;
+          this.page.total=res.data.total || res.data.data.total;
           this.loading = false;
           this.selectionClear();
         }).catch(error=>{
diff --git a/Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue b/Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue
index cc0b644..c63ba28 100644
--- a/Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue
+++ b/Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue
@@ -242,11 +242,15 @@
           //璇存槑浼犻�掍簡鐨�
           this.option.column= this.options.tableConfig.cols.map(item => {
             if (item.field != 'LAY_TABLE_INDEX' && item.field != 'LAY_CHECKED') {
+              let formatter=item.template || item.templet;
+              if(typeof formatter == "string" && formatter !=''){
+                formatter=eval("(" + formatter + ")")
+              }
               return {
                 ...item,
                 label: item.title,
                 prop: item.field,
-                formatter:item.template,
+                formatter:formatter,
                 search: this.options.tableConfig.queryColumns.some(qItem=>{
                   return qItem.field==item.field
                 })
@@ -295,7 +299,7 @@
 
       this.value=value.join(',');
       this.text=text.join(',')
-      this.$emit("setValue", {field:this.referConfig.field,showField:this.referConfig.showField,value:this.value,text:this.text,rawData:this.selectionList});
+      this.$emit("setValue", {field:this.referConfig.field,showField:this.referConfig.showField,value:this.value,text:this.text,rawData:this.selectionList,fieldMap:this.referConfig.fieldMap});
       this.visible=false;
     },
     searchReset() {
@@ -343,8 +347,8 @@
           }
         }
         getList(Object.assign(params,this.params,this.query, query),page.currentPage, page.pageSize, this.url).then(res => {
-          this.data = res.data.records;
-          this.page.total=res.data.total
+          this.data = res.data.records || res.data.data.records;
+          this.page.total=res.data.total || res.data.data.total;
           this.loading = false;
           this.selectionClear();
         }).catch(error=>{
diff --git a/Source/UBCS-WEB/src/components/refer/vciWebReferTree.vue b/Source/UBCS-WEB/src/components/refer/vciWebReferTree.vue
index 8abf926..88fa814 100644
--- a/Source/UBCS-WEB/src/components/refer/vciWebReferTree.vue
+++ b/Source/UBCS-WEB/src/components/refer/vciWebReferTree.vue
@@ -183,7 +183,8 @@
         value: this.value,
         text: this.text || '',
         isTreeMuti:this.isMuti,
-        rawData: checkedData.checkedNodes
+        rawData: checkedData.checkedNodes,
+        fieldMap:this.referConfig.fieldMap
       });
     }
   },
diff --git a/Source/UBCS-WEB/src/views/docking/info.vue b/Source/UBCS-WEB/src/views/docking/info.vue
index 538f1e0..55271c2 100644
--- a/Source/UBCS-WEB/src/views/docking/info.vue
+++ b/Source/UBCS-WEB/src/views/docking/info.vue
@@ -26,7 +26,7 @@
         </avue-crud>
       </basic-container>
     </el-main>
-    <originalAdd ref="originalAdd" @refreshTable="refreshChange" :attribute="editAttribute"></originalAdd>
+    <infoForm ref="infoForm" @refreshTable="refreshChange" :formData="editAttribute"></infoForm>
     <!-- 楂樼骇鏌ヨ瀵硅瘽妗� -->
     <advanced-query
       :ref="advancedQueryParam.ref"
@@ -39,31 +39,53 @@
 
 <script>
 import {
-  getList,
-  remove,
-  add,
-  update, getPage, getApplyRange
-} from "@/api/omd/OmdAttribute";
+  getList,add,edit,del,push,updateStatus
+} from "@/api/docking/info";
 import {getDictionary} from "@/api/omd/enum";
-import {mapGetters} from "vuex";
+import infoForm from "./infoForm.vue";
 
 export default {
   name: "info",
+  components:{infoForm},
   data() {
     return {
+      //鎺ュ彛绫诲瀷涓嬫媺
+      interfaceTypeList: [{
+        label: 'webService', value: 'webService'
+      }, {
+        label: '绫昏矾寰�', value: 'classPath'
+      }, {
+        label: 'Http', value: 'http'
+      }],
+      //鍙傛暟绫诲瀷涓嬫媺
+      paramTypeList: [{
+        label: 'xml', value: 'xml'
+      }, {
+        label: 'Json', value: 'json'
+      }],
+      //杩斿洖鍊肩被鍨嬩笅鎷�
+      returnTypeList: [{
+        label: 'xml', value: 'xml'
+      }, {
+        label: 'Json', value: 'json'
+      }],
+      //鎺ㄩ�佺被鍨�
+      pushTypeList: [{value: '1', label: '鏁版嵁鎺ㄩ��'},
+        {value: '2', label: '鍒嗙被鎺ㄩ��'},
+        {value: '3', label: '缂栫爜鐢宠'},
+        {value: '4', label: '缂栫爜鏇存敼锛堢姸鎬併�佸洖鏀讹級'},
+        {value: '5', label: '鍒嗙被鏌ヨ'},
+        {value: '6', label: '鍚鍒欎俊鎭殑鍒嗙被鏌ヨ'},
+        {value: '7', label: '鏁版嵁鏌ヨ'}],
       page: {
         pageSize: 10,
         currentPage: 1,
         total: 100
       },
-      selectRow: "",
+      selectRow: {},
       data: [],
       form: {},
-      attribute: {
-        nullable: true
-      },
       editAttribute: {},
-      applyRangeData: [],
       selectionList: [],
       option: {
         height: "auto",
@@ -87,26 +109,21 @@
         columnBtn: false,
         column: [{
           label: '鎺ㄩ�佺被鍨�',
-          field: 'pushTypeText',
+          prop: 'pushType',
           sortable: true,
           width: 150,
-          type: 'select',
-          dicData: this.pushType,
-          props: {
-            label: "value",
-            value: "key"
-          },
+          formatter:function (d){
+            return this.pushTypeList[d.pushType]
+          }
         }, {
           label: '绯荤粺鍚嶇О',
-          prop: 'sysbasename',
+          prop: 'sysBaseName',
           sortable: true,
-          search: true,
           width: 150
         }, {
           label: '绯荤粺缂栧彿',
-          prop: 'sysbaseid',
+          prop: 'sysBaseId',
           sortable: true,
-          search: true,
           width: 150
         }, {
           label: '鎺ュ彛鍑芥暟',
@@ -115,12 +132,12 @@
           width: 150
         }, {
           label: '鍛藉悕绌洪棿',
-          prop: 'namespace',
+          prop: 'nameSpace',
           sortable: true,
           width: 150
         }, {
           label: 'soapAction',
-          prop: 'soapaction',
+          prop: 'soapAction',
           sortable: true,
           width: 150
         }, {
@@ -135,35 +152,27 @@
           width: 150
         }, {
           label: '璇锋眰鍦板潃',
-          prop: 'requesturl',
+          prop: 'requestUrl',
           sortable: true,
           width: 150
         }, {
           label: '鍙傛暟绫诲瀷',
-          prop: 'paramtype',
+          prop: 'paramType',
           sortable: true,
-          width: 150
+          width: 150,
+          formatter:function (d){
+            return this.paramTypeList[d.paramType]
+          }
         }, {
           label: '杩斿洖鍊肩被鍨�',
-          prop: 'returntype',
+          prop: 'returnType',
           sortable: true,
-          width: 150
+          width: 150,
+          formatter:function (d){
+            return this.returnTypeList[d.returnType]
+          }
         }]
       },
-      itemForm: {
-        itemData: {},
-        activeName: "referTab",
-        enumInitFlag: false,
-        referInitFlag: false,
-        form: {}
-      },
-      pushType: [{key: '1', value: '鏁版嵁鎺ㄩ��'},
-        {key: '2', value: '鍒嗙被鎺ㄩ��'},
-        {key: '3', value: '缂栫爜鐢宠'},
-        {key: '4', value: '缂栫爜鏇存敼锛堢姸鎬併�佸洖鏀讹級'},
-        {key: '5', value: '鍒嗙被鏌ヨ'},
-        {key: '6', value: '鍚鍒欎俊鎭殑鍒嗙被鏌ヨ'},
-        {key: '7', value: '鏁版嵁鏌ヨ'}],
       // 楂樼骇鏌ヨ瀵硅瘽妗嗙浉鍏冲弬鏁�
       advancedQueryParam: {
         ref: 'advancedQuery',
@@ -199,14 +208,10 @@
     selectionChange(list) {
       this.selectionList = list;
       if(this.selectionList.length <= 0){
-        this.itemForm.itemData = null
         this.selectRow = null
-        this.attribute = null
       }
       if (this.selectionList.length > 0) {
-        this.itemForm.itemData = this.selectionList[list.length-1];
         this.selectRow = this.selectionList[list.length-1].$index;
-        this.attribute = this.selectionList[list.length-1];
       }
     },
     selectionClear() {
@@ -223,26 +228,24 @@
       this.onLoad(this.page, this.query);
     },
     addSave() {
-      this.$refs.originalAdd.showSubmitDialog = true;
-      const newAttr = {};
-      newAttr.nullable = true;
-      this.$refs.originalAdd.attribute = newAttr;
+      this.$refs.infoForm.showSubmitDialog = true;
+      this.$refs.infoForm.formData = {
+        dataFlowType:'push',
+        pushType:'1',
+        sysIntParamVOs:[],
+        sysIntHeaderVOs:[]
+      };
     },
     updateSave(row,index) {
-      this.selectRow = index;
-      var json = JSON.stringify(row);
-      this.editAttribute = JSON.parse(json);
-      this.editAttribute.nullable = row.nullable == 'true' ? true : false;
-      this.$refs.originalAdd.attribute = this.editAttribute;
-      this.$refs.originalAdd.showSubmitDialog = true;
-      this.checkUsingReferDict(row);
-      this.$refs.originalAdd.activeName = this.itemForm.activeName;
-      this.$refs.originalAdd.enumInitFlag = this.itemForm.enumInitFlag;
-      this.$refs.originalAdd.referInitFlag = this.itemForm.referInitFlag;
-      // this.refreshChange()
+      this.selectRow = row;
+      this.editAttribute = row;
+      this.editAttribute.sysIntParamVOs = row.sysIntParamVOs||[];
+      this.editAttribute.sysIntHeaderVOs = row.sysIntHeaderVOs||[];
+      this.$refs.infoForm.formData = this.editAttribute;
+      this.$refs.infoForm.showSubmitDialog = true;
     },
     deleteSave(row,index) {
-      this.$confirm("鍒犻櫎鍏冩暟鎹皢鏃犳硶琚仮澶�, 鏄惁缁х画?", "鎻愮ず", {
+      this.$confirm("鍒犻櫎鏁版嵁灏嗘棤娉曡鎭㈠, 鏄惁缁х画?", "鎻愮ず", {
         iconClass: 'el-icon-question',
         confirmButtonText: "纭畾",
         cancelButtonText: "鍙栨秷",
@@ -255,9 +258,41 @@
         });
       });
     },
+    ENABLE(row,index){
+      //鍚敤
+      this.updateStatus("enable");
+    },
+    DISABLE(row,index){
+      //鍋滅敤
+      this.updateStatus("disable");
+    },
+    updateStatus(able){
+      var that = this;
+      var paramTemp = {
+        update:able,
+        oid:this.selectRow.oid,
+        ts:this.selectRow.ts
+      };
+      this.$confirm("鏄惁瑕�"+(able == "enbale" ? "鍚敤" : (able == "disable" ? "鍋滅敤": "鍙戝竷")) +"杩欐潯鏁版嵁锛�", {
+        confirmButtonText: "纭畾",
+        cancelButtonText: "鍙栨秷",
+        type: "warning"
+      })
+        .then(() => {
+          return updateStatus(paramTemp);
+        })
+        .then(() => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message:(able == "enbale" ? "鍚敤鎴愬姛" : (able == "disable" ? "鍋滅敤鎴愬姛": "鍙戝竷鎴愬姛"))
+          });
+          this.$refs.crud.toggleSelection();
+        });
+    },
     PUSH(){
       if (this.selectionList.length != 1) {
-        this.$message.error('璇烽�夋嫨涓�鏉℃暟鎹�')
+        this.$message.error('璇烽�夋嫨鏁版嵁')
         return false;
       }
       this.$confirm("鏄惁瑕�"+ (this.selectionList[0].pushType == "1" ? "鎺ㄩ�佹暟鎹�" : "鎺ㄩ�佸垎绫�"), {
@@ -279,62 +314,18 @@
     },
     onLoad(page, params = {}) {
       this.loading = true;
-      getPage(this.page.currentPage, this.page.pageSize, Object.assign(params, this.query)).then(res => {
+      getList(this.page.currentPage, this.page.pageSize, Object.assign(params, this.query)).then(res => {
         const data = res.data.data;
         this.page.total = data.total;
         this.data = data.records;
         this.loading = false;
         this.data = res.data.data.records;
-        this.itemData = this.data[0];
       });
     },
     rowClick(row) {
-      this.itemForm.itemData = row;
-      this.selectRow = row.$index;
-      this.attribute = row;
-
+      this.selectRow = row;
       this.$refs.crud.toggleSelection();
       this.$refs.crud.toggleRowSelection(row); //閫変腑褰撳墠琛�
-      //this.checkUsingReferDict(row);
-    },
-    checkUsingReferDict(row){
-      if (row.referToId !== null && row.referToId !== ""){
-        this.itemForm.activeName = 'referTab';
-        this.itemForm.referInitFlag = true;
-        this.itemForm.enumInitFlag = false;
-      }else if (row.usingDict === 'true'){
-        this.itemForm.activeName = 'enumTab';
-        this.itemForm.referInitFlag = false;
-        this.itemForm.enumInitFlag = true;
-        getDictionary({code: row.dictCode}).then(res => {
-          this.editAttribute.dictValue = res.data.data[0].label;
-          this.itemForm.itemData.dictValue = this.editAttribute.dictValue;
-          this.$refs.originalAdd.dictEnums = res.data.data;
-        })
-      }else {
-        this.itemForm.activeName = 'referTab';
-        this.itemForm.referInitFlag = true;
-        this.itemForm.enumInitFlag = false;
-      }
-    },
-    selectBtmType() {
-      this.referType.display = true;
-      this.referType.title = "璇烽�夋嫨" + this.referType.value;
-    },
-    applyRangeOpen() {
-      if (!this.selectRow && this.selectRow != 0) {
-        this.$message({
-          type: "warning",
-          message: "璇峰厛閫夋嫨灞炴��"
-        });
-      }
-      var oid = this.data[this.selectRow].oid;
-      getApplyRange(oid).then(res => {
-        this.applyRangeData = res.data.data;
-        this.$refs.applyRange.rangeData = this.applyRangeData;
-        this.$refs.applyRange.showDialog = true;
-
-      });
     },
     /** 楂樼骇鏌ヨ瀵硅瘽妗嗙粍浠�,缁勪欢杩斿洖鐨勫�兼槸condtionMap[field]褰㈠紡鐨勬煡璇㈡潯浠讹紝淇濈暀浜嗗拰涔嬪墠涓�鏍风殑鏂瑰紡 */
     echoSeniorContionMap(conditionMaps){
diff --git a/Source/UBCS-WEB/src/views/docking/infoForm.vue b/Source/UBCS-WEB/src/views/docking/infoForm.vue
new file mode 100644
index 0000000..c36b5b7
--- /dev/null
+++ b/Source/UBCS-WEB/src/views/docking/infoForm.vue
@@ -0,0 +1,627 @@
+<template>
+  <el-container>
+    <el-dialog title="绯荤粺闆嗘垚鍩虹淇℃伅" v-dialogDrag :visible.sync="showSubmitDialog" class="avue-dialog avue-dialog--top" append-to-body @close="closeSubmitDialog" width="1000px"
+               style="height: 110vh;" top="-5%">
+      <el-form ref="form" :model="formData" show-message="true" inline size="medium" label-suffix=":"
+               class="dockingForm" :rules="rules" status-icon="true">
+        <el-form-item label="dataFlowType" prop="dataFlowType">
+          <el-select v-model="formData.dataFlowType" placeholder="璇烽�夋嫨" @change="dataFlowTypeChange">
+            <el-option v-for="item in dataFlowTypeList" :key="item.value" :label="item.label" :value="item.value">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item :label="formData.dataFlowType=='push'?'鎺ㄩ�佺被鍨�':'鎺ュ彈绫诲瀷'" prop="pushType">
+          <el-select v-model="formData.pushType" placeholder="璇烽�夋嫨" @change="pushTypeChange">
+            <el-option v-for="item in pushTypeList" :key="item.value" :label="item.label" :value="item.value">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="鍙傛暟绫诲瀷" prop="paramType">
+          <el-select v-model="formData.paramType" placeholder="璇烽�夋嫨">
+            <el-option v-for="item in paramTypeList" :key="item.value" :label="item.label" :value="item.value">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="杩斿洖鍊肩被鍨�" prop="returnType">
+          <el-select v-model="formData.returnType" placeholder="璇烽�夋嫨">
+            <el-option v-for="item in returnTypeList" :key="item.value" :label="item.label" :value="item.value">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="鍒嗙被閫夋嫨" prop="classifyName">
+          <vciWebRefer
+            :referConfig="{
+                  title: '鍒嗙被閫夋嫨',
+                  showField: 'classifyName',
+                  field: 'classifyOid',
+                  fieldMap:{'classifyId':'id'},
+                  placeholder: '璇烽�夋嫨鍒嗙被閫夋嫨',
+                  options: {isMuti: false, type: 'tree', url: 'api/ubcs-code/codeClassify/treeCodeClassify'},
+                }"
+            :value="formData.classifyOid"
+            :text="formData.classifyName"
+            :disabled="false"
+            :display="true"
+            @setReferValue="setReferValue"
+          ></vciWebRefer>
+        </el-form-item>
+        <el-form-item v-if="formData.dataFlowType=='push'" label="闆嗘垚绯荤粺" prop="targetSystemName">
+          <vciWebRefer
+            :referConfig="{
+                  title: '闆嗘垚绯荤粺',
+                  showField: 'targetSystemName',
+                  field: 'targetSystemOid',
+                  fieldMap:{'targetSystemId':'id'},
+                  placeholder: '璇烽�夋嫨',
+                  options: {isMuti: false, type: 'default', url: 'api/ubcs-code/codeBasicSecController/gridCodeBasicSec'},
+                }"
+            :value="formData.targetSystemOid"
+            :text="formData.targetSystemName"
+            :disabled="false"
+            :display="true"
+            @setReferValue="setReferValue"
+          ></vciWebRefer>
+        </el-form-item>
+        <el-form-item v-if="formData.dataFlowType=='push'" label="缂栫爜绯荤粺" prop="sourceSystemName">
+          <vciWebRefer
+            :referConfig="{
+                  title: '缂栫爜绯荤粺',
+                  showField: 'sourceSystemName',
+                  field: 'sourceSystemOid',
+                  fieldMap:{'sourceSystemId':'id'},
+                  placeholder: '璇烽�夋嫨',
+                  options: {isMuti: false, type: 'default', url: 'api/ubcs-code/codeBasicSecController/gridCodeBasicSec'},
+                }"
+            :value="formData.sourceSystemOid"
+            :text="formData.sourceSystemName"
+            :disabled="false"
+            :display="true"
+            @setReferValue="setReferValue"
+          ></vciWebRefer>
+        </el-form-item>
+        <el-form-item v-if="formData.dataFlowType=='accept'" label="缂栫爜绯荤粺" prop="targetSystemName">
+          <vciWebRefer
+            :referConfig="{
+                  title: '缂栫爜绯荤粺',
+                  showField: 'targetSystemName',
+                  field: 'targetSystemOid',
+                  fieldMap:{'targetSystemId':'id'},
+                  placeholder: '璇烽�夋嫨',
+                  options: {isMuti: false, type: 'default', url: 'api/ubcs-code/codeBasicSecController/gridCodeBasicSec'},
+                }"
+            :value="formData.targetSystemOid"
+            :text="formData.targetSystemName"
+            :disabled="false"
+            :display="true"
+            @setReferValue="setReferValue"
+          ></vciWebRefer>
+        </el-form-item>
+        <el-form-item v-if="formData.dataFlowType=='accept'" label="闆嗘垚绯荤粺" prop="sourceSystemName">
+          <vciWebRefer
+            :referConfig="{
+                  title: '闆嗘垚绯荤粺',
+                  showField: 'sourceSystemName',
+                  field: 'sourceSystemOid',
+                  fieldMap:{'sourceSystemId':'id'},
+                  placeholder: '璇烽�夋嫨',
+                  options: {isMuti: false, type: 'default', url: 'api/ubcs-code/codeBasicSecController/gridCodeBasicSec'},
+                }"
+            :value="formData.sourceSystemOid"
+            :text="formData.sourceSystemName"
+            :disabled="false"
+            :display="true"
+            @setReferValue="setReferValue"
+          ></vciWebRefer>
+        </el-form-item>
+        <el-form-item v-if="formData.pushType=='1'" label="鏄惁鎺ㄩ�侀泦鍥㈢爜" prop="isGroupCodeFlag">
+          <el-switch v-model="formData.isGroupCodeFlag" ></el-switch>
+        </el-form-item>
+        <el-form-item v-if="formData.pushType=='3'" label="鏄惁鐢宠闆嗗洟鐮�" prop="isGroupCodeFlag">
+          <el-switch v-model="formData.isGroupCodeFlag" ></el-switch>
+        </el-form-item>
+        <el-form-item  v-if="formData.pushType=='4'" label="鏄惁缁存姢闆嗗洟鐮�" prop="isGroupCodeFlag">
+          <el-switch v-model="formData.isGroupCodeFlag" ></el-switch>
+        </el-form-item>
+        <el-form-item  v-if="formData.pushType=='7'" label="鏄惁鏌ヨ闆嗗洟鐮�" prop="isGroupCodeFlag">
+          <el-switch v-model="formData.isGroupCodeFlag" ></el-switch>
+        </el-form-item>
+        <el-form-item label="绯荤粺鎻忚堪"  style="width: 850px;">
+          <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 5}" v-model="formData.description" style="width: 740px;"></el-input>
+        </el-form-item>
+        <el-form-item label="鎺ュ彛绫诲瀷" prop="interfaceType">
+          <el-select v-model="formData.interfaceType" clearable placeholder="璇烽�夋嫨">
+            <el-option v-for="item in interfaceTypeList" :key="item.value" :label="item.label" :value="item.value">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item v-if="formData.interfaceType=='http'" label="璇锋眰鏂瑰紡" prop="requestMethod">
+          <el-select v-model="formData.requestMethod" placeholder="璇烽�夋嫨">
+            <el-option v-for="item in requestMethodList" :key="item.value" :label="item.label" :value="item.value">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item v-if="formData.interfaceType=='webService' || formData.interfaceType=='http'" label="璇锋眰鍦板潃" prop="requestUrl">
+          <el-input v-model="formData.requestUrl" type="text"></el-input>
+        </el-form-item>
+        <el-form-item v-if="formData.interfaceType=='webService'" label="鎺ュ彛鍑芥暟" prop="interfaceFunction">
+          <el-input v-model="formData.interfaceFunction"></el-input>
+        </el-form-item>
+        <el-form-item v-if="formData.interfaceType=='webService'" label="鍛藉悕绌洪棿" prop="nameSpace">
+          <el-input v-model="formData.nameSpace"></el-input>
+        </el-form-item>
+        <el-form-item v-if="formData.interfaceType=='webService'" label="soapAction" prop="soapAction">
+          <el-input v-model="formData.soapAction" ></el-input>
+        </el-form-item>
+        <el-form-item v-if="formData.interfaceType=='webService'" label="鍙傛暟鍚嶇О" prop="targName">
+          <el-input v-model="formData.targName" ></el-input>
+        </el-form-item>
+        <el-form-item v-if="formData.interfaceType=='webService'" label="cxfaxis" prop="cxfaxis">
+          <el-input v-model="formData.cxfaxis" ></el-input>
+        </el-form-item>
+        <el-form-item v-if="formData.interfaceType=='classPath'" label="绫昏矾寰�" prop="classPath">
+          <el-input v-model="formData.classPath" ></el-input>
+        </el-form-item>
+        <el-tabs v-model="activeName" @tab-click="tabClick">
+          <el-tab-pane label="鍙傛暟瀵硅薄" name="paramTab">
+            <avue-crud :option="param.option"
+                       :data="formData.sysIntParamVOs"
+                       v-model="formData.sysIntParamVOs"
+                       ref="paramcrud">
+              <template slot="menuLeft">
+                <el-button type="primary"
+                           size="small"
+                           plain
+                           icon="el-icon-plus"
+                           @click="handleParamAdd">娣诲姞琛�
+                </el-button>
+              </template>
+              <template slot="menu" slot-scope="{row,index}">
+                <el-button icon="el-icon-edit" size="small" type="text" v-if="!row.$cellEdit" @click="handleParamEditClick(row,index)">缂栬緫
+                </el-button>
+                <el-button icon="el-icon-delete" size="small" type="text" v-if="!row.$cellEdit" @click="handleParamDel(row,index)">绉婚櫎
+                </el-button>
+                <el-button icon="el-icon-check" size="small" type="text" v-if="row.$cellEdit" @click="handleParamEditSave(row,index)">
+                  淇濆瓨
+                </el-button>
+              </template>
+            </avue-crud>
+          </el-tab-pane>
+          <el-tab-pane label="header瀵硅薄" name="headerTab">
+            <avue-crud :option="header.option"
+                       :data="formData.sysIntHeaderVOs"
+                       v-model="formData.sysIntHeaderVOs"
+                       ref="headercrud">
+              <template slot="menuLeft">
+                <el-button type="primary"
+                           size="small"
+                           plain
+                           icon="el-icon-plus"
+                           @click="handleHeaderAdd">娣诲姞琛�
+                </el-button>
+              </template>
+              <template slot="menu" slot-scope="{row,index}">
+                <el-button icon="el-icon-edit" size="small" type="text" v-if="!row.$cellEdit" @click="handleHeaderEditClick(row,index)">缂栬緫
+                </el-button>
+                <el-button icon="el-icon-delete" size="small" type="text" v-if="!row.$cellEdit"  @click="handleHeaderDel(row,index)">绉婚櫎
+                </el-button>
+                <el-button icon="el-icon-check" size="small" type="text" v-if="row.$cellEdit" @click="handleHeaderEditSave(row,index)">
+                  淇濆瓨
+                </el-button>
+              </template>
+            </avue-crud>
+          </el-tab-pane>
+        </el-tabs>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitAttribute">纭畾</el-button>
+        <el-button @click="cancelSubmit">鍙栨秷</el-button>
+      </div>
+    </el-dialog>
+
+  </el-container>
+</template>
+
+<script>
+import { validatenull } from "@/util/validate";
+import { getDictionary, getParentList } from '@/api/omd/enum'
+import {add,edit} from "@/api/docking/info"
+import vciWebRefer from "@/components/refer/vciWebRefer.vue";
+
+export default {
+  name: 'infoForm',
+  props: {
+    formData: {
+      type: Object,
+      default:{
+        sysIntParamVOs:[],
+        sysIntHeaderVOs:[]
+      }
+    },
+  },
+  components: { vciWebRefer },
+  data() {
+    return {
+      showSubmitDialog: false,
+      //鎺ュ彛绫诲瀷涓嬫媺
+      interfaceTypeList: [{
+        label: 'webService', value: 'webService'
+      }, {
+        label: '绫昏矾寰�', value: 'classPath'
+      }, {
+        label: 'Http', value: 'http'
+      }],
+      //鍙傛暟绫诲瀷涓嬫媺
+      paramTypeList: [{
+        label: 'xml', value: 'xml'
+      }, {
+        label: 'Json', value: 'json'
+      }],
+      //杩斿洖鍊肩被鍨嬩笅鎷�
+      returnTypeList: [{
+        label: 'xml', value: 'xml'
+      }, {
+        label: 'Json', value: 'json'
+      }],
+      dataFlowTypeList: [{
+        label: 'push', value: 'push'
+      }, {
+        label: 'accept', value: 'accept'
+      }],
+      //鎺ㄩ�佺被鍨�
+      pushTypeList: [{value: '1', label: '鏁版嵁鎺ㄩ��'},
+        {value: '2', label: '鍒嗙被鎺ㄩ��'}],
+      //璇锋眰鏂瑰紡
+      requestMethodList: [{key: 'post', value: 'post'},
+        {key: 'get', value: 'get'},
+        {key: 'delete', value: 'delete'},
+        {key: 'put', value: 'put'}],
+      // 榛樿鐨勯〉绛�
+      activeName: 'paramTab',
+      // 琛ㄥ崟鏍¢獙瑙勫垯
+      rules: {
+        paramType: [
+          {required: true, message: '璇烽�夋嫨鍙傛暟绫诲瀷', trigger: 'blur'}
+        ],
+        returnType: [
+          {required: true, message: '璇烽�夋嫨杩斿洖鍊肩被鍨�', trigger: 'blur'}
+        ],
+        dataFlowType: [
+          {required: true, message: '璇烽�夋嫨', trigger: 'change'}
+        ],
+        pushType: [
+          {required: true, message: '璇烽�夋嫨鎺ㄩ�佺被鍨�', trigger: 'blur'}
+        ],
+        classifyName: [
+          {required: true, message: '璇烽�夋嫨', trigger: 'sbumit'}
+        ],
+        sourceSystemName: [
+          {required: true, message: '璇烽�夋嫨', trigger: 'sbumit'}
+        ],
+        targetSystemName: [
+          {required: true, message: '璇烽�夋嫨', trigger: 'sbumit'}
+        ],
+        classPath: [
+          {required: true, message: '璇疯緭鍏ョ被璺緞', trigger: 'blur'}
+        ],
+        requestMethod: [
+          {required: true, message: '璇烽�夋嫨璇锋眰鏂瑰紡', trigger: 'blur'}
+        ],
+        requestUrl: [
+          {required: true, message: '璇疯緭鍏ヨ姹傚湴鍧�', trigger: 'blur'}
+        ],
+        interfaceFunction: [
+          {required: true, message: '璇疯緭鍏ユ帴鍙e嚱鏁�', trigger: 'blur'}
+        ],
+        nameSpace: [
+          {required: true, message: '璇疯緭鍏ュ懡鍚嶇┖闂�', trigger: 'blur'}
+        ],
+        soapAction: [
+          {required: true, message: '璇疯緭鍏oapAction', trigger: 'blur'}
+        ],
+        targName: [
+          {required: true, message: '璇疯緭鍏ュ弬鏁板悕绉�', trigger: 'blur'}
+        ],
+        cxfaxis: [
+          {required: true, message: '璇疯緭鍏xfaxis', trigger: 'blur'}
+        ]
+      },
+      // 琛ㄦ牸閰嶇疆
+      param: {
+        option: {
+          height: 200,
+          index: true,
+          addBtn: false,
+          viewBtn: false,
+          delBtn: false,
+          editBtn: false,
+          refreshBtn: false,
+          columnBtn: false,
+          border: true,
+          menuWidth: 150,
+          searchShowBtn: false,
+          align: 'center',
+          column: [{
+            label: '鍙傛暟鍚�',
+            prop: 'paramKey',
+            cell: true
+          }, {
+            label: '鍙傛暟鍊�',
+            prop: 'paramValue',
+            cell: true
+          }, {
+            label: '鏄惁浣跨敤',
+            prop: 'usedFlag',
+            formatter: function (row, column) {
+              return row.usedFlag == 'true' || row.usedFlag == '1' ? '鏄�' : '鍚�'
+            },
+            width: 150,
+            type: 'switch',
+            cell: true
+          }]
+        },
+        selectRow: {}
+      },
+      // 鏋氫妇鍙傜収琛ㄦ牸閰嶇疆
+      header: {
+        option: {
+          height: 200,
+          index: true,
+          addBtn: false,
+          viewBtn: false,
+          delBtn: false,
+          editBtn: false,
+          refreshBtn: false,
+          columnBtn: false,
+          border: true,
+          menuWidth: 150,
+          searchShowBtn: false,
+          align: 'center',
+          column: [{
+            label: '澶村弬鏁板悕绉�',
+            prop: 'headerKey',
+            cell: true
+          }, {
+            label: '澶村弬鏁板��',
+            prop: 'headerValue',
+            cell: true
+          }, {
+            label: '鏄惁浣跨敤',
+            prop: 'usedFlag',
+            formatter: function (row, column) {
+              return row.usedFlag == 'true' || row.usedFlag == '1' ? '鏄�' : '鍚�'
+            },
+            width: 150,
+            type: 'switch',
+            cell: true
+          }],
+          // 閫夊畾琛�
+          selectRow: ''
+        },
+        dictEnums: []
+      }
+    }
+  },
+  created() {
+    //this.geDictData('interfaceType', this.interfaceTypeList)
+  },
+  mounted(){
+    if (!this.formData.sysIntParamVOs) {
+      this.formData.sysIntParamVOs = [];
+    }
+    if (!this.formData.sysIntHeaderVOs) {
+      this.formData.sysIntHeaderVOs = [];
+    }
+    if(this.formData.dataFlowType=='accept'){
+      this.pushTypeList=[
+        {value: '3', label: '缂栫爜鐢宠'},
+        {value: '4', label: '缂栫爜鏇存敼锛堢姸鎬併�佸洖鏀讹級'},
+        {value: '5', label: '鍒嗙被鏌ヨ'},
+        {value: '6', label: '鍚鍒欎俊鎭殑鍒嗙被鏌ヨ'},
+        {value: '7', label: '鏁版嵁鏌ヨ'}]
+      this.formData.pushType=''
+    }else {
+      this.pushTypeList=[{value: '1', label: '鏁版嵁鎺ㄩ��'},
+        {value: '2', label: '鍒嗙被鎺ㄩ��'}]
+      this.formData.pushType='1'
+    }
+  },
+  methods: {
+    closeSubmitDialog() {
+      this.resetForm();
+      this.showSubmitDialog = false;
+    },
+    resetForm() {
+      this.formData = {
+        sysIntParamVOs: [],
+        sysIntHeaderVOs: []
+      };
+      this.$refs.form.resetFields();
+    },
+    setReferValue(data) {
+      if (data.field) {
+        this.formData[data.field] = data.value || "";
+        this.formData[data.showField] = data.text || "";
+      }
+      if (data.fieldMap) {
+        //璇存槑闇�瑕佹槧灏�
+        for (let key in data.fieldMap) {
+          let mapFields = data.fieldMap[key].split(",");
+          let value = [];
+          data.rawData.forEach(_item => {
+            var temp;
+            if (!_item.attributes) {
+              _item.attributes = _item;
+            }
+            if (mapFields.length == 1) {
+              var mapField = mapFields[0];
+              if (mapField.indexOf("attribute.") > -1) {
+                temp = _item['attributes'][mapField.subString("attribute.".length)];
+              } else {
+                temp = _item['attributes'][mapField] || _item[mapField];
+              }
+            } else {
+              //鏈夊涓�
+              var mutiTemp = [];
+              layui.each(mapFields, function (_indexField, _itemField) {
+                if (_itemField.indexOf("attribute.") > -1) {
+                  mutiTemp.push(_item['attributes'][_itemField.subString("attribute.".length)]);
+                } else {
+                  mutiTemp.push(_item['attributes'][_itemField] || _item[_itemField]);
+                }
+              });
+              temp = mutiTemp.join(' ');
+            }
+            if (temp != null && temp != '') {
+              value.push(temp);
+            }
+          })
+          this.formData[key] = value.join(',');
+        }
+      }
+    },
+    submitAttribute() {
+      const that = this;
+      let pass=true
+      if(validatenull(this.formData.classifyName)||validatenull(this.formData.sourceSystemName)||validatenull(this.formData.targetSystemName)){
+        that.$message.error('蹇呭~椤逛笉鑳戒负绌�');
+        pass=false
+        return;
+      }
+      this.$refs.form.validateField(['paramType','returnType','dataFlowType','pushType','classPath','requestMethod','requestUrl',
+        'interfaceFunction','nameSpace','soapAction','targName','cxfaxis'],function (errormsg, field) {
+        if (errormsg) {
+          pass=false
+        }
+      })
+      this.$nextTick(function (){
+        if(pass){
+          that.formData.sysIntParamDTOs=this.formData.sysIntParamVOs.map(item=>{
+            return {
+              ...item,
+              ordernNo:item.$index
+            }
+          })
+          that.formData.sysIntHeaderDTOS=this.formData.sysIntHeaderVOs.map(item=>{
+            return {
+              ...item,
+              ordernNo:item.$index
+            }
+          })
+          add(that.formData).then(res => {
+            that.$message.success("淇濆瓨鎴愬姛");
+            that.showSubmitDialog = false;
+            this.formData = {
+              sysIntParamVOs: [],
+              sysIntHeaderVOs: []
+            };
+            that.$emit('refreshTable');
+          });
+        }
+      })
+    },
+    cancelSubmit() {
+      this.closeSubmitDialog();
+    },
+    // 寮傛鑾峰彇瀛楀吀鏁版嵁
+    geDictData(dictKey, list) {
+      getDictionary({code: dictKey}).then((res) => {
+        if (res.data && res.data.code === 200) {
+          let dictData = (res.data.data || []).map((itm) => {
+            itm.value = itm.dictValue;
+            itm.key = itm.dictKey;
+            return itm;
+          });
+          list = dictData;
+        }
+      });
+    },
+    dataFlowTypeChange(value){
+      if(value=='push'){
+        this.pushTypeList=[{value: '1', label: '鏁版嵁鎺ㄩ��'},
+          {value: '2', label: '鍒嗙被鎺ㄩ��'}]
+        this.formData.pushType='鏁版嵁鎺ㄩ��'
+      }else if(value=='accept'){
+        this.pushTypeList=[
+          {value: '3', label: '缂栫爜鐢宠'},
+          {value: '4', label: '缂栫爜鏇存敼锛堢姸鎬併�佸洖鏀讹級'},
+          {value: '5', label: '鍒嗙被鏌ヨ'},
+          {value: '6', label: '鍚鍒欎俊鎭殑鍒嗙被鏌ヨ'},
+          {value: '7', label: '鏁版嵁鏌ヨ'}]
+        this.formData.pushType=''
+      }else{
+        this.pushTypeList=[];
+      }
+      this.$refs.form.clearValidate()
+    },
+    pushTypeChange(value){
+      this.$refs.form.clearValidate()
+    },
+    tabClick(tab) {
+      if (tab.name === 'paramTab') {
+        this.$nextTick(function (){
+          this.$refs.paramcrud.doLayout()
+        })
+      } else {
+        this.$nextTick(function (){
+          this.$refs.headercrud.doLayout()
+        })
+      }
+    },
+    handleParamAdd() {
+      this.formData.sysIntParamVOs.push({
+        usedFlag: true,
+        $cellEdit:true
+      })
+      this.$nextTick(function (){
+        this.$refs.paramcrud.doLayout()
+      })
+    },
+    handleParamEditClick(row){
+      row.$cellEdit = true;
+    },
+    handleParamDel(row,index){
+      this.formData.sysIntParamVOs.splice(index, 1);
+    },
+    // 鍒楄〃缂栬緫淇濆瓨
+    handleParamEditSave(row,index) {
+      row.$cellEdit = false;
+    },
+    handleHeaderAdd() {
+      this.formData.sysIntHeaderVOs.push({
+        usedFlag: true,
+        $cellEdit:true
+      })
+      this.$nextTick(function (){
+        this.$refs.headercrud.doLayout()
+      })
+    },
+    handleHeaderEditClick(row){
+      row.$cellEdit = true;
+    },
+    handleHeaderDel(row,index){
+      this.formData.sysIntHeaderVOs.splice(index, 1);
+    },
+    // 鍒楄〃缂栬緫淇濆瓨
+    handleHeaderEditSave(row,index) {
+      row.$cellEdit = false;
+    }
+  }
+}
+</script>
+
+<style>
+.btmTable>.el-card:nth-of-type(2)>.el-card__body>.avue-crud__menu {
+  display: none !important;
+}
+
+.enumTable>.el-card:nth-of-type(2)>.el-card__body>.avue-crud__menu {
+  display: none !important;
+}
+.dockingForm .el-form-item__label{width: 130px;}
+.dockingForm .el-form-item__content,.dockingForm .el-form-item__content .el-input>.el-input__inner,.dockingForm .el-input-number--medium {
+  width: 300px !important;
+}
+.dockingForm .cell .el-form-item__content,.dockingForm .cell .el-form-item__content .el-input>.el-input__inner{
+  width :100% !important;
+}
+</style>
diff --git a/Source/UBCS-WEB/src/views/system/menu.vue b/Source/UBCS-WEB/src/views/system/menu.vue
index b77d4ab..c3e54fe 100644
--- a/Source/UBCS-WEB/src/views/system/menu.vue
+++ b/Source/UBCS-WEB/src/views/system/menu.vue
@@ -586,9 +586,10 @@
         update(row).then(() => {
           this.$message({
             type: "success",
-            message: "鎿嶄綔鎴愬姛!"
+            message: "鎿嶄綔鎴愬姛1!"
           });
           // 鏁版嵁鍥炶皟杩涜鍒锋柊
+          this.onLoad()
           done(row);
         }, error => {
           window.console.log(error);
diff --git a/Source/UBCS-WEB/vue.config.js b/Source/UBCS-WEB/vue.config.js
index e8138f2..cf90d26 100644
--- a/Source/UBCS-WEB/vue.config.js
+++ b/Source/UBCS-WEB/vue.config.js
@@ -29,8 +29,9 @@
         // target: 'http://127.0.0.1',
         // target: 'http://192.168.1.51:37000',
         // target: 'http://dev.vci-tech.com:37000',
-        target: 'http://192.168.1.16:37000',
+        // target: 'http://192.168.1.16:37000',
         // target: 'http://192.168.0.105:37000',
+        target: 'http://192.168.43.251:37000',
         // target: 'http://192.168.0.103:37000',
         // target: 'http://192.168.1.63:37000',
         // target: 'http://192.168.3.7:37000',
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 e6c9f24..887df95 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
@@ -40,6 +40,12 @@
      */
     private List<CodeOrderSecDTO> secDTOList;
 
+
+	/**
+	 * 鏈�澶ф祦姘村彿
+	 */
+	private int maxSecNum;
+
     public String getCodeClassifyOid() {
         return codeClassifyOid;
     }
@@ -80,14 +86,23 @@
         this.editInProcess = editInProcess;
     }
 
-    @Override
-    public String toString() {
-        return "CodeOrderDTO{" +
-                "codeClassifyOid='" + codeClassifyOid + '\'' +
-                ", templateOid='" + templateOid + '\'' +
-                ", codeRuleOid='" + codeRuleOid + '\'' +
-                ", editInProcess=" + editInProcess +
-                ", secDTOList=" + secDTOList +
-                "} " + super.toString();
-    }
+	public int getMaxSecNum() {
+		return maxSecNum;
+	}
+
+	public void setMaxSecNum(int maxSecNum) {
+		this.maxSecNum = maxSecNum;
+	}
+
+	@Override
+	public String toString() {
+		return "CodeOrderDTO{" +
+			"codeClassifyOid='" + codeClassifyOid + '\'' +
+			", templateOid='" + templateOid + '\'' +
+			", codeRuleOid='" + codeRuleOid + '\'' +
+			", editInProcess=" + editInProcess +
+			", secDTOList=" + secDTOList +
+			", maxSecNum=" + maxSecNum +
+			'}';
+	}
 }
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 79f9102..5aaed90 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
@@ -3,9 +3,12 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import com.vci.ubcs.code.dto.CodeBasicSecDTO;
+import com.vci.ubcs.code.dto.CodeOrderDTO;
+import com.vci.ubcs.code.dto.CodeRuleDTO;
 import com.vci.ubcs.code.entity.CodeBasicSec;
 import com.vci.ubcs.code.service.ICodeBasicSecService;
 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.starter.exception.VciBaseException;
 import com.vci.ubcs.starter.web.pagemodel.BladeQueryObject;
@@ -205,4 +208,28 @@
         return R.status(codeBasicSecService.downOrderNum(oid));
     }
 
+	/**
+	 * 鏌ヨ缂栫爜瑙勫垯鐨勬墍鏈夋祦姘翠緷璧栫殑鐮佹
+	 * @param ruleOid 缂栫爜瑙勫垯涓婚敭
+	 * @return
+	 */
+	@GetMapping("/getCodeRuleAndBasicSecByRuleOid")
+	@ApiOperationSupport(order = 13)
+	@ApiOperation(value = "鏌ヨ缂栫爜瑙勫垯鐨勬墍鏈夋祦姘翠緷璧栫殑鐮佹", notes = "浼犲叆oid")
+	public R<CodeRuleVO> getCodeRuleAndBasicSecByRuleOid(String ruleOid){
+		return R.data(codeBasicSecService.getSerialNumberDepend(ruleOid));
+	}
+
+
+	/**
+	 * 璁剧疆鏈�澶ф祦姘村彿
+	 * @param codeOrderDTO 缂栫爜鐢宠浼犺緭瀵硅薄
+	 * @return
+	 */
+	@PostMapping("/setMaxSerialNumberForCodeRule")
+	@ApiOperationSupport(order = 14)
+	@ApiOperation(value = "璁剧疆鏈�澶ф祦姘村彿", notes = "codeOrderDTO")
+	public R setMaxSerialNumberForCodeRule(@RequestBody CodeOrderDTO codeOrderDTO){
+		return R.success(codeBasicSecService.setMaxSerialNumberForCodeRule(codeOrderDTO));
+	}
 }
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 cb902e9..95bd055 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
@@ -4,9 +4,12 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.vci.ubcs.code.dto.CodeBasicSecDTO;
+import com.vci.ubcs.code.dto.CodeOrderDTO;
+import com.vci.ubcs.code.dto.CodeRuleDTO;
 import com.vci.ubcs.code.entity.CodeBasicSec;
 import com.vci.ubcs.code.vo.CodeReferConfigVO;
 import com.vci.ubcs.code.vo.pagemodel.CodeBasicSecVO;
+import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO;
 import com.vci.ubcs.starter.exception.VciBaseException;
 import com.vci.ubcs.starter.web.pagemodel.*;
 import org.springblade.core.mp.support.Query;
@@ -179,4 +182,20 @@
 	 * @throws VciBaseException 鎷疯礉灞炴�у嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父
 	 */
 	CodeBasicSecVO codeBasicSecDO2VO(CodeBasicSec codeBasicSecDO) throws VciBaseException;
+
+	/**
+	 * 鏍规嵁缂栫爜瑙勫垯涓婚敭鑾峰彇缂栫爜涓嬬殑娴佹按渚濊禆鐮佹
+	 * @param oid 缂栫爜瑙勫垯涓婚敭
+	 * @return
+	 * @throws VciBaseException
+	 */
+	CodeRuleVO getSerialNumberDepend(String oid) throws VciBaseException;
+
+	/**
+	 * 璁剧疆鏈�澶ф祦姘村彿
+	 * @param codeOrderDTO 缂栫爜鐢宠浼犺緭瀵硅薄
+	 * @return
+	 * @throws VciBaseException
+	 */
+	String setMaxSerialNumberForCodeRule(CodeOrderDTO codeOrderDTO) throws VciBaseException;
 }
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 c198752..007bee9 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
@@ -3,18 +3,22 @@
 import com.alibaba.cloud.commons.lang.StringUtils;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 
 import com.vci.ubcs.code.dto.CodeBasicSecDTO;
+import com.vci.ubcs.code.dto.CodeOrderDTO;
+import com.vci.ubcs.code.dto.CodeOrderSecDTO;
 import com.vci.ubcs.code.entity.*;
 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;
 import com.vci.ubcs.code.mapper.CodeFixedValueMapper;
+import com.vci.ubcs.code.mapper.CodeSerialValueMapper;
 import com.vci.ubcs.code.service.*;
 import com.vci.ubcs.code.vo.CodeReferConfigVO;
 import com.vci.ubcs.code.vo.pagemodel.*;
@@ -23,6 +27,7 @@
 import com.vci.ubcs.omd.enums.EnumEnum;
 import com.vci.ubcs.starter.enumpack.CodeTableNameEnum;
 import com.vci.ubcs.starter.exception.VciBaseException;
+import com.vci.ubcs.starter.revision.model.BaseModel;
 import com.vci.ubcs.starter.revision.service.RevisionModelUtil;
 import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil;
 import com.vci.ubcs.starter.util.MdmBtmTypeConstant;
@@ -32,6 +37,7 @@
 import com.vci.ubcs.starter.web.pagemodel.*;
 import com.vci.ubcs.starter.web.util.BeanUtilForVCI;
 import com.vci.ubcs.starter.web.util.VciBaseUtil;
+import com.vci.ubcs.starter.web.util.VciDateUtil;
 import com.vci.ubcs.starter.web.util.WebUtil;
 import com.vci.ubcs.system.entity.DictBiz;
 import com.vci.ubcs.system.feign.IDictBizClient;
@@ -50,6 +56,8 @@
 import java.util.stream.Collectors;
 
 import static com.vci.ubcs.code.constant.FrameWorkLangCodeConstant.*;
+import static com.vci.ubcs.code.constant.MdmEngineConstant.EMPTY_SERIAL_UNIT;
+import static com.vci.ubcs.code.constant.MdmEngineConstant.SERIAL_UNIT_SPACE;
 
 /**
  * 鐮佹鍩虹淇℃伅鏈嶅姟鎺ュ彛
@@ -96,6 +104,12 @@
 	 */
 	@Resource
 	private ICodeFixedValueService fixedValueService;
+
+	/**
+	 * 娴佹按鍙风殑鐩稿叧鐨勪俊鎭�
+	 */
+	@Resource
+	private CodeSerialValueMapper serialValueMapper;
 
 	/**
 	 * 涓婂眰鍒嗙被鐮佹鐨勫睘鎬у悕绉�
@@ -351,6 +365,7 @@
 		DefaultAttrAssimtUtil.updateDefaultAttrAssimt(codeBasicSecDO);
 		boolean status = codeRuleService.checkEditDelStatus(codeRuleService.getObjectByOid(codeBasicSecDO.getPkCodeRule()).getLcStatus());
 		boolean resBoolean;
+		CodeReferConfigVO codeReferConfigVO = null;
 		if (!status){
 			//杩斿洖閿欒淇℃伅
 			throw new VciBaseException("缂栫爜瑙勫垯涓嶅厑璁哥紪杈戞垨鍒犻櫎锛�");
@@ -361,7 +376,6 @@
 				&& StringUtils.isBlank(codeBasicSecDO.getCodeFillSeparator())){
 				throw new VciBaseException("褰撹ˉ浣嶆柟寮忎负宸﹁ˉ浣嶆垨鑰呭彸琛ヤ綅鐨勬椂鍊欙紝琛ヤ綅瀛楃涓嶈兘涓虹┖");
 			}
-			CodeReferConfigVO codeReferConfigVO = null;
 			//寮曠敤鐮佹鐨勬椂鍊欙紝闇�瑕佸垽鏂弬鐓х殑淇℃伅鏄惁姝g‘
 			if(CodeSecTypeEnum.CODE_REFER_SEC.getValue().equalsIgnoreCase(codeBasicSecDO.getSecType())){
 				if(StringUtils.isBlank(codeBasicSecDO.getReferConfig())){
@@ -379,7 +393,16 @@
 					codeReferConfigService.insert(codeReferConfigVO);
 				}
 			}
-			revisionModelUtil.copyFromDTOIgnore(codeBasicSecDTO, codeBasicSecDO);
+
+//			revisionModelUtil.copyFromDTOIgnore(codeBasicSecDTO, codeBasicSecDO);//姝ゅ鐨勬嫹璐濅細鎶妑eferValueInfo鐨勫�肩粰瑕嗙洊鎺夛紝闇�瑕侀噸鏂拌祴鍊�
+			BaseModel tempModel = new BaseModel();
+			BeanUtilForVCI.copyPropertiesIgnoreCase(codeBasicSecDO, tempModel);
+			BeanUtil.copyProperties(codeBasicSecDTO, codeBasicSecDO,"referValueInfo");
+			BeanUtilForVCI.copyPropertiesIgnoreCase(tempModel, codeBasicSecDO);
+			codeBasicSecDO.setId(VciBaseUtil.getStringValueFromObject(VciBaseUtil.getValueFromField("id", codeBasicSecDTO)));
+			codeBasicSecDO.setName(VciBaseUtil.getStringValueFromObject(VciBaseUtil.getValueFromField("name", codeBasicSecDTO)));
+			codeBasicSecDO.setDescription(VciBaseUtil.getStringValueFromObject(VciBaseUtil.getValueFromField("description", codeBasicSecDTO)));
+
 			resBoolean = codeBasicSecMapper.updateById(codeBasicSecDO)>0;
 			//SessionInfo sessionInfo = VciBaseUtil.getCurrentUserSessionInfo();
 			if(StringUtils.isNotBlank(codeBasicSecDO.getCodeFillSeparator())){
@@ -869,4 +892,129 @@
 		return codeBasicSecVO;
 	}
 
+	/**
+	 * 鏍规嵁缂栫爜瑙勫垯涓婚敭鑾峰彇缂栫爜涓嬬殑娴佹按渚濊禆鐮佹
+	 *
+	 * @param oid 缂栫爜瑙勫垯涓婚敭
+	 * @return
+	 * @throws VciBaseException
+	 */
+	@Override
+	public CodeRuleVO getSerialNumberDepend(String oid) throws VciBaseException {
+		VciBaseUtil.alertNotNull(oid,"缂栫爜瑙勫垯涓婚敭");
+		CodeRuleVO codeRuleVO = codeRuleService.getObjectByOid(oid);
+		if (codeRuleVO != null) {
+			//濡傛灉鏈塴cstatus鐨勭被鐨勮瘽
+			codeRuleVO.setLcStatusText(CodeRuleLC.getTextByValue(codeRuleVO.getLcStatus()));
+
+			LambdaQueryWrapper<CodeBasicSec> wrapper = Wrappers.<CodeBasicSec>query().lambda()
+				.eq(CodeBasicSec::getPkCodeRule, codeRuleVO.getOid())
+				.eq(CodeBasicSec::getSecType,CodeSecTypeEnum.CODE_SERIAL_SEC.getValue());
+			CodeBasicSec codeBasicSec = this.getOne(wrapper);
+			if(codeBasicSec != null && VciBaseUtil.isNotNull(codeBasicSec.getOid())){
+				wrapper = Wrappers.<CodeBasicSec>query().lambda()
+					.eq(CodeBasicSec::getPkCodeRule,codeRuleVO.getOid())
+					.eq(CodeBasicSec::getSerialDependFlag,"true")
+					.orderByAsc(CodeBasicSec::getSerialDependOrder);
+				List<CodeBasicSec> codeBasicSecList = this.list(wrapper);
+				if(!CollectionUtils.isEmpty(codeBasicSecList)){
+					List<CodeBasicSecVO> codeBasicSecVOS = codeBasicSecDO2VOs(codeBasicSecList);
+					//鏌ヨ鍥哄畾鐮佺殑鐮佸��
+					Map<String, List<CodeFixedValueVO>> secValueMap = fixedValueService.listCodeFixedValueBySecOids(codeBasicSecList.stream().map(CodeBasicSec::getOid).collect(Collectors.toList()));
+					codeBasicSecVOS.stream().forEach(vo->{
+						vo.setFixedValueVOList(secValueMap.getOrDefault(vo.getOid(),null));
+					});
+					codeRuleVO.setSecVOList(codeBasicSecVOS);
+				}
+			}else{
+				throw new VciBaseException(codeRuleVO.getName()+"缂栫爜瑙勫垯涓嬫棤娴佹按鐮佹锛屾棤娉曡缃渶澶ф祦姘村彿锛�");
+			}
+		}
+		return codeRuleVO;
+	}
+
+	/**
+	 * 璁剧疆鏈�澶ф祦姘村彿
+	 *
+	 * @param codeOrderDTO 缂栫爜鐢宠浼犺緭瀵硅薄
+	 * @return
+	 * @throws VciBaseException
+	 */
+	@Override
+	public String setMaxSerialNumberForCodeRule(CodeOrderDTO codeOrderDTO) throws VciBaseException {
+		VciBaseUtil.alertNotNull(codeOrderDTO.getCodeRuleOid(),"缂栫爜瑙勫垯涓婚敭",codeOrderDTO.getMaxSecNum(),"鏈�澶ф祦姘村彿");
+		List<CodeOrderSecDTO> codeOrderSecDTOList = codeOrderDTO.getSecDTOList();
+		if(CollectionUtils.isEmpty(codeOrderSecDTOList)){
+			throw new VciBaseException("鏈�澶ф祦姘村彿鐨勬祦姘翠緷璧栦笉鑳戒负绌猴紒");
+		}
+
+		String codeRuleOid = codeOrderDTO.getCodeRuleOid();
+		int maxSecNum = codeOrderDTO.getMaxSecNum();
+
+		Map<String/**鐮佹涓婚敭*/,CodeOrderSecDTO/**鐮佹鐩稿叧淇℃伅*/> codeOrderSecDTOMap = codeOrderSecDTOList.stream().collect(Collectors.toMap(s -> s.getSecOid(), t -> t));
+		List<String> codeBasicSecOidList = codeOrderSecDTOList.stream().map(s->s.getSecOid()).collect(Collectors.toList());//娴佹按渚濊禆鐮佹鐨勪富閿泦鍚�
+
+		//鑾峰彇娴佹按渚濊禆鐮佹
+		LambdaQueryWrapper<CodeBasicSec> wrapper = Wrappers.<CodeBasicSec>query().lambda()
+			.eq(CodeBasicSec::getPkCodeRule,codeRuleOid)
+			.in(CodeBasicSec::getOid,codeBasicSecOidList)
+			.eq(CodeBasicSec::getSerialDependFlag,"true")
+			.orderByAsc(CodeBasicSec::getSerialDependOrder);
+		List<CodeBasicSec> codeBasicSecList = this.list(wrapper);
+
+		//鎸夋祦姘翠緷璧栭『搴忥紝澶勭悊娴佹按渚濊禆鐮佹鐨勫��
+		List<String> serialDependValueList = new ArrayList<>();
+		codeBasicSecList.stream().forEach(s->{
+			CodeOrderSecDTO codeOrderSecDTO = codeOrderSecDTOMap.get(s.getOid());
+			String serialDependValue = codeOrderSecDTO.getSecValue();
+			if(s.getSecType().equals(CodeSecTypeEnum.CODE_DATE_SEC.getValue())){
+				try {
+					Date date = VciDateUtil.str2Date(codeOrderSecDTO.getSecValue(),s.getCodeDateFormatStr());
+					serialDependValue = VciDateUtil.date2Str(date,s.getCodeDateFormatStr());
+				} catch (Exception e) {
+					throw new RuntimeException(e);
+				}
+			}
+			serialDependValueList.add(serialDependValue);
+		});
+
+		//鑾峰彇娴佹按鐮佹
+		wrapper = Wrappers.<CodeBasicSec>query().lambda()
+			.eq(CodeBasicSec::getPkCodeRule,codeRuleOid)
+			.eq(CodeBasicSec::getSecType,CodeSecTypeEnum.CODE_SERIAL_SEC.getValue())
+			.orderByAsc(CodeBasicSec::getSerialDependOrder);
+		CodeBasicSec codeBasicSec = this.getOne(wrapper);
+
+		//鏍规嵁缂栫爜瑙勫垯鍜屾祦姘翠緷璧栵紝鑾峰彇鏈�澶ф祦姘村彿
+		String serialUnitString = serialDependValueList.size() == 0 ? EMPTY_SERIAL_UNIT : serialDependValueList.stream().collect(Collectors.joining(SERIAL_UNIT_SPACE));
+		LambdaQueryWrapper<CodeSerialValue> codeSerialWrapper = new LambdaQueryWrapper<>();
+		codeSerialWrapper.eq(CodeSerialValue::getCodeRuleOid, codeRuleOid);
+		codeSerialWrapper.eq(CodeSerialValue::getSerialUnit, serialUnitString);
+		codeSerialWrapper.eq(CodeSerialValue::getCodeSecOid,codeBasicSec.getOid());
+		codeSerialWrapper.orderByDesc(CodeSerialValue::getCreateTime);
+		List<CodeSerialValue> codeSerialValueList = serialValueMapper.selectList(codeSerialWrapper);
+
+		//濡傛灉鏈�澶ф祦姘村彿涓嶄负绌猴紝璇存槑宸叉湁鏈�濂芥祦姘村彿锛屾洿鏂版渶澶ф祦姘村彿
+		if(!CollectionUtils.isEmpty(codeSerialValueList)){
+			CodeSerialValue codeSerialValue = codeSerialValueList.get(0);
+			int maxSerial = Double.valueOf(codeSerialValue.getMaxSerial()).intValue();
+			//宸叉湁鐨勬渶澶ф祦姘村彿锛屽皬浜庤缃殑鏈�澶ф祦姘村彿锛屾洿鏂版渶澶ф祦姘村彿
+			if(maxSerial < maxSecNum){
+				codeSerialValue.setMaxSerial(String.valueOf(maxSecNum));
+				serialValueMapper.updateById(codeSerialValue);
+			}else{
+				maxSecNum = maxSerial;
+			}
+		}else{
+			//濡傛灉鏈�澶ф祦姘村彿涓嶄负绌猴紝璇存槑鏃犳渶濂芥祦姘村彿锛屾柊澧炴渶澶ф祦姘村彿
+			CodeSerialValue codeSerialValue = new CodeSerialValue();
+			DefaultAttrAssimtUtil.addDefaultAttrAssimt(codeSerialValue, MdmBtmTypeConstant.CODE_SERIAL_VALUE);
+			codeSerialValue.setCodeRuleOid(codeRuleOid);
+			codeSerialValue.setSerialUnit(serialUnitString);
+			codeSerialValue.setCodeSecOid(codeBasicSec.getOid());
+			codeSerialValue.setMaxSerial(String.valueOf(maxSecNum));
+			serialValueMapper.insert(codeSerialValue);
+		}
+		return String.valueOf(maxSecNum);
+	}
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmProductCodeServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmProductCodeServiceImpl.java
index cf4880e..4948270 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmProductCodeServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmProductCodeServiceImpl.java
@@ -179,11 +179,13 @@
 						CodeSerialValue serialValueDO = serialValueDOS.get(0);
 						if(VciBaseUtil.getDouble(serialValueDO.getMaxSerial())<maxSerial){
 							serialValueDO.setMaxSerial(String.valueOf(maxSerial));
+							DefaultAttrAssimtUtil.updateDefaultAttrAssimt(serialValueDO);
 							editSerialValueList.add(serialValueDO);
 						}
 					}else{
 						//娌℃湁
 						CodeSerialValue serialValueDO = new CodeSerialValue();
+						DefaultAttrAssimtUtil.addDefaultAttrAssimt(serialValueDO, MdmBtmTypeConstant.CODE_SERIAL_VALUE);
 						serialValueDO.setCodeRuleOid(ruleVO.getOid());
 						serialValueDO.setSerialUnit(serialUnit);
 						serialValueDO.setCodeSecOid(secOid);
@@ -627,6 +629,7 @@
                                 BaseModel cbo, CodeClassifyTemplateVO templateVO,
                                 List<CodeAllCode> allCodeDOList, String serialUnitString, String serialValueString){
 		CodeAllCode allCodeDO = new CodeAllCode();
+		DefaultAttrAssimtUtil.addDefaultAttrAssimt(allCodeDO, MdmBtmTypeConstant.CODE_ALL_CODE);
 		allCodeDO.setCodeClassifyOid(classifyFullInfoBO.getCurrentClassifyVO().getOid());
 		allCodeDO.setCodeRuleOid(ruleVO.getOid());
 		allCodeDO.setId(cbo.getId());
@@ -661,9 +664,11 @@
 					//璇存槑鏈�
 					serialValueDO = maxSerialValueMap.get(secOid).get(unit);
 					serialValueDO.setMaxSerial(maxSerial.toString());
+					DefaultAttrAssimtUtil.updateDefaultAttrAssimt(serialValueDO);
 					editSerialValueDOList.add(serialValueDO);
 				}else{
 					serialValueDO = new CodeSerialValue();
+					DefaultAttrAssimtUtil.addDefaultAttrAssimt(serialValueDO, MdmBtmTypeConstant.CODE_SERIAL_VALUE);
 					serialValueDO.setCodeRuleOid(ruleVO.getOid());
 					serialValueDO.setSerialUnit(unit);
 					serialValueDO.setCodeSecOid(secOid);

--
Gitblit v1.9.3