From e14d495581896374cc4be7ec929feb95005e6563 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期四, 15 六月 2023 18:22:39 +0800
Subject: [PATCH] 修改系统管理、编码规则管理bug

---
 Source/UBCS-WEB/src/views/system/tenant.vue                                                                     |   10 -
 Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/mapper/DeptMapper.java                   |    3 
 Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/controller/DeptController.java           |    8 
 Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IMenuService.java                |    4 
 Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/mapper/MenuMapper.java                   |    3 
 Source/UBCS-WEB/src/components/Crud/Crud.vue                                                                    |    4 
 Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/mapper/StrategyMapper.java               |    3 
 Source/UBCS-WEB/src/views/system/user.vue                                                                       |    4 
 Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/model/BaseModel.java     |    2 
 Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/CombinationServiceImpl.java |    4 
 Source/UBCS/ubcs-service/ubcs-system/src/main/resources/mapper/MenuMapper.xml                                   |    2 
 Source/UBCS-WEB/src/views/authority/role.vue                                                                    |   45 +++--
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java    |   19 +
 Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/wrapper/DeptWrapper.java                 |   13 +
 Source/UBCS-WEB/src/api/system/menu.js                                                                          |    6 
 Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/wrapper/MenuWrapper.java                 |    7 
 Source/UBCS-WEB/src/views/code/code.vue                                                                         |  104 ++++++------
 Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/controller/RoleController.java           |   13 +
 Source/UBCS-WEB/src/api/system/role.js                                                                          |    4 
 Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/controller/MenuController.java           |    9 
 Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/StrategyServiceImpl.java    |    5 
 Source/UBCS-WEB/src/views/authority/apiscope.vue                                                                |   47 +++--
 Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IStrategyService.java            |    3 
 Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/DeptServiceImpl.java        |    7 
 Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/controller/StrategyController.java       |    5 
 Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/service/impl/UserServiceImpl.java     |    8 
 Source/UBCS-WEB/src/views/authority/datascope.vue                                                               |   11 
 Source/UBCS-WEB/src/views/omd/enum.vue                                                                          |    2 
 Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IDeptService.java                |    4 
 Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/UBCSSqlKeyword.java          |   43 +++--
 Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/wrapper/RoleWrapper.java                 |   12 +
 Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MenuServiceImpl.java        |    7 
 32 files changed, 244 insertions(+), 177 deletions(-)

diff --git a/Source/UBCS-WEB/src/api/system/menu.js b/Source/UBCS-WEB/src/api/system/menu.js
index f60ce49..d00f08e 100644
--- a/Source/UBCS-WEB/src/api/system/menu.js
+++ b/Source/UBCS-WEB/src/api/system/menu.js
@@ -23,13 +23,15 @@
   })
 }
 
-export const getLazyMenuList = (parentId, params) => {
+export const getLazyMenuList = (parentId, params, current, size) => {
   return request({
     url: '/api/ubcs-system/menu/lazy-menu-list',
     method: 'get',
     params: {
       ...params,
-      parentId
+      parentId,
+      current,
+      size,
     }
   })
 }
diff --git a/Source/UBCS-WEB/src/api/system/role.js b/Source/UBCS-WEB/src/api/system/role.js
index c00b8b0..f51ec62 100644
--- a/Source/UBCS-WEB/src/api/system/role.js
+++ b/Source/UBCS-WEB/src/api/system/role.js
@@ -1,8 +1,8 @@
 import request from '@/router/axios';
 
-export const getList = (current, size, params) => {
+export const getPage = (current, size, params) => {
   return request({
-    url: '/api/ubcs-system/role/list',
+    url: '/api/ubcs-system/role/page',
     method: 'get',
     params: {
       ...params,
diff --git a/Source/UBCS-WEB/src/components/Crud/Crud.vue b/Source/UBCS-WEB/src/components/Crud/Crud.vue
index c0be479..bda74a0 100644
--- a/Source/UBCS-WEB/src/components/Crud/Crud.vue
+++ b/Source/UBCS-WEB/src/components/Crud/Crud.vue
@@ -36,7 +36,7 @@
                                 :props="transferProps" @save="handelTransferSave"></integration-transfer>
         </el-button>
         <el-button size="small" type="primary" plain @click="findvisible=true">鏌ヨ
-        <advancedQuery  :visible.sync="findvisible" :options="this.options"></advancedQuery>
+        <advanced-query  :visible.sync="findvisible" :options="options"></advanced-query>
         </el-button>
         <el-button size="small" type="primary" plain>鐩镐技椤规煡璇�</el-button>
         <el-button size="small" type="primary" plain style="margin-left: 1px;margin-top:10px">鍒锋柊</el-button>
@@ -143,7 +143,7 @@
       editAttr:"",
       loading: false,
       data: [],
-      options:{},
+      options:[],
       option: {
         column: []
       },
diff --git a/Source/UBCS-WEB/src/views/authority/apiscope.vue b/Source/UBCS-WEB/src/views/authority/apiscope.vue
index 133b675..dd05b22 100644
--- a/Source/UBCS-WEB/src/views/authority/apiscope.vue
+++ b/Source/UBCS-WEB/src/views/authority/apiscope.vue
@@ -1,24 +1,25 @@
 <template>
   <basic-container>
     <avue-crud :option="option"
-               :table-loading="loading"
-               :data="data"
-               ref="crud"
-               v-model="form"
-               :permission="permissionList"
-               :before-open="beforeOpen"
-               @row-del="rowDel"
-               @row-update="rowUpdate"
-               @row-save="rowSave"
-               @search-change="searchChange"
-               @search-reset="searchReset"
-               @row-click="clickRowChange"
-               @selection-change="selectionChange"
-               @current-change="currentChange"
-               @size-change="sizeChange"
-               @refresh-change="refreshChange"
-               @on-load="onLoad"
-               @tree-load="treeLoad">
+      :table-loading="loading"
+      :page.sync="page"
+      :data="data"
+      ref="crud"
+      v-model="form"
+      :permission="permissionList"
+      :before-open="beforeOpen"
+      @row-del="rowDel"
+      @row-update="rowUpdate"
+      @row-save="rowSave"
+      @search-change="searchChange"
+      @search-reset="searchReset"
+      @row-click="clickRowChange"
+      @selection-change="selectionChange"
+      @current-change="currentChange"
+      @size-change="sizeChange"
+      @refresh-change="refreshChange"
+      @on-load="onLoad"
+      @tree-load="treeLoad">
       <template slot-scope="{row}" slot="menu">
         <el-button type="text"
                    icon="el-icon-setting"
@@ -114,7 +115,7 @@
         option: {
           lazy: true,
           tip: false,
-          simplePage: true,
+          //simplePage: true,
           searchShow: true,
           searchMenuSpan: 6,
           dialogWidth: "60%",
@@ -514,8 +515,10 @@
       },
       onLoad(page, params = {}) {
         this.loading = true;
-        getLazyMenuList(this.parentId, Object.assign(params, this.query)).then(res => {
-          this.data = res.data.data;
+        getLazyMenuList(this.parentId, Object.assign(params, this.query), page.currentPage, page.pageSize).then(res => {
+          const data = res.data.data;
+          this.data = data.records;
+          this.page.total = data.total;
           this.loading = false;
           this.selectionClear();
         });
@@ -523,7 +526,7 @@
       treeLoad(tree, treeNode, resolve) {
         const parentId = tree.id;
         getLazyMenuList(parentId).then(res => {
-          resolve(res.data.data);
+          resolve(res.data.data.records);
         });
       },
       // 鏁版嵁鏉冮檺妯″潡
diff --git a/Source/UBCS-WEB/src/views/authority/datascope.vue b/Source/UBCS-WEB/src/views/authority/datascope.vue
index 68ec880..4a32fa0 100644
--- a/Source/UBCS-WEB/src/views/authority/datascope.vue
+++ b/Source/UBCS-WEB/src/views/authority/datascope.vue
@@ -3,6 +3,7 @@
     <avue-crud :option="option"
                :table-loading="loading"
                :data="data"
+               :page.sync="page"
                ref="crud"
                v-model="form"
                :permission="permissionList"
@@ -118,7 +119,7 @@
         option: {
           lazy: true,
           tip: false,
-          simplePage: true,
+          // simplePage: true,
           searchShow: true,
           searchMenuSpan: 6,
           dialogWidth: "60%",
@@ -598,8 +599,10 @@
       },
       onLoad(page, params = {}) {
         this.loading = true;
-        getLazyMenuList(this.parentId, Object.assign(params, this.query)).then(res => {
-          this.data = res.data.data;
+        getLazyMenuList(this.parentId, Object.assign(params, this.query), page.currentPage, page.pageSize).then(res => {
+          const data = res.data.data;
+          this.data = data.records;
+          this.page.total = data.total;
           this.loading = false;
           this.selectionClear();
         });
@@ -607,7 +610,7 @@
       treeLoad(tree, treeNode, resolve) {
         const parentId = tree.id;
         getLazyMenuList(parentId).then(res => {
-          resolve(res.data.data);
+          resolve(res.data.data.records);
         });
       },
       // 鏁版嵁鏉冮檺妯″潡
diff --git a/Source/UBCS-WEB/src/views/authority/role.vue b/Source/UBCS-WEB/src/views/authority/role.vue
index 94180ad..bc4a369 100644
--- a/Source/UBCS-WEB/src/views/authority/role.vue
+++ b/Source/UBCS-WEB/src/views/authority/role.vue
@@ -1,23 +1,24 @@
 <template>
   <basic-container>
     <avue-crud :option="option"
-               :table-loading="loading"
-               :data="data"
-               ref="crud"
-               v-model="form"
-               :permission="permissionList"
-               :before-open="beforeOpen"
-               @row-del="rowDel"
-               @row-update="rowUpdate"
-               @row-save="rowSave"
-               @search-change="searchChange"
-               @search-reset="searchReset"
-               @row-click="clickRowChange"
-               @selection-change="selectionChange"
-               @current-change="currentChange"
-               @size-change="sizeChange"
-               @refresh-change="refreshChange"
-               @on-load="onLoad">
+      :table-loading="loading"
+      :data="data"
+      ref="crud"
+      :page.sync="page"
+      v-model="form"
+      :permission="permissionList"
+      :before-open="beforeOpen"
+      @row-del="rowDel"
+      @row-update="rowUpdate"
+      @row-save="rowSave"
+      @search-change="searchChange"
+      @search-reset="searchReset"
+      @row-click="clickRowChange"
+      @selection-change="selectionChange"
+      @current-change="currentChange"
+      @size-change="sizeChange"
+      @refresh-change="refreshChange"
+      @on-load="onLoad">
       <template slot="menuLeft">
         <el-button type="danger"
                    size="small"
@@ -80,7 +81,7 @@
 </template>
 
 <script>
-  import {add, getList, getRole, getRoleTreeById, grant, grantTree, remove, update} from "@/api/system/role";
+  import {add, getPage, getRole, getRoleTreeById, grant, grantTree, remove, update} from "@/api/system/role";
   import {mapGetters} from "vuex";
   import website from '@/config/website';
 
@@ -111,7 +112,7 @@
         option: {
           height: "auto",
           tip: false,
-          simplePage: true,
+          // simplePage: true,
           searchShow: true,
           searchMenuSpan: 6,
           tree: true,
@@ -381,8 +382,10 @@
       },
       onLoad(page, params = {}) {
         this.loading = true;
-        getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
-          this.data = res.data.data;
+        getPage(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
+          const data = res.data.data;
+          this.data = data.records;
+          this.page.total = data.total;
           this.loading = false;
           this.selectionClear();
         });
diff --git a/Source/UBCS-WEB/src/views/code/code.vue b/Source/UBCS-WEB/src/views/code/code.vue
index ddbcfbf..a5b8918 100644
--- a/Source/UBCS-WEB/src/views/code/code.vue
+++ b/Source/UBCS-WEB/src/views/code/code.vue
@@ -300,6 +300,7 @@
             size="small"
             icon="el-icon-search"
             plain
+            :disabled="selectionList.length <= 0"
             @click="openAdvancedQuery('codeBasicSec')">
             楂樼骇鏌ヨ
         </el-button>
@@ -527,7 +528,7 @@
                 </el-select>
               </el-form-item>
               <el-form-item label="琛ヤ綅鏃剁殑瀛楃:" :label-width="rightFormLabelWidth">
-                <el-select v-model="form.codeFillSeparatorSelect" @blur="inputSelectBlur" filterable placeholder="璇烽�夋嫨" :disabled="basicSecOnlyRead">
+                <el-select v-model="form.codeFillSeparator" @blur="inputSelectBlur" filterable placeholder="璇烽�夋嫨" :disabled="basicSecOnlyRead">
                   <el-option
                     v-for="item in enumParam.codeFillSeparator"
                     :key="item.itemValue"
@@ -664,7 +665,7 @@
                 </el-select>
               </el-form-item>
               <el-form-item label="琛ヤ綅鏃剁殑瀛楃:" :label-width="rightFormLabelWidth">
-                <el-select v-model="form.codeFillSeparatorSelect" filterable @blur="inputSelectBlur" placeholder="璇烽�夋嫨" :disabled="basicSecOnlyRead">
+                <el-select v-model="form.codeFillSeparator" filterable @blur="inputSelectBlur" placeholder="璇烽�夋嫨" :disabled="basicSecOnlyRead">
                   <el-option
                     v-for="item in enumParam.codeFillSeparator"
                     :key="item.itemValue"
@@ -1104,7 +1105,6 @@
             //console.log(conditionMaps);
           }
         },
-
         /* 鍏紡缂栬緫妗嗗唴瀹规敼鍙�,瀛愮粍浠剁紪杈戝畬鍏紡涔嬪悗鍐呭鍥炴樉鏃惰皟鐢� */
         updateFormulaContent(content){
           this.form.getValueClass = content;
@@ -1177,7 +1177,8 @@
           let parentClsParam = this.parentClsfyParams;
           parentClsParam.classifyDialogLoading = true;
           let oid = this.selectionList.length==0 ? this.form.pkCodeRule:this.selectionList[0].oid;
-          let conditionMaps = this.paramsToConditionMa({"pkCodeRule":oid});
+          let conditionMaps = {};
+          conditionMaps['conditionMap[pkCodeRule]'] = oid;
           refDataGridClassifySec(
             page.currentPage, 
             page.pageSize, 
@@ -1667,7 +1668,8 @@
               // 鍏抽棴瀵硅瘽妗�
               this.addBasicCodeSettingBox = false
             }
-            
+            // 鐐瑰嚮鏂板鍩虹鐮佹,鍏抽棴绐楀彛涔嬪悗瑙﹀彂閲嶆柊鍔犺浇
+            this.loadBasic(this.selectionList[0]);
           }else{
             editSave(this.form).then(() => {
                // 鍏抽棴瀵硅瘽妗�
@@ -1679,9 +1681,8 @@
               }, error => {
                 window.console.log(error);
             });
+            this.loadBasic(this.selectionList[0]);
           }
-          // 鐐瑰嚮鏂板鍩虹鐮佹,鍏抽棴绐楀彛涔嬪悗瑙﹀彂閲嶆柊鍔犺浇
-          this.loadBasic(this.selectionList[0]);
         },
         // 鍥犱负elementui鐨勮〃鍗曟牎楠岃缃笉涓婃墍浠ラ噰鐢ㄥ垽鏂殑鏂瑰紡鏉ュ仛琛ㄥ崟妫�楠屾柟寮�
         checkForm(){
@@ -1755,7 +1756,7 @@
               this.$message.warning('(缂栫爜琛ヤ綅鏂瑰紡)'+tipsMsg);
               return false;
             }
-            if(form.codeFillType != '涓嶈ˉ浣�' && form.codeFillSeparatorSelect == ''){
+            if(form.codeFillType != '涓嶈ˉ浣�' && form.codeFillSeparator == ''){
               this.$message.warning('褰撹ˉ浣嶆柟寮忎负宸﹁ˉ浣嶆垨鑰呭彸琛ヤ綅鐨勬椂鍊欙紝琛ヤ綅瀛楃涓嶈兘涓虹┖');
               return false;
             }
@@ -1779,11 +1780,10 @@
               this.$refs.codeFillLimit.$el.querySelector('input').focus();
               return false;
             }
-            if(form.codeFillFlag == ''){
-              this.$message.warning('(娴佹按鏄惁琛ョ爜)'+tipsMsg);
-              this.$refs.switch.$el.querySelector('input').focus();
-              return false;
-            }
+            // if(form.codeFillFlag == '' || ){
+            //   this.$message.warning('(娴佹按鏄惁琛ョ爜)'+tipsMsg);
+            //   return false;
+            // }
           }else if(this.form.secType==='codelevelsec'){
             //灞傜骇鐮佹
             if(form.codeLevelType == ''){
@@ -1851,7 +1851,8 @@
               this.$message.warning('(缂栫爜琛ヤ綅鏂瑰紡)'+tipsMsg);
               return false;
             }
-            if(form.codeFillType != '涓嶈ˉ浣�' && form.codeFillSeparatorSelect == ''){
+            // console.log(form);
+            if(form.codeFillType != 'code_fill_none' && form.codeFillSeparator == ''){
               this.$message.warning('褰撹ˉ浣嶆柟寮忎负宸﹁ˉ浣嶆垨鑰呭彸琛ヤ綅鐨勬椂鍊欙紝琛ヤ綅瀛楃涓嶈兘涓虹┖');
               return false;
             }
@@ -1899,9 +1900,11 @@
           }
           // console.log(row.oid);
           //瀛樺偍褰撳墠鍏宠仈鐨勭紪鐮佽鍒欑浉鍏充俊鎭�
-          this.currentCodeRuleOid = row.oid;
-          this.currentRuleLcStatus = row.lcStatus;
-          this.sendGridCodeBasicSec({"pkCodeRule":row.oid},false);
+          if(row!='' || row!=null){
+            this.currentCodeRuleOid = row.oid;
+            this.currentRuleLcStatus = row.lcStatus;
+            this.sendGridCodeBasicSec({"pkCodeRule":row.oid},false);
+          }
         },
         // 鍙戦�佸姞杞藉熀纭�鐮佹鐨勮姹�
         sendGridCodeBasicSec(condition,isAdancedQuery/** 鏄惁楂樼骇鏌ヨ */){
@@ -1912,11 +1915,11 @@
           let conditionMaps = {};
           if(condition && !isAdancedQuery){
             Object.keys(condition).forEach(key=>{
-              conditionMaps['conditionMap[pl_code_basicsec.'+key+']'] = condition[key].trim();
+              conditionMaps['conditionMap['+key+']'] = condition[key].trim();
             });
           }
           if(isAdancedQuery){
-            condition['conditionMap[pl_code_basicsec.pkCodeRule]'] = this.currentCodeRuleOid == null || this.currentCodeRuleOid == '' 
+            condition['conditionMap[pkCodeRule]'] = this.currentCodeRuleOid == null || this.currentCodeRuleOid == '' 
             ? this.selectionList[0].oid:this.currentCodeRuleOid;
           }
           gridCodeBasicSec(1, -1,isAdancedQuery ? condition:conditionMaps).then(res => {
@@ -2001,7 +2004,7 @@
         },
         // 鍩虹鐮佹鍒锋柊鏃舵煡璇�
         refreshChangeBasicSec(){
-          this.loadBasic({"oid":this.currentCodeRuleOid == null || this.currentCodeRuleOid == '' ? this.selectionList[0].oid:this.currentCodeRuleOid});
+          this.loadBasic(this.selectionList.at(-1));
         },
         // 鎿嶄綔鍩虹鐮佹涓悳绱㈡竻绌虹瓑鎸夐挳鐨勬樉绀�/闅愯棌
         hideBasicTable(hideBoolean){
@@ -2009,18 +2012,16 @@
           this.$refs.crudBasic.option.columnBtn = hideBoolean;
           this.$refs.crudBasic.option.column[0].search = hideBoolean;
           this.$refs.crudBasic.option.column[1].search = hideBoolean;
+          if(!hideBoolean){
+            this.selectionList = [];
+            this.basicData = [];
+          }
         },
 
 
         /** 缂栫爜瑙勫垯鐩稿叧鏂规硶 */
         // 鎵撳紑楂樼骇鏌ヨ绐楀彛
         openAdvancedQuery(condition){
-          // MasterTable({
-          //   codeClassifyOid: "D9CF223F-317D-71EB-BD11-433A94CAD9F3",
-          //   functionId: 5,
-          // }).then(res=>{
-          //   console.log(res.data.tableDefineVO.seniorQueryColumns);
-          // }) 
           if(condition=='codeRule'){
             this.advancedQueryParam.options = [
               {
@@ -2065,22 +2066,22 @@
                 data: [],
                 title: '鐮佹缂栧彿',
                 fieldType: 'text',
-                queryField: 'pl_code_basicsec.id',
+                queryField: 'id',
               },{
                 data: [],
                 title: '鐮佹鍚嶇О',
                 fieldType: 'text',
-                queryField: 'pl_code_basicsec.name',
+                queryField: 'name',
               },{
                 data: [],
                 title: '鎻忚堪',
                 fieldType: 'text',
-                queryField: 'pl_code_basicsec.description',
+                queryField: 'description',
               },{
                 data: [],
                 title: '鐮佹绫诲瀷',
                 fieldType: 'combox',
-                queryField: 'pl_code_basicsec.secType',
+                queryField: 'secType',
                 comboxKey: 'codeSecType',
               }
             ]
@@ -2112,17 +2113,6 @@
         // 鍒锋柊浣跨敤鑼冨洿鍒楄〃
         refreshUseRangeChange(){
           this.getRangeCodeList();
-        },
-        // 鍗曞嚮缂栫爜瑙勫垯瀹炵幇琛岄�夋嫨
-        codeRuleRowClick (row) {
-          // 杩欏効搴旇鍙互涓嶈锛屽洜涓簍oggleRowSelection涔熶細瑙﹀彂琛岄�夋嫨鏃堕棿
-          this.selectionList = row;
-          this.$refs.crud.toggleSelection();
-          this.$refs.crud.setCurrentRow(row);
-          this.$refs.crud.toggleRowSelection(row); //閫変腑褰撳墠琛�
-          if(row!=''){
-            this.loadBasic(row);
-          }
         },
         // 鍚敤涓庡仠鐢�
         enableOrDeactivatse(oId,update){
@@ -2220,7 +2210,7 @@
           this.selectionOtherCloneCodeBasicList = list;
           this.$refs.crudCloneCodeBasicOther.setCurrentRow(this.selectionOtherCloneCodeBasicList[list.length-1]);
         },
-         // 浠庡叾浠栫紪鐮佽鍒欎腑鍏嬮殕鐮佹淇℃伅
+        // 浠庡叾浠栫紪鐮佽鍒欎腑鍏嬮殕鐮佹淇℃伅
         saveOtherCodeBasic(){
           let oid = this.selectionList[0].oid;
           let fromDialogPkCodebasic = this.selectionOtherCloneCodeBasicList;
@@ -2238,7 +2228,7 @@
           //console.log(res);
           let oidArr = [];
           fromDialogPkCodebasic.forEach(ele => {
-            oidArr.push(ele.id);
+            oidArr.push(ele.oid);
           });
           let data = {
             "pkCodeRule": oid,
@@ -2360,7 +2350,7 @@
           let requestData = {};
           if(params){
             Object.keys(params).forEach(key=>{
-              requestData["conditionMap"+'['+key+']'] = params[key].trim();
+              requestData["conditionMap"+'['+key+'_like]'] = params[key].trim();
             });
           }
           this.query = requestData;
@@ -2370,17 +2360,23 @@
         // 缂栫爜瑙勫垯褰撳墠閫変腑琛屽彉鍖栫殑鏃跺�欒Е鍙�
         selectionChange(list) {
           this.selectionList = list;
-          this.$refs.crud.setCurrentRow(this.selectionList[list.length-1]);
           //褰撳墠閫変腑琛屼负绌虹殑鏃跺�欏氨灏嗙爜娈电鐞嗚〃鏍兼暟鎹疆绌�,骞剁鐢ㄧ浉鍏冲姛鑳�
-          if(list == ''){
-            this.basicData = [];
+          if(this.selectionList.length <= 0){
             this.hideBasicTable(false);
           }
-          if(this.selectionList.length > 0){
+          if (this.selectionList.length > 0) {
+            this.$refs.crud.setCurrentRow(this.selectionList[list.length-1]);
             this.currentCodeRuleOid = this.selectionList[list.length-1].oid;
             this.currentRuleLcStatus = this.selectionList[list.length-1].lcStatus;
             this.loadBasic(this.selectionList[list.length-1]);
           }
+        },
+        // 鍗曞嚮缂栫爜瑙勫垯瀹炵幇琛岄�夋嫨
+        codeRuleRowClick (row) {
+          // console.log(this.currentRuleLcStatus);
+          this.$refs.crud.toggleSelection();
+          this.$refs.crud.toggleRowSelection(row); //閫変腑褰撳墠琛�
+  
         },
         selectionClear() {
           this.selectionList = [];
@@ -2410,8 +2406,6 @@
             // 鏌ヨ鐨勫�间负绌烘椂锛岃灏嗙爜娈电鐞嗙浉鍏崇殑鍐呭绂佺敤
             if(data.records.length <= 0) {
               this.hideBasicTable(false);
-              this.selectionList = [];
-              this.basicData = [];
               return;
             }
             this.loadBasic(this.data[0])
@@ -2507,7 +2501,7 @@
         // 琛ヤ綅鏃剁殑瀛楃锛屽疄鐜板彲杈撳彲閫�
         inputSelectBlur(e){
           if (e.target.value) {  
-            this.form.codeFillSeparatorSelect = e.target.value;
+            this.form.codeFillSeparator = e.target.value;
           }
         },
         // 鐮佹绫诲瀷鏀瑰彉鏃讹紝澧炲姞瀵瑰簲鐨刦orm琛ㄥ崟涓殑灞炴��
@@ -2568,8 +2562,8 @@
               serialStart: row!=null&&row.serialStart != '' ? row.serialStart:1,  //娴佹按鍙疯捣濮嬪��
               serialStep: row!=null&&row.serialStep != '' ? row.serialStep:1,   //娴佹按鐨勬闀�
               codeFillType: row!=null&&row.codeFillType != '' ? row.codeFillType:'code_fill_left', //缂栫爜琛ヤ綅鏂瑰紡
-              codeFillSeparatorSelect: row!=null&&row.codeFillSeparator != '' ? row.codeFillSeparatorSelect:0,    //琛ヤ綅鏃剁殑瀛楃锛岄�変腑鐨勪笅鎷夋鐨勪笅鏍�
-              codeFillSeparator: row!=null&&row.codeFillSeparator != '' ? row.codeFillSeparator:0,          //琛ヤ綅鏃剁殑瀛楃
+              // codeFillSeparatorSelect: row!=null&&row.codeFillSeparatorSelect != '' ? row.codeFillSeparatorSelect:0,    //琛ヤ綅鏃剁殑瀛楃锛岄�変腑鐨勪笅鎷夋鐨勪笅鏍�
+              codeFillSeparator: row!=null&&row.codeFillSeparator != '' ? row.codeFillSeparator:'0',          //琛ヤ綅鏃剁殑瀛楃
               codeFillLength: row!=null&&row.codeFillLength != '' ? row.codeFillLength:'',              //濉厖闀垮害
               codeFillLimit: row!=null&&row.codeFillLimit != '' ? row.codeFillLimit:'',               //娴佹按涓婇檺
               codeFillFlag: row!=null&&row.codeFillFlag != '' ? row.codeFillFlag=='true' ?  true:false :false,      //娴佹按鏄惁琛ョ爜
@@ -2617,8 +2611,8 @@
             this.form = Object.assign({}, this.form,{
               codeSecLength: row!=null&&row.codeSecLength != '' ? row.codeSecLength:'',             //鐮佹鐨勯暱搴�
               codeFillType: row!=null&&row.codeFillType != '' ? row.codeFillType:'code_fill_left', //缂栫爜閮ㄤ綅鏂瑰紡锛屾灇涓炬煡璇�
-              codeFillSeparatorSelect: row!=null&&row.codeFillSeparatorSelect != '' ? row.codeFillSeparatorSelect:0,  //閫変腑鐨勮ˉ浣嶆椂鐨勫瓧绗︾殑涓嬫爣
-              codeFillSeparator: row!=null&&row.codeFillSeparator != '' ? row.codeFillSeparator:'', //琛ヤ綅鏃剁殑瀛楃锛屽彲杈撳彲閫夋煡璇�
+              // codeFillSeparatorSelect: row!=null&&row.codeFillSeparatorSelect != '' ? row.codeFillSeparatorSelect:0,  //閫変腑鐨勮ˉ浣嶆椂鐨勫瓧绗︾殑涓嬫爣
+              codeFillSeparator: row!=null&&row.codeFillSeparator != '' ? row.codeFillSeparator:'0', //琛ヤ綅鏃剁殑瀛楃锛屽彲杈撳彲閫夋煡璇�
             });
             this.loadCodeFillType();
             this.loadCodeFillSeparator();
diff --git a/Source/UBCS-WEB/src/views/omd/enum.vue b/Source/UBCS-WEB/src/views/omd/enum.vue
index aebcd6e..2ab2b41 100644
--- a/Source/UBCS-WEB/src/views/omd/enum.vue
+++ b/Source/UBCS-WEB/src/views/omd/enum.vue
@@ -4,7 +4,7 @@
       :option="optionParent"
       :table-loading="loading"
       :data="dataParent"
-      :page="pageParent"
+      :page.sync="pageParent"
       ref="crud"
       v-model="formParent"
       :permission="permissionList"
diff --git a/Source/UBCS-WEB/src/views/system/tenant.vue b/Source/UBCS-WEB/src/views/system/tenant.vue
index 0690fe0..96ce15c 100644
--- a/Source/UBCS-WEB/src/views/system/tenant.vue
+++ b/Source/UBCS-WEB/src/views/system/tenant.vue
@@ -27,14 +27,6 @@
                    plain
                    @click="handleDelete">鍒� 闄�
         </el-button>
-        <el-tooltip class="item" effect="dark" content="缁欑鎴烽厤缃处鍙烽搴︺�佽繃鏈熸椂闂寸瓑鎺堟潈淇℃伅" placement="top">
-          <el-button size="small"
-                     plain
-                     v-if="userInfo.role_name.includes('administrator')"
-                     icon="el-icon-setting"
-                     @click="handleSetting">鎺堟潈閰嶇疆
-          </el-button>
-        </el-tooltip>
         <el-tooltip class="item" effect="dark" content="缁欑鎴烽厤缃嫭绔嬫暟鎹簮浠ュ疄鐜版暟鎹簱闅旂" placement="top">
           <el-button size="small"
                      plain
@@ -361,7 +353,7 @@
           message: "鎿嶄綔鎴愬姛!"
         });
         done();
-        console.log(done)
+        // console.log(done)
       }, error => {
         window.console.log(error);
         loading();
diff --git a/Source/UBCS-WEB/src/views/system/user.vue b/Source/UBCS-WEB/src/views/system/user.vue
index dc8e091..e3a5ddc 100644
--- a/Source/UBCS-WEB/src/views/system/user.vue
+++ b/Source/UBCS-WEB/src/views/system/user.vue
@@ -152,7 +152,6 @@
               :value="item.id"
               class="seloption"
               >
-
             </el-option>
           </el-select>
             <span slot="footer" class="dialog-footer">
@@ -1136,8 +1135,7 @@
   overflow: scroll;
 }
 .selects{
-  width: 400px;
-  margin-left: 92px;
+  width: 100%;
 }
 .seloption{
   margin-left: 10px;
diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/model/BaseModel.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/model/BaseModel.java
index 041cc62..c8c9754 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/model/BaseModel.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/model/BaseModel.java
@@ -32,7 +32,7 @@
 	 * 绉熸埛ID
 	 * @TableField(value = "tenant_id")杩欓噷蹇呴』瑕佸啓锛屽苟涓斿繀椤绘槸瑕佸皬鍐欑殑
 	 */
-	@TableField(value = "tenant_id",exist = false)
+	@TableField(value = "tenant_id")
 	private String tenantId;
 
 	private String description;
diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/UBCSSqlKeyword.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/UBCSSqlKeyword.java
index 3e45663..e9e9392 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/UBCSSqlKeyword.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/UBCSSqlKeyword.java
@@ -84,44 +84,52 @@
 		}
 	}
 
+	public static void buildConditionByAs(Map<String, Object> query, MPJLambdaWrapper<?> qw, String tableAlias){
+		buildConditionMPJ(query,qw,tableAlias);
+	}
+
 	public static void buildCondition(Map<String, Object> query, MPJLambdaWrapper<?> qw) {
+		buildConditionMPJ(query,qw,null);
+	}
+
+	private static void buildConditionMPJ(Map<String, Object> query, MPJLambdaWrapper<?> qw, String tableAlias){
 		if (!Func.isEmpty(query)) {
 			query.forEach((k, v) -> {
 				if (!Func.hasEmpty(new Object[]{k, v}) && !k.endsWith("_ignore")) {
 					if (k.endsWith("_like")) {
-						qw.like(getColumn(k, "_like"), v);
+						qw.like(tableAlias+"."+getColumn(k, "_like"), v);
 					} else if (k.endsWith("_notequal")) {
-						qw.ne(getColumn(k, "_notequal"), v);
+						qw.ne(tableAlias+"."+getColumn(k, "_notequal"), v);
 					} else if (k.endsWith("_likeleft")) {
-						qw.likeLeft(getColumn(k, "_likeleft"), v);
+						qw.likeLeft(tableAlias+"."+getColumn(k, "_likeleft"), v);
 					} else if (k.endsWith("_likeright")) {
-						qw.likeRight(getColumn(k, "_likeright"), v);
+						qw.likeRight(tableAlias+"."+getColumn(k, "_likeright"), v);
 					} else if (k.endsWith("_notlike")) {
-						qw.notLike(getColumn(k, "_notlike"), v);
+						qw.notLike(tableAlias+"."+getColumn(k, "_notlike"), v);
 					} else if (k.endsWith("_ge")) {
-						qw.ge(getColumn(k, "_ge"), v);
+						qw.ge(tableAlias+"."+getColumn(k, "_ge"), v);
 					} else if (k.endsWith("_le")) {
-						qw.le(getColumn(k, "_le"), v);
+						qw.le(tableAlias+"."+getColumn(k, "_le"), v);
 					} else if (k.endsWith("_gt")) {
-						qw.gt(getColumn(k, "_gt"), v);
+						qw.gt(tableAlias+"."+getColumn(k, "_gt"), v);
 					} else if (k.endsWith("_lt")) {
-						qw.lt(getColumn(k, "_lt"), v);
+						qw.lt(tableAlias+"."+getColumn(k, "_lt"), v);
 					} else if (k.endsWith("_datege")) {
-						qw.ge(getColumn(k, "_datege"), DateUtil.parse(String.valueOf(v), "yyyy-MM-dd HH:mm:ss"));
+						qw.ge(tableAlias+"."+getColumn(k, "_datege"), DateUtil.parse(String.valueOf(v), "yyyy-MM-dd HH:mm:ss"));
 					} else if (k.endsWith("_dategt")) {
-						qw.gt(getColumn(k, "_dategt"), DateUtil.parse(String.valueOf(v), "yyyy-MM-dd HH:mm:ss"));
+						qw.gt(tableAlias+"."+getColumn(k, "_dategt"), DateUtil.parse(String.valueOf(v), "yyyy-MM-dd HH:mm:ss"));
 					} else if (k.endsWith("_dateequal")) {
-						qw.eq(getColumn(k, "_dateequal"), DateUtil.parse(String.valueOf(v), "yyyy-MM-dd HH:mm:ss"));
+						qw.eq(tableAlias+"."+getColumn(k, "_dateequal"), DateUtil.parse(String.valueOf(v), "yyyy-MM-dd HH:mm:ss"));
 					} else if (k.endsWith("_datele")) {
-						qw.le(getColumn(k, "_datele"), DateUtil.parse(String.valueOf(v), "yyyy-MM-dd HH:mm:ss"));
+						qw.le(tableAlias+"."+getColumn(k, "_datele"), DateUtil.parse(String.valueOf(v), "yyyy-MM-dd HH:mm:ss"));
 					} else if (k.endsWith("_datelt")) {
-						qw.lt(getColumn(k, "_datelt"), DateUtil.parse(String.valueOf(v), "yyyy-MM-dd HH:mm:ss"));
+						qw.lt(tableAlias+"."+getColumn(k, "_datelt"), DateUtil.parse(String.valueOf(v), "yyyy-MM-dd HH:mm:ss"));
 					} else if (k.endsWith("_null")) {
-						qw.isNull(getColumn(k, "_null"));
+						qw.isNull(tableAlias+"."+getColumn(k, "_null"));
 					} else if (k.endsWith("_notnull")) {
-						qw.isNotNull(getColumn(k, "_notnull"));
+						qw.isNotNull(tableAlias+"."+getColumn(k, "_notnull"));
 					} else {
-						qw.eq(getColumn(k, "_equal"), v);
+						qw.eq(tableAlias+"."+getColumn(k, "_equal"), v);
 					}
 
 				}
@@ -129,6 +137,7 @@
 		}
 	}
 
+
 	public static void buildConditionByMapString(Map<String, String> query, MPJLambdaWrapper<?> qw) {
 		if (!Func.isEmpty(query)) {
 			query.forEach((k, v) -> {
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 e363a31..169e728 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
@@ -131,9 +131,11 @@
 		MPJLambdaWrapper<CodeBasicSec> mpjLambdaWrapper = new MPJLambdaWrapper<>(CodeBasicSec.class, CodeTableNameEnum.PL_CODE_BASICSEC.getText())
 			.selectAll(CodeBasicSec.class)
 			.selectAs(CodeClassify::getName, CodeBasicSec::getReferCodeClassifyOidName)
-			.leftJoin(CodeClassify.class,CodeTableNameEnum.PL_CODE_CLASSIFY.getText(), CodeClassify::getOid, CodeBasicSec::getReferCodeClassifyOid);
+			.leftJoin(CodeClassify.class, CodeTableNameEnum.PL_CODE_CLASSIFY.getText(), CodeClassify::getOid, CodeBasicSec::getReferCodeClassifyOid)
+			.leftJoin(CodeBasicSec.class,CodeTableNameEnum.PL_CODE_BASICSEC.getText()+1,CodeBasicSec::getOid,CodeBasicSec::getParentClassifySecOid
+				,ext->ext.selectAs(CodeBasicSec::getName,CodeBasicSec::getParentClassifySecText));
 		// 娣诲姞where鏉′欢
-		UBCSSqlKeyword.buildCondition(conditionMap,mpjLambdaWrapper);
+		UBCSSqlKeyword.buildConditionByAs(conditionMap,mpjLambdaWrapper,CodeTableNameEnum.PL_CODE_BASICSEC.getText());
 		IPage<CodeBasicSec> codeBasicSecIPage = codeBasicSecMapper.selectPage(UBCSCondition.getPage(query), mpjLambdaWrapper);
 		return CodeBasicSecWrapper.build().pageVO(codeBasicSecIPage);
 	}
@@ -508,20 +510,23 @@
 		}
 		List<CodeBasicSec> createList = new ArrayList<>();
 		List<CodeBasicSec> basicSecDOS = codeBasicSecMapper.selectBatchIds(oidList);
+		if(basicSecDOS.isEmpty()){
+			return R.fail("鍏嬮殕鐨勭爜娈典俊鎭笉瀛樺湪锛�");
+		}
 		basicSecDOS.forEach(sec -> {
 			CodeBasicSec newSecDO = new CodeBasicSec();
 			BeanUtilForVCI.copyPropertiesIgnoreCase(sec,newSecDO);
-			newSecDO.setOid("");
-			newSecDO.setNameOid("");
-			newSecDO.setRevisionOid("");
+			newSecDO.setOid(VciBaseUtil.getPk());
+			newSecDO.setNameOid(VciBaseUtil.getPk());
+			newSecDO.setRevisionOid(VciBaseUtil.getPk());
 			newSecDO.setId(newSecDO.getId() + "_copy");
 			newSecDO.setName(newSecDO.getName() + "_copy");
 			newSecDO.setPkCodeRule(pkCodeRule);
 			createList.add(newSecDO);
 		});
-		boolean b = saveBatch(createList);
+		boolean resBoolean = saveBatch(createList);
 		//codeBasicSecMapper.insertBatch(createList);
-		return R.data(b,"鍏嬮殕鐮佹淇℃伅鎴愬姛");
+		return resBoolean ? R.data(resBoolean,"鍏嬮殕鐮佹淇℃伅鎴愬姛"):R.fail("鍏嬮殕鐮佹淇℃伅澶辫触锛�");
 	}
 
 	/**
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/controller/DeptController.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/controller/DeptController.java
index 3c098e0..498661f 100644
--- a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/controller/DeptController.java
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/controller/DeptController.java
@@ -17,6 +17,7 @@
 package com.vci.ubcs.system.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import com.vci.ubcs.system.cache.DictCache;
@@ -32,6 +33,7 @@
 import org.springblade.core.cache.utils.CacheUtil;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.BladeUser;
 import org.springblade.core.tenant.annotation.NonDS;
 import org.springblade.core.tool.api.R;
@@ -99,9 +101,9 @@
 	})
 	@ApiOperationSupport(order = 3)
 	@ApiOperation(value = "鎳掑姞杞藉垪琛�", notes = "浼犲叆dept")
-	public R<List<DeptVO>> lazyList(@ApiIgnore @RequestParam Map<String, Object> dept, Long parentId, BladeUser bladeUser) {
-		List<DeptVO> list = deptService.lazyList(bladeUser.getTenantId(), parentId, dept);
-		return R.data(DeptWrapper.build().listNodeLazyVO(list));
+	public R<IPage<DeptVO>> lazyList(@ApiIgnore @RequestParam Map<String, Object> dept, Query query, Long parentId, BladeUser bladeUser) {
+		IPage<DeptVO> list = deptService.lazyList(bladeUser.getTenantId(), parentId, dept, query);
+		return R.data(DeptWrapper.build().pageNodeLazyVO(list));
 	}
 
 	/**
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/controller/MenuController.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/controller/MenuController.java
index f597a76..039a4b3 100644
--- a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/controller/MenuController.java
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/controller/MenuController.java
@@ -16,7 +16,9 @@
  */
 package com.vci.ubcs.system.controller;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import com.vci.ubcs.system.entity.Menu;
 import com.vci.ubcs.system.entity.TopMenu;
@@ -31,6 +33,7 @@
 import org.springblade.core.cache.utils.CacheUtil;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.BladeUser;
 import org.springblade.core.tenant.annotation.NonDS;
 import org.springblade.core.tool.api.R;
@@ -133,9 +136,9 @@
 	//@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
 	@ApiOperationSupport(order = 5)
 	@ApiOperation(value = "鎳掑姞杞借彍鍗曞垪琛�", notes = "浼犲叆menu")
-	public R<List<MenuVO>> lazyMenuList(Long parentId, @ApiIgnore @RequestParam Map<String, Object> menu) {
-		List<MenuVO> list = menuService.lazyMenuList(parentId, menu);
-		return R.data(MenuWrapper.build().listNodeLazyVO(list));
+	public R<IPage<MenuVO>> lazyMenuList(Long parentId, @ApiIgnore @RequestParam Map<String, Object> menu, Query query) {
+		IPage<MenuVO> menuVOIPage = menuService.lazyMenuPage(parentId, menu,query);
+		return R.data(MenuWrapper.build().pageNodeLazyVO(menuVOIPage));
 	}
 
 	/**
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/controller/RoleController.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/controller/RoleController.java
index cbfa0d6..1a40eb8 100644
--- a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/controller/RoleController.java
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/controller/RoleController.java
@@ -17,6 +17,7 @@
 package com.vci.ubcs.system.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import com.vci.ubcs.system.cache.SysCache;
@@ -32,6 +33,7 @@
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.cache.utils.CacheUtil;
 import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.BladeUser;
 import org.springblade.core.tenant.annotation.NonDS;
 import org.springblade.core.tool.api.R;
@@ -73,19 +75,20 @@
 	}
 
 	/**
-	 * 鍒楄〃
+	 * 鍒嗛〉鍒楄〃
 	 */
-	@GetMapping("/list")
+	@GetMapping("/page")
 	@ApiImplicitParams({
 		@ApiImplicitParam(name = "roleName", value = "鍙傛暟鍚嶇О", paramType = "query", dataType = "string"),
 		@ApiImplicitParam(name = "roleAlias", value = "瑙掕壊鍒悕", paramType = "query", dataType = "string")
 	})
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "鍒楄〃", notes = "浼犲叆role")
-	public R<List<RoleVO>> list(@ApiIgnore @RequestParam Map<String, Object> role, BladeUser bladeUser) {
+	public R<IPage<RoleVO>> list(@ApiIgnore @RequestParam Map<String, Object> role, BladeUser bladeUser, Query query) {
 		QueryWrapper<Role> queryWrapper = Condition.getQueryWrapper(role, Role.class);
-		List<Role> list = roleService.list((!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.lambda().eq(Role::getTenantId, bladeUser.getTenantId()) : queryWrapper);
-		return R.data(RoleWrapper.build().listNodeVO(list));
+		IPage<Role> page = roleService.page(Condition.getPage(query),
+			(!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.lambda().eq(Role::getTenantId, bladeUser.getTenantId()) : queryWrapper);
+		return R.data(RoleWrapper.build().pageNodeVO(page));
 	}
 
 	/**
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/controller/StrategyController.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/controller/StrategyController.java
index f011799..18cc418 100644
--- a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/controller/StrategyController.java
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/controller/StrategyController.java
@@ -1,5 +1,6 @@
 package com.vci.ubcs.system.controller;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import com.vci.ubcs.system.service.IStrategyService;
 import io.swagger.annotations.Api;
@@ -48,8 +49,8 @@
 	@GetMapping("/page")
 	@ApiOperationSupport(order = 1)
 	@ApiOperation(value = "鍒嗛〉鏌ヨ", notes = "浼犲叆鍒嗛〉鍙傛暟query")
-	public R<Page<Strategy>> queryByPage(Query query) {
-		Page<Strategy> strategyPage = strategyService.queryAllByPage(query);
+	public R<IPage<Strategy>> queryByPage(Query query) {
+		IPage<Strategy> strategyPage = strategyService.queryAllByPage(query);
 		return R.data(strategyPage);
 	}
 
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/mapper/DeptMapper.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/mapper/DeptMapper.java
index ef7b5c0..ee6f598 100644
--- a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/mapper/DeptMapper.java
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/mapper/DeptMapper.java
@@ -17,6 +17,7 @@
 package com.vci.ubcs.system.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.vci.ubcs.system.entity.Dept;
 import com.vci.ubcs.system.vo.DeptVO;
 
@@ -38,7 +39,7 @@
 	 * @param param
 	 * @return
 	 */
-	List<DeptVO> lazyList(String tenantId, Long parentId, Map<String, Object> param);
+	IPage<DeptVO> lazyList(String tenantId, Long parentId, Map<String, Object> param,IPage page);
 
 	/**
 	 * 鑾峰彇鏍戝舰鑺傜偣
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/mapper/MenuMapper.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/mapper/MenuMapper.java
index f66512a..44d84a6 100644
--- a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/mapper/MenuMapper.java
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/mapper/MenuMapper.java
@@ -17,6 +17,7 @@
 package com.vci.ubcs.system.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.core.tool.node.TreeNode;
 import com.vci.ubcs.system.dto.MenuDTO;
 import com.vci.ubcs.system.entity.Menu;
@@ -49,7 +50,7 @@
 	 * @param param
 	 * @return
 	 */
-	List<MenuVO> lazyMenuList(Long parentId, Map<String, Object> param);
+	IPage<MenuVO> lazyMenuPage(Long parentId, Map<String, Object> param, IPage page);
 
 	/**
 	 * 鏍戝舰缁撴瀯
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/mapper/StrategyMapper.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/mapper/StrategyMapper.java
index dae9527..2fed6b6 100644
--- a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/mapper/StrategyMapper.java
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/mapper/StrategyMapper.java
@@ -3,6 +3,7 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.Param;
 import com.vci.ubcs.system.entity.Strategy;
 
@@ -22,7 +23,7 @@
 	 * @param page 鍒嗛〉瀵硅薄
 	 * @return 瀵硅薄鍒楄〃
 	 */
-	List<Strategy> queryAllByPage(IPage page);
+	IPage<Strategy> queryAllByPage(IPage page);
 
 	/**
 	 * 缁熻鎬昏鏁�
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IDeptService.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IDeptService.java
index 2dc4d02..3f4c0ff 100644
--- a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IDeptService.java
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IDeptService.java
@@ -16,9 +16,11 @@
  */
 package com.vci.ubcs.system.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.vci.ubcs.system.entity.Dept;
 import com.vci.ubcs.system.vo.DeptVO;
+import org.springblade.core.mp.support.Query;
 
 import java.util.List;
 import java.util.Map;
@@ -38,7 +40,7 @@
 	 * @param param
 	 * @return
 	 */
-	List<DeptVO> lazyList(String tenantId, Long parentId, Map<String, Object> param);
+	IPage<DeptVO> lazyList(String tenantId, Long parentId, Map<String, Object> param, Query query);
 
 	/**
 	 * 鏍戝舰缁撴瀯
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IMenuService.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IMenuService.java
index b6b738a..d376f40 100644
--- a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IMenuService.java
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IMenuService.java
@@ -16,7 +16,9 @@
  */
 package com.vci.ubcs.system.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.BladeUser;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.node.TreeNode;
@@ -50,7 +52,7 @@
 	 * @param param
 	 * @return
 	 */
-	List<MenuVO> lazyMenuList(Long parentId, Map<String, Object> param);
+	IPage<MenuVO> lazyMenuPage(Long parentId, Map<String, Object> param, Query query);
 
 	/**
 	 * 鑿滃崟鏍戝舰缁撴瀯
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IStrategyService.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IStrategyService.java
index 432935d..716adb2 100644
--- a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IStrategyService.java
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IStrategyService.java
@@ -1,5 +1,6 @@
 package com.vci.ubcs.system.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.springblade.core.mp.support.Query;
 import com.vci.ubcs.system.entity.Strategy;
@@ -36,7 +37,7 @@
 	 * @param query 鍒嗛〉瀵硅薄
 	 * @return 鏌ヨ缁撴灉
 	 */
-	PageImpl<Strategy> queryAllByPage(Query query);
+	IPage<Strategy> queryAllByPage(Query query);
 
 	/**
 	 * 鏂板鏁版嵁鎴栦慨鏀规暟鎹�
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/CombinationServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/CombinationServiceImpl.java
index bd1d59a..9cc7e49 100644
--- a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/CombinationServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/CombinationServiceImpl.java
@@ -110,7 +110,9 @@
 	 */
 	@Override
 	public List<Map<String, Object>> selectMaps() {
-		List<Map<String, Object>> maps = listMaps(new QueryWrapper<Combination>().select("ID", "NAME"));
+		List<Map<String, Object>> maps = listMaps(
+			new QueryWrapper<Combination>().lambda().select(Combination::getId, Combination::getName)
+		);
 		return maps;
 	}
 
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/DeptServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/DeptServiceImpl.java
index 3b2866c..3a3f857 100644
--- a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/DeptServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/DeptServiceImpl.java
@@ -17,6 +17,7 @@
 package com.vci.ubcs.system.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springblade.core.log.exception.ServiceException;
@@ -26,6 +27,8 @@
 import com.vci.ubcs.system.service.IDeptService;
 import com.vci.ubcs.system.vo.DeptVO;
 import com.vci.ubcs.system.wrapper.DeptWrapper;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.constant.BladeConstant;
 import org.springblade.core.tool.node.ForestNodeMerger;
@@ -49,7 +52,7 @@
 	private static final String PARENT_ID = "parentId";
 
 	@Override
-	public List<DeptVO> lazyList(String tenantId, Long parentId, Map<String, Object> param) {
+	public IPage<DeptVO> lazyList(String tenantId, Long parentId, Map<String, Object> param, Query query) {
 		// 璁剧疆绉熸埛ID
 		if (AuthUtil.isAdministrator()) {
 			tenantId = StringPool.EMPTY;
@@ -74,7 +77,7 @@
 		if (Func.isEmpty(param.get(PARENT_ID)) && param.size() > 1 && Func.toLong(parentId) == 0L) {
 			parentId = null;
 		}
-		return baseMapper.lazyList(tenantId, parentId, param);
+		return baseMapper.lazyList(tenantId, parentId, param, Condition.getPage(query));
 	}
 
 
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MenuServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MenuServiceImpl.java
index 7a54011..7905b2c 100644
--- a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MenuServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MenuServiceImpl.java
@@ -17,6 +17,7 @@
 package com.vci.ubcs.system.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.vci.ubcs.system.cache.SysCache;
@@ -31,6 +32,8 @@
 import com.vci.ubcs.system.wrapper.MenuWrapper;
 import lombok.AllArgsConstructor;
 import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.BladeUser;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
@@ -74,11 +77,11 @@
 	}
 
 	@Override
-	public List<MenuVO> lazyMenuList(Long parentId, Map<String, Object> param) {
+	public IPage<MenuVO> lazyMenuPage(Long parentId, Map<String, Object> param, Query query) {
 		if (Func.isEmpty(Func.toStr(param.get(PARENT_ID)))) {
 			parentId = null;
 		}
-		return baseMapper.lazyMenuList(parentId, param);
+		return baseMapper.lazyMenuPage(parentId, param, Condition.getPage(query));
 	}
 
 
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/StrategyServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/StrategyServiceImpl.java
index f08e550..3a5be0e 100644
--- a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/StrategyServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/StrategyServiceImpl.java
@@ -1,5 +1,6 @@
 package com.vci.ubcs.system.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -67,9 +68,9 @@
 	 * @return 鏌ヨ缁撴灉
 	 */
 	@Override
-	public PageImpl<Strategy> queryAllByPage(Query query) {
+	public IPage<Strategy> queryAllByPage(Query query) {
 		Page<Strategy> strategyPage = new Page<>(query.getCurrent(), query.getSize());
-		return new PageImpl<>(this.strategyMapper.queryAllByPage(strategyPage));
+		return this.strategyMapper.queryAllByPage(strategyPage);
 	}
 
 	/**
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/wrapper/DeptWrapper.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/wrapper/DeptWrapper.java
index f1d71a2..2a64087 100644
--- a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/wrapper/DeptWrapper.java
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/wrapper/DeptWrapper.java
@@ -16,6 +16,9 @@
  */
 package com.vci.ubcs.system.wrapper;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.vci.ubcs.common.utils.PageDO2PageVO;
 import org.springblade.core.mp.support.BaseEntityWrapper;
 import org.springblade.core.tool.constant.BladeConstant;
 import org.springblade.core.tool.node.ForestNodeMerger;
@@ -75,4 +78,14 @@
 		return ForestNodeMerger.merge(collect);
 	}
 
+	public IPage<DeptVO> pageNodeLazyVO(IPage<DeptVO> page) {
+		List<DeptVO> deptVOS = page.getRecords().stream().peek(dept -> {
+			String category = DictCache.getValue(DictEnum.ORG_CATEGORY, dept.getDeptCategory());
+			Objects.requireNonNull(dept).setDeptCategoryName(category);
+		}).collect(Collectors.toList());
+		List<DeptVO> list = ForestNodeMerger.merge(deptVOS);
+		page.setRecords(list);
+		return page;
+	}
+
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/wrapper/MenuWrapper.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/wrapper/MenuWrapper.java
index 638cdd6..57da7fe 100644
--- a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/wrapper/MenuWrapper.java
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/wrapper/MenuWrapper.java
@@ -16,6 +16,7 @@
  */
 package com.vci.ubcs.system.wrapper;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.core.mp.support.BaseEntityWrapper;
 import org.springblade.core.tool.constant.BladeConstant;
 import org.springblade.core.tool.node.ForestNodeMerger;
@@ -69,4 +70,10 @@
 		return ForestNodeMerger.merge(list);
 	}
 
+	public IPage<MenuVO> pageNodeLazyVO(IPage<MenuVO> page) {
+		List<MenuVO> merge = ForestNodeMerger.merge(page.getRecords());
+		page.setRecords(merge);
+		return page;
+	}
+
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/wrapper/RoleWrapper.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/wrapper/RoleWrapper.java
index 39da219..ce183f9 100644
--- a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/wrapper/RoleWrapper.java
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/wrapper/RoleWrapper.java
@@ -16,6 +16,9 @@
  */
 package com.vci.ubcs.system.wrapper;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.vci.ubcs.common.utils.PageDO2PageVO;
 import org.springblade.core.mp.support.BaseEntityWrapper;
 import org.springblade.core.tool.constant.BladeConstant;
 import org.springblade.core.tool.node.ForestNodeMerger;
@@ -52,10 +55,17 @@
 		return roleVO;
 	}
 
-
 	public List<RoleVO> listNodeVO(List<Role> list) {
 		List<RoleVO> collect = list.stream().map(this::entityVO).collect(Collectors.toList());
 		return ForestNodeMerger.merge(collect);
 	}
 
+	public IPage<RoleVO> pageNodeVO(IPage<Role> page) {
+		List<RoleVO> collect = page.getRecords().stream().map(this::entityVO).collect(Collectors.toList());
+		List<RoleVO> mergeList = ForestNodeMerger.merge(collect);
+		IPage<RoleVO> roleVOIPage = new Page<>();
+		roleVOIPage.setRecords(mergeList);
+		return PageDO2PageVO.pageDO2PageVO(page,roleVOIPage);
+	}
+
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/resources/mapper/MenuMapper.xml b/Source/UBCS/ubcs-service/ubcs-system/src/main/resources/mapper/MenuMapper.xml
index 50d8103..c4d87b5 100644
--- a/Source/UBCS/ubcs-service/ubcs-system/src/main/resources/mapper/MenuMapper.xml
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/resources/mapper/MenuMapper.xml
@@ -73,7 +73,7 @@
         ORDER BY menu.sort
     </select>
 
-    <select id="lazyMenuList" resultMap="menuVOResultMap">
+    <select id="lazyMenuPage" resultMap="menuVOResultMap">
         SELECT
             menu.*,
             (
diff --git a/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/service/impl/UserServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/service/impl/UserServiceImpl.java
index 1680c0b..5710cfd 100644
--- a/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/service/impl/UserServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/service/impl/UserServiceImpl.java
@@ -309,6 +309,7 @@
 		}
 		//鑾峰彇鐢ㄦ埛閲囩敤鐨勫瘑鐮佺瓥鐣�
 		Strategy strategy = sysClient.getByUserId(userId).getData();
+		// 鍑犱箮涓嶄細鍑虹幇杩欑鎯呭喌
 		if(ObjectUtil.isEmpty(strategy)) {
 			throw new ServiceException("褰撳墠鐢ㄦ埛鏈簲鐢ㄥ瘑鐮佺瓥鐣ワ紒");
 		}
@@ -323,7 +324,7 @@
 			if(reqType>=strategy.getRequiredType()){
 				break;
 			}
-			if(!Func.isEmpty(RegexUtil.findResult(regexs.get(i),newPassword1))){
+			if(RegexUtil.find(regexs.get(i),newPassword1)){
 				reqType++;
 			}
 		}
@@ -331,12 +332,12 @@
 		if(reqType<strategy.getRequiredType()){
 			throw new ServiceException(resException);
 		}
-		// 鏄惁灞炰簬缁勫悎鏂瑰紡涓殑绫诲瀷
+		// 鏄惁灞炰簬缁勫悎鏂瑰紡涓殑绫诲瀷,浠ュ墠鏄瘑鐮佸繀椤绘槸鍖呭惈鍦ㄧ粍鍚堟柟寮忎腑鐨勭被鍨�
 		String regex = sysClient.getRegex(Arrays.asList(strategy.getCombinationIds().split(","))).getData();
 		regex = "^"+regex+"{"+strategy.getRequiredType()+",}$";
 		boolean result = RegexUtil.find(regex, newPassword1);
 		if(!result){
-			throw new ServiceException(resException);
+			throw new ServiceException("瀵嗙爜涓彧鑳藉瓨鍦ㄣ��"+strategy.getCombinationNames()+"銆戜腑鍖呭惈鐨勫瓧绗︼紒");
 		}
 		//淇敼瀵嗙爜鍚屾椂锛屾敼鍙樼敤鎴蜂俊鎭腑鐨勫瘑鐮佷慨鏀圭姸鎬佸瓧娈�,瀵嗙爜淇敼鏃堕棿
 		return this.update(Wrappers.<User>update().lambda()
@@ -422,6 +423,7 @@
 		boolean oauthTemp = userOauthService.updateById(userOauth);
 		return (userTemp && oauthTemp);
 	}
+
 	@Override
 	public boolean updatePlatform(Long userId, Integer userType, String userExt) {
 		if (userType.equals(UserEnum.WEB.getCategory())) {

--
Gitblit v1.9.3