From 904897d888962511eb58b0dec9168983ecc1a439 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期二, 19 九月 2023 16:24:41 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 Source/UBCS-WEB/src/api/integration/sysInfo.js                                                                      |    8 
 Source/UBCS-WEB/src/page/login/index.vue                                                                            |   12 
 Source/UBCS-WEB/src/page/login/userlogin.vue                                                                        |   12 
 Source/UBCS-WEB/src/api/docking/data.js                                                                             |    4 
 Source/UBCS-WEB/src/api/docking/task.js                                                                             |    4 
 Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/constant/CodeTableNameConstant.java   |    5 
 Source/UBCS-WEB/src/views/integration/systemInfo.vue                                                                |  463 +++++++++++++++++++++--------------------
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeApplyWebManagementController.java |   49 ++++
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/SystemClassifyRole.java           |   46 ++++
 9 files changed, 363 insertions(+), 240 deletions(-)

diff --git a/Source/UBCS-WEB/src/api/docking/data.js b/Source/UBCS-WEB/src/api/docking/data.js
index 94da0af..1093124 100644
--- a/Source/UBCS-WEB/src/api/docking/data.js
+++ b/Source/UBCS-WEB/src/api/docking/data.js
@@ -1,13 +1,13 @@
 import request from '@/router/axios';
 
-export const getDataList = (page, size, params) => {
+export const getDataList = (page, limit, params) => {
   return request({
     url: '/api/ubcs-code/dockingManagement/gridDockingData',
     method: 'get',
     params: {
       ...params,
       page,
-      size
+      limit
     }
   })
 }
diff --git a/Source/UBCS-WEB/src/api/docking/task.js b/Source/UBCS-WEB/src/api/docking/task.js
index fcb0acc..c2dc99a 100644
--- a/Source/UBCS-WEB/src/api/docking/task.js
+++ b/Source/UBCS-WEB/src/api/docking/task.js
@@ -1,13 +1,13 @@
 import request from '@/router/axios';
 
-export const getTaskList = (page, size, params) => {
+export const getTaskList = (page, limit, params) => {
   return request({
     url: '/api/ubcs-code/dockingManagement/gridDockingTask',
     method: 'get',
     params: {
       ...params,
       page,
-      size
+      limit
     }
   })
 }
diff --git a/Source/UBCS-WEB/src/api/integration/sysInfo.js b/Source/UBCS-WEB/src/api/integration/sysInfo.js
index 871ccdb..6292caa 100644
--- a/Source/UBCS-WEB/src/api/integration/sysInfo.js
+++ b/Source/UBCS-WEB/src/api/integration/sysInfo.js
@@ -1,11 +1,15 @@
 import request from '@/router/axios';
 
 // 闆嗘垚绯荤粺淇℃伅绠$悊鍒楄〃
-export const getSysInfoList = (params) => {
+export const getSysInfoList = (size,current,params) => {
     return request({
       url: '/api/ubcs-code/dockingManagement/gridDockingSystem',
       method: 'get',
-      params: params
+      params: {
+        size,
+        current,
+        ...params
+      }
     })
   }
   // 闆嗘垚绯荤粺淇℃伅绠$悊鏂板
diff --git a/Source/UBCS-WEB/src/page/login/index.vue b/Source/UBCS-WEB/src/page/login/index.vue
index 0e0b68e..1ec9a95 100644
--- a/Source/UBCS-WEB/src/page/login/index.vue
+++ b/Source/UBCS-WEB/src/page/login/index.vue
@@ -21,12 +21,12 @@
           </h4>
           <userLogin v-if="activeName==='user'"></userLogin>
           <thirdLogin v-else-if="activeName==='third'"></thirdLogin>
-          <div class="login-menu">
-            <a href="#" @click.stop="activeName='user'">{{ $t('login.userLogin') }}</a>
-            <!--<a href="#" @click.stop="activeName='code'">{{ $t('login.phoneLogin') }}</a>-->
-            <a href="#" @click.stop="activeName='third'">{{ $t('login.thirdLogin') }}</a>
-            <a :href="website.ssoUrl + website.redirectUri">{{ $t('login.ssoLogin') }}</a>
-          </div>
+<!--          <div class="login-menu">-->
+<!--            <a href="#" @click.stop="activeName='user'">{{ $t('login.userLogin') }}</a>-->
+<!--            <a href="#" @click.stop="activeName='code'">{{ $t('login.phoneLogin') }}</a>-->
+<!--            <a href="#" @click.stop="activeName='third'">{{ $t('login.thirdLogin') }}</a>-->
+<!--            <a :href="website.ssoUrl + website.redirectUri">{{ $t('login.ssoLogin') }}</a>-->
+<!--          </div>-->
         </div>
 
       </div>
diff --git a/Source/UBCS-WEB/src/page/login/userlogin.vue b/Source/UBCS-WEB/src/page/login/userlogin.vue
index b08bc18..a8877c8 100644
--- a/Source/UBCS-WEB/src/page/login/userlogin.vue
+++ b/Source/UBCS-WEB/src/page/login/userlogin.vue
@@ -8,7 +8,7 @@
              status-icon
     >
       <el-form-item prop="selectInput">
-        <el-select v-model="loginForm.tenantId" placeholder="璇烽�夋嫨绉熸埛" style="width: 100%" @change="selectchange">
+        <el-select v-model="loginForm.tenantId" placeholder="璇烽�夋嫨绉熸埛" style="width: 100%" @change="selectChange">
           <i slot="prefix" class="el-icon-s-operation"/>
           <el-option
             v-for="(item,index) in loginForm.region"
@@ -40,6 +40,7 @@
       </el-form-item>
 
       <el-form-item>
+        <el-button @click="ChandleLogin">娴嬭瘯鍗曠偣鐧诲綍</el-button>
         <el-button class="login-submit"
                    size="small"
                    type="primary"
@@ -62,7 +63,7 @@
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button @click="delok">鍙� 娑�</el-button>
-        <el-button type="primary" @click="addok">纭� 瀹�</el-button>
+        <el-button type="primary" @click="addHandler">纭� 瀹�</el-button>
       </div>
     </el-dialog>
   </div>
@@ -192,6 +193,9 @@
   },
   props: [],
   methods: {
+    ChandleLogin(){
+
+    },
     closehandle(){
       removeToken()
     },
@@ -201,7 +205,7 @@
       removeToken()
     },
     // 鐐瑰嚮纭畾淇敼瀵嗙爜
-    addok(){
+    addHandler(){
       this.dialogFormVisible = false
       updatePassword(md5(this.form.oldPassword), this.form.newPassword, this.form.newPassword1).then(res=>{
         console.log(res)
@@ -215,7 +219,7 @@
       })
     },
     // 缁戝畾涓嬫媺鑿滃崟鍔ㄦ�両D
-    selectchange(value) {
+    selectChange(value) {
       this.loginForm.tenantId = value
     },
     showPassword() {
diff --git a/Source/UBCS-WEB/src/views/integration/systemInfo.vue b/Source/UBCS-WEB/src/views/integration/systemInfo.vue
index c1cf5ae..2efc562 100644
--- a/Source/UBCS-WEB/src/views/integration/systemInfo.vue
+++ b/Source/UBCS-WEB/src/views/integration/systemInfo.vue
@@ -1,235 +1,252 @@
 <template>
-    <basic-container>
-        <avue-crud ref="crud" :table-loading="loading" :data="data" :option="option" :page.sync="page" :search.sync="search"
-            @on-load="getDataList" @row-save="handleSave" @row-del="handleDelete" @row-update="handleEdit"
-            @refresh-change="handleRefresh" @size-change="handleSizePage" @current-change="handleCurrentPage"
-            @selection-change="selectionChange" @row-click="handleRowClick">
-            <template slot="menuLeft">
-                <!-- <el-button icon="el-icon-search" size="small" type="primary" @click="handleStatus">鏌� 璇�
-                </el-button> -->
-                <el-button icon="el-icon-delete" size="small" type="danger" @click="handleDeleteByIds">鍒� 闄�
-                </el-button>
-            </template>
-            <template slot="search" slot-scope="{row,size}">
-                <el-select v-model="selectValue" size="small" @change="handleSelect">
-                    <el-option v-for="item in selectOption" :key="item.value" :label="item.label" :value="item.value">
-                    </el-option>
-                </el-select>
-                <el-input :placeholder="`璇疯緭鍏�${selectValue === 'id' ? '绯荤粺缂栧彿' : '绯荤粺鍚嶇О'}骞舵寜鍥炶溅鏌ヨ`" :size="size"
-                    style="width:300px;margin-left: 10px;" v-model="search[selectValue]" clearable
-                    @keyup.enter.native="handleEnter" @clear="handleClear"></el-input>
-            </template>
-        </avue-crud>
-    </basic-container>
+  <basic-container>
+    <avue-crud ref="crud" :data="data" :option="option" :page.sync="page" :search.sync="search" :table-loading="loading"
+               @on-load="getDataList" @row-save="handleSave" @row-del="handleDelete" @row-update="handleEdit"
+               @refresh-change="handleRefresh" @size-change="handleSizePage" @current-change="handleCurrentPage"
+               @selection-change="selectionChange" @row-click="handleRowClick">
+      <template slot="menuLeft">
+        <!-- <el-button icon="el-icon-search" size="small" type="primary" @click="handleStatus">鏌� 璇�
+        </el-button> -->
+        <el-button icon="el-icon-delete" size="small" type="danger" @click="handleDeleteByIds">鍒� 闄�
+        </el-button>
+      </template>
+      <template slot="search" slot-scope="{row,size}">
+        <el-select v-model="selectValue" size="small" @change="handleSelect">
+          <el-option v-for="item in selectOption" :key="item.value" :label="item.label" :value="item.value">
+          </el-option>
+        </el-select>
+        <el-input v-model="search[selectValue]" :placeholder="`璇疯緭鍏�${selectValue === 'id' ? '绯荤粺缂栧彿' : '绯荤粺鍚嶇О'}骞舵寜鍥炶溅鏌ヨ`"
+                  :size="size" clearable style="width:300px;margin-left: 10px;"
+                  @clear="handleClear" @keyup.enter.native="handleEnter"></el-input>
+      </template>
+      <template #menu="{row,index,size}">
+        <el-button type="text" icon="el-icon-menu" size="small" @click="classifyHandler">鍒嗙被鎺堟潈</el-button>
+
+      </template>
+    </avue-crud>
+    <el-dialog :visible.sync="dialogVisible" append-to-body title="鍒嗙被鎺堟潈">
+    </el-dialog>
+  </basic-container>
 </template>
 <script>
-import { getSysInfoList, sysInfoAdd, sysInfoEdit, sysInfoDel } from '@/api/integration/sysInfo.js'
-export default {
-    data() {
-        return {
-            loading: false,
-            page: {
-                currentPage: 1,
-                pageSize: 10,
-                total: 0
-            },
-            selectOption: [{
-                value: 'id',
-                label: '绯荤粺缂栧彿'
-            }, {
-                value: 'name',
-                label: '绯荤粺鍚嶇О'
-            }],
-            selectValue: 'id',
-            search: {},
-            delIds: [],
-            data: [],
-            option: {
-                height: "auto",
-              tip:false,
-                border: true,
-                align: 'center',
-                menuAlign: 'center',
-                index: true,
-                searchMenuSpan: 8,
-                searchBtn: false,
-                emptyBtn: false,
-                columnBtn: false,
-                defaultSort: {
-                    prop: 'id,name',
-                    order: 'descending'
-                },
-                selection: true,
-                column: [
-                    {
-                        label: '绯荤粺缂栧彿',
-                        prop: 'id',
-                        sortable: true,
-                        rules: [{
-                            required: true,
-                            message: '绯荤粺缂栧彿涓嶈兘涓虹┖',
-                            trigger: 'blur'
-                        }],
-                        // maxlength: 30,    //瀛楁暟闄愬埗
-                    }, {
-                        label: '绯荤粺鍚嶇О',
-                        prop: 'name',
-                        sortable: true,
-                        rules: [{
-                            required: true,
-                            message: '绯荤粺鍚嶇О涓嶈兘涓虹┖',
-                            trigger: 'blur'
-                        }],
-                        // maxlength: 30,    //瀛楁暟闄愬埗
-                    },
-                    {
-                        label: '绯荤粺鎻忚堪',
-                        prop: 'description',
-                        type: 'textarea'
-                    }
-                ]
-            },
-        }
-    },
-    methods: {
-        // 鑾峰彇鍒楄〃
-        async getDataList() {
-            this.loading = true
-            console.log(this.search)
-            const { pageSize, currentPage } = this.page
-            let param = { size: pageSize, current: currentPage }
-            this.search = Object.keys(this.search)
-                .filter((key) => this.search[key] !== null && this.search[key] !== undefined && this.search[key] !== "")
-                .reduce((acc, key) => ({ ...acc, [key]: this.search[key] }), {});
-            const response = await getSysInfoList({ ...param, ...this.search })
-            if (response.status === 200) {
-                console.log(response)
-                this.loading = false
-                const data = response.data.data
-                this.data = data.records
-                this.page.total = data.total
-            } else this.loading = false
-        },
-        // 鏂板
-        async handleSave(row, done, loading) {
-            try {
-                const response = await sysInfoAdd(row)
-                if (response.status === 200) {
-                    this.$message({
-                        type: 'success',
-                        message: '鏂板鏁版嵁鎴愬姛锛�'
-                    })
-                    done(row)
-                    // this.$refs.crud.refreshTable()
-                    // this.getDataList()
-                }
-            } catch {
-                loading()
-            }
-        },
-        // 缂栬緫
-        async handleEdit(row, index, done, loading) {
-            try {
-                const { oid, id, name, description } = row
-                const response = await sysInfoEdit({ oid, id, name, description })
-                if (response.status === 200) {
-                    loading()
-                    this.$message({
-                        type: 'success',
-                        message: '淇敼鏁版嵁鎴愬姛锛�'
-                    })
-                    done(row)
-                }
-            } catch {
-                loading()
-            }
-        },
-        // 鍒犻櫎鍗曟潯
-        handleDelete(row) {
-            const { oid } = row
-            this.deleteSysInfo({ oids: oid })
-        },
-        // 澶氭潯鏁版嵁鍒犻櫎
-        handleDeleteByIds() {
-            const { oids } = this.delIds
-            if (this.$utilFunc.isEmpty(oids)) {
-                this.$message({
-                    type: "error",
-                    message: "璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�!"
-                })
-            } else {
-                this.deleteSysInfo(this.delIds)
-            }
-        },
-        // 鍒犻櫎鎺ュ彛
-        deleteSysInfo(param) {
-            this.$confirm('鏄惁纭畾鍒犻櫎閫夋嫨鐨勯泦鎴愮郴缁�?', '鎻愮ず', {
-                confirmButtonText: '纭畾',
-                cancelButtonText: '鍙栨秷',
-                type: 'warning'
-            }).then(async () => {
-                const response = await sysInfoDel(param)
-                if (response.status === 200) {
-                    console.log(response)
-                    this.$message({
-                        type: 'success',
-                        message: '鍒犻櫎鎴愬姛!'
-                    });
-                    this.getDataList()
-                }
-            })
-        },
-        // 閫夋嫨妗嗗唴瀹归�夋嫨鍚�
-        handleSelect(event) {
-            this.selectValue = event
-            if (this.selectValue === 'id') {
-                this.search['name'] = ''
-                delete this.search['name']
-            } else {
-                this.search['id'] = ''
-                delete this.search['id']
-            }
-        },
-        // enter鎼滅储
-        handleEnter() {
-            if (this.search[this.selectValue] === '') return
-            else this.getDataList()
+import {getSysInfoList, sysInfoAdd, sysInfoEdit, sysInfoDel} from '@/api/integration/sysInfo.js'
 
+export default {
+  data() {
+    return {
+      loading: false,
+      dialogVisible:false,
+      page: {
+        currentPage: 1,
+        pageSize: 10,
+        total: 0
+      },
+      selectOption: [{
+        value: 'id',
+        label: '绯荤粺缂栧彿'
+      }, {
+        value: 'name',
+        label: '绯荤粺鍚嶇О'
+      }],
+      selectValue: 'id',
+      search: {},
+      delIds: [],
+      data: [],
+      option: {
+        height: "auto",
+        tip: false,
+        border: true,
+        align: 'center',
+        menuAlign: 'center',
+        index: true,
+        searchMenuSpan: 8,
+        searchBtn: false,
+        emptyBtn: false,
+        columnBtn: false,
+        defaultSort: {
+          prop: 'id,name',
+          order: 'descending'
         },
-        // 杈撳叆妗嗘竻绌�
-        handleClear() {
-            this.search = {}
-            this.getDataList()
-        },
-        // 鍒锋柊鎸夐挳
-        handleRefresh() {
-            this.getDataList()
-        },
-        handleSizePage(event) {
-            this.page.pageSize = event
-        },
-        handleCurrentPage(event) {
-            this.page.currentPage = event
-        },
-        // 鐐瑰嚮閫夋嫨
-        handleRowClick(row) {
-            this.$refs.crud.toggleRowSelection(row, true)
-        },
-        // 澶氶��
-        selectionChange(list) {
-            console.log(list)
-            let newData = list.map(item => {
-                const { oid } = item
-                return oid
-            })
-            this.delIds = { oids: newData.toString() }
-            console.log(this.delIds)
-        },
+        selection: true,
+        column: [
+          {
+            label: '绯荤粺缂栧彿',
+            prop: 'id',
+            sortable: true,
+            rules: [{
+              required: true,
+              message: '绯荤粺缂栧彿涓嶈兘涓虹┖',
+              trigger: 'blur'
+            }],
+            // maxlength: 30,    //瀛楁暟闄愬埗
+          }, {
+            label: '绯荤粺鍚嶇О',
+            prop: 'name',
+            sortable: true,
+            rules: [{
+              required: true,
+              message: '绯荤粺鍚嶇О涓嶈兘涓虹┖',
+              trigger: 'blur'
+            }],
+            // maxlength: 30,    //瀛楁暟闄愬埗
+          },
+          {
+            label: '绯荤粺鎻忚堪',
+            prop: 'description',
+            type: 'textarea'
+          }
+        ]
+      },
     }
+  },
+  methods: {
+    //鍒嗙被鎺堟潈
+    classifyHandler(){
+      this.dialogVisible=true;
+    },
+    async getDataList() {
+      this.loading = true;
+      console.log(this.search);
+      const { pageSize, currentPage } = this.page;
+      const conditions = {};
+      if (Object.keys(this.search).length > 0) {
+        for (const key in this.search) {
+          if (this.search[key]) {
+            conditions[`conditionMap[${key}_like]`] = this.search[key];
+          }
+        }
+      }
+      const response = await getSysInfoList(pageSize, currentPage, conditions);
+      if (response.status === 200) {
+        console.log(response);
+        this.loading = false;
+        const data = response.data.data;
+        this.data = data.records;
+        this.page.total = data.total;
+      } else {
+        this.loading = false;
+      }
+    },
+    // 鏂板
+    async handleSave(row, done, loading) {
+      try {
+        const response = await sysInfoAdd(row)
+        if (response.status === 200) {
+          this.$message({
+            type: 'success',
+            message: '鏂板鏁版嵁鎴愬姛锛�'
+          })
+          done(row)
+          // this.$refs.crud.refreshTable()
+          // this.getDataList()
+        }
+      } catch {
+        loading()
+      }
+    },
+    // 缂栬緫
+    async handleEdit(row, index, done, loading) {
+      try {
+        const {oid, id, name, description} = row
+        const response = await sysInfoEdit({oid, id, name, description})
+        if (response.status === 200) {
+          loading()
+          this.$message({
+            type: 'success',
+            message: '淇敼鏁版嵁鎴愬姛锛�'
+          })
+          done(row)
+        }
+      } catch {
+        loading()
+      }
+    },
+    // 鍒犻櫎鍗曟潯
+    handleDelete(row) {
+      const {oid} = row
+      this.deleteSysInfo({oids: oid})
+    },
+    // 澶氭潯鏁版嵁鍒犻櫎
+    handleDeleteByIds() {
+      const {oids} = this.delIds
+      if (this.$utilFunc.isEmpty(oids)) {
+        this.$message({
+          type: "error",
+          message: "璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�!"
+        })
+      } else {
+        this.deleteSysInfo(this.delIds)
+      }
+    },
+    // 鍒犻櫎鎺ュ彛
+    deleteSysInfo(param) {
+      this.$confirm('鏄惁纭畾鍒犻櫎閫夋嫨鐨勯泦鎴愮郴缁�?', '鎻愮ず', {
+        confirmButtonText: '纭畾',
+        cancelButtonText: '鍙栨秷',
+        type: 'warning'
+      }).then(async () => {
+        const response = await sysInfoDel(param)
+        if (response.status === 200) {
+          console.log(response)
+          this.$message({
+            type: 'success',
+            message: '鍒犻櫎鎴愬姛!'
+          });
+          this.getDataList()
+        }
+      })
+    },
+    // 閫夋嫨妗嗗唴瀹归�夋嫨鍚�
+    handleSelect(event) {
+      this.selectValue = event
+      if (this.selectValue === 'id') {
+        this.search['name'] = ''
+        delete this.search['name']
+      } else {
+        this.search['id'] = ''
+        delete this.search['id']
+      }
+    },
+    // enter鎼滅储
+    handleEnter() {
+      if (this.search[this.selectValue] === '') return
+      else this.getDataList()
+
+    },
+    // 杈撳叆妗嗘竻绌�
+    handleClear() {
+      this.search = {}
+      this.getDataList()
+    },
+    // 鍒锋柊鎸夐挳
+    handleRefresh() {
+      this.getDataList()
+    },
+    handleSizePage(event) {
+      this.page.pageSize = event
+    },
+    handleCurrentPage(event) {
+      this.page.currentPage = event
+    },
+    // 鐐瑰嚮閫夋嫨
+    handleRowClick(row) {
+      this.$refs.crud.toggleRowSelection(row, true)
+    },
+    // 澶氶��
+    selectionChange(list) {
+      console.log(list)
+      let newData = list.map(item => {
+        const {oid} = item
+        return oid
+      })
+      this.delIds = {oids: newData.toString()}
+      console.log(this.delIds)
+    },
+  }
 }
 </script>
 <style lang="scss" scoped>
 ::v-deep(.avue-crud .el-select) {
-    width: 100px !important;
+  width: 100px !important;
 }
 </style>
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/SystemClassifyRole.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/SystemClassifyRole.java
new file mode 100644
index 0000000..f8aaa3b
--- /dev/null
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/SystemClassifyRole.java
@@ -0,0 +1,46 @@
+package com.vci.ubcs.code.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.vci.ubcs.starter.constant.CodeTableNameConstant;
+import com.vci.ubcs.starter.revision.model.BaseModel;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 闆嗘垚绯荤粺鍒嗙被鎺堟潈
+ *
+ * @author xiejun
+ * @since 2023-04-03
+ */
+@Data
+@TableName(CodeTableNameConstant.PL_CODE_SYSTEM_CLASSIFY_ROLE)
+@ApiModel(value = "SystemClassifyRole瀵硅薄", description = "闆嗘垚绯荤粺鍒嗙被鎺堟潈")
+@EqualsAndHashCode(callSuper = true)
+public class SystemClassifyRole extends BaseModel {
+	/***
+	 * 闆嗘垚绯荤粺涓婚敭oid
+	 */
+	private String systemOid;
+	/**
+	 * 闆嗘垚绯荤粺鏍囪瘑
+	 */
+	private String systemId;
+	/***
+	 * 鍒嗙被oid
+	 */
+	private String classifyOid;
+	/***
+	 * 闆嗘垚绯荤粺鍒嗙被浠e彿
+	 */
+	private String classifyId;
+	/**
+	 * 鏄惁鏈夋潈闄�
+	 */
+	private boolean selected;
+	/**
+	 * 鍒嗙被鐖惰妭鐐筼id
+	 */
+	private String classParentOid;
+
+}
diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/constant/CodeTableNameConstant.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/constant/CodeTableNameConstant.java
index a901b8e..b227b64 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/constant/CodeTableNameConstant.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/constant/CodeTableNameConstant.java
@@ -141,6 +141,9 @@
 	public static final String PL_CODE_DOCKINGTASK = "PL_CODE_DOCKINGTASK";
 
 
-
+	/**
+	 * 闆嗘垚绯荤粺鎺堟潈鍒嗙被鏉冮檺琛�
+	 */
+	public static final String PL_CODE_SYSTEM_CLASSIFY_ROLE = "PL_CODE_SYSTEM_CLASSIFY_ROLE";
 
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeApplyWebManagementController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeApplyWebManagementController.java
new file mode 100644
index 0000000..805c7de
--- /dev/null
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeApplyWebManagementController.java
@@ -0,0 +1,49 @@
+package com.vci.ubcs.code.controller;
+
+
+import com.vci.ubcs.code.service.ICodeClassifyService;
+import lombok.AllArgsConstructor;
+import org.springblade.core.tool.api.R;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 涓婚搴撳畾涔夎〃 鎺у埗鍣�
+ *
+ * @author xiejun
+ * @since 2023-07-24
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/codeApplyWebManagementController")
+public class CodeApplyWebManagementController {
+	/***
+	 * 鍒嗙被鏈嶅姟瀵硅薄
+	 */
+	private final ICodeClassifyService codeClassifyService;
+
+	/***
+	 * 鏍规嵁鍓嶇閫夋嫨鐨勫垎绫绘潈闄愭巿鏉冩巿鏉�
+	 * @return
+	 */
+	private R saveClassifyRoleBySystemId(){
+
+
+
+		return R.success("鎴愬姛");
+	}
+
+
+
+
+	/***
+	 * 鏍规嵁绯荤粺闆嗘垚鏍囪瘑鏌ヨ鍏峰鏉冮檺鐨勫垎绫绘暟鎹�
+	 * @return
+	 */
+	public R selectCodeClassifyVOByParentId(String systemId){
+
+		return R.success("鏌ヨ鎴愬姛");
+	}
+
+
+}

--
Gitblit v1.9.3