From 0e5ba7238d31dc8fb5015001661811dceab55c42 Mon Sep 17 00:00:00 2001
From: xiejun <xj@2023>
Date: 星期三, 13 九月 2023 09:02:33 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyValueServiceImpl.java             |   26 
 Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue                                                                   |    6 
 Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/endpoint/BladeTokenEndPoint.java                                        |   22 +
 Source/UBCS-WEB/src/components/code-dialog-page/cloneRuleDialog.vue                                                           |    1 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyValueMapper.java                        |    2 
 Source/UBCS-WEB/src/views/docking/loge.vue                                                                                    |    3 
 Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyPanelFor410.java                |   15 
 Source/UBCS-WEB/src/page/index/logo.vue                                                                                       |    4 
 Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyFor410MainPanel.java            |  106 ++++-
 Source/UBCS-WEB/src/components/code-dialog-page/referConfigCrudDialog.vue                                                     |    1 
 Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/endpoint/PwdFreeLoginEndpoint.java                                      |   95 +++++
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/config/WebConfig.java                                      |   21 +
 Source/UBCS-WEB/src/components/code-dialog-page/cloneOtherBasicSecDialog.vue                                                  |    1 
 Source/UBCS-WEB/src/components/code-dialog-page/referBtmTypeCrudDialog.vue                                                    |    1 
 Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyPanelFor410ActionListener.java  |   36 +
 Source/UBCS-WEB/src/components/code-dialog-page/referConfigFormDialog.vue                                                     |    1 
 Source/UBCS-WEB/src/views/MasterData/items.vue                                                                                |   10 
 Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyFor410SearchProvider.java       |   15 
 Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/Page.java                         |   37 +-
 Source/UBCS-WEB/src/components/code-dialog-page/referSelectBtmAttrDialog.vue                                                  |    1 
 Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/OrderItem.java                    |   16 
 Source/UBCS-WEB/src/components/code-dialog-page/formulaEditor.vue                                                             |    1 
 Source/UBCS-WEB/src/main.js                                                                                                   |    3 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeRuleServiceImpl.java                      |   17 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyMapper.java                             |    8 
 Source/UBCS-WEB/src/views/docking/data.vue                                                                                    |   46 ++
 Source/UBCS-WEB/src/page/login/index.vue                                                                                      |    2 
 Source/UBCS-WEB/src/views/docking/task.vue                                                                                    |    5 
 Source/UBCS/ubcs-codeApply/src/main/resources/properties/conf.properties                                                      |    3 
 Source/UBCS-WEB/package.json                                                                                                  |    1 
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeClassifyValueVO.java              |   14 
 Source/UBCS-WEB/src/components/Master/MasterTree.vue                                                                          |    4 
 Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/RMDataReferTempDialogActionListener.java |    8 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/PasswordFreeLoginServiceImpl.java             |   33 +
 Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/pagemodel/Tree.java                         |    1 
 Source/UBCS/ubcs-codeApply/pom.xml                                                                                            |   18 +
 Source/UBCS-WEB/src/views/code/code.vue                                                                                       |    2 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/config/AuthenticationInterceptor.java                      |   28 +
 Source/UBCS-WEB/src/components/dockingSearch/VciDockingSearch.vue                                                             |   49 +-
 Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/IPage.java                        |   85 ++--
 Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue                                                                  |   45 +
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeApplySwingController.java                   |   11 
 Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml                                           |    7 
 Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/config/BladeResourceServerConfiguration.java                            |    1 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java                              |    8 
 Source/UBCS-WEB/src/components/FormTemplate/index.vue                                                                         |    9 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java                     |   31 +
 Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClassifyValueMapper.xml                                      |    3 
 Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyFor410Dialog.java               |   33 +
 Source/UBCS-WEB/src/views/modeling/originalAdd.vue                                                                            |   38 ++
 Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeDataMainPanelDataProvider.java       |   23 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/PasswordFreeLoginController.java                |   33 +
 52 files changed, 772 insertions(+), 218 deletions(-)

diff --git a/Source/UBCS-WEB/package.json b/Source/UBCS-WEB/package.json
index 7a6cde9..9c10428 100644
--- a/Source/UBCS-WEB/package.json
+++ b/Source/UBCS-WEB/package.json
@@ -23,6 +23,7 @@
     "js-md5": "^0.7.3",
     "js-pinyin": "^0.2.4",
     "mockjs": "^1.0.1-beta3",
+    "moment": "^2.29.4",
     "node-gyp": "^5.0.6",
     "nprogress": "^0.2.0",
     "portfinder": "^1.0.23",
diff --git a/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue b/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue
index 610ff04..3ba7da9 100644
--- a/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue
+++ b/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue
@@ -84,10 +84,15 @@
     trendsSpan: {
       type: Number,
       default: 8,
-    }
+    },
+    TreeValue:{
+      type: String,
+      default: "",
+    },
   },
   data() {
     return {
+      TreeValueForm:'',
       updateIndex: 0,
       form: {},
       option: {
@@ -114,7 +119,7 @@
       slotColumnList: [],
     };
   },
-  mounted() {
+    mounted() {
     this.handleResize();
   },
   computed: {
@@ -126,10 +131,31 @@
         return 24 / Math.floor(windowWidth / 500);
       }
     },
+
+  },
+  watch: {
+    // 琛ㄥ崟鏁版嵁淇敼鍙嶉鍒扮埗缁勪欢
+    form: {
+      deep: true,
+      immediate: true,
+      handler(newV) {
+        this.$emit("getFormData", newV);
+      },
+    },
+    TreeValue:{
+      handler(newval,oldval){
+        if(newval){
+          this.TreeValueForm=newval;
+          // console.log(this.TreeValueForm)
+        }
+      },
+      deep:true,
+      immediate:true
+    }
   },
   methods: {
     // 娓叉煋琛ㄥ崟妯℃澘
-    templateRender(formItemList) {
+    templateRender(formItemList,TreeValue) {
       // 鏃犻渶鍒嗙粍鏁版嵁
       let column = [];
       let group = [];
@@ -138,7 +164,6 @@
       let value=''
       formItemList.forEach((formItem) => {
         formItem = this.resetFormConfig(formItem);
-        // console.log('formItem',formItem)
         // console.log('formItem.dicData.value',formItem.dicData)
         if (formItem.type === "line") {
           group.push({
@@ -196,7 +221,7 @@
           format: formItem.dateFormate,
           keyAttr: formItem.keyAttr,
           value: (formItem.dicData && formItem.dicData.length > 0 && formItem.secType == "codefixedsec" ? formItem.dicData[0].id : null) ||
-            (formItem.secType == "codedatesec"?formItem.codeDateFormatStr: null),
+            (formItem.secType == "codedatesec"?formItem.codeDateFormatStr: null) || ( TreeValue&& formItem.secType == "codelevelsec" ? TreeValue : null),
           placeholder: formItem.inputTip,
           comboxKey: formItem.comboxKey,
           tip: formItem.tooltips,
@@ -415,16 +440,6 @@
         this.$emit("getFormData", this.form);
         this.$emit("referConfigDataUpdate", data);
       }
-    },
-  },
-  watch: {
-    // 琛ㄥ崟鏁版嵁淇敼鍙嶉鍒扮埗缁勪欢
-    form: {
-      deep: true,
-      immediate: true,
-      handler(newV) {
-        this.$emit("getFormData", newV);
-      },
     },
   },
 };
diff --git a/Source/UBCS-WEB/src/components/FormTemplate/index.vue b/Source/UBCS-WEB/src/components/FormTemplate/index.vue
index 2f714ce..0f09a76 100644
--- a/Source/UBCS-WEB/src/components/FormTemplate/index.vue
+++ b/Source/UBCS-WEB/src/components/FormTemplate/index.vue
@@ -13,6 +13,7 @@
     <FormTemplate
       v-bind="$attrs"
       :type="type"
+      :TreeValue="TreeValue"
       :rowOid="rowOid"
       :templateOid="templateOid"
       v-if="dialogVisible"
@@ -90,6 +91,10 @@
     visible: {
       type: Boolean,
       default: false,
+    },
+    TreeValue:{
+      type: String,
+      default: "",
     },
     type: {
       type: String,
@@ -291,7 +296,7 @@
             that.showCodeApply = true;
             that.activeName = "codeApply";
             that.$nextTick(() => {
-              that.$refs.CodeApply.templateRender(that.secVOList);
+              that.$refs.CodeApply.templateRender(that.secVOList,this.TreeValue);
             });
           } else {
             that.showCodeApply = false;
@@ -319,7 +324,7 @@
         }
         return item;
       });
-      this.$refs.CodeApply.templateRender(this.secVOList);
+      this.$refs.CodeApply.templateRender(this.secVOList,this.TreeValue);
     },
     resembleQuerySubmit() {
       this.activeName = "resembleQuery";
diff --git a/Source/UBCS-WEB/src/components/Master/MasterTree.vue b/Source/UBCS-WEB/src/components/Master/MasterTree.vue
index 7e248d2..e923ebc 100644
--- a/Source/UBCS-WEB/src/components/Master/MasterTree.vue
+++ b/Source/UBCS-WEB/src/components/Master/MasterTree.vue
@@ -28,6 +28,7 @@
   },
   data() {
     return {
+      TreeValue:'',
       idData: '',
       masterVrBtnList: [],
       tableHeadFindData: [],
@@ -165,6 +166,9 @@
     //鏍戠偣鍑讳簨浠�
     async nodeClick(data) {
       try {
+        console.log(data)
+        this.TreeValue=data.label.split(" ")[0].trim();
+        this.$emit('TreeValue',this.TreeValue)
         this.nodeClickList = data;
         this.tableHeadDataFateher = []
         this.tableHeadFindData = []
diff --git a/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue b/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue
index 6e24287..8813035 100644
--- a/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue
+++ b/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue
@@ -54,7 +54,7 @@
           </el-row>
           <!--          鏂板-->
           <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid"
-                              :disabledProp="disabledProp" :templateOid="templateOid" :visible.sync="addvisible"
+                              :disabledProp="disabledProp" :templateOid="templateOid" :visible.sync="addvisible" :TreeValue="TreeValue"
                               type="add"
                               @submit="AddSumbit">
           </FormTemplateDialog>
@@ -155,6 +155,10 @@
     tableDataArray: {
       type: Array,
     },
+    TreeValue:{
+      type: String,
+      default: "",
+    },
     total: {
       type: String,
       default: "",
diff --git a/Source/UBCS-WEB/src/components/code-dialog-page/cloneOtherBasicSecDialog.vue b/Source/UBCS-WEB/src/components/code-dialog-page/cloneOtherBasicSecDialog.vue
index 5a85239..2338530 100644
--- a/Source/UBCS-WEB/src/components/code-dialog-page/cloneOtherBasicSecDialog.vue
+++ b/Source/UBCS-WEB/src/components/code-dialog-page/cloneOtherBasicSecDialog.vue
@@ -1,5 +1,6 @@
 <template>
   <el-dialog
+    :close-on-click-modal="false"
     :visible.sync="cloneOtherCodeRuleSettingBox"
     append-to-body
     class="avue-dialog avue-dialog--top"
diff --git a/Source/UBCS-WEB/src/components/code-dialog-page/cloneRuleDialog.vue b/Source/UBCS-WEB/src/components/code-dialog-page/cloneRuleDialog.vue
index 897c547..c58274e 100644
--- a/Source/UBCS-WEB/src/components/code-dialog-page/cloneRuleDialog.vue
+++ b/Source/UBCS-WEB/src/components/code-dialog-page/cloneRuleDialog.vue
@@ -1,5 +1,6 @@
 <template>
   <el-dialog
+      :close-on-click-modal="false"
       :visible.sync="cloneSettingBox"
       append-to-body
       class="avue-dialog avue-dialog--top"
diff --git a/Source/UBCS-WEB/src/components/code-dialog-page/formulaEditor.vue b/Source/UBCS-WEB/src/components/code-dialog-page/formulaEditor.vue
index 965e500..14c0691 100644
--- a/Source/UBCS-WEB/src/components/code-dialog-page/formulaEditor.vue
+++ b/Source/UBCS-WEB/src/components/code-dialog-page/formulaEditor.vue
@@ -3,6 +3,7 @@
   <el-dialog
     title="鍏紡缂栬緫妗�"
     append-to-body
+    :close-on-click-modal="false"
     :visible.sync="isShowformulaEdit"
     @close="closeFormulaEdit"
     width="75%"
diff --git a/Source/UBCS-WEB/src/components/code-dialog-page/referBtmTypeCrudDialog.vue b/Source/UBCS-WEB/src/components/code-dialog-page/referBtmTypeCrudDialog.vue
index 14ea0a5..8e21b44 100644
--- a/Source/UBCS-WEB/src/components/code-dialog-page/referBtmTypeCrudDialog.vue
+++ b/Source/UBCS-WEB/src/components/code-dialog-page/referBtmTypeCrudDialog.vue
@@ -1,5 +1,6 @@
 <template>
     <el-dialog 
+        :close-on-click-modal="false"
         title="涓恒�愬弬鐓у紩鐢ㄧ殑涓氬姟绫诲瀷銆戦�夊彇鍊�"
         append-to-body
         :visible.sync="referBtmDialogParams.isShowDialog"
diff --git a/Source/UBCS-WEB/src/components/code-dialog-page/referConfigCrudDialog.vue b/Source/UBCS-WEB/src/components/code-dialog-page/referConfigCrudDialog.vue
index 0d5e6f2..5b0c3f7 100644
--- a/Source/UBCS-WEB/src/components/code-dialog-page/referConfigCrudDialog.vue
+++ b/Source/UBCS-WEB/src/components/code-dialog-page/referConfigCrudDialog.vue
@@ -1,5 +1,6 @@
 <template>
     <el-dialog
+        :close-on-click-modal="false"
         title="閫夋嫨鍙傜収閰嶇疆"
         append-to-body
         :visible.sync="isShowReferConfigCrud"
diff --git a/Source/UBCS-WEB/src/components/code-dialog-page/referConfigFormDialog.vue b/Source/UBCS-WEB/src/components/code-dialog-page/referConfigFormDialog.vue
index 134682f..9e75512 100644
--- a/Source/UBCS-WEB/src/components/code-dialog-page/referConfigFormDialog.vue
+++ b/Source/UBCS-WEB/src/components/code-dialog-page/referConfigFormDialog.vue
@@ -1,6 +1,7 @@
 <template>
     <!-- 绗簩灞傚璇濇,灞炴�х爜娈碉紝鍏紡缂栬緫妗嗗脊绐� -->
     <el-dialog
+      :close-on-click-modal="false"
       title="鍙傜収閰嶇疆"
       append-to-body
       :visible.sync="isShowReferConfigForm"
diff --git a/Source/UBCS-WEB/src/components/code-dialog-page/referSelectBtmAttrDialog.vue b/Source/UBCS-WEB/src/components/code-dialog-page/referSelectBtmAttrDialog.vue
index 10c166d..ef651fa 100644
--- a/Source/UBCS-WEB/src/components/code-dialog-page/referSelectBtmAttrDialog.vue
+++ b/Source/UBCS-WEB/src/components/code-dialog-page/referSelectBtmAttrDialog.vue
@@ -1,5 +1,6 @@
 <template>
      <el-dialog 
+        :close-on-click-modal="false"
         :title="options.title"
         append-to-body
         :visible.sync="crudParams.isShowDialog"
diff --git a/Source/UBCS-WEB/src/components/dockingSearch/VciDockingSearch.vue b/Source/UBCS-WEB/src/components/dockingSearch/VciDockingSearch.vue
index 81b9f58..652907c 100644
--- a/Source/UBCS-WEB/src/components/dockingSearch/VciDockingSearch.vue
+++ b/Source/UBCS-WEB/src/components/dockingSearch/VciDockingSearch.vue
@@ -1,21 +1,15 @@
 <template>
   <div style="display: flex" >
     <el-form :inline="true" :model="formInline" class="demo-form-inline">
+<!--      闆嗘垚鏃ュ織 浠诲姟 鏁版嵁鍏ㄩ儴鍏敤-->
       <el-form-item label="闆嗘垚鏌ヨ:" size="small">
         <el-select v-model="formInline.type" placeholder="璇烽�夋嫨鍒嗙被" @change="SelectChange">
-          <el-option :label="item.label" :value="item.value" v-for="item in SearchObject.searchData" ></el-option>
+          <el-option :label="item.label" :value="item.value" :key="item.value" v-for="(item,index) in SearchObject.searchData"></el-option>
         </el-select>
       </el-form-item>
-<!--      闆嗘垚鏃ュ織鏄惁鎴愬姛-->
+<!--      闆嗘垚鏃ュ織 鏄惁鎴愬姛-->
       <el-form-item v-if="(status.type == 'loge' && status.stateFlag)" size="small">
         <el-select v-model="formInline.state" placeholder="璇烽�夋嫨鐘舵��">
-          <el-option label="鏄�" value="true"></el-option>
-          <el-option label="鍚�" value="false"></el-option>
-        </el-select>
-      </el-form-item>
-<!--      闆嗘垚浠诲姟鏄惁鎺ㄩ�佹垚鍔�-->
-      <el-form-item v-if="(status.type == 'task' && status.stateTaskFlag)" size="small">
-        <el-select v-model="formInline.stateTask" placeholder="璇烽�夋嫨鐘舵��">
           <el-option label="鏄�" value="true"></el-option>
           <el-option label="鍚�" value="false"></el-option>
         </el-select>
@@ -32,15 +26,22 @@
           <el-option label="鏁版嵁鏌ヨ" value="queryData"></el-option>
         </el-select>
       </el-form-item>
-<!--      闆嗘垚浠诲姟鎺ㄩ�佺被鍨�-->
-      <el-form-item v-if="(status.type === 'task' && status.sendTypeFlga)" size="small">
+<!--      闆嗘垚浠诲姟 鏄惁鎺ㄩ�佹垚鍔�  闆嗘垚鏁版嵁  鏄惁鍒嗚В浠诲姟-->
+      <el-form-item v-if="((status.type == 'task' || status.type == 'data')&& status.stateTaskDataFlag)" size="small">
+        <el-select v-model="formInline.stateTask" placeholder="璇烽�夋嫨鐘舵��">
+          <el-option label="鏄�" value="true"></el-option>
+          <el-option label="鍚�" value="false"></el-option>
+        </el-select>
+      </el-form-item>
+<!--      闆嗘垚浠诲姟 闆嗘垚鏁版嵁 鎺ㄩ�佺被鍨�-->
+      <el-form-item v-if="((status.type === 'task' || status.type === 'data') && status.sendTypeFlga)" size="small">
         <el-select v-model="formInline.taskCut" placeholder="璇烽�夋嫨鎺ㄩ�佺被鍨�">
           <el-option label="鍙戝竷" value="Enabled"></el-option>
           <el-option label="鍥炴敹" value="TakeBack"></el-option>
           <el-option label="鍋滅敤" value="Disabled"></el-option>
         </el-select>
       </el-form-item>
-<!--      鍒涘缓鏃ユ湡-->
+<!--      闆嗘垚浠诲姟 鍒涘缓鏃ユ湡  闆嗘垚鏃ュ織 璁板綍鏃堕棿-->
       <el-form-item size="small" v-if="((status.type == 'loge' ||status.type == 'task') && status.dateFlag)">
         <el-date-picker
           v-model="formInline.Date"
@@ -48,7 +49,7 @@
           placeholder="閫夋嫨鏃ユ湡鏃堕棿">
         </el-date-picker>
       </el-form-item>
-<!--      鏈�鍚庢帹閫佹椂闂�-->
+<!--      闆嗘垚浠诲姟 鏈�鍚庢帹閫佹椂闂�-->
       <el-form-item size="small" v-if="status.type == 'task' && status.lastDateFlag">
         <el-date-picker
           v-model="formInline.lastDate"
@@ -56,13 +57,14 @@
           placeholder="閫夋嫨鏃ユ湡鏃堕棿">
         </el-date-picker>
       </el-form-item>
+<!--      鍏敤妯″潡-->
 <!--      杈撳叆鍐呭-->
       <el-form-item size="small" v-if="shouldShowInput">
         <el-input v-model="formInline.text" placeholder="璇疯緭鍏ュ唴瀹�" @keyup.enter.native="SaveHandler"></el-input>
       </el-form-item>
 <!--      鏌ヨ鎸夐挳-->
       <el-form-item size="small" v-if="shouldShowButton">
-        <el-button type="success" size="small">鏌ヨ</el-button>
+        <el-button type="success" size="small" @click="handleSearch">鏌ヨ</el-button>
       </el-form-item>
     </el-form>
   </div>
@@ -82,18 +84,22 @@
     shouldShowInput() {
       const isLogeType = this.status.type === 'loge';
       const isTaskType = this.status.type === 'task';
+      const isDataType = this.status.type === 'data';
       return (
         (isLogeType && !this.status.stateFlag && !this.status.dateFlag && !this.status.typeFlag) ||
-        (isTaskType && !this.status.stateTaskFlag && !this.status.dateFlag && !this.status.lastDateFlag && !this.status.sendTypeFlga)
+        (isTaskType && !this.status.stateTaskDataFlag && !this.status.dateFlag && !this.status.lastDateFlag && !this.status.sendTypeFlga) ||
+        (isDataType && !this.status.stateTaskDataFlag && !this.status.sendTypeFlga)
       );
     },
     //鎸夐挳鍒ゆ柇
     shouldShowButton() {
       const isLogeType = this.status.type === 'loge';
       const isTaskType = this.status.type === 'task';
+      const isDataType = this.status.type === 'data';
       return(
         (isLogeType && (this.status.dateFlag || this.status.stateFlag || this.status.typeFlag)) ||
-        (isTaskType && (this.status.stateTaskFlag || this.status.dateFlag || this.status.lastDateFlag || this.status.sendTypeFlga))
+        (isTaskType && (this.status.stateTaskDataFlag || this.status.dateFlag || this.status.lastDateFlag || this.status.sendTypeFlga)) ||
+        (isDataType && (this.status.stateTaskDataFlag || this.status.sendTypeFlga))
       );
     }
   },
@@ -101,18 +107,23 @@
     SelectChange(val) {
       const logeType = this.status.type === 'loge';
       const taskType = this.status.type === 'task';
+      const dataType = this.status.type === 'data';
       this.status.typeFlag = logeType && val === 5;
       this.status.dateFlag = (logeType && val === 6) || (taskType && val === 6);
       this.status.stateFlag = logeType && val === 7;
-      this.status.stateTaskFlag = taskType && val === 8;
       this.status.lastDateFlag = taskType && val === 7;
-      this.status.sendTypeFlga = taskType && val === 5;
+      this.status.stateTaskDataFlag = (taskType && val === 8) || (dataType && val === 4);
+      this.status.sendTypeFlga = (taskType && val === 5) || (dataType && val === 3);
     },
     SaveHandler(){
       let name = this.SearchObject.searchData[this.formInline.type].prop;
-      getList(this.page.currentPage, this.page.pageSize, {[name]: this.formInline.text}).then(res => {
+      getList(this.page.currentPage, this.page.pageSize, { [`conditionMap['${name}_like']`]: this.formInline.text}).then(res => {
         console.log(res);
       });
+    },
+    handleSearch(){
+      let formattedDate = this.$moment(this.formInline.Date).format('YYYY-M-D');
+      console.log('formattedDate',formattedDate);
     }
   }
 }
diff --git a/Source/UBCS-WEB/src/main.js b/Source/UBCS-WEB/src/main.js
index ab379e4..eecd5c0 100644
--- a/Source/UBCS-WEB/src/main.js
+++ b/Source/UBCS-WEB/src/main.js
@@ -78,6 +78,9 @@
 //澶嶅埗鎻掍欢
 import VueClipboard from 'vue-clipboard2'
 Vue.use( VueClipboard )
+//鏃堕棿鎻掍欢
+import moment from 'moment';
+Vue.prototype.$moment = moment;
 // 娉ㄥ唽鍏ㄥ眬瀹瑰櫒
 Vue.component('basicContainer', basicContainer);
 Vue.component('basicBlock', basicBlock);
diff --git a/Source/UBCS-WEB/src/page/index/logo.vue b/Source/UBCS-WEB/src/page/index/logo.vue
index 3bc5957..c5226c7 100644
--- a/Source/UBCS-WEB/src/page/index/logo.vue
+++ b/Source/UBCS-WEB/src/page/index/logo.vue
@@ -16,7 +16,7 @@
           <span>
             <img class="imgSpan" :src=imgurl>
           </span>
-          <span>  {{ website.indexTitle }}</span>
+          <span style="font-size: 17px;margin-left: 27px">缂栫爜璧勬簮绠$悊绯荤粺</span>
          </span>
       </template>
     </transition-group>
@@ -91,7 +91,7 @@
 .imgSpan {
   position: absolute;
   top: 15px;
-  left: 37px;
+  left: 26px;
 }
 .logimg{
   position: absolute;
diff --git a/Source/UBCS-WEB/src/page/login/index.vue b/Source/UBCS-WEB/src/page/login/index.vue
index fbbfdc4..97f7c74 100644
--- a/Source/UBCS-WEB/src/page/login/index.vue
+++ b/Source/UBCS-WEB/src/page/login/index.vue
@@ -20,7 +20,7 @@
       <div class="login-border">
         <div class="login-main">
           <h4 class="login-title">
-            {{ $t('login.title') }}{{website.title}}
+            {{ $t('login.title') }}
             <top-lang></top-lang>
           </h4>
           <userLogin v-if="activeName==='user'"></userLogin>
diff --git a/Source/UBCS-WEB/src/views/MasterData/items.vue b/Source/UBCS-WEB/src/views/MasterData/items.vue
index be13f12..03db218 100644
--- a/Source/UBCS-WEB/src/views/MasterData/items.vue
+++ b/Source/UBCS-WEB/src/views/MasterData/items.vue
@@ -6,7 +6,7 @@
         <master-tree @codeClassifyOid="codeClassifyOidList" @coderuleoid="coderuleoidList" :pageSize="this.pageSize"
           :currentPage="this.currentPage" @tableDataArray="tableDataArrays" @tableHeadDataFateher="tableHeadDatas"
           @tableHeadBttoms="tableHeadBttoms" @total="totals" @nodeClick="nodeClick"
-          @tableHeadFindData="tableHeadFindDatas" @Treedata="TreedataList"></master-tree>
+          @tableHeadFindData="tableHeadFindDatas" @Treedata="TreedataList" @TreeValue="TreeValueEmit"></master-tree>
       </basic-container>
     </el-aside>
     <el-main>
@@ -14,7 +14,7 @@
       <VciMasterCrud :page="this.page" :codeClassifyOid="this.codeClassifyOid" :coderuleoid="this.coderuleoid"
         @pageSize="pageSizes" @currentPage="currentPages" :tableDataArray="tableDataArray" :total="this.total"
         :tableHeadDataFateher="this.tableHeadDataFateher" :isLoading="isLoading" :templateOid="templateOid"
-        :tableHeadFindData="tableHeadFindData" :tableHeadBtnData="masterVrBtnList" :Treedata="Treedata"></VciMasterCrud>
+        :tableHeadFindData="tableHeadFindData" :tableHeadBtnData="masterVrBtnList" :Treedata="Treedata" :TreeValue="TreeValue"></VciMasterCrud>
     </el-main>
   </el-container>
 </template>
@@ -42,12 +42,16 @@
       tableHeadDataFateher: [],
       total: "",
       isLoading: false,
-      tableHeadFindData: {}
+      tableHeadFindData: {},
+      TreeValue:''
     }
   },
   created() {
   },
   methods: {
+    TreeValueEmit(val){
+      this.TreeValue=val
+    },
     codeClassifyOidList(val) {
       this.codeClassifyOid = val;
     },
diff --git a/Source/UBCS-WEB/src/views/code/code.vue b/Source/UBCS-WEB/src/views/code/code.vue
index 59f6ec1..dbc4044 100644
--- a/Source/UBCS-WEB/src/views/code/code.vue
+++ b/Source/UBCS-WEB/src/views/code/code.vue
@@ -1876,6 +1876,8 @@
               oid: this.codefixedsecOrCodeclassifysec.oid,
             });
             this.clearFixedOrClassifyForm("codefixedsec");
+            this.$refs.crudFixedValue.refreshTable();
+            this.$refs.crudFixedValue.doLayout();
             this.$message({
               type: "success",
               message: "鎿嶄綔鎴愬姛!",
diff --git a/Source/UBCS-WEB/src/views/docking/data.vue b/Source/UBCS-WEB/src/views/docking/data.vue
index 380498a..c556696 100644
--- a/Source/UBCS-WEB/src/views/docking/data.vue
+++ b/Source/UBCS-WEB/src/views/docking/data.vue
@@ -15,6 +15,9 @@
                @size-change="sizeChange"
                @refresh-change="refreshChange"
                @on-load="onLoad">
+      <template slot-scope="scope" slot="menuLeft">
+        <vci-docking-search :SearchObject="SearchObject" :page="page" :formInline="formInline" :status="status"></vci-docking-search>
+      </template>
     </avue-crud>
   </basic-container>
 </template>
@@ -29,6 +32,49 @@
 name: "data",
   data(){
   return {
+    //鍚勪釜绫诲瀷鐘舵��
+    status:{
+      type:'data',
+      sendTypeFlga:false,
+      stateTaskDataFlag:false
+    },
+    //model缁戝畾
+    formInline:{
+      type:'',
+      text:'',
+      stateTask:'',
+      taskCut:''
+    },
+    //闆嗘垚绫诲瀷姝绘暟鎹�
+    SearchObject:{
+      searchData:[
+        {
+          label:'鏁版嵁缂栫爜',
+          prop: "id",
+          value:0
+        },
+        {
+          label:'鍒嗙被浠e彿',
+          prop: "classifyId",
+          value:1
+        },
+        {
+          label:'鍒嗙被鍚嶇О',
+          prop: 'classifyName',
+          value:2
+        },
+        {
+          label:'鎺ㄩ�佺被鍨�',
+          prop: 'sendType',
+          value:3
+        },
+        {
+          label:'鏄惁鍒嗚В浠诲姟',
+          prop: 'sendFlag',
+          value:4
+        },
+      ]
+    },
     value:'',
     loading: false,
     query: {},
diff --git a/Source/UBCS-WEB/src/views/docking/loge.vue b/Source/UBCS-WEB/src/views/docking/loge.vue
index d120764..37333e4 100644
--- a/Source/UBCS-WEB/src/views/docking/loge.vue
+++ b/Source/UBCS-WEB/src/views/docking/loge.vue
@@ -32,12 +32,14 @@
   data(){
     return {
       value:'',
+      //鍚勪釜绫诲瀷鐘舵��
       status:{
         type:'loge',
         typeFlag:false,
         dateFlag:false,
         stateFlag:false,
       },
+      //model缁戝畾
       formInline:{
         type:'',
         cut:'',
@@ -45,6 +47,7 @@
         Date:'',
         state:''
       },
+      //闆嗘垚绫诲瀷姝绘暟鎹�
       SearchObject:{
         searchData:[
           {
diff --git a/Source/UBCS-WEB/src/views/docking/task.vue b/Source/UBCS-WEB/src/views/docking/task.vue
index 4c2cec2..fd99ef0 100644
--- a/Source/UBCS-WEB/src/views/docking/task.vue
+++ b/Source/UBCS-WEB/src/views/docking/task.vue
@@ -40,6 +40,7 @@
   name: "task",
   data(){
     return {
+      //model缁戝畾
       formInline:{
         type:'',
         stateTask:'',
@@ -48,13 +49,15 @@
         text:'',
         taskCut:''
       },
+      //鍚勪釜绫诲瀷鐘舵��
       status:{
         type:'task',
-        stateTaskFlag:false,
+        stateTaskDataFlag:false,
         dateFlag:false,
         lastDateFlag:false,
         sendTypeFlga:false
       },
+      //闆嗘垚绫诲瀷姝绘暟鎹�
       SearchObject:{
         searchData:[
           {
diff --git a/Source/UBCS-WEB/src/views/modeling/originalAdd.vue b/Source/UBCS-WEB/src/views/modeling/originalAdd.vue
index 6b06bb8..c6b6974 100644
--- a/Source/UBCS-WEB/src/views/modeling/originalAdd.vue
+++ b/Source/UBCS-WEB/src/views/modeling/originalAdd.vue
@@ -111,6 +111,19 @@
             <!-- 閫夋嫨鏋氫妇鏃剁殑寮圭獥 -->
             <el-dialog title="鏋氫妇鍒楄〃" :visible.sync="enumRefer.show" append-to-body @close="closeEnumDialog" width="70%"
                 style="height: 115vh;">
+                <div>
+                  <el-form :inline="true" :model="form" class="demo-form-inline" size="small">
+                    <el-form-item label="鏋氫妇浠e彿">
+                      <el-input v-model="form.name" placeholder="鏋氫妇浠e彿"></el-input>
+                    </el-form-item>
+                    <el-form-item label="鏋氫妇鍚嶇О">
+                        <el-input v-model="form.label" placeholder="鏋氫妇鍚嶇О"></el-input>
+                    </el-form-item>
+                    <el-form-item>
+                      <el-button type="primary" @click="onSubmit">鏌ヨ</el-button>
+                    </el-form-item>
+                  </el-form>
+                </div>
                 <avue-crud ref="eunmTable" :option="enumRefer.option"  @on-load="enumOnLoad" :data="enumRefer.data" class="enumTable"
                     @row-click="enumReferClick" :page.sync="enumRefer.enumPage">
                     <template slot="radio" slot-scope="{row}">
@@ -141,6 +154,10 @@
     },
     data() {
         return {
+            form:{
+              name:'',
+              label:''
+            },
             showSubmitDialog: false,
             // 榛樿鐨勯〉绛�
             activeName: 'referTab',
@@ -229,7 +246,8 @@
                     border: true,
                     reserveSelection: true,
                     searchMenuSpan: 32,
-                    searchShowBtn: false,
+                    // searchShowBtn: false,
+                    // search:true,
                     highlightCurrentRow: true,
                     column: [{
                         label: '',
@@ -241,13 +259,13 @@
                         prop: 'name',
                         align: 'center',
                         searchSpan: 8,
-                        search: true,
+                        // search: true,
                     }, {
                         label: '鏋氫妇鍚嶇О',
                         prop: 'label',
                         align: 'center',
                         searchSpan: 8,
-                        search: true,
+                        // search: true,
                     }]
                 },
                 // 鏋氫妇鍙傜収琛ㄦ牸鏁版嵁
@@ -281,6 +299,20 @@
         this.initAttributeReferTypeList();
     },
     methods: {
+      onSubmit() {
+        const conditionMap = {};
+        if (this.form.name) {
+          conditionMap[`conditionMap['name_like']`] = this.form.name;
+        }
+        if (this.form.label) {
+          conditionMap[`conditionMap['label_like']`] = this.form.label;
+        }
+        getParentList(this.enumRefer.enumPage.currentPage, this.enumRefer.enumPage.pageSize, conditionMap)
+          .then((res) => {
+            this.enumRefer.enumPage.total = res.data.data.total;
+            this.enumRefer.data = res.data.data.records;
+          });
+      },
         enumOnLoad(){
           getParentList(this.enumRefer.enumPage.currentPage, this.enumRefer.enumPage.pageSize).then(res => {
             this.enumRefer.enumPage.total = res.data.data.total;
diff --git a/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/config/BladeResourceServerConfiguration.java b/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/config/BladeResourceServerConfiguration.java
index 5f680cc..f30b930 100644
--- a/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/config/BladeResourceServerConfiguration.java
+++ b/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/config/BladeResourceServerConfiguration.java
@@ -38,6 +38,7 @@
 			.antMatchers(
 				"/actuator/**",
 				"/oauth/captcha",
+				"/oauth/passwordFreeLogin",
 				"/oauth/logout",
 				"/oauth/clear-cache",
 				"/oauth/render/**",
diff --git a/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/endpoint/BladeTokenEndPoint.java b/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/endpoint/BladeTokenEndPoint.java
index 1d4aaf1..6a35d65 100644
--- a/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/endpoint/BladeTokenEndPoint.java
+++ b/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/endpoint/BladeTokenEndPoint.java
@@ -32,16 +32,34 @@
 import org.springblade.core.tool.support.Kv;
 import org.springblade.core.tool.utils.StringUtil;
 import org.springblade.core.tool.utils.WebUtil;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.authentication.InsufficientAuthenticationException;
 import org.springframework.security.core.Authentication;
 import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.security.oauth2.common.OAuth2AccessToken;
 import org.springframework.security.oauth2.common.OAuth2RefreshToken;
+import org.springframework.security.oauth2.common.exceptions.InvalidClientException;
+import org.springframework.security.oauth2.common.exceptions.InvalidGrantException;
+import org.springframework.security.oauth2.common.exceptions.InvalidRequestException;
+import org.springframework.security.oauth2.common.exceptions.UnsupportedGrantTypeException;
+import org.springframework.security.oauth2.common.util.OAuth2Utils;
 import org.springframework.security.oauth2.provider.AuthorizationRequest;
+import org.springframework.security.oauth2.provider.ClientDetails;
 import org.springframework.security.oauth2.provider.ClientDetailsService;
+import org.springframework.security.oauth2.provider.TokenRequest;
+import org.springframework.security.oauth2.provider.endpoint.TokenEndpoint;
 import org.springframework.security.oauth2.provider.token.TokenStore;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.util.StringUtils;
+import org.springframework.web.HttpRequestMethodNotSupportedException;
+import org.springframework.web.bind.annotation.*;
 import org.springframework.web.servlet.ModelAndView;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.security.Principal;
+import java.util.Collections;
+import java.util.Map;
 
 import javax.servlet.http.HttpSession;
 import java.time.Duration;
diff --git a/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/endpoint/PwdFreeLoginEndpoint.java b/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/endpoint/PwdFreeLoginEndpoint.java
new file mode 100644
index 0000000..33f2850
--- /dev/null
+++ b/Source/UBCS/ubcs-auth/src/main/java/com/vci/ubcs/auth/endpoint/PwdFreeLoginEndpoint.java
@@ -0,0 +1,95 @@
+//package com.vci.ubcs.auth.endpoint;
+//
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.http.HttpStatus;
+//import org.springframework.http.ResponseEntity;
+//import org.springframework.security.core.Authentication;
+//import org.springframework.security.oauth2.common.OAuth2AccessToken;
+//import org.springframework.security.oauth2.provider.ClientDetailsService;
+//import org.springframework.security.oauth2.provider.OAuth2RequestFactory;
+//import org.springframework.security.oauth2.provider.TokenGranter;
+//import org.springframework.security.oauth2.provider.TokenRequest;
+//import org.springframework.security.oauth2.provider.endpoint.TokenEndpoint;
+//import org.springframework.security.oauth2.provider.token.AuthorizationServerTokenServices;
+//import org.springframework.stereotype.Component;
+//import org.springframework.util.LinkedMultiValueMap;
+//import org.springframework.util.MultiValueMap;
+//import org.springframework.web.HttpRequestMethodNotSupportedException;
+//import org.springframework.web.bind.annotation.PostMapping;
+//import org.springframework.web.bind.annotation.RequestMapping;
+//import org.springframework.web.bind.annotation.RequestMethod;
+//import org.springframework.web.bind.annotation.RequestParam;
+//
+//import java.util.Map;
+//
+///**
+// * 鍏嶅瘑鐧诲綍
+// * @author ludc
+// * @date 2023/9/12 18:03
+// */
+//@Component
+//public class PwdFreeLoginEndpoint extends TokenEndpoint {
+//
+//
+//	@Autowired
+//	private AuthorizationServerTokenServices tokenServices;
+//
+//	@Autowired
+//	private ClientDetailsService clientDetailsService;
+//
+//	/*@Autowired
+//	private OAuth2RequestFactory requestFactory;
+//
+//	@Autowired
+//	private TokenGranter tokenGranter;*/
+//
+//	@RequestMapping(value = "/oauth/password-free-login",method = RequestMethod.GET)
+//	public ResponseEntity<OAuth2AccessToken> getPasswordFreeLogin(@RequestParam Map<String, String> parameters) throws HttpRequestMethodNotSupportedException {
+//		return postPasswordFreeLogin(parameters);
+//	}
+//
+//	@RequestMapping(value = "/oauth/password-free-login",method = RequestMethod.POST)
+//	public ResponseEntity<OAuth2AccessToken> postPasswordFreeLogin(@RequestParam Map<String, String> parameters) throws HttpRequestMethodNotSupportedException {
+//		// 鍒ゆ柇鏄惁婊¤冻鍏嶅瘑鐧诲綍鐨勬潯浠�
+//		if (isSkipLogin(parameters)) {
+//			// 鐢熸垚璁块棶浠ょ墝
+//			OAuth2AccessToken accessToken = createAccessToken(parameters);
+//			// 杩斿洖璁块棶浠ょ墝
+//			return ResponseEntity.ok(accessToken);
+//		}
+//
+//		// 涓嶆弧瓒冲厤瀵嗙櫥褰曟潯浠讹紝杩斿洖閿欒淇℃伅
+//		return ResponseEntity.status(HttpStatus.UNAUTHORIZED).build();
+//	}
+//
+//	private boolean isSkipLogin(Map<String, String> parameters) {
+//		// 鏍规嵁鍏蜂綋闇�姹傚垽鏂槸鍚︽弧瓒冲厤瀵嗙櫥褰曠殑鏉′欢
+//		// 渚嬪锛屽垽鏂姹傚弬鏁颁腑鏄惁鍖呭惈鏌愪釜鐗瑰畾鐨勬爣璇嗙
+//		return parameters.containsKey("skipLogin");
+//	}
+//
+//	private OAuth2AccessToken createAccessToken(Map<String, String> parameters) throws HttpRequestMethodNotSupportedException {
+//		// 鏋勯�犺姹傚弬鏁�
+//		MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
+//		for (Map.Entry<String, String> entry : parameters.entrySet()) {
+//			params.add(entry.getKey(), entry.getValue());
+//		}
+//
+//		// 璋冪敤TokenEndpoint鐨刾ostAccessToken鏂规硶鐢熸垚璁块棶浠ょ墝
+//		//return postAccessToken(PrincipalUtils.getPrincipal(), params).getBody();
+//		return null;
+//	}
+//
+//	private ResponseEntity<OAuth2AccessToken> postAccessToken(Authentication authentication, MultiValueMap<String, String> parameters) throws HttpRequestMethodNotSupportedException {
+//		// 鏋勯�犺姹�
+//		// TokenRequest tokenRequest = requestFactory.createTokenRequest(parameters, clientDetailsService.loadClientByClientId("your-client-id"));
+//
+//		// 鐢熸垚璁块棶浠ょ墝
+//		// OAuth2AccessToken accessToken = tokenGranter.grant("password", tokenRequest);
+//
+//		// 杩斿洖璁块棶浠ょ墝
+//		//return ResponseEntity.ok(accessToken);
+//		return null;
+//	}
+//
+//}
diff --git a/Source/UBCS/ubcs-codeApply/pom.xml b/Source/UBCS/ubcs-codeApply/pom.xml
index 28cb216..54e1c4c 100644
--- a/Source/UBCS/ubcs-codeApply/pom.xml
+++ b/Source/UBCS/ubcs-codeApply/pom.xml
@@ -12,7 +12,9 @@
         <vciplt.version>2022.RELEASE</vciplt.version>
         <old.spring.version>3.2.0.RELEASE</old.spring.version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <java.version>1.8</java.version>
+        <java.version>1.7</java.version>
+        <maven.compiler.source>7</maven.compiler.source>
+        <maven.compiler.target>7</maven.compiler.target>
     </properties>
     <artifactId>ubcs-codeApply</artifactId>
     <dependencies>
@@ -66,4 +68,18 @@
             <url>http://nexus.vci-tech.com:9000/repository/maven-snapshots/</url>
         </snapshotRepository>
     </distributionManagement>
+<!--    <build>-->
+<!--        <plugins>-->
+<!--            <plugin>-->
+<!--                <groupId>org.apache.maven.plugins</groupId>-->
+<!--                <artifactId>maven-compiler-plugin</artifactId>-->
+<!--                <version>3.10.1</version>-->
+<!--                <configuration>-->
+<!--                    <source>1.7</source>-->
+<!--                    <target>1.7</target>-->
+<!--                </configuration>-->
+<!--            </plugin>-->
+<!--        </plugins>-->
+<!--    </build>-->
+
 </project>
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyFor410Dialog.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyFor410Dialog.java
index 1e32400..f69c4b8 100644
--- a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyFor410Dialog.java
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyFor410Dialog.java
@@ -32,7 +32,7 @@
 	private Map<String, String> attrNameAndValMap = new LinkedHashMap();//瀛樺偍灞炴�у悕绉帮紙鍖呭惈鍐呴儴鍚嶇О鍜屽閮ㄥ悕绉帮級鍜屽搴旂殑鍊�
 	private String tokenUrl= ConfigUtils.getConfigValue("410.code.token.url","http://127.0.0.1:37000/ubcs-auth/oauth/token");
 	private String[] fields;
-	private String[] Values;
+	private String[] values;
 	/**
 	 * 瀛樺偍鍒嗙被鐨凪ap,key:鍒嗙被鍚嶇О锛寁alue锛氬垎绫诲��
 	 */
@@ -50,6 +50,9 @@
 	public CodeApplyFor410Dialog(JDialog dialog, String clsfName, String deptName) {
 		this(dialog, "pdmUser", clsfName, deptName,new String[]{});
 	}
+	public CodeApplyFor410Dialog(JDialog dialog, String clsfName, String deptName,String[] fields,String[] values) {
+		this(dialog, "pdmUser", clsfName, deptName,new String[]{},fields,values);
+	}
 	public CodeApplyFor410Dialog(Frame frame, String clsfName, String deptName,String[] fields,String[] values){
 		this.setModal(true);
 		parentComponet = frame;
@@ -57,7 +60,7 @@
 		this.clsfName = clsfName;
 		this.deptName = deptName;
 		this.fields=fields;
-		this.Values=values;
+		this.values=values;
 		//this.libName = libName;
 		init();
 
@@ -89,6 +92,23 @@
 			this.deptName = deptName;
 			//	this.libName = libName;
 
+			init();
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	public CodeApplyFor410Dialog(JDialog dialog, String userName, String clsfName, String deptName, String[] libName,String[] fields,String[] values) {
+		super(dialog, true);
+		VCISwingUtil.setClientMainFrame(new Frame());
+		try {
+			this.setModal(true);
+			parentComponet = dialog;
+			this.userName = userName;
+			this.clsfName = clsfName;
+			this.deptName = deptName;
+			this.fields	  = fields;
+			this.values	  = values;
 			init();
 		} catch (Exception e) {
 			e.printStackTrace();
@@ -152,7 +172,14 @@
 	private void bulidPal() throws Exception {
 		this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
 		this.setTitle("浠g爜鐢宠");
-		mainPal = new CodeApplyPanelFor410(this,tokenUserObject, true, clsfName, deptName,libName);
+		Map<String , String> displayValues = new HashMap<>();
+		if(fields != null && fields.length > 0 && values !=null && values.length > 0){
+			for (int i = 0; i < fields.length; i++) {
+				displayValues.put(fields[i] , values[i]);
+			}
+		}
+
+		mainPal = new CodeApplyPanelFor410(this,tokenUserObject, true, clsfName, deptName,libName,displayValues);
 
 		VCIJPanel btnPal = new VCIJPanel();
 		btnPal.add(okBtn);
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyFor410MainPanel.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyFor410MainPanel.java
index c648cc4..f2bcbb8 100644
--- a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyFor410MainPanel.java
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyFor410MainPanel.java
@@ -32,7 +32,6 @@
 import java.util.*;
 import java.util.List;
 import java.util.regex.Pattern;
-import java.util.stream.Collectors;
 
 public class CodeApplyFor410MainPanel  extends VCIJPanel {
 
@@ -87,6 +86,10 @@
 	private RMDataTransmitObject transmitForRMData = null;
 	private CodeRuleVO codeRuleVO=null;
 	/**
+	 * 瀛樺偍灞炴�у拰鍊肩殑Map,key,鐢ㄤ簬榛樿鍊肩殑鏄剧ず
+	 */
+	private Map<String,String> displayValues = new HashMap<>();
+	/**
 	 * 灞炴�D涓庡睘鎬у搴旂殑鎺т欢涔嬮棿鐨勬槧灏凪AP
 	 */
 	private LinkedHashMap<String, JComponent> attrIdToCtrlMaps = new LinkedHashMap<String, JComponent>();
@@ -117,11 +120,12 @@
 		this.currentCodeClassifyTemplateVO=currentCodeClassifyTemplateVO;
 	}
 
-	public CodeApplyFor410MainPanel(TransmitTreeObject transTreeObject,TokenUserObject tokenUserObject,String deptName,CodeClassifyTemplateVO currentCodeClassifyTemplateVO) {
+	public CodeApplyFor410MainPanel(TransmitTreeObject transTreeObject,TokenUserObject tokenUserObject,String deptName,CodeClassifyTemplateVO currentCodeClassifyTemplateVO,Map displayValues) {
 		this.transTreeObject = transTreeObject;
 		this.tokenUserObject = tokenUserObject;
 		this.deptName = deptName;
 		this.currentCodeClassifyTemplateVO=currentCodeClassifyTemplateVO;
+		this.displayValues = displayValues;
 	}
 
 	/**
@@ -590,10 +594,10 @@
 						if(codeClassifyValueList.size()>1) {
 							secCombo.addItem(new CodeClassifyValue());
 						}
-						codeClassifyValueList.stream().forEach(codeClassifyValue -> {
+						for (CodeClassifyValue codeClassifyValue : codeClassifyValueList) {
 							secCombo.addItem(codeClassifyValue);
 							valueOidList.add(codeClassifyValue.getOid());
-						});
+						}
 					}
 					secIdTOListValueOidMap.put(secObj.getOid(),valueOidList);
 					/**浠g爜椤逛笅鎷変簨浠�**/
@@ -632,11 +636,11 @@
 					if(fixedValueVOList.size() >1) {
 						secCombo.addItem(new CodeFixedValue());
 					}
-					fixedValueVOList.stream().forEach(codeFixedValueVO -> {
+					for (CodeFixedValueVO codeFixedValueVO : fixedValueVOList) {
 						CodeFixedValue codeFixedValue=new CodeFixedValue();
 						BeanUtilForVCI.copyPropertiesIgnoreCase(codeFixedValueVO,codeFixedValue);
 						secCombo.addItem(codeFixedValue);
-					});
+					}
 					/**褰撶郴缁熼�夋嫨鐨勬槸鎸囧畾鐮佹鍊兼椂锛岀粍鍒唬鍙风殑鐮佹绯荤粺涓嶆樉绀� Begin**/
 					/*FixCodeValObject selObj = (FixCodeValObject) secCombo.getSelectedItem();
 					if(isSpecialRuleFlag && (secObj.getName().equals(specialControlSecName) && secValMap.containsKey(selObj.getValue())) || secValMap.containsKey(getControlSecSelectValue())) {
@@ -742,10 +746,16 @@
 		transmit.setRmTypeObject(codeClassify);
 		if(currentCodeClassifyTemplateVO!=null) {
 			transmit.setTemplateId(templateId);
-			Map<String, CodeClassifyTemplateAttrVO> tempPropObjMapsByInnerName = currentCodeClassifyTemplateVO.getAttributes().stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t));
+			Map<String, CodeClassifyTemplateAttrVO> tempPropObjMapsByInnerName = new HashMap<>();
+			for (CodeClassifyTemplateAttrVO attribute : currentCodeClassifyTemplateVO.getAttributes()) {
+				tempPropObjMapsByInnerName.put(attribute.getId().toLowerCase(Locale.ROOT),attribute);
+			}
 			transmit.setClassifyCode(codeClassify.getId());
 			transmit.setTempPropObjMapsByInnerName(tempPropObjMapsByInnerName);
-			Map<String, CodeClassifyTemplateAttrVO> tempPropObjsMap = currentCodeClassifyTemplateVO.getAttributes().stream().collect(Collectors.toMap(s -> s.getOid().toLowerCase(Locale.ROOT), t -> t));
+			Map<String, CodeClassifyTemplateAttrVO> tempPropObjsMap = new HashMap<>();
+			for (CodeClassifyTemplateAttrVO attribute : currentCodeClassifyTemplateVO.getAttributes()) {
+				tempPropObjsMap.put(attribute.getOid().toLowerCase(Locale.ROOT),attribute);
+			}
 			transmit.setTempPropObjsMap(tempPropObjsMap);
 			transmit.setTemplateObject(currentCodeClassifyTemplateVO);
 			transmit.setTempPropObjsList(this.currentCodeClassifyTemplateVO.getAttributes());
@@ -785,7 +795,7 @@
 				if (index >= realAttrs.length) {
 					break;
 				}
-				CodeClassifyTemplateAttrVO attrObj = realAttrs[index];
+				final CodeClassifyTemplateAttrVO attrObj = realAttrs[index];
 
 				/***濡傛灉妯℃澘閰嶇疆浜嗗紩鐢ㄦā鏉匡紝灞炴�у悕绉板垪琛ㄦ坊鍔犻摼鎺ヨ繘琛屽鐞� BEGIN**/
 				//ADD BY liujw
@@ -951,10 +961,19 @@
 				for (int i = 0; i < objs.length; i++) {
 					objs[i] = new AttrRangObjectWarper(keyValues[i]);
 					model.addElement(objs[i]);
-
 					specMap.put(objs[i].toString(), comboBoxIndex++);
 				}
 				cbx.setModel(model);
+				if(displayValues.containsKey(attrObj.getId())){
+//					cbx.setSelectedItem(displayValues.get(attrObj.getId()));
+//					cbx.setSelectedIndex(3);
+					for (int i = 0; i < objs.length; i++) {
+						if(objs[i].getKeyValue().getKey().equals(displayValues.get(attrObj.getId()))){
+							cbx.setSelectedIndex(i);
+						}
+					}
+					cbx.setEnabled(false);
+				}
 				compt = cbx;
 			}
 		} else if(StringUtils.isNotBlank(attrObj.getReferConfig())){//鍙傜収鐨勯渶瑕佽缃垚涓嬫媺妗嗭紝骞朵笖鍙
@@ -968,34 +987,69 @@
 			cbx.setModel(model);
 			compt = cbx;
 		} else { // 涓嶅瓨鍦ㄥ彇鍊艰寖鍥村垯鎸夌被鍨嬬敓鎴愪笉鍚岀殑鎺т欢
-			 if (attrObj.getAttributeDataType().equals(VciFieldTypeEnum.VTBoolean)) { // Boolean绫诲瀷
+			 if (attrObj.getAttributeDataType().equals(VciFieldTypeEnum.VTBoolean.toString())) { // Boolean绫诲瀷
 				VCIJComboBox cbx = new VCIJComboBox();
 				DefaultComboBoxModel model = new DefaultComboBoxModel();
 				model.addElement("0");
 				model.addElement("1");
 				cbx.setModel(model);
+				if(displayValues.containsKey(attrObj.getId())){
+					cbx.setSelectedIndex(Integer.parseInt(displayValues.get(attrObj.getId())));
+					cbx.setEnabled(false);
+					return cbx;
+				}
 				compt = cbx;
-			} else if (attrObj.getAttributeDataType().equals(VciFieldTypeEnum.VTDate)) { // 鏃ユ湡绫诲瀷
-				compt = new VCIJCalendarPanel("yyyy-MM-dd",
-					attrObj.getRequireFlag().equals("true"), true, false);
-			} else if (attrObj.getAttributeDataType().equals(VciFieldTypeEnum.VTDateTime)) { // 鏃ユ湡绫诲瀷
-				 compt = new VCIJCalendarPanel("yyyy-MM-dd HH:mm:ss",
+			} else if (attrObj.getAttributeDataType().equals(VciFieldTypeEnum.VTDate.toString())) { // 鏃ユ湡绫诲瀷
+				 VCIJCalendarPanel aTrue = new VCIJCalendarPanel("yyyy-MM-dd",
 					 attrObj.getRequireFlag().equals("true"), true, false);
-			 }else if (attrObj.getAttributeDataType().equals(VciFieldTypeEnum.VTTime)) { // 鏃ユ湡绫诲瀷
-				 compt = new VCIJCalendarPanel("HH:mm:ss",
+				 if(displayValues.containsKey(attrObj.getId())){
+					 aTrue.setDateString(displayValues.get(attrObj.getId()));
+					 aTrue.setEnabled(false);
+					 return aTrue;
+				 }
+				 compt = aTrue;
+			} else if (attrObj.getAttributeDataType().equals(VciFieldTypeEnum.VTDateTime.toString())) { // 鏃ユ湡绫诲瀷
+				 VCIJCalendarPanel aTrue = new VCIJCalendarPanel("yyyy-MM-dd HH:mm:ss",
 					 attrObj.getRequireFlag().equals("true"), true, false);
+				 if(displayValues.containsKey(attrObj.getId())){
+					 aTrue.setDateString(displayValues.get(attrObj.getId()));
+					 aTrue.setEnabled(false);
+					 return aTrue;
+				 }
+				 compt = aTrue;
+			 }else if (attrObj.getAttributeDataType().equals(VciFieldTypeEnum.VTTime.toString())) { // 鏃ユ湡绫诲瀷
+				 VCIJCalendarPanel aTrue = new VCIJCalendarPanel("HH:mm:ss",
+					 attrObj.getRequireFlag().equals("true"), true, false);
+				 if(displayValues.containsKey(attrObj.getId())){
+					 aTrue.setDateString(displayValues.get(attrObj.getId()));
+					 aTrue.setEnabled(false);
+					 return aTrue;
+				 }
+				 compt = aTrue;
 			 }
-			 else if (attrObj.getAttributeDataType().equals(VciFieldTypeEnum.VTDouble)||attrObj.getAttributeDataType().equals(VciFieldTypeEnum.VTLong)) { // Real绫诲瀷
+			 else if (attrObj.getAttributeDataType().equals(VciFieldTypeEnum.VTDouble.toString())||attrObj.getAttributeDataType().equals(VciFieldTypeEnum.VTLong.toString())) { // Real绫诲瀷
 				RealTextField txt = new RealTextField("");
 				txt.setRequired(attrObj.getRequireFlag().equals("true"));
+				if(displayValues.containsKey(attrObj.getId())){
+					txt.setText(displayValues.get(attrObj.getId()));
+					txt.setEditable(false);
+				}
 				compt = txt;
-			} else if (attrObj.getAttributeDataType().equals(VciFieldTypeEnum.VTInteger)) { // Integer绫诲瀷
+			} else if (attrObj.getAttributeDataType().equals(VciFieldTypeEnum.VTInteger.toString())) { // Integer绫诲瀷
 				IntegerTextField txt = new IntegerTextField("");
 				txt.setRequired(attrObj.getRequireFlag().equals("true"));
+				if(displayValues.containsKey(attrObj.getId())){
+					 txt.setText(displayValues.get(attrObj.getId()));
+					 txt.setEditable(false);
+				}
 				compt = txt;
 			}
 			 else{
 				 VCIJTextField txt = new VCIJTextField(this,attrObj.getRequireFlag().equals("true"));
+				 if(displayValues.containsKey(attrObj.getId())){
+					 txt.setText(displayValues.get(attrObj.getId()));
+					 txt.setEditable(false);
+				 }
 				 compt = txt;
 				 textCompts.add(txt);
 			 }
@@ -1153,7 +1207,8 @@
 	private void getComptAttrValue( CodeClassifyTemplateAttrVO  tempPropObj, LinkedHashMap<String, JComponent> attrIdToCtrlMaps) {
 		Map<String,String> dataMap=new HashMap<>();
 		Map<String,String> condtionMap=new HashMap<>();
-		attrIdToCtrlMaps.forEach((key,compt)->{
+		for(String key: attrIdToCtrlMaps.keySet()){
+			JComponent compt = attrIdToCtrlMaps.get(key);
 			String value = "";
 			if (compt instanceof JTextComponent) {
 				value = ((JTextComponent) compt).getText();
@@ -1170,7 +1225,7 @@
 			}
 			dataMap.put(key,value);
 			condtionMap.put("dataMap["+key+"]",value);
-		});
+		}
 		condtionMap.put("componentRuleValue",tempPropObj.getComponentRule());
 		Map<String,String> headerMap=new HashMap<>();
 		headerMap.put("Blade-Auth",this.tokenUserObject.getAccess_token());
@@ -1263,7 +1318,7 @@
 		dialog.setVisible(true);
 	}
 
-	private void doSearch(VCIJComboxBox comboxBox,CodeBasicSecVO secObj){
+	private void doSearch(final VCIJComboxBox comboxBox, CodeBasicSecVO secObj){
 		if(StringUtils.isBlank(secObj.getReferConfig())){
 			VCIOptionPane.showMessage(this,"鍙傜収閰嶇疆淇℃伅涓嶆纭�,璇锋牳瀵癸紒");
 			return;
@@ -1552,7 +1607,10 @@
 		LinkedList<String> listValues = new LinkedList<String>();
 		// 鍚勫睘鎬х殑绫诲瀷
 		LinkedList<String> listDataTypes = new LinkedList<String>();
-		Map<String,CodeClassifyTemplateAttrVO> codeClassifyTemplateAttrVOMap=transmitForRMData.getTempPropObjsList().stream().collect(Collectors.toMap(s -> s.getId(), t -> t));
+		Map<String,CodeClassifyTemplateAttrVO> codeClassifyTemplateAttrVOMap = new HashMap<>();
+		for (CodeClassifyTemplateAttrVO codeClassifyTemplateAttrVO : transmitForRMData.getTempPropObjsList()) {
+			codeClassifyTemplateAttrVOMap.put(codeClassifyTemplateAttrVO.getId(),codeClassifyTemplateAttrVO);
+		}
 		Iterator<String> keys = attrIdToCtrlMaps.keySet().iterator();
 		JComponent compt = null;
 		JComponent firstCompt = null;
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyFor410SearchProvider.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyFor410SearchProvider.java
index ad3d323..ced587b 100644
--- a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyFor410SearchProvider.java
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyFor410SearchProvider.java
@@ -13,6 +13,7 @@
 import com.vci.rmip.code.client.codeapply.Apply410.object.R;
 import com.vci.rmip.code.client.codeapply.Apply410.utils.HttpUtil;
 import com.vci.rmip.code.client.codeapply.Apply410.utils.ListUtil;
+import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateAttrVO;
 import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateVO;
 import com.vci.rmip.code.client.codeapply.Apply410.utils.ConfigUtils;
 import com.vci.ubcs.starter.web.util.VciBaseUtil;
@@ -36,10 +37,10 @@
 		CodeClassifyTemplateVO codeClassifyTemplateVO=this.dialog.getOwnerPanel().getCurrentCodeClassifyTemplateVO();
 		if(codeClassifyTemplateVO!=null){
 			if(!CollectionUtils.isEmpty(codeClassifyTemplateVO.getAttributes())){
-				codeClassifyTemplateVO.getAttributes().stream().forEach(codeClassifyTemplateAttrVO -> {
+				for (CodeClassifyTemplateAttrVO codeClassifyTemplateAttrVO : codeClassifyTemplateVO.getAttributes()) {
 					fieldList.add(codeClassifyTemplateAttrVO.getId());
 					nameList.add(codeClassifyTemplateAttrVO.getName());
-				});
+				}
 			}
 		}
 		fields = fieldList.toArray(new String[]{});
@@ -61,11 +62,11 @@
 		String data="";
 		for (String field:fields){
 			if(defaultDataMap.containsKey(field+"_text")){
-				 data=defaultDataMap.getOrDefault(field+"_text","");
+				 data=defaultDataMap.get(field+"_text") ;
 			}else if(defaultDataMap.containsKey(field+"Text")){
-				data=defaultDataMap.getOrDefault(field+"Text","");
+				data=defaultDataMap.get(field+"Text") ;
 			}else{
-				data=defaultDataMap.getOrDefault(field,"");
+				data=defaultDataMap.get(field);
 			}
 
 			res.setPropertyValue(getColumns()[i++], data);
@@ -108,11 +109,11 @@
 		List<Map>  dataList= dataGrid.getData();
 		List<BaseModel> hostInfos=new ArrayList<>();
 		//List<BaseModel> hostInfos=	ListUtil.listMapParseListObj(dataList, BaseModel.class);
-		dataList.stream().forEach(map->{
+		for (Map map : dataList) {
 			BaseModel baseModel= ListUtil.mapParseJavaBean(map,BaseModel.class);
 			baseModel.setData(map);
 			hostInfos.add(baseModel);
-		});
+		}
 
 		//List<BaseModel> hostInfos = (List<BaseModel>) dataList.stream().map(entity -> JSONUtil.toBean(JSONUtil.parseObj(entity), BaseModel.class)).collect(Collectors.toList());
 
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyPanelFor410.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyPanelFor410.java
index 5e0fa87..c63e3ee 100644
--- a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyPanelFor410.java
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyPanelFor410.java
@@ -59,6 +59,10 @@
 	 * 瀛樺偍灞炴�у拰鍊肩殑Map,key:灞炴�у悕绉帮紝value锛氬睘鎬у��
 	 */
 	private String deptName = null;
+	/**
+	 * 瀛樺偍灞炴�у拰鍊肩殑Map,key,鐢ㄤ簬榛樿鍊肩殑鏄剧ず
+	 */
+	private Map displayValues = new HashMap<String,String>();
 
 	private String[] libName = new String[]{};//浠g爜椤瑰悕绉�
 	private VCIBaseTree leftTree = null;
@@ -78,7 +82,7 @@
 	 * @param deptName
 	 * @param libName
 	 */
-	public CodeApplyPanelFor410(CodeApplyFor410Dialog owner , TokenUserObject tokenUserObject, boolean isIntegrate, String clsfName, String deptName, String[] libName){
+	public CodeApplyPanelFor410(CodeApplyFor410Dialog owner , TokenUserObject tokenUserObject, boolean isIntegrate, String clsfName, String deptName, String[] libName,Map displayValues){
 		this.tokenUserObject = tokenUserObject;
 		this.owner =owner;
 		rightMainPanel = new CodeApplyFor410MainPanel(transmitTreeObject,tokenUserObject,getCurrentCodeClassifyTemplateVO());
@@ -86,6 +90,7 @@
 		this.clsfName = clsfName;
 		this.deptName = deptName;
 		this.libName = libName;
+		this.displayValues = displayValues;
 		init();
 		initActionListener();
 	}
@@ -188,9 +193,9 @@
 			VCIOptionPane.showMessage(this,r.getMsg());
 		}
 		if(!CollectionUtils.isEmpty(codeClassifyList)){
-			codeClassifyList.stream().forEach(codeClassify -> {
+			for (CodeClassify codeClassify : codeClassifyList) {
 				codeItemCombo.addItem(codeClassify);
-			});
+			}
 			codeItemCombo.setSelectedIndex(0);
 		}
 		initLeftPanel();
@@ -293,7 +298,7 @@
 				initBtnStatus(res);
 			}
 		}
-		rightMainPanel = new CodeApplyFor410MainPanel(transmitTreeObject,tokenUserObject,deptName,getCurrentCodeClassifyTemplateVO());
+		rightMainPanel = new CodeApplyFor410MainPanel(transmitTreeObject,tokenUserObject,deptName,getCurrentCodeClassifyTemplateVO(),displayValues);
 		scrollPane.setViewportView(rightMainPanel);
 		rightMainPanel.buildMainPanel(1);
 		int location = jspLeftToRight.getDividerLocation();
@@ -358,7 +363,7 @@
 		transmitTreeObject.setCurrentTreeNode(selectedTreeNode);
 		if(selectedTreeNode.isRoot() && selectedTreeNode.getObj() instanceof String) return;
 		scrollPane = new JScrollPane();
-		rightMainPanel = new CodeApplyFor410MainPanel(transmitTreeObject,tokenUserObject,deptName,getCurrentCodeClassifyTemplateVO());
+		rightMainPanel = new CodeApplyFor410MainPanel(transmitTreeObject,tokenUserObject,deptName,getCurrentCodeClassifyTemplateVO(),displayValues);
 		scrollPane.setViewportView(rightMainPanel);
 		rightMainPanel.buildMainPanel(1);
 		VCIJPanel rightPanel = new VCIJPanel();
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyPanelFor410ActionListener.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyPanelFor410ActionListener.java
index d262684..793fb25 100644
--- a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyPanelFor410ActionListener.java
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyPanelFor410ActionListener.java
@@ -25,6 +25,7 @@
 	private LinkedHashMap<String, Runnable> actionMaps = new LinkedHashMap<String, Runnable>();
 	boolean codeAlreadExist = false;
 	private String url= ConfigUtils.getConfigValue("410.code.url","http://127.0.0.1:36014/codeApplySwingController");
+	private String classifyGroupCode= ConfigUtils.getConfigValue("410.code.codeApply.classifyGroupCode");
 	public CodeApplyPanelFor410ActionListener(CodeApplyPanelFor410 owner){
 		this.owner = owner;
 		this.initActionMap();
@@ -103,12 +104,12 @@
 		codeOrderDTO.setTemplateOid(codeClassifyTemplateVO.getOid());
 		codeOrderDTO.setCodeRuleOid(codeRuleVO.getOid());
 		List<CodeOrderSecDTO> secDTOList=new ArrayList<>();
-		keyValueList.stream().forEach(keyValue -> {
+		for (KeyValue keyValue : keyValueList) {
 			CodeOrderSecDTO codeOrderSecDTO=new CodeOrderSecDTO();
 			codeOrderSecDTO.setSecOid(keyValue.getKey());
 			codeOrderSecDTO.setSecValue(keyValue.getValue());
 			secDTOList.add(codeOrderSecDTO);
-		});
+		}
 		codeOrderDTO.setLcStatus("Released");
 		codeOrderDTO.setSecDTOList(secDTOList);
 		codeOrderDTO.setData(dataMap);
@@ -119,6 +120,9 @@
 		String code="";
 		//鏍¢獙鍏抽敭灞炴�у瓨鍦ㄧ殑鏁版嵁鐩存帴杩斿洖缂栫爜
 		R checkKeyAttrOnOrderR= HttpUtil.sendPost(url+"/checkKeyAttrOnOrderFordatas",object.toString(),headerMap);
+		//鏌ヨ褰撳墠鐢宠缂栫爜鐨勭被鍨�
+		R checkGroupCode= HttpUtil.sendGet(url+"/checkGroupCode?oid="+codeClassify.getOid()+
+			"&classifyGroupCode="+classifyGroupCode,null,headerMap);
 		if(checkKeyAttrOnOrderR.isSuccess()){
 			List<Map> list=(List)checkKeyAttrOnOrderR.getData();
 			if(!CollectionUtils.isEmpty(list)) {
@@ -127,6 +131,15 @@
 				this.owner.getApplyTxt().requestFocusInWindow();
 				this.owner.getApplyTxt().selectAll();
 				this.owner.setAttrNameAndValMap(attrNameAndValMap);
+				if(checkGroupCode.isSuccess()){
+					if(checkGroupCode.getData().equals("true")){
+						VCIOptionPane.showMessage(this.owner, "褰撳墠鍒嗙被鐨勪紒涓氱紪鐮佷负锛�"+list.get(0).get("GROUPCODE"));
+					}else{
+						VCIOptionPane.showMessage(this.owner, "褰撳墠缂栫爜鍒嗙被鏈壘鍒扮浉搴旂殑闆嗗洟锛岃妫�鏌ワ紒锛�");
+					}
+				}else {
+					VCIOptionPane.showMessage(this.owner, "杩滅▼璋冪敤澶辫触锛岃閲嶈瘯锛�");
+				}
 				return;
 			}
 		}
@@ -139,6 +152,20 @@
 			this.owner.setAttrNameAndValMap(attrNameAndValMap);
 		}else{
 			VCIOptionPane.showMessage(this.owner,r.getMsg());
+		}
+		if(checkGroupCode.isSuccess()){
+			if(checkGroupCode.getData().equals("false")){
+				Map<String,String> applyMap = new HashMap<>();
+				applyMap.put("oids",codeClassify.getOid());
+				applyMap.put("btmName",codeClassify.getBtmname());
+				Object applyGroupCodeData = JSONObject.toJSON(applyMap);
+				R applyResult= HttpUtil.sendPost(url+"/DockingPreApplyCode/applyGroupCode",applyGroupCodeData.toString(),headerMap);
+				if(!applyResult.isSuccess()){
+					VCIOptionPane.showMessage(this.owner, r.getMsg());
+				}
+			}
+		}else {
+			VCIOptionPane.showMessage(this.owner, "杩滅▼璋冪敤澶辫触锛岃娉ㄦ剰锛�");
 		}
 
 	}
@@ -161,7 +188,8 @@
 		CodeApplyFor410MainPanel rightMainPanel2 = this.owner.getRightMainPanel();
 		LinkedHashMap<String, JComponent> attrInnerNameToCtrlMaps = rightMainPanel2.getAttrInnerNameToCtrlMaps();
 		if(attrInnerNameToCtrlMaps!=null&&attrInnerNameToCtrlMaps.size()>0){
-			attrInnerNameToCtrlMaps.forEach((key,component)->{
+			for(String key : attrInnerNameToCtrlMaps.keySet()){
+				JComponent component = attrInnerNameToCtrlMaps.get(key);
 				if(component instanceof JTextComponent){
 					if(((JTextComponent) component).isEnabled())
 						((JTextComponent) component).setText("");
@@ -169,7 +197,7 @@
 					if(((VCIJComboBox) component).isEnabled())
 						((VCIJComboBox) component).setSelectedIndex(0);
 				}
-			});
+			}
 		}
 		String applyCode = this.owner.getApplyCode();
 		if(StringUtils.isBlank(applyCode)) {
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeDataMainPanelDataProvider.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeDataMainPanelDataProvider.java
index 23c6a08..31f6b45 100644
--- a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeDataMainPanelDataProvider.java
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeDataMainPanelDataProvider.java
@@ -20,7 +20,6 @@
 import org.apache.commons.collections4.CollectionUtils;
 
 import java.util.*;
-import java.util.stream.Collectors;
 
 public class CodeDataMainPanelDataProvider extends AbstractVCIJTableDataProvider<BaseModel> {
 	private CodeDataMainPanel ownerPanel;
@@ -37,12 +36,12 @@
 		LinkedList<String> nameList = new LinkedList<>();
 		LinkedList<String> fieldList = new LinkedList<>();
 		List<CodeShowFieldConfigVO> colsList=ownerPanel.getUiFormRefer().getCodeShowFieldConfigVOS();
-		colsList.stream().forEach(columns->{
+		for (CodeShowFieldConfigVO columns : colsList) {
 			String  title= columns.getTitle();
 			String field=columns.getField();
 			nameList.add(title);
 			fieldList.add(field);
-		});
+		}
 		specialColumns = nameList.toArray(new String[]{});
 		fields = fieldList.toArray(new String[]{});
 		return specialColumns;
@@ -61,7 +60,7 @@
 		VCIJTableNode<BaseModel> res = new VCIJTableNode<BaseModel>(model);
 		int i=dataColumnStartIndex;
 		for (String field:fields){
-			String data=defaultDataMap.getOrDefault(field,"");
+			String data=defaultDataMap.containsKey(field) ? defaultDataMap.get(field) : "" ;
 			res.setPropertyValue(getColumns()[i++], data);
 		}
 		return res;
@@ -81,19 +80,18 @@
 			List<CodeSrchCondConfigVO> codeSrchCondConfigVOS=uiFormRefer.getCodeSrchCondConfigVOS();
 			JSONObject jsonObject=new JSONObject();
 			if(!CollectionUtils.isEmpty(codeSrchCondConfigVOS)){
-				codeSrchCondConfigVOS.stream().forEach(codeSrchCondConfigVO -> {
+				for (CodeSrchCondConfigVO codeSrchCondConfigVO : codeSrchCondConfigVOS) {
 					String field=codeSrchCondConfigVO.getFilterField();
 					String value=codeSrchCondConfigVO.getFilterValue();
 					String filterType= codeSrchCondConfigVO.getFilterType();
 					condtionMap.put("conditionMap["+field+"]",value);
-				});
+				}
 			}
 			Map<String, String> customCondtionMap=ownerPanel.getCustomCondtionMap();
 			if(customCondtionMap!=null&&customCondtionMap.size()>0){
-				customCondtionMap.forEach((field, value) -> {
-					condtionMap.put("conditionMap["+field+"]",value);
-				});
-
+				for(String field : customCondtionMap.keySet()){
+					condtionMap.put("conditionMap["+field+"]",customCondtionMap.get(field));
+				}
 			}
 			Map<String,String> headerMap=new HashMap<>();
 			headerMap.put("Blade-Auth",this.ownerPanel.getTokenUserObject().getAccess_token());
@@ -116,7 +114,10 @@
 		List dataList=  iPage.getRecords();
 		BaseModel [] baseModels=new BaseModel[]{};
 		if(!CollectionUtils.isEmpty(dataList)) {
-			List<BaseModel> hostInfos = (List<BaseModel>) dataList.stream().map(entity -> JSONUtil.toBean(JSONUtil.parseObj(entity), BaseModel.class)).collect(Collectors.toList());
+			List<BaseModel> hostInfos = new ArrayList<>();
+			for (Object entity : dataList) {
+				hostInfos.add(JSONUtil.toBean(JSONUtil.parseObj(entity),BaseModel.class));
+			}
 			baseModels = hostInfos.toArray(new BaseModel[]{});
 		}
 		return baseModels;
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/RMDataReferTempDialogActionListener.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/RMDataReferTempDialogActionListener.java
index 96e4caa..8af7e4f 100644
--- a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/RMDataReferTempDialogActionListener.java
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/RMDataReferTempDialogActionListener.java
@@ -65,8 +65,8 @@
 				if(treeNode.getObj() instanceof Tree) {
 					Tree tree =(Tree)treeNode.getObj();
 					Map<String,String> attibuteMap=	tree.getAttributes();
-					String fieldValue=attibuteMap.getOrDefault(valueField,"");
-					String textValue=attibuteMap.getOrDefault(textField,"");
+					String fieldValue=attibuteMap.containsKey(valueField) ? attibuteMap.get(valueField) : "";
+					String textValue=attibuteMap.containsKey(textField) ? attibuteMap.get(textField) : "";
 					KeyValue keyValue=new KeyValue();
 					keyValue.setKey(fieldValue);
 					keyValue.setValue(textValue);
@@ -85,8 +85,8 @@
 				BaseModel baseModel=list.get(0);
 				Map<String, String> defaultDataMap= VciBaseUtil.objectToMapString(list.get(0));
 				defaultDataMap.putAll(baseModel.getData());
-				String fieldValue=defaultDataMap.getOrDefault(valueField,"");
-				String textValue=defaultDataMap.getOrDefault(textField,"");
+				String fieldValue=defaultDataMap.containsKey(valueField) ? defaultDataMap.get(valueField) : "";
+				String textValue=defaultDataMap.containsKey(textField) ? defaultDataMap.get(textField) : "";
 				KeyValue keyValue=new KeyValue();
 				keyValue.setKey(fieldValue);
 				keyValue.setValue(textValue);
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/IPage.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/IPage.java
index 9a6cdfc..5255a5f 100644
--- a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/IPage.java
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/IPage.java
@@ -1,49 +1,48 @@
 package com.vci.rmip.code.client.codeapply.Apply410.object;
+
 import java.io.Serializable;
 import java.util.List;
-import java.util.function.Function;
-import java.util.stream.Collectors;
 
 public interface IPage<T> extends Serializable {
 	List<OrderItem> orders();
 
-	default boolean optimizeCountSql() {
-		return true;
-	}
+//	default boolean optimizeCountSql() {
+//		return true;
+//	}
 
-	default boolean optimizeJoinOfCountSql() {
-		return true;
-	}
+//	default boolean optimizeJoinOfCountSql() {
+//		return true;
+//	}
+//
+//	default boolean searchCount() {
+//		return true;
+//	}
+//
+//	default long offset() {
+//		long current = this.getCurrent();
+//		return current <= 1L ? 0L : Math.max((current - 1L) * this.getSize(), 0L);
+//	}
 
-	default boolean searchCount() {
-		return true;
-	}
+//	default Long maxLimit() {
+//		return null;
+//	}
+//
+//	default long getPages() {
+//		if (this.getSize() == 0L) {
+//			return 0L;
+//		} else {
+//			long pages = this.getTotal() / this.getSize();
+//			if (this.getTotal() % this.getSize() != 0L) {
+//				++pages;
+//			}
+//
+//			return pages;
+//		}
+//	}
 
-	default long offset() {
-		long current = this.getCurrent();
-		return current <= 1L ? 0L : Math.max((current - 1L) * this.getSize(), 0L);
-	}
-
-	default Long maxLimit() {
-		return null;
-	}
-
-	default long getPages() {
-		if (this.getSize() == 0L) {
-			return 0L;
-		} else {
-			long pages = this.getTotal() / this.getSize();
-			if (this.getTotal() % this.getSize() != 0L) {
-				++pages;
-			}
-
-			return pages;
-		}
-	}
-
-	default IPage<T> setPages(long pages) {
-		return this;
-	}
+//	default IPage<T> setPages(long pages) {
+//		return this;
+//	}
 
 	List<T> getRecords();
 
@@ -61,11 +60,11 @@
 
 	IPage<T> setCurrent(long current);
 
-	default <R> IPage<T> convert(Function<? super T, ? extends R> mapper) {
-		List<T> collect = (List)this.getRecords().stream().map(mapper).collect(Collectors.toList());
-		return this.setRecords(collect);
-	}
-	default String countId() {
-		return null;
-	}
+//	default <R> IPage<T> convert(Function<? super T, ? extends R> mapper) {
+//		List<T> collect = (List)this.getRecords().stream().map(mapper).collect(Collectors.toList());
+//		return this.setRecords(collect);
+//	}
+//	default String countId() {
+//		return null;
+//	}
 }
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/OrderItem.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/OrderItem.java
index 2a35b8f..0f4058b 100644
--- a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/OrderItem.java
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/OrderItem.java
@@ -1,7 +1,7 @@
 package com.vci.rmip.code.client.codeapply.Apply410.object;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
-import java.util.stream.Collectors;
 
 public class OrderItem {
 
@@ -18,11 +18,21 @@
 	}
 
 	public static List<OrderItem> ascs(String... columns) {
-		return (List) Arrays.stream(columns).map(OrderItem::asc).collect(Collectors.toList());
+		List<OrderItem> orderItems = new ArrayList<>();
+		for (String column : columns) {
+			orderItems.add(asc(column));
+		}
+		return orderItems;
+//			(List) Arrays.stream(columns).map(OrderItem::asc).collect(Collectors.toList());
 	}
 
 	public static List<OrderItem> descs(String... columns) {
-		return (List)Arrays.stream(columns).map(OrderItem::desc).collect(Collectors.toList());
+		List<OrderItem> orderItems = new ArrayList<>();
+		for (String column : columns) {
+			orderItems.add(desc(column));
+		}
+		return orderItems;
+//			(List)Arrays.stream(columns).map(OrderItem::desc).collect(Collectors.toList());
 	}
 
 	private static OrderItem build(String column, boolean asc) {
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/Page.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/Page.java
index 0f2d41b..db7c639 100644
--- a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/Page.java
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/Page.java
@@ -3,7 +3,6 @@
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
-import java.util.function.Predicate;
 
 public class Page<T> {
 	private static final long serialVersionUID = 8545996863226528798L;
@@ -113,25 +112,25 @@
 		return this.maxLimit;
 	}
 
-	private String[] mapOrderToArray(Predicate<OrderItem> filter) {
-		List<String> columns = new ArrayList(this.orders.size());
-		this.orders.forEach((i) -> {
-			if (filter.test(i)) {
-				columns.add(i.getColumn());
-			}
+//	private String[] mapOrderToArray(Predicate<OrderItem> filter) {
+//		List<String> columns = new ArrayList(this.orders.size());
+//		this.orders.forEach((i) -> {
+//			if (filter.test(i)) {
+//				columns.add(i.getColumn());
+//			}
+//
+//		});
+//		return (String[])columns.toArray(new String[0]);
+//	}
 
-		});
-		return (String[])columns.toArray(new String[0]);
-	}
-
-	private void removeOrder(Predicate<OrderItem> filter) {
-		for(int i = this.orders.size() - 1; i >= 0; --i) {
-			if (filter.test(this.orders.get(i))) {
-				this.orders.remove(i);
-			}
-		}
-
-	}
+//	private void removeOrder(Predicate<OrderItem> filter) {
+//		for(int i = this.orders.size() - 1; i >= 0; --i) {
+//			if (filter.test(this.orders.get(i))) {
+//				this.orders.remove(i);
+//			}
+//		}
+//
+//	}
 
 	public Page<T> addOrder(OrderItem... items) {
 		this.orders.addAll(Arrays.asList(items));
diff --git a/Source/UBCS/ubcs-codeApply/src/main/resources/properties/conf.properties b/Source/UBCS/ubcs-codeApply/src/main/resources/properties/conf.properties
index 83342df..9057012 100644
--- a/Source/UBCS/ubcs-codeApply/src/main/resources/properties/conf.properties
+++ b/Source/UBCS/ubcs-codeApply/src/main/resources/properties/conf.properties
@@ -26,5 +26,4 @@
 410.code.token.tenantId=000000
 410.code.token.authorization=Basic c3dvcmQ6c3dvcmRfc2VjcmV0
 410.code.token.contentType=application/x-www-form-urlencoded
-
-
+410.code.codeApply.classifyGroupCode=wupin#appendix#renyuanku
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeClassifyValueVO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeClassifyValueVO.java
index 7194c73..305a111 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeClassifyValueVO.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeClassifyValueVO.java
@@ -23,7 +23,7 @@
 	/**
 	* 鍒嗙被鐮佹涓婚敭鏄剧ず鏂囨湰
 	*/
-	private String codeclassifysecoidName;
+	private String codeClassifySecOidName;
 
 	/**
 	* 鐮佸�煎簭鍙�
@@ -61,15 +61,15 @@
 	/**
 	 * 鑾峰彇鍒嗙被鐮佹涓婚敭鏄剧ず鏂囨湰
 	 */
-	public String getCodeclassifysecoidName (){
-		return codeclassifysecoidName;
+	public String getCodeClassifySecOidName (){
+		return codeClassifySecOidName;
 	}
 
 	/**
 	* 璁剧疆鍒嗙被鐮佹涓婚敭鏄剧ず鏂囨湰
 	*/
-	public void setCodeclassifysecoidName (String codeclassifysecoidName){
-		this.codeclassifysecoidName = codeclassifysecoidName;
+	public void setCodeClassifySecOidName (String codeclassifysecoidName){
+		this.codeClassifySecOidName = codeclassifysecoidName;
 	}
 	/**
 	 * 鑾峰彇 鐮佸�煎簭鍙�
@@ -118,16 +118,16 @@
 		this.name = name;
 	}
 
-
 	@Override
 	public String toString() {
 		return "CodeClassifyValueVO{" +
 				"codeClassifySecOid='" + codeClassifySecOid + '\'' +
-				", codeclassifysecoidName='" + codeclassifysecoidName + '\'' +
+				", codeClassifySecOidName='" + codeClassifySecOidName + '\'' +
 				", orderNum=" + orderNum +
 				", parentClassifyValueOid='" + parentClassifyValueOid + '\'' +
 				", id='" + id + '\'' +
 				", name='" + name + '\'' +
 				"} " + super.toString();
 	}
+
 }
diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/pagemodel/Tree.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/pagemodel/Tree.java
index 0baa065..61d8b70 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/pagemodel/Tree.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/pagemodel/Tree.java
@@ -207,6 +207,7 @@
 
 	}
 
+	@Override
 	public String toString() {
 		return "Tree{oid='" + this.oid + '\'' + ", text='" + this.text + '\'' + ", leaf=" + this.leaf + ", showCheckbox=" + this.showCheckbox + ", checked=" + this.checked + ", children=" + this.children + ", icon='" + this.icon + '\'' + ", iconCls='" + this.iconCls + '\'' + ", parentId='" + this.parentId + '\'' + ", parentName='" + this.parentName + '\'' + ", parentBtmName='" + this.parentBtmName + '\'' + ", expanded=" + this.expanded + ", href='" + this.href + '\'' + ", index='" + this.index + '\'' + ", attributes=" + this.attributes + '}';
 	}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/config/AuthenticationInterceptor.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/config/AuthenticationInterceptor.java
new file mode 100644
index 0000000..b8cfd51
--- /dev/null
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/config/AuthenticationInterceptor.java
@@ -0,0 +1,28 @@
+package com.vci.ubcs.code.config;
+
+import org.springframework.web.servlet.HandlerInterceptor;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * @author ludc
+ * @date 2023/9/12 11:49
+ */
+public class AuthenticationInterceptor implements HandlerInterceptor {
+	@Override
+	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
+		return HandlerInterceptor.super.preHandle(request, response, handler);
+	}
+
+	@Override
+	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
+		HandlerInterceptor.super.postHandle(request, response, handler, modelAndView);
+	}
+
+	@Override
+	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
+		HandlerInterceptor.super.afterCompletion(request, response, handler, ex);
+	}
+}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/config/WebConfig.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/config/WebConfig.java
new file mode 100644
index 0000000..ad32b4c
--- /dev/null
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/config/WebConfig.java
@@ -0,0 +1,21 @@
+package com.vci.ubcs.code.config;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+/**
+ * webservice鎺ュ彛鎷︽埅鍣�
+ * @author ludc
+ * @date 2023/9/12 11:16
+ */
+@Configuration
+public class WebConfig implements WebMvcConfigurer {
+
+	@Override
+	public void addInterceptors(InterceptorRegistry registry) {
+		registry.addInterceptor(new AuthenticationInterceptor())
+			.addPathPatterns("/api/protected/**");
+	}
+
+}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeApplySwingController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeApplySwingController.java
index 0634134..52d55bb 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeApplySwingController.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeApplySwingController.java
@@ -237,4 +237,15 @@
 	public R checkKeyAttrOnOrderFordatas(@RequestBody CodeOrderDTO orderDTO) throws Exception {
 		return R.data(mdmEngineService.checkKeyAttrOnOrderFordatas(orderDTO));
 	}
+
+	/**
+	 * 闆嗗洟/浼佷笟鐮佹鍒ゆ柇
+	 * @param parameter 浼犲叆鏁版嵁 ,classifyGroupCode:閰嶇疆鐨勪腑鐨勫垎绫婚《鑺傜偣锛宱id锛氶�夋嫨鑺傜偣鐨刼id--锛宯owApplyCode锛氬綋鍓嶇敵璇风紪鐮佺殑鍒嗙被
+	 * @return 鎵ц缁撴灉
+	 */
+	@GetMapping("/checkGroupCode")
+	@VciBusinessLog(operateName = "闆嗗洟/浼佷笟鐮佹鍒ゆ柇")
+	public R checkGroupCode(Map<String,String> parameter) throws Exception {
+		return R.data(mdmEngineService.checkGroupCode(parameter));
+	}
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/PasswordFreeLoginController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/PasswordFreeLoginController.java
new file mode 100644
index 0000000..4e04c10
--- /dev/null
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/PasswordFreeLoginController.java
@@ -0,0 +1,33 @@
+package com.vci.ubcs.code.controller;
+
+import com.vci.ubcs.code.service.IPasswordFreeLoginService;
+import io.swagger.annotations.Api;
+import org.springblade.core.tool.api.R;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+/**
+ * @author ludc
+ * @date 2023/9/12 9:07
+ */
+@RestController
+@RequestMapping("/passwordFree")
+@Api(value = "鍏嶅瘑鐧诲綍鎺ュ彛", tags = "鍏嶅瘑鐧诲綍鎺ュ彛")
+public class PasswordFreeLoginController {
+
+	@Resource
+	private IPasswordFreeLoginService passwordFreeLoginService;
+
+	@GetMapping("/login")
+	public R passwordFreeLogin(String account) {
+		boolean resBoolean = passwordFreeLoginService.passwordFreeLogin(account);
+		return R.status(resBoolean);
+	}
+
+
+
+
+}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyMapper.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyMapper.java
index 547f5a7..a7c9b89 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyMapper.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyMapper.java
@@ -161,4 +161,12 @@
 	 * @param classifyList
 	 */
 	void batchUpdateLcStatus(@Param("records") List<CodeClassify> classifyList);
+
+	/**
+	 * 鍚戜笂鏌ヨ鏍戝舰缁撴瀯
+	 *
+	 * @param oid 鍒嗙被鐨勪富閿�
+	 * @return 鏁版嵁闆嗗悎
+	 */
+	List<CodeClassify> selectAllParents(@Param("oid") String oid);
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyValueMapper.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyValueMapper.java
index a8047ce..e9f569b 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyValueMapper.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyValueMapper.java
@@ -16,6 +16,8 @@
 
 	List<String> selectAllLevelChildOid(@Param("oid") String oid);
 
+	List<String> selectChildOid(@Param("oid") String oid);
+
 	Long countAllLevelChildOid(@Param("oid") String oid);
 
 	String getClassifyValueStr(@Param("oid") String oid);
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java
index e723eb7..3174c1e 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java
@@ -454,4 +454,10 @@
 	 */
 	public List<Map>  checkKeyAttrOnOrderFordatas(CodeOrderDTO orderDTO) ;
 
-	}
+	/**
+	 * 鏍规嵁褰撳墠鐢宠缂栫爜鐨勫垎绫伙紝閫愬眰寰�涓婃牎楠屾槸鍚︾鍚堝睘浜庨厤缃殑涓殑鍒嗙被瀛愯妭鐐圭殑鍒�
+	 * 绫伙紝濡傛灉绗﹀悎锛屽垯璇ュ垎绫荤敵璇风殑缂栫爜涓洪泦鍥㈢爜杩斿洖true锛屽弽涔嬪垯涓轰紒涓氱紪鐮佽繑鍥瀎alse
+	 * @param parameter 浼犲叆鏁版嵁,classifyGroupCode:閰嶇疆鐨勪腑鐨勫垎绫婚《鑺傜偣锛宱id锛氶�夋嫨鑺傜偣鐨刼id
+	 */
+	R checkGroupCode(Map<String, String> parameter);
+}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyValueServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyValueServiceImpl.java
index 88770ac..a586780 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyValueServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyValueServiceImpl.java
@@ -101,7 +101,7 @@
 		treeWrapperOptions.copyFromTreeQuery(treeQueryObject);
 		return revisionModelUtil.doList2Trees(voList,treeWrapperOptions,(CodeClassifyValueVO s) ->{
 			//鍙互鍦ㄨ繖閲屽鐞嗘爲鑺傜偣鐨勬樉绀�
-			return s.getId() + " " + s.getName() + (FrameworkDataLCStatus.DISABLED.getValue().equalsIgnoreCase(s
+			return s.getId() + " " + (Func.isNotEmpty(s.getName()) ? s.getName():"") + (FrameworkDataLCStatus.DISABLED.getValue().equalsIgnoreCase(s
 				.getLcStatus()) ? (" 銆愬仠鐢ㄣ�� ") : "");
 		});
 	}
@@ -130,11 +130,15 @@
 		BeanUtilForVCI.copyPropertiesIgnoreCase(codeClassifyValueDTO,codeClassifyValueDO);
 		//濉厖涓�浜涢粯璁ゅ��
 		DefaultAttrAssimtUtil.addDefaultAttrAssimt(codeClassifyValueDO, MdmBtmTypeConstant.CODE_CLASSIFY_VALUE);
+		LambdaQueryWrapper<CodeClassifyValue> wrapper = Wrappers.<CodeClassifyValue>query()
+			.lambda().eq(CodeClassifyValue::getCodeClassifySecOid, codeClassifyValueDO.getCodeClassifySecOid());
+		if(Func.isEmpty(codeClassifyValueDO.getParentClassifyValueOid())){
+			wrapper.isNull(CodeClassifyValue::getParentClassifyValueOid);
+		}else{
+			wrapper.eq(CodeClassifyValue::getParentClassifyValueOid, codeClassifyValueDO.getParentClassifyValueOid());
+		}
 		//鏌ヨ
-		List<CodeClassifyValue> existList = codeClassifyValueMapper.selectList(Wrappers.<CodeClassifyValue>query()
-			.lambda().eq(CodeClassifyValue::getCodeClassifySecOid, codeClassifyValueDO.getCodeClassifySecOid())
-			.eq(CodeClassifyValue::getParentClassifyValueOid, codeClassifyValueDO.getParentClassifyValueOid())
-		);
+		List<CodeClassifyValue> existList = codeClassifyValueMapper.selectList(wrapper);
 		codeClassifyValueDO.setOrderNum(existList.size() + 1);
 		boolean resBoolean = codeClassifyValueMapper.insert(codeClassifyValueDO) > 0;
 		return resBoolean;
@@ -244,19 +248,17 @@
 		VciBaseUtil.alertNotNull(codeClassifyValueDTO,"鍒嗙被鐮佹鐨勭爜鍊兼暟鎹璞�",codeClassifyValueDTO.getOid(),"鍒嗙被鐮佹鐨勭爜鍊肩殑涓婚敭");
 		CodeClassifyValue codeClassifyValueDO = selectByOid(codeClassifyValueDTO.getOid());
 		R baseResult = checkIsCanDeleteForDO(codeClassifyValueDTO,codeClassifyValueDO);
-		if(!baseResult.isSuccess()) {
-			//鎵句笅绾х殑锛岃繖涓槸鍙互鍒犻櫎鐨勬椂鍊橰
-			List<String> childrenOids = codeClassifyValueMapper.selectAllLevelChildOid(codeClassifyValueDO.getOid().trim());
+		if(baseResult.isSuccess()) {
+			//鍏堝垹闄や笅绾х爜鍊硷紝鎵句笅绾х殑锛岃繖涓槸鍙互鍒犻櫎鐨勬椂鍊�
+			List<String> childrenOids = codeClassifyValueMapper.selectChildOid(codeClassifyValueDO.getOid().trim());
 			if (!CollectionUtils.isEmpty(childrenOids)) {
 				Collection<Collection<String>> childrenCollections = VciBaseUtil.switchCollectionForOracleIn(childrenOids);
 				for(Collection<String> s : childrenCollections){
-					codeClassifyValueMapper.delete(Wrappers.<CodeClassifyValue>query().lambda().eq(CodeClassifyValue::getOid,s));
+					codeClassifyValueMapper.deleteBatchIds(s);
 				}
 			}
-		}else{
-			return baseResult;
 		}
-		//鎵ц鍒犻櫎鎿嶄綔
+		//鎵ц鍒犻櫎鎿嶄綔锛屽啀鍒犻櫎鐖剁殑鐮佸��
 		boolean resBoolean = codeClassifyValueMapper.deleteById(codeClassifyValueDO.getOid()) > 0;
 		return R.status(resBoolean);
 	}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeRuleServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeRuleServiceImpl.java
index 5d8bd08..f02f7e6 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeRuleServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeRuleServiceImpl.java
@@ -119,9 +119,6 @@
 	@Resource
 	private ICodeFixedValueService codeFixedValueService;
 
-	@Resource
-	private ICodeClassifyValueService codeClassifyValueService;
-
 	/**
 	 * 鍒嗛〉鏌ヨ
 	 * @param query
@@ -129,7 +126,7 @@
 	 * @return
 	 */
 	@Override
-	public IPage<CodeRuleVO> gridCodeRule(Query query, Map<String,Object> conidtionMap) {
+	public IPage<CodeRuleVO> gridCodeRule(Query query, Map<String,Object> conidtionMap) throws VciBaseException {
 		//濡傛灉绛変簬鑷繁閰嶇疆鐨勭鐞嗙粍绉熸埛id鍜岀鐞嗙粍瓒呯璐﹀彿锛屽氨涓嶉渶瑕佹寜鐓ц鍒欐墍鏈夎�呮潵杩涜鏌ヨ
 		if(!(AuthUtil.getTenantId().equals(nacosConfigCache.getAdminUserInfo().getTenantId())
 			&& AuthUtil.getUserId().toString().equals(nacosConfigCache.getAdminUserInfo().getUserId().toString()))
@@ -170,7 +167,7 @@
 	 * @return 杩斿洖false琛ㄧず鏈噸澶�
 	 */
 	@Override
-	public boolean checkCodeRuleRepeat(CodeRuleDTO codeRuleDTO){
+	public boolean checkCodeRuleRepeat(CodeRuleDTO codeRuleDTO)throws VciBaseException {
 		LambdaQueryWrapper<CodeRule> wrapper = Wrappers.<CodeRule>query()
 			.lambda().eq(CodeRule::getId, codeRuleDTO.getId());
 		if(AuthUtil.getTenantId().equals(nacosConfigCache.getAdminUserInfo().getTenantId())){
@@ -331,7 +328,7 @@
 	 * @return true琛ㄧず宸茬粡浣跨敤锛宖alse琛ㄧず鏈浣跨敤
 	 */
 	@Override
-	public boolean isAlreadyInUse(String oid) {
+	public boolean isAlreadyInUse(String oid) throws VciBaseException {
 		Collection<CodeClassifyVO> codeClassifyVOS = listUseRangeInCodeClassify(oid);
 		if (codeClassifyVOS.size() > 0) {
 			return true;
@@ -347,7 +344,7 @@
 	 * @return 涓婚搴撳垎绫讳娇鐢ㄥ埌璇ョ紪鐮佽鍒欑殑鎵�鏈夐泦鍚�
 	 */
 	@Override
-	public Collection<CodeClassifyVO> listUseRangeInCodeClassify(String oid) {
+	public Collection<CodeClassifyVO> listUseRangeInCodeClassify(String oid) throws VciBaseException {
 		List<CodeClassify> codeClassifies = codeClassifyServcie.selectByWrapper(Wrappers.<CodeClassify>query().lambda().eq(CodeClassify::getCodeRuleOid, oid));
 		return CodeClassifyWrapper.build().listVO(codeClassifies);
 	}
@@ -400,7 +397,7 @@
 	 * @param oidCollections 涓婚敭鐨勯泦鍚�
 	 * @return 鏁版嵁瀵硅薄鍒楄〃
 	 */
-	private List<CodeRule> listCodeRuleDOByOidCollections(Collection<String> oidCollections) {
+	private List<CodeRule> listCodeRuleDOByOidCollections(Collection<String> oidCollections) throws VciBaseException {
 		List<CodeRule> codeRuleDOList = new ArrayList<CodeRule>();
 		if (!CollectionUtils.isEmpty(oidCollections)) {
 			Collection<Collection<String>> oidCollectionsList = VciBaseUtil.switchCollectionForOracleIn(oidCollections);
@@ -434,7 +431,7 @@
 	 * @return 鎵ц缁撴灉
 	 */
 	@Override
-	public R updateStatus(String oid, String update) {
+	public R updateStatus(String oid, String update) throws VciBaseException {
 		int count = 0;
 		//鍏堟煡璇㈠璞�
 		CodeRule codeRuleDO = selectByOid(oid);
@@ -545,7 +542,7 @@
 	 * @return 瑙勫垯鐨勬樉绀哄璞�
 	 */
 	@Override
-	public CodeRuleVO getObjectHasSecByOid(String oid) {
+	public CodeRuleVO getObjectHasSecByOid(String oid) throws VciBaseException {
 		CodeRule ruleDO = selectByOid(oid);
 		return codeRuleDO2VO(ruleDO, true);
 	}
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 b0163b3..6a3d868 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
@@ -746,7 +746,29 @@
 		return dataList;
 	}
 
-    /**
+	/**
+	 * 鏍规嵁褰撳墠鐢宠缂栫爜鐨勫垎绫伙紝閫愬眰寰�涓婃牎楠屾槸鍚︾鍚堝睘浜庨厤缃殑涓殑鍒嗙被瀛愯妭鐐圭殑鍒�
+	 * 绫伙紝濡傛灉绗﹀悎锛屽垯璇ュ垎绫荤敵璇风殑缂栫爜涓洪泦鍥㈢爜杩斿洖true锛屽弽涔嬪垯涓轰紒涓氱紪鐮佽繑鍥瀎alse
+	 * @param parameter 浼犲叆鏁版嵁,classifyGroupCode:閰嶇疆鐨勪腑鐨勫垎绫婚《鑺傜偣锛宱id锛氶�夋嫨鑺傜偣鐨刼id
+	 */
+	@Override
+	public R checkGroupCode(Map<String, String> parameter) {
+		List<CodeClassify> codeClassifyList = classifyService.selectAllLevelParents(parameter.get("oid"));
+		Set<String> configGroupCode = Arrays.stream(parameter.get("classifyGroupCode").split("#")).collect(Collectors.toSet());
+//		Boolean checkGroupFlag = false;//鏄惁鏌ヨ鍒伴厤缃殑椤跺眰鍒嗙被涓�
+		for (int i = codeClassifyList.size()-1; i >= 0; i--) {
+			if(configGroupCode.contains(codeClassifyList.get(i).getId())){
+//				checkGroupFlag = true;
+				return R.data("true");
+			}
+//			if(checkGroupFlag && parameter.get("nowApplyCode").equals(codeClassifyList.get(i).getId())){
+//				return R.data(true);
+//			}
+		}
+		return R.data("false");
+	}
+
+	/**
      * 灏佽鍏抽敭灞炴�х殑鏌ヨ璇彞
      *
      * @param value        褰撳墠鐨勫��
@@ -2408,7 +2430,6 @@
         return phaseAttrService.listAttrByTemplateOidAndPhaseId(templateVO.getOid(), phase);
     }
 
-
     /**
      * 璺緞涓婂寘鍚綋鍓嶅垎绫荤殑鎵�鏈夊垎绫讳俊鎭�
      *
@@ -2756,13 +2777,13 @@
 			CodeSecTypeEnum.CODE_FIXED_SEC.getValue(),
 			CodeSecTypeEnum.CODE_VARIABLE_SEC.getValue(),
 			CodeSecTypeEnum.CODE_CLASSIFY_SEC.getValue(),
-			CodeSecTypeEnum.CODE_REFER_SEC.getValue()
+			CodeSecTypeEnum.CODE_REFER_SEC.getValue(),
+			CodeSecTypeEnum.CODE_DATE_SEC.getValue()
 		);
 		// 鍙鐮佹绫诲瀷
 		List<String> readOnlyTypes = Arrays.asList(
 			CodeSecTypeEnum.CODE_LEVEL_SEC.getValue(),
-			CodeSecTypeEnum.CODE_ATTR_SEC.getValue(),
-			CodeSecTypeEnum.CODE_DATE_SEC.getValue()
+			CodeSecTypeEnum.CODE_ATTR_SEC.getValue()
 		);
 		// 闅愯棌鐮佹绫诲瀷
 		/*List<String> hideType = Arrays.asList(
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/PasswordFreeLoginServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/PasswordFreeLoginServiceImpl.java
index 692c097..5134140 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/PasswordFreeLoginServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/PasswordFreeLoginServiceImpl.java
@@ -1,8 +1,12 @@
 package com.vci.ubcs.code.service.impl;
 
 import com.vci.ubcs.code.service.IPasswordFreeLoginService;
+import com.vci.ubcs.code.util.HttpUtils;
 import org.apache.commons.collections4.MultiValuedMap;
 import org.apache.commons.collections4.multimap.ArrayListValuedHashMap;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cloud.client.ServiceInstance;
+import org.springframework.cloud.client.discovery.DiscoveryClient;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.MediaType;
@@ -13,6 +17,9 @@
 import org.springframework.http.HttpMethod;
 import org.springframework.web.client.RestTemplate;
 
+import javax.annotation.Resource;
+import java.util.List;
+
 /**
  * 鍏嶅瘑鐧诲綍鏈嶅姟
  * @author ludc
@@ -21,8 +28,22 @@
 @Service
 public class PasswordFreeLoginServiceImpl implements IPasswordFreeLoginService {
 
-	private RestTemplate restTemplate;
+	// 閫氳繃鏈嶅姟娉ㄥ唽涓績鑾峰彇缃戝叧鐨勭鍙e彿
+	@Autowired
+	private DiscoveryClient discoveryClient;
 
+	/**
+	 * 鑾峰彇缃戝叧绔彛
+	 * @return
+	 */
+	public String getGatewayPort() {
+		List<ServiceInstance> instances = discoveryClient.getInstances("ubcs-gateway");
+		if (!instances.isEmpty()) {
+			ServiceInstance gatewayInstance = instances.get(0);
+			return String.valueOf(gatewayInstance.getPort());
+		}
+		return "80";
+	}
 
 	/**
 	 * 鍏嶅瘑鐧诲綍
@@ -32,7 +53,7 @@
 	@Override
 	public boolean passwordFreeLogin(String account) {
 		// 鍏嶅瘑鐧诲綍鎺ュ彛鍦板潃
-		String loginUrl = "http://ubcs-auth/auth/login";
+		String loginUrl = "http://localhost:"+this.getGatewayPort()+"/ubcs-auth/oauth/passwordFreeLogin?username=admin&grant_type=captcha&scope=all&type=account";
 
 		// 璁剧疆璇锋眰澶�
 		HttpHeaders headers = new HttpHeaders();
@@ -42,13 +63,9 @@
 		MultiValueMap<String,String> bodyParams = new LinkedMultiValueMap<String,String>();
 		bodyParams.add("account",account);
 
-		// 鍒涘缓璇锋眰瀹炰綋
-		HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<>(bodyParams, headers);
-
 		// 鍙戦�丳OST璇锋眰
-		ResponseEntity<String> responseEntity = restTemplate.exchange(loginUrl, HttpMethod.POST, requestEntity, String.class);
-		String responseBody = responseEntity.getBody();
-
+		String responseBody = HttpUtils.post(loginUrl, bodyParams);
+		System.out.println(responseBody);
 		//鎷垮埌鍝嶅簲浣撳皢token瀛樺叆鍒皉edis涓紝浠ccount浣滀负瀛樺偍鐨刱ey
 
 		// 瑙f瀽鍝嶅簲浣撹幏鍙栦护鐗�
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml
index 69dba1b..4d6f43b 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml
@@ -510,4 +510,11 @@
         </foreach>
         ;END;
     </update>
+
+    <select id="selectAllParents" resultMap="plCodeClassifyResultMap">
+        select * from PL_CODE_CLASSIFY p
+            start with p.OID =#{oid}
+        connect by p.oid = prior p.PARENTCODECLASSIFYOID
+    </select>
+
 </mapper>
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClassifyValueMapper.xml b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClassifyValueMapper.xml
index 402eb75..25fe4da 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClassifyValueMapper.xml
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClassifyValueMapper.xml
@@ -9,6 +9,9 @@
         CONNECT BY PRIOR PARENTCLASSIFYVALUEOID = OID
     </select>
 
+    <select id="selectChildOid" resultType="java.lang.String">
+        select OID from PL_CODE_CLASSIFYVALUE where PARENTCLASSIFYVALUEOID =#{oid}
+    </select>
 
     <select id="countAllLevelChildOid" resultType="java.lang.Long">
         select count(OID) countsize

--
Gitblit v1.9.3