From fd2f31c79972bf1fc5f500a6f36b96546b2768d6 Mon Sep 17 00:00:00 2001
From: fujunling <2984387807@qq.com>
Date: 星期五, 02 六月 2023 16:34:24 +0800
Subject: [PATCH] Merge branch 'master' of http://dev.vci-tech.com:1065/r/ubcs

---
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/IMdmEngineClient.java                   |   10 +
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/MdmEngineClient.java                            |   16 ++
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyTemplateAttrServiceImpl.java |    6 
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeClassifyTemplateAttrVO.java  |    5 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CommonsMapper.java                             |   12 +
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClassifyTemplateAttr.java          |    5 
 Source/UBCS-WEB/src/views/integration/integrationIndex.vue                                                               |  224 ++++++++++++++++++-------------
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java                         |    9 +
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/IMdmEngineFallback.java                 |    7 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java                |   35 +++++
 Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CommonsMapper.xml                                           |   14 ++
 Source/UBCS-WEB/src/api/integration/integration.js                                                                       |   14 +
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/UIFormItemVO.java                |   11 +
 13 files changed, 269 insertions(+), 99 deletions(-)

diff --git a/Source/UBCS-WEB/src/api/integration/integration.js b/Source/UBCS-WEB/src/api/integration/integration.js
index 4135761..64339d1 100644
--- a/Source/UBCS-WEB/src/api/integration/integration.js
+++ b/Source/UBCS-WEB/src/api/integration/integration.js
@@ -50,9 +50,19 @@
 }
 // 灞炴�ф槧灏勪繚瀛樻柟娉�
 export const batchAddSave = (params) => {
+  console.log(params)
   return request({
     url: '/api/ubcs-applyjtcodeservice/DockingPreApplyCode/batchAddSave',
-    method: 'get',
-    params: params
+    method: 'post',
+    data: params
+  })
+}
+//  鍚屾闆嗗洟灞炴�фā鍨嬭鍥�
+export const syncClassifyModel = (params) => {
+  console.log(params)
+  return request({
+    url: '/api/ubcs-applyjtcodeservice/DockingPreApplyCode/syncClassifyModel',
+    method: 'post',
+    data: params
   })
 }
\ No newline at end of file
diff --git a/Source/UBCS-WEB/src/views/integration/integrationIndex.vue b/Source/UBCS-WEB/src/views/integration/integrationIndex.vue
index c18063d..9e65713 100644
--- a/Source/UBCS-WEB/src/views/integration/integrationIndex.vue
+++ b/Source/UBCS-WEB/src/views/integration/integrationIndex.vue
@@ -18,7 +18,7 @@
                         <el-form-item label="闆嗗洟鍒嗙被" label-width="70px" size="small">
                             <el-select clearable ref="selectTree" v-model="form.groupValue" placeholder="璇烽�夋嫨"
                                 popper-class="popperTreeSelect">
-                                <el-option :value="groupVal" :label="groupVal"> 
+                                <el-option :value="groupVal" :label="groupVal">
                                     <el-tree ref="groupTree" :data="groupTreeData" empty-text="鏆傛棤鏁版嵁" :props="defaultProps"
                                         @node-click="handleNodeClick">
                                     </el-tree>
@@ -27,24 +27,22 @@
 
                         </el-form-item>
                     </el-form>
-                    <avue-crud :table-loading="loading" :data="tableData" :option="option" ref="crud" @cell-class-name="handelCellRow"
-                        @cell-click="handleCellClick">
-                        <template slot="menuLeft">
-                            <el-button icon="el-icon-plus" size="small" type="primary" @click="dialogPush = true">鏂� 澧�
-                            </el-button>
-                            <el-button icon="el-icon-check" size="small" type="primary" @click="handleSave">淇� 瀛�
-                            </el-button>
-                            <el-button icon="el-icon-connection" size="small" type="primary" @click="handleSync">鍚屾妯″瀷
-                            </el-button>
-                        </template>
-                        <template slot="defaultValue" slot-scope="{scope}">
-                            <!-- <el-input v-model="scope.row.defaultValue" v-if="scope.row.index === tableRowIndex && scope.column.index === tableColumnIndex" @blur="inputBlur"> </el-input> -->
-                            <span>{{ scope }}</span>
-                        </template>
-                    </avue-crud>
+                    <el-card>
+                        <avue-crud :table-loading="loading" :data="mappingData" :option="optionMapping" ref="crudMapping"
+                            @row-update="handleUpdate" @row-click="handleMapingRowClick">
+                            <template slot="menuLeft">
+                                <el-button icon="el-icon-plus" size="small" type="primary" @click="dialogPush = true">鏂� 澧�
+                                </el-button>
+                                <el-button icon="el-icon-check" size="small" type="primary" @click="handleSave">淇� 瀛�
+                                </el-button>
+                                <el-button icon="el-icon-connection" size="small" type="primary" @click="handleSync">鍚屾妯″瀷
+                                </el-button>
+                            </template>
+                        </avue-crud>
+                    </el-card>
                     <el-card :style="{ marginTop: '20px' }">
-                        <avue-crud :data="tablesData" :option="optinos" ref="crud" 
-                        @cell-click="handleCellClick">
+                        <avue-crud :data="rangeData" :option="optinoRange" ref="crudRange" @row-update="handleUpdate"
+                            @row-dblclick="handleRowClick">
                         </avue-crud>
                     </el-card>
                 </el-card>
@@ -59,7 +57,7 @@
             </el-form>
             <p class="text_tip">*閫夋嫨鍒嗙被杩涜灞炴�ц繃婊�, 鎴栬�呰緭鍏ュ睘鎬х殑鍏ㄦ嫾鎴栬�呯畝鎷艰繘琛屾煡璇�! 濡�: 濮撳悕 (鍙緭鍏m鎴杧inming )</p>
             <transfer v-model="transferValue" :data="transferData" :filter-method="filterMethod"
-                filter-placeholder="璇疯緭鍏ュ睘鎬ф嫾闊冲叏鎷兼垨鑰呮嫾闊崇缉鍐�" @left-check-change="handelLeftCheck"></transfer>
+                filter-placeholder="璇疯緭鍏ユ嫾闊冲叏鎷兼垨鑰呮嫾闊崇缉鍐�" @left-check-change="handelLeftCheck"></transfer>
             <span slot="footer" class="dialog-footer">
                 <el-button @click="dialogPush = false">鍙� 娑�</el-button>
                 <el-button type="primary" @click="dialogPush = false">淇� 瀛�</el-button>
@@ -70,7 +68,7 @@
 <script>
 import transfer from '@/components/transfer/index'
 import pinyin from 'js-pinyin'
-import { referCodeClassifyTree, referTree, gridAttrMapping } from '@/api/integration/integration.js'
+import { referCodeClassifyTree, referTree, gridAttrMapping, gridAttrRanges, batchAddSave, listCodeAttributeByClassId, syncClassifyModel } from '@/api/integration/integration.js'
 export default {
     components: {
         transfer
@@ -90,6 +88,20 @@
             });
             return data;
         };
+        const options = {
+            menu: false,
+            delBtn: false,
+            addBtn: false,
+            index: true,
+            columnBtn: false,
+            searchShow: true,
+            emptyBtn: false,
+            searchBtn: false,
+            searchShowBtn: false,
+            cellBtn: true,
+            border: true,
+            searchMenuSpan: 8,
+        }
         return {
             form: {
                 name: '',
@@ -101,65 +113,37 @@
             transferData: generateData(),
             transferValue: [],
             dialogPush: false,
-            tableData: [],
-            tablesData: [
-                {
-                    id:'01',
-                    groupTypeName:'鏉庡洓',
-                    codeView:'寮犱笁',
-                    sex:'',
-                    typeName:''
-                }
-            ],
+            mappingData: [],
+            rangeData: [],
             filterText: '',
-            tableRowIndex:null,
-            tableColumnIndex:null,
-            optinos: {
+            tableRowIndex: null,
+            tableColumnIndex: null,
+            optinoRange: {
                 title: '闆嗗洟灞炴��',
                 maxHeight: '300px',
-                menu: true,
-                delBtn: false,
-                addBtn: false,
-                index: true,
                 header: false,
-                columnBtn: false,
-                searchShow: true,
-                emptyBtn: false,
-                searchBtn: false,
-                searchShowBtn: false,
-                cellBtn: true,
-                border: true,
-                searchMenuSpan: 8,
+                rowKey: 'oid',
                 column: [
-                    { label: '灞炴�ч泦鍥㈡灇涓惧��', prop: 'groupTypeName', minWidth: 80, },
-                    { label: '闆嗗洟灞炴�ф灇涓炬樉绀哄悕绉�', prop: 'codeView', minWidth: 80 },
-                    { label: 'MDM鏋氫妇鍊�', prop: 'sex', minWidth: 80, cell: true },
-                    { label: 'MDM鏋氫妇鏄剧ず鍚嶇О', prop: 'typeName', minWidth: 80, cell: true },
-                ]
+                    { label: '灞炴�ч泦鍥㈡灇涓惧��', prop: 'numTextValue', minWidth: 80 },
+                    { label: '闆嗗洟灞炴�ф灇涓炬樉绀哄悕绉�', prop: 'numText', minWidth: 80 },
+                    { label: 'MDM鏋氫妇鍊�', prop: 'targetNumTextValue', minWidth: 80, cell: true, blur: (value) => window.handleBlur(value, 'range') },
+                    { label: 'MDM鏋氫妇鏄剧ず鍚嶇О', prop: 'targetNumText', minWidth: 80, cell: true, blur: (value) => window.handleBlur(value, 'range') },
+                ],
+                ...options
             },
-            option: {
+            optionMapping: {
                 maxHeight: '500px',
-                menu: true,
-                delBtn: false,
-                addBtn: false,
-                index: true,
                 header: true,
-                columnBtn: false,
-                searchShow: true,
-                emptyBtn: false,
-                searchBtn: false,
-                searchShowBtn: false,
-                cellBtn: false,
-                border: true,
-                searchMenuSpan: 8,
+                rowKey: 'oid',
                 column: [
-                    { label: '闆嗗洟鍒嗙被', prop: 'sourceClassifyName', minWidth: 80, },
+                    { label: '闆嗗洟鍒嗙被', prop: 'sourceClassifyName', minWidth: 80 },
                     { label: '鎵�灞炶鍥�', prop: 'viewName', minWidth: 80 },
                     { label: '闆嗗洟灞炴��', prop: 'sourceAttrName', minWidth: 80 },
-                    { label: '鍒嗙被鍚嶇О', prop: 'targetClassifyName', minWidth: 80, overHidden: true },
-                    { label: '灞炴�у悕绉�', prop: 'targetAttrName', minWidth: 80},
-                    { label: '榛樿鍊�', prop: 'defaultValue', minWidth: 140, cell: true },
-                ]
+                    { label: '鍒嗙被鍚嶇О', prop: 'targetClassifyName', minWidth: 80 },
+                    { label: '灞炴�у悕绉�', prop: 'targetAttrName', minWidth: 80 },
+                    { label: '榛樿鍊�', prop: 'defaultValue', minWidth: 140, cell: true, blur: (value) => window.handleBlur(value, 'mapping') },
+                ],
+                ...options
             },
             treeData: [],
             groupTreeData: [],
@@ -170,7 +154,9 @@
                 isLeaf: ''
             },
             groupVal: '',
-            treeParam: {}
+            treeParam: {},
+            rangeForm: {},
+            mappingForm: {},
         }
     },
     watch: {
@@ -182,10 +168,12 @@
     created() {
         this.getReferCodeClassifyTree()
         pinyin.setOptions({ checkPolyphone: false, charCase: 1 });
-        console.log(pinyin.getFullChars('绠$悊鍛�'))
-        console.log(pinyin.getCamelChars('绠$悊鍛�'))
+    },
+    mounted() {
+        window.handleBlur = this.handleBlur
     },
     methods: {
+        // 鎺ュ彛宸︿晶鏍�
         async getReferCodeClassifyTree() {
             const param = {
                 parentBtmName: "jclass",
@@ -200,16 +188,33 @@
                 this.treeData = data.map(item => item.children ? { ...item, ...{ isLeaf: false } } : { ...item, ...{ isLeaf: true } })
             }
         },
-        async getlistCodeAttributeByClassId(oid) {
+        // 鎺ュ彛鑾峰彇灞炴�ф槧灏�
+        async getGridAttrMapping(oid) {
             this.loading = true
             console.log(this.treeParam)
             const response = await gridAttrMapping({ sourceClassifyId: oid, ...this.treeParam })
             console.log(response)
             if (response.status === 200) {
                 this.loading = false
-                this.tableData = response.data.data
+                this.mappingData = response.data.data
             }
         },
+        // 鎺ュ彛鑾峰彇灞炴�ф槧灏勫彇鍊艰寖鍥�
+        async getGridAttrRanges(oid) {
+            this.tablesData = []
+            const response = await gridAttrRanges({ meatId: oid })
+            console.log(response)
+            if (response.status === 200) {
+                this.rangeData = response.data
+            }
+        },
+        // 鎺ュ彛鑾峰彇涓绘暟鎹垎绫诲睘鎬т俊鎭�
+        async getListCodeByClassId(oid) {
+            // this.tablesData = []
+            const response = await listCodeAttributeByClassId({ codeClassifyId: oid })
+            console.log(response)
+        },
+        // 鎺ュ彛鑾峰彇闆嗗洟鍒嗙被鏍�
         async referTree(oid, checked) {
             this.groupTreeData = []
             const response = await referTree({ 'conditionMap[codeclsfid]': oid, parentOid: null })
@@ -229,25 +234,26 @@
                 }
             }
         },
+        // 宸︿晶鏍戣繃婊ゆ悳绱�
         filterNode(value, data) {
-            console.log(value)
-            console.log(data)
             if (!value) return true;
             return data.name.indexOf(value) !== -1;
         },
-        handleSave() {
-
+        // 淇濆瓨鎸夐挳
+        async handleSave() {
+            console.log(this.mappingData)
+            // const response = await batchAddSave({ dockingPreAttrMappingVOList: this.tableData })
+            // console.log(response)
         },
-        handlePush() {
-
+        // 鍚屾鏁版嵁
+        async handleSync() {
+            const response = await syncClassifyModel({ dockingPreAttrMappingVOList: this.tableData })
+            console.log(response)
         },
         handelLeftCheck(event) {
             console.log(event)
         },
-        handelCellRow( {row, column, rowIndex, columnIndex }) {
-            row.index = rowIndex
-            column.index = columnIndex
-        },
+        // 鏂板寮圭獥鏌ヨ鎸夐挳
         handleQuery(event) {
             console.log(event)
             this.form.name = event
@@ -255,34 +261,66 @@
         filterMethod(item) {
             return item.pinyins.indexOf(this.form.name) > -1;
         },
+        // 宸︿晶鏍戠偣鍑�
         handelTreeCell(event) {
-            console.log(event)
             if (event.leaf) {
                 this.treeParam.codeClassifyId = event.oid
                 this.form.groupValue = ''
                 this.groupVal = ''
                 this.tableData = []
                 this.referTree(event.oid, event.checked)
+                this.getListCodeByClassId(event.oid)
             }
         },
+        // 闆嗗洟鍒嗙被鏍戠偣鍑�
         handleNodeClick(data) {
             console.log(data)
             this.form.groupValue = data.name
             this.groupVal = data.name
             this.$refs.selectTree.blur()
-            this.getlistCodeAttributeByClassId(data.oid)
-        },
-        handleCellClick(row, column,cell, event) {
-            console.log(row)
-            console.log(column)
-            console.log(cell)
-            console.log(event)
-          this.tableRowIndex = row.index
-          this.tableColumnIndex = column.index
+            this.getGridAttrMapping(data.oid)
         },
         inputBlur() {
             this.tableColumnIndex = ''
             this.tableRowIndex = null
+        },
+        // 灞炴�ф槧灏勭偣鍑绘瘡琛�
+        handleCellClick(event) {
+            console.log('鍗曞嚮', event)
+            // this.tableRowIndex = row.index
+            // this.tableColumnIndex = column.index
+            // this.getGridAttrRanges(event.metaListId)
+        },
+        handleBlur(value, event) {
+            console.log(value)
+            if (event === 'range') this.$refs.crudRange.rowCell(this.rangeForm, this.rangeForm.$index)
+            if (event === 'mapping') this.$refs.crudMapping.rowCell(this.mappingForm, this.mappingForm.$index)
+        },
+        // 灞炴�у彇鍊艰寖鍥村崟鍏冩牸缂栬緫
+        handleMapingRowClick(row, column, cell, event) {
+            this.mappingForm = row
+            if (column.label === '榛樿鍊�') this.$refs.crudMapping.rowCell(row, row.$index)
+            else this.getGridAttrRanges(row.metaListId)
+
+        },
+        // 灞炴�у彇鍊艰寖鍥村崟鍏冩牸缂栬緫
+        handleRowClick(row, column, cell, event) {
+            this.rangeForm = row
+            console.log('鍗曞嚮', row)
+            this.$refs.crudRange.rowCell(row, row.$index)
+        },
+        // 灞炴�у彇鍊艰寖鍥村崟鍏冩牸缂栬緫
+        handleUpdate(row, index, done, loading) {
+            const findRow = this.mappingData.findIndex(item => item.metaListId === row.metaListId)
+            console.log(findRow)
+            this.mappingData[0].dockingPreAttrRangeVoList = [row]
+            console.log('淇敼鍚�', row)
+            this.$message({
+                showClose: true,
+                message: "淇敼鎴愬姛",
+                type: "success",
+            });
+            done();
         }
     }
 }
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClassifyTemplateAttr.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClassifyTemplateAttr.java
index 2089d52..2c6bb97 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClassifyTemplateAttr.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClassifyTemplateAttr.java
@@ -158,6 +158,11 @@
      */
     //@Column(columnDefinition = "鎵�灞炲睘鎬у垎缁�")
     private String attributeGroup;
+    /**
+     * 杈撳叆鏄剧ず
+     */
+    //@Column(columnDefinition = "杈撳叆鏄剧ず")
+    private String inputTip;
 
     /**
      * 浣跨敤鏋氫妇鑻辨枃缂栧彿
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/IMdmEngineClient.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/IMdmEngineClient.java
index 74564c5..529a4ef 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/IMdmEngineClient.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/IMdmEngineClient.java
@@ -39,6 +39,7 @@
     String API_PREFIX = "/mdmEngineClient";
     String SELECT_BY_TYPE_OID = API_PREFIX + "/selectByTypeAndOid";
     String INSERT_BATCH_BY_TYPE = API_PREFIX + "/insertBatchByType";
+    String UPDATE_BATCH_BY_TYPE = API_PREFIX + "/updateBatchByType";
 
 	/**
 	 * 浼犲叆涓氬姟绫诲瀷浠ュ強鐩竜id闆嗗悎鏌ヨ鏁版嵁杩涜杩斿洖
@@ -60,4 +61,13 @@
 	 */
 	@PostMapping(INSERT_BATCH_BY_TYPE)
 	R<Integer> insertBatchByType(@RequestParam("btmType")String btmType,@RequestBody List<BaseModel> baseModels);
+	/**
+	 * 浼犲叆涓氬姟绫诲瀷浠ュ強鐩稿叧鏁版嵁杩涜鎵归噺鏇存柊鎿嶄綔
+	 *
+	 * @param btmType 涓氬姟绫诲瀷
+	 * @param baseModels      澶勭悊鏁版嵁
+	 * @return 澶勭悊鐘舵��
+	 */
+	@PostMapping(UPDATE_BATCH_BY_TYPE)
+	R<Integer> updateBatchByType(@RequestParam("btmType")String btmType,@RequestBody List<BaseModel> baseModels);
 }
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/IMdmEngineFallback.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/IMdmEngineFallback.java
index 7571929..59c2c3f 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/IMdmEngineFallback.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/IMdmEngineFallback.java
@@ -36,6 +36,11 @@
 
 	@Override
 	public R<Integer> insertBatchByType(String btmType, List<BaseModel> baseModels){
-		return R.fail("鑾峰彇鏁版嵁澶辫触");
+		return R.fail("鎻掑叆鏁版嵁澶辫触");
+	}
+
+	@Override
+	public R<Integer> updateBatchByType(String btmType, List<BaseModel> baseModels) {
+		return R.fail("鏇存柊鏁版嵁澶辫触");
 	}
 }
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeClassifyTemplateAttrVO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeClassifyTemplateAttrVO.java
index 8898595..8134943 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeClassifyTemplateAttrVO.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeClassifyTemplateAttrVO.java
@@ -290,6 +290,10 @@
 	 * 绾ц仈鏌ヨ灞炴��
 	 */
 	private String parentQueryAttr;
+	/**
+	 * 杈撳叆鎻愮ず
+	 */
+	private String inputTip;
 
 	@Override
 	public String toString() {
@@ -348,6 +352,7 @@
 			", libraryIdentification='" + libraryIdentification + '\'' +
 			", parentCode='" + parentCode + '\'' +
 			", parentName='" + parentName + '\'' +
+			", inputTip='" + inputTip + '\'' +
 			", parentQueryAttr='" + parentQueryAttr + '\'' +
 			'}';
 	}
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/UIFormItemVO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/UIFormItemVO.java
index a4fa296..60da3d6 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/UIFormItemVO.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/UIFormItemVO.java
@@ -133,6 +133,10 @@
 	 * 鍚庣紑
 	 */
 	private String suffix;
+	/**
+	 * 杈撳叆鎻愮ず
+	 */
+	private String inputTip;
 
 	public boolean isKeyAttr() {
 		return keyAttr;
@@ -149,6 +153,13 @@
 	public void setField(String field) {
 		this.field = field;
 	}
+	public String getInputTip() {
+		return inputTip;
+	}
+
+	public void setInputTip(String inputTip) {
+		this.inputTip = inputTip;
+	}
 
 	public String getText() {
 		return text;
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/MdmEngineClient.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/MdmEngineClient.java
index e4b173e..5cc9423 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/MdmEngineClient.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/MdmEngineClient.java
@@ -78,5 +78,21 @@
 			throw new RuntimeException(e);
 		}
 	}
+	/**
+	 * 浼犲叆涓氬姟绫诲瀷浠ュ強鐩稿叧鏁版嵁杩涜鎵归噺鎻掑叆鎿嶄綔
+	 *
+	 * @param btmType 涓氬姟绫诲瀷
+	 * @param baseModels      澶勭悊鏁版嵁
+	 * @return 澶勭悊鐘舵��
+	 */
+	@Override
+	@PostMapping(UPDATE_BATCH_BY_TYPE)
+	public R<Integer> updateBatchByType(String btmType, List<BaseModel> baseModels) {
+		try {
+			return mdmEngineService.updateBatchByBaseModel(btmType,baseModels);
+		} catch (Exception e) {
+			throw new RuntimeException(e);
+		}
+	}
 
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CommonsMapper.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CommonsMapper.java
index 039a162..1dcbecf 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CommonsMapper.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CommonsMapper.java
@@ -1,5 +1,6 @@
 package com.vci.ubcs.code.mapper;
 
+import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
 import org.apache.ibatis.annotations.MapKey;
 import org.apache.ibatis.annotations.Param;
 
@@ -22,12 +23,19 @@
 	List<Map> selectBySql(@Param("inSql") String inSql);
 
 	/**
-	 * 浼犲叆琛ㄦ槑锛宮ap锛宭ist<map>瀹屾垚鎵归噺鏇存柊鎿嶄綔
+	 * 浼犲叆琛ㄥ悕锛宮ap锛宭ist<map>瀹屾垚鎵归噺鏇存柊鎿嶄綔
 	 * @param tableName 琛ㄥ悕
 	 * @param columnMap 鍗曟潯map鐢ㄤ簬鑾峰彇key浣滀负瀛楁
 	 * @param mapList 闇�瑕佹彃鍏ョ殑鎵�鏈夎褰�
 	 * @return 鎻掑叆鎴愬姛鐨勬潯鏁�
 	 */
-	Integer insertByBaseModel(String tableName,Map<String,String> columnMap,List<Map<String,String>> mapList);
+	Integer insertByBaseModel(String tableName,Map<String,String> columnMap,List<Map<String,String>> mapList);/**
+	 * 浼犲叆琛ㄥ悕锛宮ap锛宭ist<map>瀹屾垚鎵归噺鏇存柊鎿嶄綔
+	 * @param tableName 琛ㄥ悕
+	 * @param mapList 闇�瑕佹洿鏂扮殑鎵�鏈夎褰�
+	 * @return 鎻掑叆鎴愬姛鐨勬潯鏁�
+	 */
+	@InterceptorIgnore(tenantLine = "true")
+	Integer updateBatchByBaseModel(String tableName,List<Map<String,String>> mapList);
 
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java
index 78843da..bacba02 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java
@@ -386,4 +386,13 @@
 	 * @return 鏌ヨ鍑虹殑鏁版嵁
 	 */
 	List<BaseModel> selectByTypeAndOid(String btmType, String oids) throws IllegalAccessException, NoSuchFieldException, InstantiationException, InvocationTargetException, IntrospectionException, SQLException;
+	/**
+	 * 浼犲叆涓氬姟绫诲瀷浠ュ強鐩稿叧鏁版嵁杩涜鎵归噺鏇存柊鎿嶄綔
+	 *
+	 * @param btmType 涓氬姟绫诲瀷
+	 * @param baseModels      澶勭悊鏁版嵁
+	 * @return 澶勭悊鐘舵��
+	 */
+	R updateBatchByBaseModel(String btmType, List<BaseModel> baseModels) throws Exception;
+
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyTemplateAttrServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyTemplateAttrServiceImpl.java
index ec03bc6..8db0bd8 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyTemplateAttrServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyTemplateAttrServiceImpl.java
@@ -153,7 +153,11 @@
 //			conditionMap.put("classifytemplateoid", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(templateOids.toArray(new String[0])) + ")");
 //			PageHelper pageHelper = new PageHelper(-1);
 //			pageHelper.addDefaultAsc("orderNum");
-			List<CodeClassifyTemplateAttr> attrDOS = baseMapper.selectByClassifytemplateoid(VciBaseUtil.toInSql(templateOids.toArray(new String[0])));
+			QueryWrapper<CodeClassifyTemplateAttr> wrapper = new QueryWrapper<>();
+			wrapper.in("classifytemplateoid",templateOids);
+			wrapper.orderByAsc("orderNum");
+			List<CodeClassifyTemplateAttr> attrDOS = baseMapper.selectList(wrapper);
+//				baseMapper.selectByClassifytemplateoid(VciBaseUtil.toInSql(templateOids.toArray(new String[0])));
 
 			if(!CollectionUtils.isEmpty(attrDOS)){
 				attrDOList.addAll(attrDOS);
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
index 5f36b78..0cf501f 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
@@ -1064,6 +1064,7 @@
 		itemVO.setPrefix(attrVO.getPrefixValue());
 		itemVO.setSuffix(attrVO.getSuffixValue());
 		itemVO.setTooltips(attrVO.getExplain());
+		itemVO.setInputTip(attrVO.getInputTip());
 		itemVO.setSelectLibFlag(attrVO.getLibraryIdentification());
 		//鐪嬬湅鏄惁鏈夋灇涓�
 		if ((StringUtils.isNotBlank(attrVO.getEnumString())
@@ -3059,4 +3060,38 @@
 		}
 		return "";
 	}
+
+	/**
+	 * 浼犲叆涓氬姟绫诲瀷浠ュ強鐩稿叧鏁版嵁杩涜鎵归噺鏇存柊鎿嶄綔
+	 *
+	 * @param btmType 涓氬姟绫诲瀷
+	 * @param baseModels      澶勭悊鏁版嵁
+	 * @return 澶勭悊鐘舵��
+	 */
+	@Override
+	public R updateBatchByBaseModel(String btmType, List<BaseModel> baseModels) throws Exception {
+		//浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃
+		R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType));
+		if(listR.getData().size() == 0){
+			throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
+		}
+		//灏哹ean杞负map,mybatis缁熶竴澶勭悊
+		List<Map<String,String>> maps = new ArrayList<>();
+
+		baseModels.stream().forEach(model-> {
+			try {
+				maps.add(VciBaseUtil.convertBean2Map(model));
+			} catch (Exception e) {
+				throw new VciBaseException("绫诲瀷杞崲閿欒锛�" + e.getMessage());
+			}
+		});
+		try {
+			//娉ㄦ剰姝ゅ鏇存柊鎴愬姛鏄繑鍥炵殑-1
+			commonsMapper.updateBatchByBaseModel(listR.getData().get(0).getTableName(), maps);
+		}catch (Exception e){
+			return R.fail("鏇存柊澶辫触锛�"+e.getMessage());
+		}
+
+		return R.success("鏇存柊鎴愬姛锛�");
+	}
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CommonsMapper.xml b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CommonsMapper.xml
index 7aee99d..9f357d7 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CommonsMapper.xml
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CommonsMapper.xml
@@ -37,4 +37,18 @@
         </foreach>
     </insert>
 
+    <update  id="updateBatchByBaseModel"  parameterType="java.util.List" >
+        BEGIN
+        <foreach collection="mapList" item="columnMap" index="index" separator=";">
+            update ${tableName}
+                <set>
+                    <foreach collection="columnMap" item="value" index="key" separator=",">
+                     ${key} = #{value}
+                    </foreach>
+                </set>
+            where oid = #{columnMap.oid}
+        </foreach>;
+        END;
+    </update >
+
 </mapper>

--
Gitblit v1.9.3