From df18b23b4569828d6be32fb64c80492241e1fc46 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期一, 16 十月 2023 20:31:43 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 Source/UBCS-WEB/src/api/code/codeMatch.js                                                                        |    8 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeBasicSecService.java             |    8 
 Source/UBCS/ubcs-service/ubcs-user/src/main/resources/mapper/UserMapper.xml                                      |    3 
 Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue                                                           |    1 
 Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/vo/UserVO.java                 |    9 
 Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/wrapper/UserWrapper.java               |    3 
 Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue                                                      |   21 +
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeResembleRuleServiceImpl.java |   17 
 Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue                                                     |    8 
 Source/UBCS-WEB/src/views/code/codeApply.vue                                                                     |  165 ++++++++++++
 Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/StatusServiceImpl.java             |   10 
 Source/UBCS-WEB/src/api/code/codeApply.js                                                                        |   12 
 Source/UBCS/ubcs-service-api/ubcs-dict-api/src/main/java/com/vci/ubcs/system/enums/DictEnum.java                 |    4 
 Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/entity/User.java               |    4 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java     |   59 ++++
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java        |   10 
 Source/UBCS-WEB/src/page/index/top/index.vue                                                                     |   83 +++---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeBasicSecController.java        |   13 +
 Source/UBCS-WEB/src/views/code/Match.vue                                                                         |  283 ++++++++++++---------
 19 files changed, 526 insertions(+), 195 deletions(-)

diff --git a/Source/UBCS-WEB/src/api/code/codeApply.js b/Source/UBCS-WEB/src/api/code/codeApply.js
index f51069c..c2911f1 100644
--- a/Source/UBCS-WEB/src/api/code/codeApply.js
+++ b/Source/UBCS-WEB/src/api/code/codeApply.js
@@ -13,11 +13,12 @@
 //缂栫爜鐢宠鎺т欢
 export const getUsedTemplateByClassifyOid = (params) => {
   return request({
-    url: '/api/ubcs-code/codeApplySwingController/getUsedTemplateByClassifyOid',
+    url: '/api/ubcs-code/codeApplySwingController/getFormDefineByTemplateOid',
     method: 'get',
     params
   })
 }
+//鐮佸��
 export function getCodeRule(params) {
   return request({
     url: 'api/ubcs-code/mdmEngineController/getCodeRuleByClassifyOid',
@@ -25,3 +26,12 @@
     params
   })
 }
+
+//淇濆瓨
+export function addSaveCode(data) {
+  return request({
+    url: 'api/ubcs-code/codeApplySwingController/addSaveCode',
+    method: 'post',
+    data
+  })
+}
diff --git a/Source/UBCS-WEB/src/api/code/codeMatch.js b/Source/UBCS-WEB/src/api/code/codeMatch.js
index 475e7ed..649b16d 100644
--- a/Source/UBCS-WEB/src/api/code/codeMatch.js
+++ b/Source/UBCS-WEB/src/api/code/codeMatch.js
@@ -33,11 +33,11 @@
 //鍒犻櫎
 export const deleteData = (row) => {
   const formData = new FormData();
-  formData.append('oid', row.oid);
-  formData.append('ts', row.ts);
+    formData.append('oid', row.oid);
+    formData.append('ts', row.ts);
   return request({
     url: '/api/ubcs-code/resembleRuleController/deleteData',
     method: 'delete',
-    data:formData
-  })
+    data: formData
+  });
 }
diff --git a/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue b/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue
index 2f3f08b..c2181d5 100644
--- a/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue
+++ b/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue
@@ -62,6 +62,10 @@
       type: String,
       default: "",
     },
+    LoadingStatus:{
+      type: String,
+      default : "code"
+    },
     // 鍒楄〃鏁版嵁oid
     rowOid: {
       type: String,
@@ -129,7 +133,9 @@
     this.handleResize();
   },
   created() {
-
+    if (this.LoadingStatus === 'code') {
+      this.loading = false;
+    }
   },
   computed: {
     localTrendsSpan() {
diff --git a/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue b/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue
index 791d4d1..9907cf6 100644
--- a/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue
+++ b/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue
@@ -36,7 +36,7 @@
               </el-select></span>
             </div>
             <el-table ref="dataTable" v-loading="isLoading" :data="tableData"
-                      :height="tableHeight"
+                      :height="tableHeight"  border
                       @select="handleSelection" @cell-click="handleCellClick" @row-click="handleRowClick"
                       @select-all="handleSelectionAll" @selection-change="handleSelectionChange"
                       @sort-change="sortChange">
@@ -52,7 +52,7 @@
                   </el-link>
                 </template>
               </el-table-column>
-              <el-table-column v-for="item in this.tableHeadFindData" v-if="!item.hidden && item.prop !== 'id'"
+              <el-table-column v-for="item in this.tableHeadFindData" v-if="!item.hidden && item.prop !== 'id' && item.prop !== 'lcstatus'"
                                :key="item.id"
                                :formatter="item.formatter"
                                :label="item.label" :prop="item.prop"
@@ -60,6 +60,13 @@
                                :sortable="item.sortable"
                                :width="item.width"
                                align="center">
+              </el-table-column>
+              <el-table-column  v-for="item in lcstatusArray" v-if="!item.hidden" label="鐢熷懡鍛ㄦ湡鍊�" prop="lcstatus"
+                                :show-overflow-tooltip="true" :sortable="item.sortable" :width="item.width"
+                                align="center">
+                <template slot-scope="scope">
+                  <span>{{ scope.row.lcstatus_text }}</span>
+                </template>
               </el-table-column>
             </el-table>
           </el-row>
@@ -220,6 +227,8 @@
       LinkList: [],
       isCodeArrayPushed: false, // 缂栫爜鏁扮粍娣诲姞鏍囪瘑鍙橀噺
       CodeArray: [],
+      lcstatusArray:[],
+      islcstatusPushed:false,
       // 鐘舵�佹悳绱�
       statusSelect: "all",
       // 鍏抽敭瀛楁煡璇�
@@ -375,7 +384,11 @@
         if (!this.isCodeArrayPushed) {
           this.CodeArray.push(newval.find(item => item.prop === 'id'))
           this.isCodeArrayPushed = true
-        }
+        };
+        if (!this.islcstatusPushed) {
+          this.lcstatusArray.push(newval.find(item => item.prop === 'lcstatus'))
+          this.islcstatusPushed = true
+        };
         // console.log('new',newval)
         this.WupinFindValue = ''
       },
@@ -750,7 +763,7 @@
     },
     // 鎺掑簭
     sortChange(val) {
-      console.log(val)
+      // console.log(val)
       this.isLoading = true;
       let order = "";
       if (val.order == "ascending") {
diff --git a/Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue b/Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue
index 32c6fa2..a8c81f6 100644
--- a/Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue
+++ b/Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue
@@ -304,6 +304,7 @@
     <el-table v-if="this.crudArrayFlag"
               ref="referAttrCrud"
               v-loading="loading"
+              border
               :data="ProData"
               :height="this.editStyleFlag? 800 : 343"
               style="width: 100%"
diff --git a/Source/UBCS-WEB/src/page/index/top/index.vue b/Source/UBCS-WEB/src/page/index/top/index.vue
index 3d2c4cb..443db48 100644
--- a/Source/UBCS-WEB/src/page/index/top/index.vue
+++ b/Source/UBCS-WEB/src/page/index/top/index.vue
@@ -27,22 +27,24 @@
           <top-color></top-color>
         </div>
       </el-tooltip>
-      <el-tooltip v-if="showDebug"
-                  effect="dark"
-                  :content="logsFlag?$t('navbar.bug'):logsLen+$t('navbar.bugs')"
-                  placement="bottom">
-        <div class="top-bar__item">
-          <top-logs></top-logs>
-        </div>
-      </el-tooltip>
-      <el-tooltip v-if="showLock"
-                  effect="dark"
-                  :content="$t('navbar.lock')"
-                  placement="bottom">
-        <div class="top-bar__item">
-          <top-lock></top-lock>
-        </div>
-      </el-tooltip>
+<!--      閿欒鏃ュ織-->
+<!--      <el-tooltip v-if="showDebug"-->
+<!--                  effect="dark"-->
+<!--                  :content="logsFlag?$t('navbar.bug'):logsLen+$t('navbar.bugs')"-->
+<!--                  placement="bottom">-->
+<!--        <div class="top-bar__item">-->
+<!--          <top-logs></top-logs>-->
+<!--        </div>-->
+<!--      </el-tooltip>-->
+<!--      閿佸睆-->
+<!--      <el-tooltip v-if="showLock"-->
+<!--                  effect="dark"-->
+<!--                  :content="$t('navbar.lock')"-->
+<!--                  placement="bottom">-->
+<!--        <div class="top-bar__item">-->
+<!--          <top-lock></top-lock>-->
+<!--        </div>-->
+<!--      </el-tooltip>-->
       <el-tooltip v-if="showTheme"
                   effect="dark"
                   :content="$t('navbar.theme')"
@@ -51,29 +53,32 @@
           <top-theme></top-theme>
         </div>
       </el-tooltip>
-      <el-tooltip effect="dark"
-                  :content="$t('navbar.notice')"
-                  placement="bottom">
-        <div class="top-bar__item top-bar__item--show">
-          <top-notice></top-notice>
-        </div>
-      </el-tooltip>
-      <el-tooltip effect="dark"
-                  :content="$t('navbar.language')"
-                  placement="bottom">
-        <div class="top-bar__item top-bar__item--show">
-          <top-lang></top-lang>
-        </div>
-      </el-tooltip>
-      <el-tooltip v-if="showFullScren"
-                  effect="dark"
-                  :content="isFullScren?$t('navbar.screenfullF'):$t('navbar.screenfull')"
-                  placement="bottom">
-        <div class="top-bar__item">
-          <i :class="isFullScren?'icon-tuichuquanping':'icon-quanping'"
-             @click="handleScreen"></i>
-        </div>
-      </el-tooltip>
+<!--      娑堟伅閫氱煡-->
+<!--      <el-tooltip effect="dark"-->
+<!--                  :content="$t('navbar.notice')"-->
+<!--                  placement="bottom">-->
+<!--        <div class="top-bar__item top-bar__item&#45;&#45;show">-->
+<!--          <top-notice></top-notice>-->
+<!--        </div>-->
+<!--      </el-tooltip>-->
+<!--      涓嫳鏂�-->
+<!--      <el-tooltip effect="dark"-->
+<!--                  :content="$t('navbar.language')"-->
+<!--                  placement="bottom">-->
+<!--        <div class="top-bar__item top-bar__item&#45;&#45;show">-->
+<!--          <top-lang></top-lang>-->
+<!--        </div>-->
+<!--      </el-tooltip>-->
+<!--      鍏ㄥ睆-->
+<!--      <el-tooltip v-if="showFullScren"-->
+<!--                  effect="dark"-->
+<!--                  :content="isFullScren?$t('navbar.screenfullF'):$t('navbar.screenfull')"-->
+<!--                  placement="bottom">-->
+<!--        <div class="top-bar__item">-->
+<!--          <i :class="isFullScren?'icon-tuichuquanping':'icon-quanping'"-->
+<!--             @click="handleScreen"></i>-->
+<!--        </div>-->
+<!--      </el-tooltip>-->
       <img class="top-bar__img"
            :src="userInfo.avatar">
       <el-dropdown>
diff --git a/Source/UBCS-WEB/src/views/code/Match.vue b/Source/UBCS-WEB/src/views/code/Match.vue
index bf67ba0..9a98bd2 100644
--- a/Source/UBCS-WEB/src/views/code/Match.vue
+++ b/Source/UBCS-WEB/src/views/code/Match.vue
@@ -1,106 +1,107 @@
 <template>
-<basic-container>
-  <avue-crud :option="option"
-             :table-loading="loading"
-             :data="data"
-             ref="crud"
-             v-model="form"
-             :page.sync="page"
-             @row-del="rowDel"
-             @row-update="rowUpdate"
-             @row-save="rowSave"
-             @selection-change="selectionChange"
-             @current-change="currentChange"
-             @size-change="sizeChange"
-             @refresh-change="refreshChange"
-             @on-load="onLoad">
-    <template slot="menuLeft">
-      <el-button type="primary"
-                 size="small"
-                 icon="el-icon-search"
-                 plain @click="searchHandler">鏌� 璇�
-      </el-button>
-      <advanced-query :options="options" :visible.sync="findvisible"
-                      @echoContion="echoContion"></advanced-query>
-      <el-button type="danger"
-                 size="small"
-                 icon="el-icon-delete"
-                 plain @click="deleteHandler">鍒� 闄�
-      </el-button>
-      <el-button type="success"
-                 size="small"
-                 icon="el-icon-edit"
-                 plain>淇� 鏀�
-      </el-button>
-      <el-button type="primary"
-                 size="small"
-                 icon="el-icon-refresh-right"
-                 plain>鍒� 鏂�
-      </el-button>
-    </template>
-  </avue-crud>
-</basic-container>
+  <basic-container>
+    <avue-crud ref="crud"
+               v-model="form"
+               :data="data"
+               :option="option"
+               :page.sync="page"
+               :table-loading="loading"
+               @row-del="rowDel"
+               @row-update="rowUpdate"
+               @row-save="rowSave"
+               @selection-change="selectionChange"
+               @current-change="currentChange"
+               @size-change="sizeChange"
+               @refresh-change="refreshChange"
+               @on-load="onLoad">
+      <template slot="menuLeft" slot-scope="scope">
+        <el-button icon="el-icon-search"
+                   plain
+                   size="small"
+                   type="primary" @click="searchHandler">鏌� 璇�
+        </el-button>
+        <advanced-query :options="options" :visible.sync="findvisible"
+                        @echoContion="echoContion"></advanced-query>
+        <el-button icon="el-icon-delete"
+                   plain
+                   size="small"
+                   type="danger" @click="deleteHandler">鍒� 闄�
+        </el-button>
+        <el-button icon="el-icon-edit"
+                   plain
+                   size="small"
+                   type="success" @click="editHandler">淇� 鏀�
+        </el-button>
+        <el-button icon="el-icon-refresh-right"
+                   plain
+                   size="small"
+                   type="primary" @click="onLoad">鍒� 鏂�
+        </el-button>
+      </template>
+    </avue-crud>
+  </basic-container>
 </template>
 
 <script>
-import {getList,add,editSave,deleteData} from "@/api/code/codeMatch";
+import {getList, add, editSave, deleteData} from "@/api/code/codeMatch";
+
 export default {
-name: "Match",
-  data(){
-    return{
+  name: "Match",
+  data() {
+    return {
       options: [
         {
-          fieid:'id',
-          title:'缂栧彿',
-          fieldType:'text',
-          queryField:'id'
+          fieid: 'id',
+          title: '缂栧彿',
+          fieldType: 'text',
+          queryField: 'id'
         },
         {
-          fieid:'name',
-          title:'鍚嶇О',
-          fieldType:'text',
-          queryField:'name'
+          fieid: 'name',
+          title: '鍚嶇О',
+          fieldType: 'text',
+          queryField: 'name'
         },
         {
-          fieid:'ignoreallspaceflag',
-          title:'蹇界暐鍏ㄩ儴绌烘牸',
-          fieldType:'truefalse',
-          queryField:'ignoreallspaceflag'
+          fieid: 'ignoreallspaceflag',
+          title: '蹇界暐鍏ㄩ儴绌烘牸',
+          fieldType: 'truefalse',
+          queryField: 'ignoreallspaceflag'
         },
         {
-          fieid:'ignorecaseflag',
-          title:'蹇界暐澶у皬鍐�',
-          fieldType:'truefalse',
-          queryField:'ignorecaseflag'
+          fieid: 'ignorecaseflag',
+          title: '蹇界暐澶у皬鍐�',
+          fieldType: 'truefalse',
+          queryField: 'ignorecaseflag'
         },
         {
-          fieid:'ignorespaceflag',
-          title:'蹇界暐绌烘牸',
-          fieldType:'truefalse',
-          queryField:'ignorespaceflag'
+          fieid: 'ignorespaceflag',
+          title: '蹇界暐绌烘牸',
+          fieldType: 'truefalse',
+          queryField: 'ignorespaceflag'
         },
         {
-          fieid:'ignorewidthflag',
-          title:'蹇界暐鍏ㄥ崐瑙�',
-          fieldType:'truefalse',
-          queryField:'ignorewidthflag'
+          fieid: 'ignorewidthflag',
+          title: '蹇界暐鍏ㄥ崐瑙�',
+          fieldType: 'truefalse',
+          queryField: 'ignorewidthflag'
         },
         {
-          fieid:'linkCharacter',
-          title:'蹇界暐杩炴帴瀛楃',
-          fieldType:'text',
-          queryField:'linkCharacter'
+          fieid: 'linkCharacter',
+          title: '蹇界暐杩炴帴瀛楃',
+          fieldType: 'text',
+          queryField: 'linkCharacter'
         },
       ],
-      findvisible:false,
-      selectRow:[],
-      option:{
-        height:700,
+      findvisible: false,
+      selectRow: [],
+      option: {
+        height: 700,
         calcHeight: 80,
         tip: false,
         searchShow: true,
         searchMenuSpan: 6,
-        columnBtn:false,
+        columnBtn: false,
         border: true,
         index: true,
         selection: true,
@@ -138,8 +139,8 @@
               label: '鏄�',
               value: 'true'
             }],
-            formatter:function(row){
-              return row.ignoreallspaceflag ==='true' ? '鏄�' : '鍚�'
+            formatter: function (row) {
+              return row.ignoreallspaceflag === 'true' ? '鏄�' : '鍚�'
             }
           },
           {
@@ -153,8 +154,8 @@
               label: '鏄�',
               value: 'true'
             }],
-            formatter:function(row){
-              return row.ignorecaseflag ==='true' ? '鏄�' : '鍚�'
+            formatter: function (row) {
+              return row.ignorecaseflag === 'true' ? '鏄�' : '鍚�'
             }
           },
           {
@@ -169,8 +170,8 @@
               label: '鏄�',
               value: 'true'
             }],
-            formatter:function(row){
-              return row.ignorespaceflag ==='true' ? '鏄�' : '鍚�'
+            formatter: function (row) {
+              return row.ignorespaceflag === 'true' ? '鏄�' : '鍚�'
             }
           },
           {
@@ -184,8 +185,8 @@
               label: '鏄�',
               value: 'true'
             }],
-            formatter:function(row){
-              return row.ignorewidthflag ==='true' ? '鏄�' : '鍚�'
+            formatter: function (row) {
+              return row.ignorewidthflag === 'true' ? '鏄�' : '鍚�'
             }
           },
           {
@@ -193,54 +194,79 @@
             prop: "linkCharacter",
             type: 'textarea',
             labelWidth: 100,
-            span:24
+            span: 24
 
           }
         ]
       },
-      loading:true,
-      data:[],
-      form:{},
+      loading: true,
+      data: [],
+      form: {},
       page: {
         pageSize: 10,
         currentPage: 1,
         total: 0
       },
-   }
+    }
   },
   created() {
     this.onLoad()
   },
-  methods:{
-    searchHandler(){
-      this.findvisible=true;
+  methods: {
+    searchHandler() {
+      this.findvisible = true;
     },
-    echoContion(row){
+    echoContion(val) {
+      console.log(...val)
+      // FindData({
+      //   templateOid: this.templateOid,
+      //   codeClassifyOid: this.codeClassifyOid,
+      //   ...val,
+      // }).then((res) => {
+      //   this.tableData = res.data.data;
+      //   this.page.total = res.data.total
+      // });
+    },
+    deleteHandler() {
+      const length = this.selectRow.length;
+      if (length > 1) {
+        this.$message.warning('鍙兘閫夋嫨涓�鏉℃暟鎹紒');
+        return;
+      }
+      if (length <= 0) {
+        this.$message.warning('璇烽�夋嫨涓�鏉℃暟鎹�! ');
+        return;
+      }
+      this.$confirm("纭畾灏嗛�夋嫨鏁版嵁鍒犻櫎?", {
+        confirmButtonText: "纭畾",
+        cancelButtonText: "鍙栨秷",
+        type: "warning"
+      })
+        .then(() => {
+          return deleteData(this.selectRow[0])
+        })
+        .then(() => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "鎿嶄綔鎴愬姛!"
+          });
+        });
 
     },
-    deleteHandler(){
-      if(this.selectRow.length <= 0){
-        this.$message.warning('璇烽�夋嫨涓�鏉℃暟鎹�')
-      }else {
-        this.$confirm("纭畾灏嗛�夋嫨鏁版嵁鍒犻櫎?", {
-          confirmButtonText: "纭畾",
-          cancelButtonText: "鍙栨秷",
-          type: "warning"
-        })
-          .then(() => {
-            const Obj = [...this.selectRow];
-            return deleteData(item);
-          })
-          .then(() => {
-            this.onLoad(this.page);
-            this.$message({
-              type: "success",
-              message: "鎿嶄綔鎴愬姛!"
-            });
-          });
+    editHandler() {
+      const length = this.selectRow.length;
+      if (length > 1) {
+        this.$message.warning('鍙兘閫夋嫨涓�鏉℃暟鎹紒');
+        return;
       }
+      if (length <= 0) {
+        this.$message.warning('璇烽�夋嫨涓�鏉℃暟鎹�! ');
+        return;
+      }
+      this.$refs.crud.rowEdit(this.selectRow[0]);
     },
-    rowDel(row){
+    rowDel(row) {
       this.$confirm("纭畾灏嗛�夋嫨鏁版嵁鍒犻櫎?", {
         confirmButtonText: "纭畾",
         cancelButtonText: "鍙栨秷",
@@ -257,7 +283,7 @@
           });
         });
     },
-    rowUpdate(row, index, done, loading){
+    rowUpdate(row, index, done, loading) {
       console.log(row)
       editSave(row).then(() => {
         this.onLoad(this.page);
@@ -284,9 +310,9 @@
         loading();
       });
     },
-    selectionChange(row){
-      console.log(row)
-      this.selectRow=row;
+    selectionChange(row) {
+      // console.log(row)
+      this.selectRow = row;
     },
     currentChange(currentPage) {
       this.page.currentPage = currentPage;
@@ -295,15 +321,18 @@
       this.page.pageSize = pageSize;
     },
     refreshChange() {
-      this.onLoad( this.page.currentPage,this.page.pageSize);
+      this.onLoad(this.page.currentPage, this.page.pageSize);
     },
-    onLoad(page){
-      getList( this.page.currentPage,this.page.pageSize).then(res=>{
-        this.page.total = res.data.total;
-        this.data = res.data.data;
+    onLoad(page) {
+      this.loading = true;
+      getList(this.page.currentPage, this.page.pageSize).then(res => {
+        if (res.data && res.data.data.length > 0) {
+          this.page.total = res.data.total;
+          this.data = res.data.data;
+        }
         this.loading = false;
-      })
-    },
+      });
+    }
   }
 }
 </script>
diff --git a/Source/UBCS-WEB/src/views/code/codeApply.vue b/Source/UBCS-WEB/src/views/code/codeApply.vue
index 0475372..c9df49d 100644
--- a/Source/UBCS-WEB/src/views/code/codeApply.vue
+++ b/Source/UBCS-WEB/src/views/code/codeApply.vue
@@ -18,6 +18,7 @@
               key="masterForm" data-key="masterForm"
               v-bind="$attrs"
               :type="type"
+              :LoadingStatus="status"
               :TreeValue="TreeValue"
               :eventList="eventList"
               ref="FormTemplate"
@@ -35,8 +36,15 @@
                   @getFormData="getCodeApplyFormData"
                   @referConfigDataUpdate="referConfigDataUpdate"
                 ></FormTemplate>
+                <el-button
+                  @click="submit()"
+                  type="primary"
+                  size="small"
+                  style="float: right"
+                >淇濆瓨</el-button>
               </el-tab-pane>
             </el-tabs>
+
           </div>
         </basic-container>
       </el-col>
@@ -44,15 +52,48 @@
 </template>
 
 <script>
-import {getAuthTree,getUsedTemplateByClassifyOid,getCodeRule} from '@/api/code/codeApply.js'
+import {getAuthTree,getUsedTemplateByClassifyOid,getCodeRule,addSaveCode} from '@/api/code/codeApply.js'
 
 export default {
   name: "codeApply",
   components: { FormTemplate: () => import('@/components/FormTemplate/FormTemplate') },
   data() {
     return {
+      defaultKeys: [
+        "oid",
+        "id",
+        "name",
+        "description",
+        "revisionoid",
+        "nameoid",
+        "btmname",
+        "lastr",
+        "firstr",
+        "lastv",
+        "firstv",
+        "creator",
+        "createtime",
+        "lastModifier",
+        "lastmodifytime",
+        "revisionrule",
+        "revisionseq",
+        "revisionvalue",
+        "versionrule",
+        "versionseq",
+        "versionvalue",
+        "lcstatus",
+        "ts",
+        "owner",
+        "checkinby",
+        "checkintime",
+        "checkoutby",
+        "checkouttime",
+        "copyfromversion",
+        "secretgrade",
+      ],
       codeClassifyOid:'',
       type:'add',
+      status:'code',
       TreeValue:'',
       dialogVisible:true,
       setForm:{},
@@ -61,6 +102,8 @@
       activeName: "codeApply",
       showCodeApply: false,
       eventList:[],
+      showResembleQuery:false,
+      hasResemble:false,
       form: {},
       TreeData:[],
       TreeOption: {
@@ -110,6 +153,106 @@
     this.getTreeData()
   },
   methods:{
+    async submit() {
+      // 杩涜琛ㄥ崟鏍¢獙
+      const formValidate = await this.$refs.FormTemplate.validate();
+      if (!formValidate) return;
+      let codeValidate = true;
+      // 杩涜鐮佸�肩敵璇锋牎楠�
+      // if (this.showCodeApply) {
+      //   codeValidate = await this.$refs.CodeApply.validate();
+      //   if (!codeValidate) {
+      //     this.activeName = "codeApply";
+      //     return false;
+      //   }
+      // }
+      let resembleQueryList = [];
+      if (this.showResembleQuery && this.$refs.resembleQueryRef) {
+        // 杩涜鐩镐技椤规煡璇�
+        resembleQueryList = await this.$refs.resembleQueryRef.resembleQuery(
+          this.form
+        );
+      }
+      if (resembleQueryList.length > 0) {
+        await this.$confirm(
+          `璇ョ墿鏂欏凡鏈�${resembleQueryList.length}鏉$浉浼兼暟鎹紝鏄惁缁х画淇濆瓨锛焋,
+          "闇�瑕佹偍纭",
+          {
+            confirmButtonText: "纭畾",
+            cancelButtonText: "鍙栨秷",
+            type: "warning",
+          }
+        );
+      }
+      // 鎺掗櫎涓�浜涘瓧娈�
+      const noData = [
+        "jiliangdwname",
+        "materialtypeText",
+        "morengongysname",
+        "$caigouwl",
+        "$xiaoshouwl",
+        "$shifoupihaoguanli",
+        "lcstatus_text",
+        "hesuanfenleiname",
+        "$kucunwl",
+        "oldcode",
+        "lastmodifier"
+      ];
+      let resForm = {};
+      const { defaultValue, formValue } = this.getDefaultValueAndFormValues(
+        this.form
+      );
+      noData.forEach((item) => {
+        this.$delete(formValue, item);
+      });
+      const keys = Object.keys(formValue);
+      keys.forEach((item, index) => {
+        keys.forEach((itm, idx) => {
+          if ((item === ('$' + itm)) && idx !== index) {
+            this.$delete(formValue, keys[index]);
+          }
+        })
+      });
+
+      resForm.data = formValue;
+      resForm = Object.assign({}, resForm, defaultValue);
+      resForm.secDTOList = this.secVOList.map((item) => {
+        return {
+          secOid: item.oid,
+          secValue: this.codeApplyForm[item.oid],
+        };
+      });
+      resForm.codeClassifyOid = this.codeClassifyOid;
+      resForm.codeRuleOid = this.codeRuleOid;
+      resForm.templateOid = this.templateOid;
+      // this.$emit("submit", resForm);
+      addSaveCode(resForm).then(res => {
+        this.$nextTick(() => {
+          this.addvisible = false;
+          this.$message.success("淇濆瓨鎴愬姛");
+          this.onLoad()
+        })
+      })
+      console.log(resForm)
+    },
+    getDefaultValueAndFormValues(form) {
+      let defaultValue = {};
+      let formValue = {};
+      for (const key in form) {
+        if (Object.hasOwnProperty.call(form, key)) {
+          const element = form[key];
+          if (this.defaultKeys.includes(key)) {
+            defaultValue[key] = element;
+          } else {
+            formValue[key] = element;
+          }
+        }
+      }
+      return {
+        defaultValue,
+        formValue,
+      };
+    },
     getFormData(form) {
       this.form = form;
     },
@@ -139,14 +282,28 @@
       });
     },
     nodeClick(row){
-      // console.log(row)
+      console.log(row)
       this.TreeValue=row.text.split(" ")[0].trim();
       this.codeClassifyOid = row.oid;
       getUsedTemplateByClassifyOid({ 'codeClassifyOid': this.codeClassifyOid,templateOid:' 97e979919a1f1dca67290e85fee22688' }).then((res) => {
         console.log('===res',res)
-        if (res.data.code === 200) {
+        if (res.status === 200) {
+          this.hasResemble =
+            res.data.resembleTableVO &&
+            res.data.resembleTableVO.cols &&
+            res.data.resembleTableVO.cols.length > 0;
+          this.resembleTableColumn = res.data.resembleTableVO.cols || [];
+          if (this.hasResemble) {
+            this.activeName = "resembleQuery";
+            this.showResembleQuery = true;
+          } else {
+            this.showResembleQuery = false;
+          }
           this.$nextTick(() => {
-            this.eventList=res.data.data.attributes
+            this.$refs.FormTemplate.templateRender(
+              res.data.formDefineVO.items
+            );
+            this.eventList=res.data.templateVO.attributes
             // this.$refs.FormTemplate.$emit('eventList',  res.data.templateVO.attributes);
             if (Object.keys(this.setForm).length > 0) {
               this.$refs.FormTemplate.form = this.setForm;
diff --git a/Source/UBCS/ubcs-service-api/ubcs-dict-api/src/main/java/com/vci/ubcs/system/enums/DictEnum.java b/Source/UBCS/ubcs-service-api/ubcs-dict-api/src/main/java/com/vci/ubcs/system/enums/DictEnum.java
index 194c333..69ccee6 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-dict-api/src/main/java/com/vci/ubcs/system/enums/DictEnum.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-dict-api/src/main/java/com/vci/ubcs/system/enums/DictEnum.java
@@ -88,6 +88,10 @@
 	 * 鐢ㄦ埛骞冲彴
 	 */
 	USER_TYPE("user_type"),
+	/***
+	 * 鐢ㄦ埛鐘舵��
+	 */
+	USER_STATUS("user_status"),
 	;
 
 	final String name;
diff --git a/Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/entity/User.java b/Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/entity/User.java
index 8321e6c..7a1e4e8 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/entity/User.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/entity/User.java
@@ -115,4 +115,8 @@
 	 */
 	private Long strategyUpdateStatus;
 
+	/***
+	 * 璐﹀彿鏄惁鍋滅敤 0涓哄惎鐢紝1涓哄仠鐢�
+	 */
+	private Integer userStatus;
 }
diff --git a/Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/vo/UserVO.java b/Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/vo/UserVO.java
index fe96185..6eb8f0d 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/vo/UserVO.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-user-api/src/main/java/com/vci/ubcs/system/user/vo/UserVO.java
@@ -86,5 +86,12 @@
 	 * 鎷撳睍淇℃伅
 	 */
 	private String userExt;
-
+	/***
+	 * 璐﹀彿鏄惁鍋滅敤 0涓哄惎鐢紝1涓哄惎鐢�
+	 */
+	private Integer userStatus;
+	/***
+	 * 璐﹀彿鏄惁鍋滅敤 0涓哄惎鐢紝1涓哄惎鐢�
+	 */
+	private String userStatus_text;
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeBasicSecController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeBasicSecController.java
index 5f81558..b43726f 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeBasicSecController.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeBasicSecController.java
@@ -222,6 +222,7 @@
 	}
 
 
+
 	/**
 	 * 璁剧疆鏈�澶ф祦姘村彿
 	 * @param codeOrderDTO 缂栫爜鐢宠浼犺緭瀵硅薄
@@ -233,4 +234,16 @@
 	public R setMaxSerialNumberForCodeRule(@RequestBody CodeOrderDTO codeOrderDTO){
 		return R.success(codeBasicSecService.setMaxSerialNumberForCodeRule(codeOrderDTO));
 	}
+
+	/***
+	 *  鏍规嵁娴佹按渚濊禆鑾峰彇鏈�澶ф祦姘村彿
+	 * @param codeOrderDTO
+	 * @return
+	 */
+	@GetMapping("/getMaxSerialNumberForCodeRule")
+	@ApiOperationSupport(order = 15)
+	@ApiOperation(value = "鏌ヨ缂栫爜瑙勫垯鐨勬墍鏈夋祦姘翠緷璧栫殑鏈�澶ф祦姘�", notes = "浼犲叆oid")
+	public R getMaxSerialNumberForCodeRule(@RequestBody CodeOrderDTO codeOrderDTO){
+		return R.data(codeBasicSecService.getMaxSerialNumberForCodeRule(codeOrderDTO));
+	}
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeBasicSecService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeBasicSecService.java
index c985b94..c808bc4 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeBasicSecService.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeBasicSecService.java
@@ -16,6 +16,7 @@
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.RequestBody;
 
 import java.rmi.ServerException;
 import java.util.*;
@@ -207,4 +208,11 @@
 	 * @throws VciBaseException
 	 */
 	String setMaxSerialNumberForCodeRule(CodeOrderDTO codeOrderDTO) throws VciBaseException;
+	/**
+	 * 鏍规嵁娴佹按渚濊禆鑾峰彇鏈�澶ф祦姘村��
+	 * @param codeOrderDTO 缂栫爜鐢宠浼犺緭瀵硅薄
+	 * @return
+	 * @throws VciBaseException
+	 */
+	Double getMaxSerialNumberForCodeRule(CodeOrderDTO codeOrderDTO);
 }
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 a415202..975cd6a 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
@@ -1106,4 +1106,63 @@
 		}
 		return String.valueOf(maxSecNum);
 	}
+
+	/***
+	 * 鏍规嵁娴佹按渚濊禆鑾峰彇鏈�澶ф祦姘村彿
+	 * @param codeOrderDTO 缂栫爜鐢宠浼犺緭瀵硅薄
+	 * @return
+	 */
+	@Override
+	public Double getMaxSerialNumberForCodeRule(CodeOrderDTO codeOrderDTO) {
+		Double maxSerialNumber=0.0;
+		VciBaseUtil.alertNotNull(codeOrderDTO.getCodeRuleOid(),"缂栫爜瑙勫垯涓婚敭");
+		List<CodeOrderSecDTO>  codeOrderSecDTOList=codeOrderDTO.getSecDTOList();
+		if(CollectionUtils.isEmpty(codeOrderSecDTOList)){
+			throw new VciBaseException("鏈�澶ф祦姘村彿鐨勬祦姘翠緷璧栦笉鑳戒负绌猴紒");
+		}
+		String codeRuleOid = codeOrderDTO.getCodeRuleOid();
+		Map<String/**鐮佹涓婚敭*/,CodeOrderSecDTO/**鐮佹鐩稿叧淇℃伅*/> codeOrderSecDTOMap = codeOrderSecDTOList.stream().collect(Collectors.toMap(s -> s.getSecOid(), t -> t));
+		List<String> codeBasicSecOidList = codeOrderSecDTOList.stream().map(s->s.getSecOid()).collect(Collectors.toList());//娴佹按渚濊禆鐮佹鐨勪富閿泦鍚�
+		//鑾峰彇娴佹按渚濊禆鐮佹
+		LambdaQueryWrapper<CodeBasicSec> wrapper = Wrappers.<CodeBasicSec>query().lambda()
+			.eq(CodeBasicSec::getPkCodeRule,codeRuleOid)
+			.in(CodeBasicSec::getOid,codeBasicSecOidList)
+			.eq(CodeBasicSec::getSerialDependFlag,"true")
+			.orderByAsc(CodeBasicSec::getSerialDependOrder);
+		List<CodeBasicSec> codeBasicSecList = this.list(wrapper);
+		//鎸夋祦姘翠緷璧栭『搴忥紝澶勭悊娴佹按渚濊禆鐮佹鐨勫��
+		List<String> serialDependValueList = new ArrayList<>();
+		codeBasicSecList.stream().forEach(s->{
+			CodeOrderSecDTO codeOrderSecDTO = codeOrderSecDTOMap.get(s.getOid());
+			String serialDependValue = codeOrderSecDTO.getSecValue();
+			if(s.getSecType().equals(CodeSecTypeEnum.CODE_DATE_SEC.getValue())){
+				try {
+					Date date = VciDateUtil.str2Date(codeOrderSecDTO.getSecValue(),s.getCodeDateFormatStr());
+					serialDependValue = VciDateUtil.date2Str(date,s.getCodeDateFormatStr());
+				} catch (Exception e) {
+					throw new RuntimeException(e);
+				}
+			}
+			serialDependValueList.add(serialDependValue);
+		});
+
+		//鑾峰彇娴佹按鐮佹
+		wrapper = Wrappers.<CodeBasicSec>query().lambda()
+			.eq(CodeBasicSec::getPkCodeRule,codeRuleOid)
+			.eq(CodeBasicSec::getSecType,CodeSecTypeEnum.CODE_SERIAL_SEC.getValue())
+			.orderByAsc(CodeBasicSec::getSerialDependOrder);
+		CodeBasicSec codeBasicSec = this.getOne(wrapper);
+		//鏍规嵁缂栫爜瑙勫垯鍜屾祦姘翠緷璧栵紝鑾峰彇鏈�澶ф祦姘村彿
+		String serialUnitString = serialDependValueList.size() == 0 ? EMPTY_SERIAL_UNIT : serialDependValueList.stream().collect(Collectors.joining(SERIAL_UNIT_SPACE));
+		LambdaQueryWrapper<CodeSerialValue> codeSerialWrapper = new LambdaQueryWrapper<>();
+		codeSerialWrapper.eq(CodeSerialValue::getCodeRuleOid, codeRuleOid);
+		codeSerialWrapper.eq(CodeSerialValue::getSerialUnit, serialUnitString);
+		codeSerialWrapper.eq(CodeSerialValue::getCodeSecOid,codeBasicSec.getOid());
+		codeSerialWrapper.orderByDesc(CodeSerialValue::getCreateTime);
+		List<CodeSerialValue> codeSerialValueList = serialValueMapper.selectList(codeSerialWrapper);
+		if(!CollectionUtils.isEmpty(codeSerialValueList)){
+			maxSerialNumber=StringUtils.isBlank(codeSerialValueList.get(0).getMaxSerial())?0:Double.parseDouble(codeSerialValueList.get(0).getMaxSerial());
+		}
+		return maxSerialNumber;
+	}
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeResembleRuleServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeResembleRuleServiceImpl.java
index a8f6fc0..034a62b 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeResembleRuleServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeResembleRuleServiceImpl.java
@@ -4,7 +4,9 @@
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.vci.ubcs.code.dto.CodeResembleRuleDTO;
+import com.vci.ubcs.code.entity.CodeBasicSec;
 import com.vci.ubcs.code.entity.CodeReferConfig;
 import com.vci.ubcs.code.entity.CodeResembleRule;
 import com.vci.ubcs.code.enumpack.FrameworkDataLCStatus;
@@ -13,10 +15,13 @@
 import com.vci.ubcs.code.service.ICodeResembleRuleService;
 import com.vci.ubcs.code.vo.pagemodel.CodeResembleRuleVO;
 import com.vci.ubcs.omd.entity.BtmType;
+import com.vci.ubcs.starter.enumpack.CodeTableNameEnum;
 import com.vci.ubcs.starter.exception.VciBaseException;
 import com.vci.ubcs.starter.revision.service.RevisionModelUtil;
 import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil;
 import com.vci.ubcs.starter.util.MdmBtmTypeConstant;
+import com.vci.ubcs.starter.util.UBCSCondition;
+import com.vci.ubcs.starter.util.UBCSSqlKeyword;
 import com.vci.ubcs.starter.web.pagemodel.DataGrid;
 import com.vci.ubcs.starter.web.pagemodel.PageHelper;
 import com.vci.ubcs.starter.web.util.BeanUtilForVCI;
@@ -105,13 +110,15 @@
 		query.setSize(pageHelper.getLimit());
 		query.setCurrent(pageHelper.getPage());
 		query.setDescs("createTime");
-
+		MPJLambdaWrapper<CodeResembleRule> mpjLambdaWrapper = new MPJLambdaWrapper<>(CodeResembleRule.class,CodeTableNameEnum.PL_CODE_RULE.getText());
 		Map<String, Object> condition = new HashMap<>(conditionMap);
-		List<CodeResembleRule> doList = baseMapper.selectPage(Condition.getPage(query),Condition.getQueryWrapper(condition, CodeResembleRule.class)).getRecords();
+		// 娣诲姞where鏉′欢
+		UBCSSqlKeyword.buildConditionByAs(condition,mpjLambdaWrapper,CodeTableNameEnum.PL_CODE_RULE.getText());
+		IPage<CodeResembleRule> codeResembleRuleIPage = baseMapper.selectPage(UBCSCondition.getPage(query), mpjLambdaWrapper);
 		DataGrid<CodeResembleRuleVO> dataGrid=new DataGrid<CodeResembleRuleVO>();
-		if (!CollectionUtils.isEmpty(doList)) {
-			dataGrid.setData(codeResembleRuleDO2VOs(doList));
-			dataGrid.setTotal(VciBaseUtil.getInt(String.valueOf(baseMapper.selectCount(Condition.getQueryWrapper(condition, CodeResembleRule.class)))));
+		if (!CollectionUtils.isEmpty(codeResembleRuleIPage.getRecords())) {
+			dataGrid.setData(codeResembleRuleDO2VOs(codeResembleRuleIPage.getRecords()));
+			dataGrid.setTotal(codeResembleRuleIPage.getTotal());
 		}
 		return dataGrid;
 	}
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 ebb68f5..3614e40 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
@@ -1946,7 +1946,7 @@
                     //璇存槑杩樻槸鍙傜収閲岄潰鐨勶紝鎴戜滑榛樿杩欑鎯呭喌涓嬮兘鏄瓧绗︿覆鍚э紝鍥犱负鍙傜収鐨勫睘鎬т笉涓�瀹氱敤鐨勫钩鍙扮殑灞炴�ф睜閲岀殑锛屾墍浠ュぇ閮ㄥ垎鎯呭喌涓嬶紝鏄剧ず鐨勫睘鎬ч兘鏄瓧绗︿覆鍚�
                     return referFieldMap.get(field) + SPACE + "LIKE" + SPACE + "'%" + value + "%'" + SPACE;
                 } else {
-                    return (field.contains(".") ? "" : "t.") + field + SPACE + "LIKE " + "'%" + getStringValueInWhere(field, value, attrVOMap) + "%'" + SPACE;
+                    return (field.contains(".") ? "" : "t.") + field + SPACE + "LIKE " + "'%" + value + "%'" + SPACE;
                 }
             } else if (key.endsWith("_notequal")) {
                 String field = UBCSSqlKeyword.getColumn(key, "_notequal");
@@ -1981,7 +1981,7 @@
                 if (referFieldMap.containsKey(field)) {
                     return referFieldMap.get(field) + SPACE + " >= " + value + SPACE;
                 } else {
-                    return (field.contains(".") ? "" : "t.") + field + SPACE + " >= " + getStringValueInWhere(value, field, attrVOMap) + SPACE;
+                    return (field.contains(".") ? "" : "t.") + field + SPACE + " >= " + getStringValueInWhere(field, value, attrVOMap) + SPACE;
                 }
             } else if (key.endsWith("_le")) {
                 //璇存槑鏄�<=鐨勩�傛垜浠渶瑕佸厛鑾峰彇涓�涓�
@@ -2066,7 +2066,7 @@
                 if (referFieldMap.containsKey(field)) {
                     return referFieldMap.get(field) + SPACE + "= '" + value + "'" + SPACE;
                 } else {
-                    return (field.contains(".") ? "" : "t.") + field + SPACE + "= '" + getStringValueInWhere(field, value, attrVOMap) + "'" + SPACE;
+                    return (field.contains(".") ? "" : "t.") + field + SPACE + "= " + getStringValueInWhere(field, value, attrVOMap) + "" + SPACE;
                 }
             } else {
 //                if (referFieldMap.containsKey(key)) {
@@ -2417,10 +2417,10 @@
 //		batchCBO.getDeleteCbos().addAll(cboList);
 //		WebUtil.setPersistence(false);
 //		batchCBO.copyFromOther(
-        productCodeService.recycleCode(classifyFullInfo.getCurrentClassifyVO().getBtmTypeId(), deleteBatchDTO.getOidList());
+        productCodeService.recycleCode(classifyFullInfo.getTopClassifyVO().getBtmTypeId(), deleteBatchDTO.getOidList());
 //		baseMapper.deleteBatchIds(cboList);
         //浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃
-        R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(classifyFullInfo.getCurrentClassifyVO().getBtmTypeId()));
+        R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(classifyFullInfo.getTopClassifyVO().getBtmTypeId()));
         if (!listR.isSuccess() || listR.getData().size() == 0) {
             throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
         }
diff --git a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/StatusServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/StatusServiceImpl.java
index 8fd3b20..44f6615 100644
--- a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/StatusServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/StatusServiceImpl.java
@@ -416,9 +416,10 @@
 			throw new VciBaseException("瑕佸垹闄ょ殑鐘舵�佸璞′笉鑳戒负绌�");
 		}
 		Set<String> oidSet= new HashSet<>();
+		Set<String> idSet= new HashSet<>();
 		statusVOList.stream().forEach( s -> {
 			VciBaseUtil.alertNotNull(s.getOid(),"瑕佸垹闄ょ殑鐘舵�佸璞$殑涓婚敭");
-			oidSet.add(s.getOid());
+			idSet.add(s.getId());
 		});
 		//鏌ヨ
 		List<Status> statusDOList = listStatusByOidCollectionDO(oidSet);
@@ -432,7 +433,7 @@
 			}
 		});
 		//妫�鏌ュ睘鎬ф槸鍚﹁寮曠敤
-		if(checkStatusUseds(oidSet)){
+		if(checkStatusUseds(idSet)){
 			throw new VciBaseException("瑕佸垹闄ょ殑鐘舵�佸湪鐢熷懡鍛ㄦ湡瀵硅薄涓浣跨敤锛屾棤娉曞垹闄�");
 		}
 		Collection<Collection<String>> oidCollections = VciBaseUtil.switchCollectionForOracleIn(oidInDbSet);
@@ -449,6 +450,10 @@
 	 */
 	@Override
 	public boolean checkStatusUseds(Collection<String> oidCollection) {
+		Long count = lifeCycleNodeMapper.selectCount(Wrappers.<LifeCycleNode>query().lambda().in(LifeCycleNode::getId,oidCollection));
+		if(count>0){
+			return true;
+		}
 		return false;
 	}
 
@@ -461,6 +466,7 @@
 	 */
 	@Override
 	public boolean checkStatusUsed(String pkStatus) throws VciBaseException {
+
 		return false;
 	}
 
diff --git a/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/wrapper/UserWrapper.java b/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/wrapper/UserWrapper.java
index 245038e..20eaee3 100644
--- a/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/wrapper/UserWrapper.java
+++ b/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/wrapper/UserWrapper.java
@@ -53,7 +53,8 @@
 		userVO.setPostName(Func.join(postName));
 		userVO.setSexName(DictCache.getValue(DictEnum.SEX, user.getSex()));
 		userVO.setUserTypeName(DictCache.getValue(DictEnum.USER_TYPE, user.getUserType()));
+		userVO.setUserStatus(user.getUserStatus());
+		userVO.setUserStatus_text(DictCache.getValue(DictEnum.USER_STATUS,user.getUserStatus()));//鐢ㄦ埛鐘舵��
 		return userVO;
 	}
-
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-user/src/main/resources/mapper/UserMapper.xml b/Source/UBCS/ubcs-service/ubcs-user/src/main/resources/mapper/UserMapper.xml
index bd0e411..cd4c625 100644
--- a/Source/UBCS/ubcs-service/ubcs-user/src/main/resources/mapper/UserMapper.xml
+++ b/Source/UBCS/ubcs-service/ubcs-user/src/main/resources/mapper/UserMapper.xml
@@ -29,6 +29,7 @@
         <result column="pwd_update_time" property="pwdUpdateTime"/>
         <result column="secretgrade" property="secretGrade"/>
         <result column="strategy_update_status" property="strategyUpdateStatus"/>
+        <result column="user_status" property="userStatus"/>
     </resultMap>
 
 
@@ -91,7 +92,7 @@
     </select>
 
     <select id="selectByIdUser" resultType="com.vci.ubcs.system.user.entity.User">
-        select id, code, user_type, account, password , name, real_name, avatar, email, phone , birthday, sex, role_id, dept_id, post_id , pwd_update_time, secretgrade, strategy_update_status, tenant_id, create_user , create_dept, create_time, update_user, update_time, status , is_deleted
+        select id, code, user_type, account, password , name, real_name, avatar, email, phone , birthday, sex, role_id, dept_id, post_id , pwd_update_time, secretgrade, strategy_update_status, tenant_id, create_user , create_dept, create_time, update_user, update_time, status , is_deleted,user_status,
         from pl_org_user
             where id = #{userId} and is_deleted = 0
     </select>

--
Gitblit v1.9.3