ludc
2023-08-24 a9f6bbb03a1cef605ed1a1973ef15837d8436e90
Merge branch 'master' of http://dev.vci-tech.com:1065/r/ubcs
已修改6个文件
已删除296个文件
已添加54个文件
105604 ■■■■ 文件已修改
Source/UBCS-WEB/dist/cdn/animate/3.5.2/animate.css 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/avue/2.9.12/avue.min.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/avue/2.9.12/index.css 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/axios/1.0.0/axios.min.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/element-ui/2.15.6/index.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/element-ui/2.15.6/theme-chalk/fonts/element-icons.ttf 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/element-ui/2.15.6/theme-chalk/fonts/element-icons.woff 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/element-ui/2.15.6/theme-chalk/index.css 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/iconfont/avue/iconfont.css 201 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/iconfont/avue/iconfont.eot 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/iconfont/avue/iconfont.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/iconfont/avue/iconfont.json 331 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/iconfont/avue/iconfont.svg 164 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/iconfont/avue/iconfont.ttf 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/iconfont/avue/iconfont.woff 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/iconfont/avue/iconfont.woff2 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/iconfont/index.css 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/iconfont/saber/iconfont.css 345 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/iconfont/saber/iconfont.eot 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/iconfont/saber/iconfont.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/iconfont/saber/iconfont.json 583 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/iconfont/saber/iconfont.svg 272 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/iconfont/saber/iconfont.ttf 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/iconfont/saber/iconfont.woff 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/iconfont/saber/iconfont.woff2 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/nutflow/wf-design-base/fonts/bpmn.08b5f281.eot 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/nutflow/wf-design-base/fonts/bpmn.3c4c9f45.woff2 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/nutflow/wf-design-base/fonts/bpmn.acbc6cbd.woff 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/nutflow/wf-design-base/fonts/bpmn.f922519e.ttf 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/nutflow/wf-design-base/fonts/codicon.22349029.ttf 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/nutflow/wf-design-base/fonts/fontawesome-webfont.674f50d2.eot 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/nutflow/wf-design-base/fonts/fontawesome-webfont.af7ae505.woff2 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/nutflow/wf-design-base/fonts/fontawesome-webfont.b06871f2.ttf 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/nutflow/wf-design-base/fonts/fontawesome-webfont.fee66e71.woff 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/nutflow/wf-design-base/img/bpmn.1381b44e.svg 224 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/nutflow/wf-design-base/img/fontawesome-webfont.912ec66d.svg 2671 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/nutflow/wf-design-base/index.umd.min.js 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/vue-router/3.0.1/vue-router.min.js 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/vue/2.6.10/vue.min.js 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/vuex/3.1.1/vuex.min.js 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/xlsx/FileSaver.min.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/xlsx/xlsx.full.min.js 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/css/app.b242c82a.css 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/css/chunk-vendors.e41156d0.css 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/css/fontSize.css 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/css/page.e84a6fd9.css 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/css/views.a44fd8f5.css 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/favicon.png 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/img/bg/403.svg 508 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/img/bg/404.svg 314 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/img/bg/500.svg 208 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/img/bg/bg.jpg 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/img/bg/bg1.jpg 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/img/bg/bg2.jpg 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/img/bg/bg3.jpg 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/img/bg/bg4.jpg 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/img/bg/cloud.jpg 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/img/bg/img-logo.png 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/img/bg/login.png 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/img/bg/logo.png 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/img/bg/star-squashed.jpg 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/img/bg/vip1.png 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/img/bg/vip2.png 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/img/bg/vip3.png 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/img/bg/vip4.png 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/img/logo.png 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/img/mock/card/card-1.jpg 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/img/mock/card/card-2.jpg 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/img/mock/card/card-3.jpg 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/img/mock/card/card-4.jpg 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/img/mock/cli/1.png 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/img/mock/cli/2.png 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/img/mock/cli/3.png 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/img/mock/iconfont.png 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/img/pageLogo.jpeg 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/index.html 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/js/chunk-2d0e4caf.f1e21f7e.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/js/chunk-vendors.cf283b97.js 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/js/page.9579e702.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/js/views.d5699fdc.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/src/router/avue-router.js 199 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/svg/loading-spin.svg 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/util/aes.js 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/util/font_4017492_2d1qk52m7xp.ttf 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/util/font_4017492_2d1qk52m7xp.woff 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/util/font_4017492_2d1qk52m7xp.woff2 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/util/screen/guge.png 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/util/screen/huohu.png 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/util/screen/screen.css 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/util/screen/screen.js 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/public/cdn/avue/2.9.12/avue.min.js 11760 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/FileSaver.js-master/.github/FUNDING.yml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/FileSaver.js-master/.gitignore 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/FileSaver.js-master/CHANGELOG.md 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/FileSaver.js-master/LICENSE.md 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/FileSaver.js-master/README.md 150 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/FileSaver.js-master/bower.json 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/FileSaver.js-master/dist/FileSaver.js 188 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/FileSaver.js-master/dist/FileSaver.min.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/FileSaver.js-master/dist/FileSaver.min.js.map 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/FileSaver.js-master/package-lock.json 2714 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/FileSaver.js-master/package.json 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/FileSaver.js-master/src/FileSaver.js 172 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/.gitignore 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/.gitmodules 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/.jscs.json 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/.jshintrc 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/.npmignore 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/.travis.yml 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/CONTRIBUTING.md 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/LICENSE 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/Makefile 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/README.md 705 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bin/xlsx.njs 133 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/.npmignore 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/00_header.js 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/01_version.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/02_codepage.js 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/04_base64.js 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/05_buf.js 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/10_ssf.js 765 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/11_ssfutils.js 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/18_cfb.js 383 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/20_jsutils.js 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/21_ziputils.js 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/22_xmlutils.js 171 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/23_binutils.js 167 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/24_hoppers.js 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/25_cellutils.js 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/26_crypto.js 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/28_binstructs.js 160 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/29_xlsenum.js 265 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/30_ctype.js 254 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/31_rels.js 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/33_coreprops.js 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/34_extprops.js 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/35_custprops.js 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/36_xlsprops.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/38_xlstypes.js 440 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/39_xlsbiff.js 917 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/42_sstxml.js 204 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/43_sstbin.js 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/44_offcrypto.js 180 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/45_styutils.js 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/46_stycommon.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/47_styxml.js 400 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/48_stybin.js 133 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/49_theme.js 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/50_styxls.js 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/52_ccxml.js 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/53_ccbin.js 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/56_cmntcommon.js 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/57_cmntxml.js 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/58_cmntbin.js 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/61_fcommon.js 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/62_fxls.js 803 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/63_fbin.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/64_ftab.js 1090 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/66_wscommon.js 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/67_wsxml.js 433 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/68_wsbin.js 439 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/76_wbcommon.js 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/77_wbxml.js 181 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/78_wbbin.js 181 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/79_xmlbin.js 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/80_xlml.js 699 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/81_xls.js 675 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/82_parsetab.js 1230 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/83_parseods.js 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/84_defaults.js 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/85_parsezip.js 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/86_writezip.js 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/87_read.js 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/88_write.js 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/90_utils.js 207 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/91_xmlbuilder.js 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/92_stylebuilder.js 378 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/98_exports.js 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bits/99_footer.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/bower.json 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/cell_style_simple.json 1773 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/color.js 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/dist/LICENSE 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/dist/cpexcel.js 1324 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/dist/jszip.js 8982 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/dist/ods.js 414 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/dist/xlsx.core.min.js 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/dist/xlsx.core.min.map 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/dist/xlsx.full.min.js 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/dist/xlsx.full.min.map 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/dist/xlsx.js 12577 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/dist/xlsx.min.js 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/dist/xlsx.min.map 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/example-4.js 642 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/example-style.js 642 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/example1.js 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/example3.js 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/jszip.js 8982 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/misc/_bower.json 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/misc/cfb.d.ts 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/misc/node.d.ts 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/misc/spin.sh 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/misc/ssf.json 152 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/misc/strip_sourcemap.sh 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/misc/xl.d.ts 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/misc/xlsx2csv.ts 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/ods.js 414 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/odsbits/00_header.js 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/odsbits/10_utils.js 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/odsbits/20_jsutils.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/odsbits/21_ziputils.js 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/odsbits/22_xmlutils.js 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/odsbits/23_xlml.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/odsbits/30_manifest.js 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/odsbits/40_helpers.js 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/odsbits/60_content.js 210 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/odsbits/80_parse.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/odsbits/98_exports.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/odsbits/99_footer.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/package-lock.json 323 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/package.json 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/shim.js 237 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/test.js 1129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/testA.lst 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/tests.lst 1064 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/tests/Common.js 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/tests/EncodedSpec.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/tests/FormulaSpec.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/tests/InterviewSpec.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/tests/IssueSpec.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/tests/MixedSpec.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/tests/NamedRangesSpec.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/tests/print-header.js 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/tests/test-acid.js 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/tests/test-csv.js 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/tests/test-freeze.js 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/tests/test-min.js 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/tests/test-open.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/tests/test-style.js 717 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/tests/write.js 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/xlsx.js 12577 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/xlsxworker.js 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/xlsxworker1.js 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/config/js-xlsx-master/xlsxworker2.js 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/AttarSearchPanel.java 154 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyFor410Dialog.java 193 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyFor410DialogActionListener.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyFor410MainPanel.java 1749 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyFor410SearchDialog.java 165 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyFor410SearchMainPanel.java 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyFor410SearchProvider.java 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyFor410TreePanel.java 309 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyPanelFor410.java 431 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyPanelFor410ActionListener.java 203 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeDataMainPanel.java 165 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeDataMainPanelActionListener.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeDataMainPanelDataProvider.java 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeLibTreeCellRenderer.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeReferTreePanel.java 211 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CommonActionListener.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/DescViewDialog.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/RMDataReferTempDialog.java 225 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/RMDataReferTempDialogActionListener.java 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/SectionObject.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/TestIntegrateFrame.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/TransmitTreeObject.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/enums/CodeReferConfigTypeEnum.java 176 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/AttrRangObjectWarper.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/BaseModel.java 321 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/ClassifyLevel.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/CodeClassify.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/CodeClassifyValue.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/CodeDataObject.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/CodeFixedValue.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/CoderefersecSearchVO.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/DataGrid.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/IPage.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/OrderItem.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/Page.java 241 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/R.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/RMDataTransmitObject.java 160 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/ReferTreObject.java 179 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/TokenUserObject.java 264 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/UIFormRefer.java 267 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/UIFormRefers.java 315 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/UserObject.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/swing/IntegerTextField.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/swing/RealTextField.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/swing/VCIJComboxBox.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/utils/ConfigUtils.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/utils/HttpClient.java 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/utils/HttpClient3.java 159 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/utils/HttpUtil.java 376 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/utils/ListUtil.java 172 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/utils/MdmEngineConstant.java 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/utils/httpClient4.java 134 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/AttarSearchPanel.java 154 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410Dialog.java 193 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410DialogActionListener.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410MainPanel.java 1753 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410SearchDialog.java 168 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410SearchMainPanel.java 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410SearchProvider.java 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410TreePanel.java 309 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyPanelFor410.java 432 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyPanelFor410ActionListener.java 204 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeDataMainPanel.java 165 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeDataMainPanelActionListener.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeDataMainPanelDataProvider.java 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeLibTreeCellRenderer.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeReferTreePanel.java 208 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CommonActionListener.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/DescViewDialog.java 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/RMDataReferTempDialog.java 229 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/RMDataReferTempDialogActionListener.java 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/SectionObject.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/TestIntegrateFrame.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/TransmitTreeObject.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/enums/CodeReferConfigTypeEnum.java 176 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/AttrRangObjectWarper.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/BaseModel.java 321 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/ClassifyLevel.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/CodeClassify.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/CodeClassifyValue.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/CodeDataObject.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/CodeFixedValue.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/CoderefersecSearchVO.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/DataGrid.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/IPage.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/OrderItem.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/Page.java 241 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/R.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/RMDataTransmitObject.java 160 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/ReferTreObject.java 179 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/TokenUserObject.java 264 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/UIFormRefer.java 267 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/UIFormRefers.java 315 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/UserObject.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/swing/IntegerTextField.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/swing/RealTextField.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/swing/VCIJComboxBox.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/utils/ConfigUtils.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/utils/HttpClient.java 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/utils/HttpClient3.java 159 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/utils/HttpUtil.java 381 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/utils/ListUtil.java 172 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/utils/MdmEngineConstant.java 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/utils/httpClient4.java 134 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeImportResultVO.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/controller/DockingPreApplyCodeController.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/impl/GroupMdmInterServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/META-INF/additional-spring-configuration-metadata.json 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/更改过的jar包.zip 补丁 | 查看 | 原始文档 | blame | 历史
Source/更改过的jar包(有更新).zip 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/dist/cdn/animate/3.5.2/animate.css
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/cdn/avue/2.9.12/avue.min.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/cdn/avue/2.9.12/index.css
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/cdn/axios/1.0.0/axios.min.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/cdn/element-ui/2.15.6/index.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/cdn/element-ui/2.15.6/theme-chalk/fonts/element-icons.ttf
Binary files differ
Source/UBCS-WEB/dist/cdn/element-ui/2.15.6/theme-chalk/fonts/element-icons.woff
Binary files differ
Source/UBCS-WEB/dist/cdn/element-ui/2.15.6/theme-chalk/index.css
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/cdn/iconfont/avue/iconfont.css
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/cdn/iconfont/avue/iconfont.eot
Binary files differ
Source/UBCS-WEB/dist/cdn/iconfont/avue/iconfont.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/cdn/iconfont/avue/iconfont.json
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/cdn/iconfont/avue/iconfont.svg
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/cdn/iconfont/avue/iconfont.ttf
Binary files differ
Source/UBCS-WEB/dist/cdn/iconfont/avue/iconfont.woff
Binary files differ
Source/UBCS-WEB/dist/cdn/iconfont/avue/iconfont.woff2
Binary files differ
Source/UBCS-WEB/dist/cdn/iconfont/index.css
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/cdn/iconfont/saber/iconfont.css
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/cdn/iconfont/saber/iconfont.eot
Binary files differ
Source/UBCS-WEB/dist/cdn/iconfont/saber/iconfont.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/cdn/iconfont/saber/iconfont.json
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/cdn/iconfont/saber/iconfont.svg
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/cdn/iconfont/saber/iconfont.ttf
Binary files differ
Source/UBCS-WEB/dist/cdn/iconfont/saber/iconfont.woff
Binary files differ
Source/UBCS-WEB/dist/cdn/iconfont/saber/iconfont.woff2
Binary files differ
Source/UBCS-WEB/dist/cdn/nutflow/wf-design-base/fonts/bpmn.08b5f281.eot
Binary files differ
Source/UBCS-WEB/dist/cdn/nutflow/wf-design-base/fonts/bpmn.3c4c9f45.woff2
Binary files differ
Source/UBCS-WEB/dist/cdn/nutflow/wf-design-base/fonts/bpmn.acbc6cbd.woff
Binary files differ
Source/UBCS-WEB/dist/cdn/nutflow/wf-design-base/fonts/bpmn.f922519e.ttf
Binary files differ
Source/UBCS-WEB/dist/cdn/nutflow/wf-design-base/fonts/codicon.22349029.ttf
Binary files differ
Source/UBCS-WEB/dist/cdn/nutflow/wf-design-base/fonts/fontawesome-webfont.674f50d2.eot
Binary files differ
Source/UBCS-WEB/dist/cdn/nutflow/wf-design-base/fonts/fontawesome-webfont.af7ae505.woff2
Binary files differ
Source/UBCS-WEB/dist/cdn/nutflow/wf-design-base/fonts/fontawesome-webfont.b06871f2.ttf
Binary files differ
Source/UBCS-WEB/dist/cdn/nutflow/wf-design-base/fonts/fontawesome-webfont.fee66e71.woff
Binary files differ
Source/UBCS-WEB/dist/cdn/nutflow/wf-design-base/img/bpmn.1381b44e.svg
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/cdn/nutflow/wf-design-base/img/fontawesome-webfont.912ec66d.svg
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/cdn/nutflow/wf-design-base/index.umd.min.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/cdn/vue-router/3.0.1/vue-router.min.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/cdn/vue/2.6.10/vue.min.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/cdn/vuex/3.1.1/vuex.min.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/cdn/xlsx/FileSaver.min.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/cdn/xlsx/xlsx.full.min.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/css/app.b242c82a.css
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/css/chunk-vendors.e41156d0.css
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/css/fontSize.css
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/css/page.e84a6fd9.css
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/css/views.a44fd8f5.css
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/favicon.png
Binary files differ
Source/UBCS-WEB/dist/img/bg/403.svg
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/img/bg/404.svg
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/img/bg/500.svg
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/img/bg/bg.jpg
Binary files differ
Source/UBCS-WEB/dist/img/bg/bg1.jpg
Binary files differ
Source/UBCS-WEB/dist/img/bg/bg2.jpg
Binary files differ
Source/UBCS-WEB/dist/img/bg/bg3.jpg
Binary files differ
Source/UBCS-WEB/dist/img/bg/bg4.jpg
Binary files differ
Source/UBCS-WEB/dist/img/bg/cloud.jpg
Binary files differ
Source/UBCS-WEB/dist/img/bg/img-logo.png
Binary files differ
Source/UBCS-WEB/dist/img/bg/login.png
Binary files differ
Source/UBCS-WEB/dist/img/bg/logo.png
Binary files differ
Source/UBCS-WEB/dist/img/bg/star-squashed.jpg
Binary files differ
Source/UBCS-WEB/dist/img/bg/vip1.png
Binary files differ
Source/UBCS-WEB/dist/img/bg/vip2.png
Binary files differ
Source/UBCS-WEB/dist/img/bg/vip3.png
Binary files differ
Source/UBCS-WEB/dist/img/bg/vip4.png
Binary files differ
Source/UBCS-WEB/dist/img/logo.png
Binary files differ
Source/UBCS-WEB/dist/img/mock/card/card-1.jpg
Binary files differ
Source/UBCS-WEB/dist/img/mock/card/card-2.jpg
Binary files differ
Source/UBCS-WEB/dist/img/mock/card/card-3.jpg
Binary files differ
Source/UBCS-WEB/dist/img/mock/card/card-4.jpg
Binary files differ
Source/UBCS-WEB/dist/img/mock/cli/1.png
Binary files differ
Source/UBCS-WEB/dist/img/mock/cli/2.png
Binary files differ
Source/UBCS-WEB/dist/img/mock/cli/3.png
Binary files differ
Source/UBCS-WEB/dist/img/mock/iconfont.png
Binary files differ
Source/UBCS-WEB/dist/img/pageLogo.jpeg
Binary files differ
Source/UBCS-WEB/dist/index.html
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/js/chunk-2d0e4caf.f1e21f7e.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/js/chunk-vendors.cf283b97.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/js/page.9579e702.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/js/views.d5699fdc.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/src/router/avue-router.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/svg/loading-spin.svg
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/util/aes.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/util/font_4017492_2d1qk52m7xp.ttf
Binary files differ
Source/UBCS-WEB/dist/util/font_4017492_2d1qk52m7xp.woff
Binary files differ
Source/UBCS-WEB/dist/util/font_4017492_2d1qk52m7xp.woff2
Binary files differ
Source/UBCS-WEB/dist/util/screen/guge.png
Binary files differ
Source/UBCS-WEB/dist/util/screen/huohu.png
Binary files differ
Source/UBCS-WEB/dist/util/screen/screen.css
ÎļþÒÑɾ³ý
Source/UBCS-WEB/dist/util/screen/screen.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/public/cdn/avue/2.9.12/avue.min.js
ÎļþÌ«´ó
Source/UBCS-WEB/src/config/FileSaver.js-master/.github/FUNDING.yml
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/FileSaver.js-master/.gitignore
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/FileSaver.js-master/CHANGELOG.md
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/FileSaver.js-master/LICENSE.md
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/FileSaver.js-master/README.md
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/FileSaver.js-master/bower.json
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/FileSaver.js-master/dist/FileSaver.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/FileSaver.js-master/dist/FileSaver.min.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/FileSaver.js-master/dist/FileSaver.min.js.map
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/FileSaver.js-master/package-lock.json
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/FileSaver.js-master/package.json
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/FileSaver.js-master/src/FileSaver.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/.gitignore
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/.gitmodules
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/.jscs.json
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/.jshintrc
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/.npmignore
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/.travis.yml
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/CONTRIBUTING.md
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/LICENSE
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/Makefile
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/README.md
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bin/xlsx.njs
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/.npmignore
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/00_header.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/01_version.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/02_codepage.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/04_base64.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/05_buf.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/10_ssf.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/11_ssfutils.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/18_cfb.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/20_jsutils.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/21_ziputils.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/22_xmlutils.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/23_binutils.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/24_hoppers.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/25_cellutils.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/26_crypto.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/28_binstructs.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/29_xlsenum.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/30_ctype.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/31_rels.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/33_coreprops.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/34_extprops.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/35_custprops.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/36_xlsprops.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/38_xlstypes.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/39_xlsbiff.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/42_sstxml.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/43_sstbin.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/44_offcrypto.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/45_styutils.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/46_stycommon.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/47_styxml.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/48_stybin.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/49_theme.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/50_styxls.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/52_ccxml.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/53_ccbin.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/56_cmntcommon.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/57_cmntxml.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/58_cmntbin.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/61_fcommon.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/62_fxls.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/63_fbin.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/64_ftab.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/66_wscommon.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/67_wsxml.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/68_wsbin.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/76_wbcommon.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/77_wbxml.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/78_wbbin.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/79_xmlbin.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/80_xlml.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/81_xls.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/82_parsetab.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/83_parseods.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/84_defaults.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/85_parsezip.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/86_writezip.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/87_read.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/88_write.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/90_utils.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/91_xmlbuilder.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/92_stylebuilder.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/98_exports.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bits/99_footer.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/bower.json
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/cell_style_simple.json
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/color.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/dist/LICENSE
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/dist/cpexcel.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/dist/jszip.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/dist/ods.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/dist/xlsx.core.min.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/dist/xlsx.core.min.map
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/dist/xlsx.full.min.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/dist/xlsx.full.min.map
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/dist/xlsx.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/dist/xlsx.min.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/dist/xlsx.min.map
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/example-4.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/example-style.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/example1.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/example3.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/jszip.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/misc/_bower.json
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/misc/cfb.d.ts
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/misc/node.d.ts
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/misc/spin.sh
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/misc/ssf.json
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/misc/strip_sourcemap.sh
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/misc/xl.d.ts
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/misc/xlsx2csv.ts
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/ods.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/odsbits/00_header.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/odsbits/10_utils.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/odsbits/20_jsutils.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/odsbits/21_ziputils.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/odsbits/22_xmlutils.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/odsbits/23_xlml.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/odsbits/30_manifest.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/odsbits/40_helpers.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/odsbits/60_content.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/odsbits/80_parse.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/odsbits/98_exports.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/odsbits/99_footer.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/package-lock.json
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/package.json
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/shim.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/test.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/testA.lst
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/tests.lst
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/tests/Common.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/tests/EncodedSpec.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/tests/FormulaSpec.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/tests/InterviewSpec.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/tests/IssueSpec.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/tests/MixedSpec.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/tests/NamedRangesSpec.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/tests/print-header.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/tests/test-acid.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/tests/test-csv.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/tests/test-freeze.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/tests/test-min.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/tests/test-open.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/tests/test-style.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/tests/write.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/xlsx.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/xlsxworker.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/xlsxworker1.js
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/config/js-xlsx-master/xlsxworker2.js
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/AttarSearchPanel.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,154 @@
package com.vci.rmip.code.client.codeapply.Apply410;
import com.vci.base.ui.swing.components.VCIJLabel;
import com.vci.base.ui.swing.components.VCIJPanel;
import com.vci.base.ui.swing.components.VCIJTextField;
import com.vci.ubcs.code.vo.webserviceModel.coderule.CodeShowFieldConfigVO;
import com.vci.rmip.code.client.codeapply.Apply410.object.UIFormRefer;
import org.apache.commons.collections4.CollectionUtils;
import java.awt.*;
import java.util.*;
import java.util.List;
public class AttarSearchPanel extends VCIJPanel {
    private LinkedHashMap<String , VCIJTextField> attrInerNameValMap = new LinkedHashMap<String,VCIJTextField>();
    private UIFormRefer uiFormRefer;
    public AttarSearchPanel(UIFormRefer uiFormRefer){
        this.uiFormRefer = uiFormRefer;
        init();
    }
    private void init(){
        initcomponam();
    }
    private void initcomponam(){
        this.setLayout(new GridBagLayout());
        setAttrSearch();
        this.setVisible(true);
    }
    /**
     *
     * <p>把基本属性信息初始化到组件上面。并保存属性到Map(属性内部名称--textField)中</p>
     *
     * @time 2013-3-17
     */
    private void setAttrSearch(){
        List<CodeShowFieldConfigVO> codeShowFieldConfigVOS=this.uiFormRefer.getCodeShowFieldConfigVOS();
        if(!CollectionUtils.isEmpty(codeShowFieldConfigVOS)){
            CodeShowFieldConfigVO[] objs=codeShowFieldConfigVOS.toArray(new CodeShowFieldConfigVO []{});
            GridBagConstraints cons = new GridBagConstraints(0, 0, 1, 1, 0.0, 1.0, GridBagConstraints.EAST , GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0);
            for(int i = 0 ;i<objs.length;i++){
                if(cons.gridx  == 1 ){
                    cons.gridwidth = GridBagConstraints.REMAINDER;
                    cons.anchor = GridBagConstraints.WEST;
                }else if(cons.gridx >1){
                    cons.gridx = 0;
                    cons.anchor = GridBagConstraints.EAST;
                    cons.gridy++;
                    cons.gridwidth = 1;
                }
                VCIJPanel oneSearch = new VCIJPanel();
                oneSearch.setLayout(new FlowLayout(FlowLayout.RIGHT));
                String attrName = objs[i].getTitle();
                VCIJLabel attarLabel = new VCIJLabel(attrName+":");
                VCIJTextField attrText = new VCIJTextField("");
                attrInerNameValMap.put(objs[i].getField(), attrText);
                attrText.setPreferredSize(new Dimension(300, 30));
                oneSearch.add(attarLabel);
                oneSearch.add(attrText);
                cons.gridx++;
                this.add(oneSearch,cons);
            }
        }
    }
    /**
     *
     * <p>返回各个属性经过拼接后的查询SQL语句</p>
     *
     * @time 2013-3-17
     * @return
     */
    public Map<String,String> getAttrSearchFilterString(){
        String result = "";
        Map<String,String> customConditionMap=new HashMap<>();
        Set<String> keys = attrInerNameValMap.keySet();
        for (Iterator it = keys.iterator(); it.hasNext();) {
            String key = (String)it.next();
            VCIJTextField textField =     attrInerNameValMap.get(key);
            String message = textField.getText().replaceAll(" ", "").trim();
            if(message.equals("")) continue;
            String text = getTextQueryVal(message);
            customConditionMap.put(key,text);
        }
        return customConditionMap;
    }
    /**
     *
     * <p>根据文本框输入内容,构造查询条件。
     *     è¿‡è™‘结果: 1、当内容是 ä»¥*开头,如'*abc',则返回内容"%abc";
     *            2、当内容以*结束,如"abc*",则返回内容"abc%";
     *            3、当内容中间包含*,如"abc*def",则返回内容"abc%def";
     *            4、输入的内容如果是空,则返回"%"
     *            5、其他情况均返回内容本身
     * </p>
     * @time 2013-3-17
     * @param text
     * @return
     */
    private String getTextQueryVal(String text){
        if(text.equals("")){
            return "%";
        }
        StringBuilder result = new StringBuilder();
        // update by xchao 2013.05.21 begin
        // æ”¯æŒæ›´çµæ´»çš„æœç´¢
        // ä¸»æ€æƒ³æŽ§åˆ¶é€»è¾‘
        // 1、将输入的条件中的*替换为%,XXX*XXX-> XXX%XXX
        // 2、如果输入的条件不包含*,则在条件的前后都加上%,以完成全模糊,'%XXX%'
        // 3、前面不输入*、后面不输入*与之前一致
        //     å³ï¼šå‰é¢ä¸åŒ…含*,则表明查询的是‘以XXX开头’的数据,'XXX%'
        //         åŽé¢ä¸åŒ…含*,则表面查询的是‘以XXX结束’的数据,'%XXX'
        // 4、
        if(text.indexOf("*") >= 0){
//            result.append(text.replace("*", "%"));
            // ä¸‹å¥å¯ä»¥æ”¯æŒä¸­é—´*
            result.append("%").append(text.replace("*", "%")).append("%");
        } else {
            result.append("%").append(text).append("%");
        }
        // update by xchao 2013.05.21 end
//        int midel = text.lastIndexOf("*");
//        if(text.startsWith("*")){
//            result.append("%");
//            result.append(text.substring(1));
//        }else if(text.endsWith("*")){
//            result.append(text.substring(0, text.length()-1));
//            result.append("%");
//        }else if(midel > 0){
//            String before = text.substring(0, midel);
//            result.append(before);
//            result.append("%");
//            String after = text.substring(midel+1);
//            result.append(after);
//        }else{
//            result.append(text);
//        }
        return result.toString();
    }
    public void clear(){
        Set<String> keys = attrInerNameValMap.keySet();
        for (Iterator it = keys.iterator(); it.hasNext();) {
            String key = (String)it.next();
            VCIJTextField textField =     attrInerNameValMap.get(key);
            textField.setText("");
        }
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyFor410Dialog.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,193 @@
package com.vci.rmip.code.client.codeapply.Apply410;
import com.alibaba.cloud.commons.lang.StringUtils;
import com.alibaba.fastjson.JSONObject;
import com.vci.base.ui.swing.VCIOptionPane;
import com.vci.base.ui.swing.VCISwingUtil;
import com.vci.base.ui.swing.components.VCIJButton;
import com.vci.base.ui.swing.components.VCIJDialog;
import com.vci.base.ui.swing.components.VCIJPanel;
import com.vci.rmip.code.client.codeapply.Apply410.object.UserObject;
import com.vci.rmip.code.client.codeapply.Apply410.object.TokenUserObject;
import com.vci.rmip.code.client.codeapply.Apply410.utils.ConfigUtils;
import com.vci.rmip.code.client.codeapply.Apply410.utils.HttpUtil;
import javax.swing.*;
import java.awt.*;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
public class CodeApplyFor410Dialog extends VCIJDialog {
    private static final long serialVersionUID = -3286164100581857853L;
    private static TokenUserObject tokenUserObject = new TokenUserObject();
    private String userName = null;
    private String codeValue = null;
    private CodeApplyFor410DialogActionListener actionListener = new CodeApplyFor410DialogActionListener(this);
    private VCIJButton okBtn = VCISwingUtil.createVCIJButton("ok", "确认", "确认", "ok.gif", actionListener);
    private VCIJButton cancelBtn = VCISwingUtil.createVCIJButton("cancel", "取消", "取消", "cancel.gif", actionListener);
    private CodeApplyPanelFor410 mainPal = null;
    private Component parentComponet = null;
    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");
    /**
     * å­˜å‚¨åˆ†ç±»çš„Map,key:分类名称,value:分类值
     */
    private String clsfName = null;
    /**
     * å­˜å‚¨å±žæ€§å’Œå€¼çš„Map,key:属性名称,value:属性值
     */
    private String deptName = null;
    private String[] libName = ConfigUtils.getConfigValue("410.PDM.LibCodeName").split("#");//ConfigUtils.getConfigValue("410.PDM.LibCodeName").split("#");//代码项名称
    public CodeApplyFor410Dialog(Frame frame, String clsfName, String deptName) {
        this(frame, "pdmUser", clsfName, deptName,new String[]{});
    }
    public CodeApplyFor410Dialog(JDialog dialog, String clsfName, String deptName) {
        this(dialog, "pdmUser", clsfName, deptName,new String[]{});
    }
    public CodeApplyFor410Dialog(Frame frame, String userName, String clsfName, String deptName, String[] libName){
        super(frame, true);
        VCISwingUtil.setClientMainFrame(frame);
        try {
            this.setModal(true);
            parentComponet = frame;
            this.userName = userName;
            this.clsfName = clsfName;
            this.deptName = deptName;
            //this.libName = libName;
            init();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public CodeApplyFor410Dialog(JDialog dialog, String userName, String clsfName, String deptName, String[] libName) {
        super(dialog, true);
        VCISwingUtil.setClientMainFrame(new Frame());
        try {
            this.setModal(true);
            parentComponet = dialog;
            this.userName = userName;
            this.clsfName = clsfName;
            this.deptName = deptName;
            //    this.libName = libName;
            init();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    private void initUserInfo() throws Exception {
        /*userOb.set("127.0.0.1");
        userOb.setModules("TC集成代码申请");
        userOb.setUserName(userName);*/
        Map<String,String> headerMap=new HashMap<>();
        headerMap.put("Tenant-Id",ConfigUtils.getConfigValue("410.code.token.tenantId","000000"));
        headerMap.put("Authorization",ConfigUtils.getConfigValue("410.code.token.authorization","Basic c3dvcmQ6c3dvcmRfc2VjcmV0"));
        headerMap.put("Content-Type",ConfigUtils.getConfigValue("410.code.token.contentType","application/x-www-form-urlencoded"));
        UserObject userObject=new UserObject();
        Map<String,String> parmarMap=new HashMap<>();
        //userObject.set("Tenant-Id",ConfigUtils.getConfigValue("410.code.token.tenantId","000000"));
        /*userObject.setUsername("admin");
        userObject.setPassword("21232f297a57a5a743894a0e4a801fc3");
        userObject.setGrant_type("password");
        userObject.setScope("all");
        Object object = JSONObject.toJSON(userObject);*/
        parmarMap.put("username","admin");
        parmarMap.put("password","21232f297a57a5a743894a0e4a801fc3");
        parmarMap.put("scope","all");
        parmarMap.put("grant_type","password");
        String result=HttpUtil.sendFormPost(tokenUrl,parmarMap,headerMap);
        if (StringUtils.isNotBlank(result)) {
            tokenUserObject = JSONObject.toJavaObject(JSONObject.parseObject(result), TokenUserObject.class);
        }else{
            throw  new Exception("验证用户鉴权信息失败!");
        }
    }
    public void buildDialog() {
        Dimension dime = Toolkit.getDefaultToolkit().getScreenSize();
        int x = dime.width/2 - 400;
        int y = dime.height/2-400;
        this.setLocation(x, y);
        this.setSize(new Dimension(900, 800));
        this.setResizable(true);
        this.setVisible(true);
    }
    private void init() {
        boolean isConnect = verifyConnect();
        if (isConnect) {
            try {
                initUserInfo();
                bulidPal();
            }catch (Exception e){
                showMessageBox( "服务出现异常:->"+e.getMessage());
            }
        } else {
            showMessageBox("无法连接代码服务器!");
        }
    }
    private void bulidPal() throws Exception {
        this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        this.setTitle("代码申请");
        mainPal = new CodeApplyPanelFor410(this,tokenUserObject, true, clsfName, deptName,libName);
        VCIJPanel btnPal = new VCIJPanel();
        btnPal.add(okBtn);
        btnPal.add(cancelBtn);
        this.setLayout(new BorderLayout());
        this.add(mainPal,BorderLayout.CENTER);
        this.add(btnPal,BorderLayout.SOUTH);
        buildDialog();
    }
    public boolean verifyConnect() {
        try {
//            if (ClientSession.getFrameworkService() != null) {
//                return true;
//            }
            return true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    }
    public String getApplyCode() {
        return mainPal.getApplyCode();
    }
    public String getCodeValue() {
        return codeValue;
    }
    public void setCodeValue(String codeValue) {
        this.codeValue = codeValue;
    }
    public String getAttributeValue(String attribute) {
        if(attrNameAndValMap.containsKey(attribute)) {
            return attrNameAndValMap.get(attribute);
        }
        return "";
    }
    public void setAttrNameAndValMap() {
        this.attrNameAndValMap = mainPal.getAttrNameAndValMap();
    }
    private void showMessageBox(String message) {
        VCIOptionPane.showMessage(parentComponet, message);
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyFor410DialogActionListener.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,45 @@
package com.vci.rmip.code.client.codeapply.Apply410;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.LinkedHashMap;
public class CodeApplyFor410DialogActionListener implements ActionListener {
    private CodeApplyFor410Dialog owner = null;
    public CodeApplyFor410DialogActionListener(CodeApplyFor410Dialog owner){
        this.owner = owner;
        this.initActionMap();
    }
    private LinkedHashMap<String, Runnable> actionMaps = new LinkedHashMap();
    private void initActionMap(){
        actionMaps.put("ok", new Runnable() { public void run() {
            ok();
        }});
        actionMaps.put("cancel", new Runnable() { public void run() {
            cancel();
        }});
    }
    @Override
    public void actionPerformed(ActionEvent e) {
        String key = e.getActionCommand();
        if(actionMaps.containsKey(key)){
            actionMaps.get(key).run();
        }
    }
    private void ok() {
        this.owner.setCodeValue(this.owner.getApplyCode());
        this.owner.setAttrNameAndValMap();
        this.owner.dispose();
    }
    private void cancel(){
        this.owner.setCodeValue("");
        this.owner.dispose();
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyFor410MainPanel.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,1749 @@
package com.vci.rmip.code.client.codeapply.Apply410;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.vci.base.ui.swing.VCIOptionPane;
import com.vci.base.ui.swing.components.*;
import com.vci.base.ui.tree.VCIBaseTreeNode;
import com.vci.rmip.code.client.codeapply.Apply410.object.*;
import com.vci.ubcs.code.vo.pagemodel.*;
import com.vci.rmip.code.client.codeapply.Apply410.swing.IntegerTextField;
import com.vci.rmip.code.client.codeapply.Apply410.swing.RealTextField;
import com.vci.rmip.code.client.codeapply.Apply410.swing.VCIJComboxBox;
import com.vci.rmip.code.client.codeapply.Apply410.utils.ConfigUtils;
import com.vci.rmip.code.client.codeapply.Apply410.utils.HttpUtil;
import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum;
import com.vci.ubcs.starter.web.pagemodel.KeyValue;
import com.vci.ubcs.starter.web.util.BeanUtilForVCI;
import com.vci.ubcs.starter.web.util.VciBaseUtil;
import net.logstash.logback.encoder.org.apache.commons.lang3.StringUtils;
import org.apache.commons.collections4.CollectionUtils;
import javax.swing.*;
import javax.swing.text.JTextComponent;
import javax.swing.tree.TreeNode;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.List;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
public class CodeApplyFor410MainPanel  extends VCIJPanel {
    private String url=ConfigUtils.getConfigValue("410.code.url","http://127.0.0.1:36014/codeApplySwingController");
    //410新需求
    private final String SPECIAL_RULE_NAME="Special.rule.name";
    private final String SPECIAL_SECTION_NAME = "Special.section.name";
    private final String SPECIAL_CONTROL_SECTION_NAME = "Special.control.other.section.name";
    private final String SPECIAL_SECTION_VALUE = "Special.section.val";
    private final String MAX_ATTR_IN_LINE_KEY = "RMData.MaxAttrInLine";
    private final String TEXTAREA_ENABLE_KEY = "RMData.TextArea.Enable";
    private final String MAX_STRING_LENGTH_KEY = "RMData.MaxStringLength";
    private final String TEXTAREA_PRE_SIZE_WIDTH = "RMData.TextArea.PreferredSize.Width";
    private final String TEXTAREA_PRE_SIZE_HEIGHT = "RMData.TextArea.PreferredSize.Height";
    private final String TEXTAREA_MIN_SIZE_WIDTH = "RMData.TextArea.MinimumSize.Width";
    private final String TEXTAREA_MIN_SIZE_HEIGHT = "RMData.TextArea.MinimumSize.Height";
    private final String TEXTAREA_MAX_SIZE_WIDTH = "RMData.TextArea.MaximumSize.Width";
    private final String TEXTAREA_MAX_SIZE_HEIGHT = "RMData.TextArea.MaximumSize.Height";
    // æ˜¯å¦å¯ç”¨å±žæ€§é•¿åº¦è¿‡é•¿æ—¶ï¼Œç”¨TextArea显示,true:启用 false:不启用,默认值true
    private boolean isEnableTextArea = false;
    // å¯ç”¨äº†TextArea后,此TextArea的PreferredSize、MinimumSize、MaximumSize的Width、Height
    private int textAreaPreSizeWidth = 100;
    private int textAreaPreSizeHeight = 50;
    private int textAreaMinSizeWidth = 100;
    private int textAreaMinSizeHeight = 30;
    private int textAreaMaxSizeWidth = 100;
    private int textAreaMaxSizeHeight = 80;
    // åŒä¸€è¡Œå†…,最多加载的属性个数,一行为一组,即一组内最多加载的属性个数,默认值2
    private int maxAttrInLine = 2;
    // å½“String类型的属性值的长度大于此值时,该属性就需要用TextArea显示,并占用整行,默认值100
    private int maxStringLength = 100;
    private int levelPositon = -1;
    private TransmitTreeObject transTreeObject = new TransmitTreeObject();
    private TokenUserObject tokenUserObject;
    private String deptName;
    //存储每个实际 ç æ®µåˆ—对应的码段对象
    protected Map<Integer,CodeBasicSecVO> columnSecMap = new LinkedHashMap<Integer,CodeBasicSecVO>();
    private LinkedHashMap<Integer, JComponent> compMaps = new LinkedHashMap<Integer, JComponent>();
    private Map<String, JComponent> secAndComMap = new LinkedHashMap<String, JComponent>();
    private Map<JComponent, JComponent> comtMap = new LinkedHashMap<JComponent, JComponent>();
    private Map<String, VCIJComboBox> secNameAndComtMap = new LinkedHashMap<String, VCIJComboBox>();
    private Map<Integer,String> secIndexAndNameMap = new LinkedHashMap<Integer, String>();
    private List<JComponent> specSecList = new ArrayList<JComponent>();
    private boolean isSpecialRuleFlag = false;
    private String specialSectioName = "";
    private VCIJPanel rulePal = new VCIJPanel();
    private StringBuffer tempStr= new StringBuffer();//可变码段的值;
    private  String  levelRes="";
    private String[] specialSecVals = new String[0];
    private RMDataTransmitObject transmitForRMData = null;
    private CodeRuleVO codeRuleVO=null;
    /**
     * å±žæ€§ID与属性对应的控件之间的映射MAP
     */
    private LinkedHashMap<String, JComponent> attrIdToCtrlMaps = new LinkedHashMap<String, JComponent>();
    /**
     * å±žæ€§çš„内部名称与属性对应的控件之间的映射MAP
     */
    private LinkedHashMap<String, JComponent> attrInnerNameToCtrlMaps = new LinkedHashMap<String, JComponent>();
    /**
     * å¼•用玛段码值与combox元素位置的映射MAP
     */
    private LinkedHashMap<String, Integer>  refSecValueToCombxindex = new LinkedHashMap<String, Integer>();
    /**
     * ç æ®µid与分类码段码值描述对象对应的控件之间的映射MAP
     */
    private LinkedHashMap<String, JComponent> secIdToClsfIdMap = new LinkedHashMap<String, JComponent>();
    private List<VCIJTextField> textCompts = new LinkedList<VCIJTextField>();
    /**
     * å½“前选择的分类的模板
     */
    private CodeClassifyTemplateVO currentCodeClassifyTemplateVO;
    // å®žé™…çš„
    private VCIJDialog realDialogInstance = null;
    public CodeApplyFor410MainPanel(TransmitTreeObject transTreeObject, TokenUserObject tokenUserObject, CodeClassifyTemplateVO currentCodeClassifyTemplateVO) {
        this.transTreeObject = transTreeObject;
        this.tokenUserObject = tokenUserObject;
        this.currentCodeClassifyTemplateVO=currentCodeClassifyTemplateVO;
    }
    public CodeApplyFor410MainPanel(TransmitTreeObject transTreeObject,TokenUserObject tokenUserObject,String deptName,CodeClassifyTemplateVO currentCodeClassifyTemplateVO) {
        this.transTreeObject = transTreeObject;
        this.tokenUserObject = tokenUserObject;
        this.deptName = deptName;
        this.currentCodeClassifyTemplateVO=currentCodeClassifyTemplateVO;
    }
    /**
     *
     * @param type, 1代表申请,2设置流水
     */
    public void buildMainPanel(int type) {
        try {
            init(type);
            if (type == 2) {
                return;
            }
            this.initRMTypeTreeMaps();
            this.initContents();
        }catch (Exception e){
            VCIOptionPane.showMessage(this,e.getMessage());
        }
    }
    private void init(int type){
        this.loadTextAreaEnableEnv(); //add by liujw
        //this.loadSpecialRuleConfig();
        CodeClassify rmType = (CodeClassify) this.transTreeObject.getCurrentTreeNode().getObj();
        //String url= ConfigUtils.getConfigValue("410.PDM.rule.url","http://127.0.0.1:36014/codeApplySwingController/getCodeRuleByClassifyFullInfo");
        /**系统只加载代码项  å¦‚æžœlibName不为空,直接获取对应的代码项**/
        Map<String,String> condtionMap=new HashMap<>();
        condtionMap.put("codeClassId", rmType.getOid());
        Map<String,String> headerMap=new HashMap<>();
        headerMap.put("Blade-Auth",this.tokenUserObject.getAccess_token());
        R r= HttpUtil.sendGet(url+"/getCodeRuleByClassifyFullInfo",condtionMap,headerMap);
        codeRuleVO=new CodeRuleVO();
        if(r.isSuccess()){
            Object object= r.getData();
            if(object!=null) {
                ObjectMapper objectMapper = new ObjectMapper();
                try {
                    codeRuleVO = objectMapper.readValue(object.toString(),CodeRuleVO.class);
                } catch (JsonProcessingException e) {
                    e.printStackTrace();
                }
            }
        }else{
            VCIOptionPane.showMessage(this,r.getMsg());
        }
        /**加载规则对应的码段信息**/
        if(codeRuleVO!=null){
            List<CodeBasicSecVO> codeBasicSecVOList=codeRuleVO.getSecVOList();
            if(!CollectionUtils.isEmpty(codeBasicSecVOList) ){
                /**初始化码段panel**/
                initSectionPanel(codeBasicSecVOList, codeRuleVO.getOid(), type);//初始化规则码段
            }
        }
        this.setLayout(new BorderLayout());
        this.add(rulePal,BorderLayout.CENTER);
    }
    /**
     * è§„则码段主界面
     * <p>Description: </p>
     *
     * @author Administrator
     * @time 2012-8-7
     * @param objs
     * @param cRuleId
     */
    private void initSectionPanel(List<CodeBasicSecVO> objs, String cRuleId, int type)  {
        //循环获取列名
        int column = 0;
        for(int i = 0; i < objs.size(); i++) {
            if(objs.get(i).getSecType().equals("codeserialsec")){//流水码段不在TABLE里显示
                if (type == 1) {
                    continue;
                } else if (type == 2) {
                    break;
                }
            }
            columnSecMap.put(column++,objs.get(i));
        }
        createSectionPanel(objs, type);
    }
    private void createSectionPanel(List<CodeBasicSecVO> secObjs, int type)  {
        /**每次选择代码项后,自动加载规则码段和模板属性信息,清除原来的码段信息**/
        rulePal.removeAll();
        rulePal.updateUI();
        /**根据规则获取码段信息界面**/
        VCIJPanel sectionPal = new VCIJPanel(new GridBagLayout());
        GridBagConstraints c = new GridBagConstraints();
        int x = 0;
        int y = 0;
        int maxAttrInLine = 1;
        int column = 2;
        List<CodeBasicSecVO> secList = new ArrayList<CodeBasicSecVO>();
        List<VCIJComboxBox> comList = new ArrayList<VCIJComboxBox>();
        compMaps.clear();
        secAndComMap.clear();
        secIdToClsfIdMap.clear();
        secNameAndComtMap.clear();
        secIndexAndNameMap.clear();
        // åŠ è½½ç æ®µåˆ—è¡¨
        boolean isBreak = false;
        for(int secIndex = 0; secIndex < secObjs.size(); secIndex += maxAttrInLine){//for1
            for(int columnIndex = 0; columnIndex < maxAttrInLine; columnIndex++){ //for2
                if(secIndex + columnIndex >= secObjs.size()){
                    break;
                }
                if(secObjs.get(secIndex).getSecType().equals("codeserialsec")){//流水码段不在TABLE里显示
                    if (type == 1) {
                        continue;
                    } else {
                        isBreak = true;
                        break;
                    }
                } /*else if (secObjs[secIndex].getSecType() == SectionConstant.SectionType.SECCHAR){//是分隔符
                    continue;
                }*/
                CodeBasicSecVO secObj = secObjs.get(secIndex+columnIndex);
                VCIJLabel lbl = new VCIJLabel(secObj.getName() + ":");
                lbl.setForeground(new Color(129, 0, 0));
                JComponent compt = null;//码段名称
                VCIJComboxBox cbx = new VCIJComboxBox();
                compt = cbx;
                secList.add(secObj);
                comList.add(cbx);
                compMaps.put(column, compt);
                secNameAndComtMap.put(secObj.getName(), cbx);
                secIndexAndNameMap.put(column, secObj.getName());
                /**层级码段需要特殊处理:如果是层级码段,下拉框不能编辑,显示的值是选中的树节点的分类名称和代号**/
                if(secObj.getSecType().equals ("codelevelsec")) {//层级码段
                    levelPositon = column;
                    compt.setEnabled(false);
                }
//                relationMap.put(secIndex, column);
                secAndComMap.put(secObj.getId(), cbx);
                column++;
                c.gridx = x++;
                c.gridy = y;
                c.gridheight = 1;
                c.gridwidth = 1;
                c.weightx = 0d;
                c.weighty = 0d;
//                c.fill = GridBagConstraints.NONE;
                c.anchor = GridBagConstraints.EAST;
                c.insets = new Insets(1, 1, 10, 10);
                c.ipadx = 3;
                c.ipady = 3;
                lbl.setPreferredSize(new Dimension(100,25));
                sectionPal.add(lbl, c);
                c.gridx = x++;
                c.weightx = 0d;
                c.fill = GridBagConstraints.CENTER;
                c.anchor = GridBagConstraints.WEST;
                compt.setPreferredSize(new Dimension(200,25));
                sectionPal.add(compt, c);
                //如果当前码段是需要特殊处理的码段,系统进行记录处理
                if(isSpecialRuleFlag && specialSectioName.equals(secObj.getName())) {
                    specSecList.add(lbl);
                    specSecList.add(compt);
                }
                /**分类码段添加描述信息  410新需求:分类码段码值增加'码值描述'字段 BEGIN***/
                if(secObj.getSecType().equals("codeclassifysec")) {
                    VCIJLabel lblDesc = new VCIJLabel("描述:");
                    c.gridx = x++;
                    c.weightx = 0d;
                    c.fill = GridBagConstraints.NONE;
                    c.anchor = GridBagConstraints.WEST;
                    lblDesc.setPreferredSize(new Dimension(40,25));
                    sectionPal.add(lblDesc, c);
                    VCIJTextField txtDesc = new VCIJTextField("");
                    c.gridx = x++;
                    c.weightx = 0d;
                    c.fill = GridBagConstraints.CENTER;
                    c.anchor = GridBagConstraints.WEST;
                    txtDesc.setPreferredSize(new Dimension(200,25));
                    txtDesc.setEditable(false);
                    sectionPal.add(txtDesc, c);
                    secIdToClsfIdMap.put(secObj.getId(), txtDesc);
                    //详细描述信息的查看
                    VCIJLabel clsfDescLbl = new VCIJLabel();
                    clsfDescLbl.setText("<html><u>"+"详细描述"+"</u><html>");
                    clsfDescLbl.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
                    clsfDescLbl.setForeground(Color.RED);
                    comtMap.put(clsfDescLbl,txtDesc);
                    clsfDescLbl.addMouseListener(new MouseAdapter() {
                        public void mouseClicked(MouseEvent e){
                            clsfValDescActionListener(e);
                        }
                    });
                    c.gridx = x++;
                    c.weightx = 0d;
                    c.fill = GridBagConstraints.NONE;
                    c.anchor = GridBagConstraints.WEST;
//                    lblDesc.setPreferredSize(new Dimension(100,25));
                    sectionPal.add(clsfDescLbl, c);
                    //如果当前码段是需要特殊处理的码段,系统进行记录处理
                    if(isSpecialRuleFlag && specialSectioName.equals(secObj.getName())) {
                        specSecList.add(lblDesc);
                        specSecList.add(txtDesc);
                        specSecList.add(clsfDescLbl);
                    }
                }
                /****************************END**********************************/
            }// for 2
            if (isBreak) {
                break;
            }
            x = 0;
            y += 1;
        }// for 1
        rulePal.setLayout(new BorderLayout());
        rulePal.add(sectionPal,BorderLayout.CENTER);
        if (type == 1) {
            rulePal.add(createAttrPal(),BorderLayout.SOUTH);
        }
        initCurrentRow(secList.toArray(new CodeBasicSecVO[0]),comList.toArray(new VCIJComboxBox[0]));
    }
    /**加载模板属性信息面板**/
    private VCIJPanel createAttrPal() {
        VCIJPanel attrPal = new VCIJPanel();
        CodeClassify rmTypeObj = (CodeClassify) this.transTreeObject.getCurrentTreeNode().getObj();
        /**选择了代码项**/
        if(rmTypeObj != null) {
            transmitForRMData = loadTemplateAttributes("",rmTypeObj.getId(),"");
            /**代码项下的模板包含属性**/
            if(transmitForRMData.getTempPropObjsList().size() > 0) {
                attrPal = createTemplateAttributePanel(transmitForRMData);
            }
        }
        return attrPal;
    }
    private void loadSpecialRuleConfig() {
        /******added by ligang æ˜¯å¦æ˜¯ç‰¹æ®Šè§„则的判断Begin******/
        /*CodeClassify rmType = (CodeClassify) this.transTreeObject.getCurrentTreeNode().getObj();
        RuleManagerObject ruleObj = ruleDel.getRuleManagerById(rmType.getRuleOid());
        String specialRuleName = ConfigUtils.getConfigValue(SPECIAL_RULE_NAME);
        isSpecialRuleFlag = ruleObj.getPlname().toUpperCase().equals(specialRuleName.toUpperCase()) ? true : false;
        specialControlSecName = ConfigUtils.getConfigValue(SPECIAL_CONTROL_SECTION_NAME);
        specialSectioName = ConfigUtils.getConfigValue(SPECIAL_SECTION_NAME);
        specialSecVals = ConfigUtils.getConfigValue(SPECIAL_SECTION_VALUE).split(",");*/
        /*********************End*************************/
    }
    /**
     * åŠ è½½æ˜¯å¦å¯ç”¨TextArea环境参数
     * <p>
     * Description:
     * </p>
     * @author liujw
     * @throws
     * @time 2013-4-16
     */
    private void loadTextAreaEnableEnv()  {
        String textAreaEnable = ConfigUtils.getConfigValue(TEXTAREA_ENABLE_KEY);
        String strAttrInLine = ConfigUtils.getConfigValue(MAX_ATTR_IN_LINE_KEY);
        if (isNumber(strAttrInLine)) {
            Integer iLength = Integer.valueOf(strAttrInLine);
            if (iLength > 0) {
                this.maxAttrInLine = iLength;
            }
        }
        if (textAreaEnable.toLowerCase().equals("true")) {
            this.isEnableTextArea = true;
        }
        if(this.isEnableTextArea){
            String cfgValue = "";
            cfgValue = ConfigUtils.getConfigValue(MAX_STRING_LENGTH_KEY);
            if (isNumber(cfgValue)) {
                Integer iLength = Integer.valueOf(cfgValue);
                if (iLength > 0) {
                    this.maxStringLength = iLength;
                }
            }
            cfgValue = ConfigUtils.getConfigValue(TEXTAREA_PRE_SIZE_WIDTH);
            if (isNumber(cfgValue)) {
                Integer iValue = Integer.valueOf(cfgValue);
                if (iValue > 0) {
                    this.textAreaPreSizeWidth = iValue;
                }
            }
            cfgValue = ConfigUtils.getConfigValue(TEXTAREA_PRE_SIZE_HEIGHT);
            if (isNumber(cfgValue)) {
                Integer iValue = Integer.valueOf(cfgValue);
                if (iValue > 0) {
                    this.textAreaPreSizeHeight = iValue;
                }
            }
            cfgValue = ConfigUtils.getConfigValue(TEXTAREA_MIN_SIZE_WIDTH);
            if (isNumber(cfgValue)) {
                Integer iValue = Integer.valueOf(cfgValue);
                if (iValue > 0) {
                    this.textAreaMinSizeWidth = iValue;
                }
            }
            cfgValue = ConfigUtils.getConfigValue(TEXTAREA_MIN_SIZE_HEIGHT);
            if (isNumber(cfgValue)) {
                Integer iValue = Integer.valueOf(cfgValue);
                if (iValue > 0) {
                    this.textAreaMinSizeHeight = iValue;
                }
            }
            cfgValue = ConfigUtils.getConfigValue(TEXTAREA_MAX_SIZE_WIDTH);
            if (isNumber(cfgValue)) {
                Integer iLength = Integer.valueOf(cfgValue);
                if (iLength > 0) {
                    this.textAreaMaxSizeWidth = iLength;
                }
            }
            cfgValue = ConfigUtils.getConfigValue(TEXTAREA_MAX_SIZE_HEIGHT);
            if (isNumber(cfgValue)) {
                Integer iLength = Integer.valueOf(cfgValue);
                if (iLength > 0) {
                    this.textAreaMaxSizeHeight = iLength;
                }
            }
        }
    }
    /**
     * åˆ†ç±»å±‚级注入功能的完善
     * <p>Description: </p>
     *
     * @author ligang
     * @time 2013-5-7
     */
    private void initContents() {
        Iterator<String> keys = transmitForRMData.getTempPropObjsMap().keySet().iterator();
        while(keys.hasNext()){
            String key = keys.next();
            CodeClassifyTemplateAttrVO tempPropObj = transmitForRMData.getTempPropObjsMap().get(key);
            String referConfig=tempPropObj.getReferConfig();//参照配置
            String componentRule=tempPropObj.getComponentRule();//组合规则
            String innerName = tempPropObj.getId();
            if (attrInnerNameToCtrlMaps.containsKey(innerName)) {
                String classifyLevel = tempPropObj.getClassifyInvokeLevel();
                String classifyInvokeAttr= tempPropObj.getClassifyInvokeAttr();
                JComponent compt = attrInnerNameToCtrlMaps.get(innerName);
                if(StringUtils.isNotBlank(classifyLevel)&&!classifyLevel.equals("none")&&!classifyLevel.equals("min")) {
                    compt.setEnabled(false);
                    //ClassifyLevel classifyLevelObj=new ClassifyLevel();
                    //ObjectMapper objectMapper = new ObjectMapper();
                    String value = "";
                    /*classifyLevelObj = objectMapper.readValue(classifyLevel.toString(), ClassifyLevel.class);
                    String set=classifyLevelObj.getSet();
                    String type=classifyLevelObj.getType();*/
                    if (classifyLevel.equals("min")) {
                        CodeClassify rmType = (CodeClassify) this.transTreeObject.getCurrentTreeNode().getObj();
                        if ("name".equals(classifyInvokeAttr)) {
                            value = rmType.getName();
                        } else if ("id".equals(classifyInvokeAttr)) {
                            value = rmType.getId();
                        }
                    } else {
                        int intLevel = Integer.parseInt(classifyLevel);
                        if (rmTypeTreeMaps.containsKey(intLevel)) {
                            CodeClassify rmType = rmTypeTreeMaps.get(intLevel);
                            if ("name".equals(classifyInvokeAttr)) {
                                value = rmType.getName();
                            } else if ("id".equals(classifyInvokeAttr)) {
                                value = rmType.getId();
                            }
                        }
                    }
                    if (compt instanceof JTextComponent) {
                        ((JTextComponent) compt).setText(value);
                    }
                }
                //参照配置的设置成只读模式
                if(StringUtils.isNotBlank(referConfig)||StringUtils.isNotBlank(componentRule)){
                    compt.setEnabled(false);
                }
            }
        }
    }
    /**
     * åˆ†ç±»æ ‘中的分类对象map
     */
    private LinkedHashMap<Integer, CodeClassify> rmTypeTreeMaps = new LinkedHashMap();
    private void initRMTypeTreeMaps(){
        if(transTreeObject != null){
            TreeNode[] nodes = transTreeObject.getTreeModel().getPathToRoot(transTreeObject.getCurrentTreeNode());
            int level = 1;
            int start = 1;
            for(int i = start; i < nodes.length; i++){
                TreeNode node = nodes[i];
                if(node instanceof VCIBaseTreeNode){
                    VCIBaseTreeNode treeNode = (VCIBaseTreeNode) node;
                    Object obj = treeNode.getObj();
                    if((treeNode.isRoot() || (obj instanceof String))){
                        //
                    }else if(obj instanceof CodeClassify){
                        CodeClassify rmType = (CodeClassify)obj;
                        rmTypeTreeMaps.put(level++, rmType);
                    }
                }
            }
        }
    }
    /**
     * åˆå§‹åŒ–个码段码值,如果是分类码只加载父分类的分类码值,子分类不加载
     * @param secObjs
     */
    public void initCurrentRow(CodeBasicSecVO[] secObjs,VCIJComboxBox[] secCombos) {
        SectionObject lastSecObj = null;
        VCIJComboxBox hisCombo = null;
        try {
            final Map<String, String> secValMap = getSpecialValMap(specialSecVals);
            Map<String,List<String>> secIdTOListValueOidMap=new HashMap<>();
            for(int k = 0;k < secObjs.length; k++) {
                final CodeBasicSecVO secObj = secObjs[k];
                final VCIJComboxBox secCombo = secCombos[k];
                if(null == secObj) {
                    return;
                }
                if (secObj.getSecType().equals("codeclassifysec")) {// æ˜¯åˆ†ç±»ç 
                    String  secOid=secObj.getOid();
                    String parentClassifySecOid= secObj.getParentClassifySecOid();
                    String parentClassifyValueOid="";
                    if(secIdTOListValueOidMap.containsKey(parentClassifySecOid)){
                        List<String> parentClassifyValueList= secIdTOListValueOidMap.get(parentClassifySecOid);
                        parentClassifyValueOid= VciBaseUtil.array2String(parentClassifyValueList.toArray(new String[]{}));
                    }
                    Map<String,String> condtionMap=new HashMap<>();
                    condtionMap.put("secOid", secOid);
                    condtionMap.put("parentClassifyValueOid", parentClassifyValueOid);
                    Map<String,String> headerMap=new HashMap<>();
                    headerMap.put("Blade-Auth",this.tokenUserObject.getAccess_token());
                    R r=HttpUtil.sendGet(url+"/listCodeClassifyValueBySecOid",condtionMap,headerMap);
                    List<CodeClassifyValue> codeClassifyValueList=new ArrayList<>();
                    if(r.isSuccess()){
                        Object object= r.getData();
                        if(object!=null) {
                            ObjectMapper objectMapper = new ObjectMapper();
                            try {
                                codeClassifyValueList = objectMapper.readValue(object.toString(), new com.fasterxml.jackson.core.type.TypeReference<List<CodeClassifyValue>>() {});
                            } catch (JsonProcessingException e) {
                                e.printStackTrace();
                            }
                        }
                    }else{
                        VCIOptionPane.showMessage(this,r.getMsg());
                    }
                    List<String>valueOidList=new ArrayList<>();
                    if(!CollectionUtils.isEmpty(codeClassifyValueList)) {
                        if(codeClassifyValueList.size()>1) {
                            secCombo.addItem(new CodeClassifyValue());
                        }
                        codeClassifyValueList.stream().forEach(codeClassifyValue -> {
                            secCombo.addItem(codeClassifyValue);
                            valueOidList.add(codeClassifyValue.getOid());
                        });
                    }
                    secIdTOListValueOidMap.put(secObj.getOid(),valueOidList);
                    /**代码项下拉事件**/
                    secCombo.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) {
                            if(secCombo.getSelectedIndex() == -1) {
                                return;
                            }
                            if(secIdToClsfIdMap.containsKey(secObj.getId())){
                                VCIJTextField secDescVcijTextField=(VCIJTextField)secIdToClsfIdMap.get(secObj.getId());
                                CodeClassifyValue codeClassifyValue= (CodeClassifyValue) secCombo.getSelectedItem();
                                secDescVcijTextField.setText(codeClassifyValue.getName());
                            }
                        }
                    });
                    /*if (secCombo.getItemCount() > 10){
                        if (!secCombo.isFlag()){
                            secCombo.setFlag(true);
                            secCombo.getSearchBtn().setVisible(true);
                            secCombo.getSearchBtn().addActionListener(new ActionListener() {
                                @Override
                                public void actionPerformed(ActionEvent e) {
                                    doSearch(secCombo);
                                }
                            });
                        }
                    }else {
                        secCombo.setFlag(false);
                        secCombo.getSearchBtn().setVisible(false);
                    }*/
                } else
                    // æ˜¯å›ºå®šç 
                    if (secObj.getSecType() .equals("codefixedsec")) {
                        List<CodeFixedValueVO> fixedValueVOList=secObj.getFixedValueVOList();
                    //如果只有一个值,则系统默认选择,不加空值
                    if(fixedValueVOList.size() >1) {
                        secCombo.addItem(new CodeFixedValue());
                    }
                    fixedValueVOList.stream().forEach(codeFixedValueVO -> {
                        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())) {
                        setComponentStatus(false);
                    }else {
                        setComponentStatus(true);
                    }*/
                    /*if (secCombo.getItemCount() > 10){
                        if (!secCombo.isFlag()){
                            secCombo.setFlag(true);
                            secCombo.getSearchBtn().setVisible(true);
                            secCombo.getSearchBtn().addActionListener(new ActionListener() {
                                @Override
                                public void actionPerformed(ActionEvent e) {
                                    doSearch(secCombo);
                                }
                            });
                        }
                    }else {
                        secCombo.setFlag(false);
                        secCombo.getSearchBtn().setVisible(false);
                    }*/
                }  else
                        // æ˜¯æ—¥æœŸç æ®µ
                    if (secObj.getSecType().equals("codedatesec")) {
                        String df =secObj.getCodeDateFormatStr();
                        SimpleDateFormat dateFormate = new SimpleDateFormat(df);
                        String curDate = dateFormate.format(Calendar.getInstance().getTime());
                        secCombo.addItem(curDate);
                        /*if(dateObj.getIsModify().equals("Y")){//可以修改
                            secCombo.setEditable(true);
                        }*/
                } else
                        //是引用码段
                    if (secObj.getSecType().equals("coderefersec")) {
                        if (!secCombo.isFlag()){
                            secCombo.setFlag(true);
                            secCombo.getSearchBtn().setVisible(true);
                            secCombo.getSearchBtn().addActionListener(new ActionListener() {
                                @Override
                                public void actionPerformed(ActionEvent e) {
                                    doSearch(secCombo,secObj);
                                }
                            });
                        }
                    /*RefSecObject refObj = getRefSecObj(secObj.getId());
                    DefaultComboBoxModel aModel = getRefSecComboBox(refObj);
                    secCombo.setModel(aModel);
                    if(deptName != null && !("".equals(deptName))){
                        Integer index = refSecValueToCombxindex.get(deptName);
                        if(index !=null){
                            secCombo.setSelectedIndex(index);
                        }
                    }
                    if (secCombo.getItemCount() > 10){
                        if (!secCombo.isFlag()){
                            secCombo.setFlag(true);
                            secCombo.getSearchBtn().setVisible(true);
                            secCombo.getSearchBtn().addActionListener(new ActionListener() {
                                @Override
                                public void actionPerformed(ActionEvent e) {
                                    doSearch(secCombo);
                                }
                            });
                        }
                    }else {
                        secCombo.setFlag(false);
                        secCombo.getSearchBtn().setVisible(false);
                    }
                */} else
                    //层级码段码值显示的是选择的代码项的名称
                    if(secObj.getSecType().equals("codelevelsec")) {
                        CodeClassify rmObj = (CodeClassify) this.transTreeObject.getCurrentTreeNode().getObj();
                        secCombo.addItem(rmObj);
                    } else {
                        secCombo.setEditable(true);
                    }
            }
        }catch (Exception e) {
            e.printStackTrace();
            VCIOptionPane.showError(this, "初始化码段码值出现错误!");
        }
    }
    /**
     * åŠ è½½æ¨¡æ¿çš„å®šä¹‰çš„å±žæ€§ã€å±žæ€§æ•°æ®
     * <p>Description: </p>
     *
     * @author xchao
     * @time 2012-6-7
     * @param libId
     * @param classifyId
     * @param templateId
     * @return
     */
    public RMDataTransmitObject loadTemplateAttributes(String libId, String classifyId, String templateId) {
        RMDataTransmitObject transmit=new RMDataTransmitObject();
        transmit.setLibId(libId);
        transmit.setClassifyId(classifyId);
        CodeClassify codeClassify = (CodeClassify) this.transTreeObject.getCurrentTreeNode().getObj();
        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));
            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));
            transmit.setTempPropObjsMap(tempPropObjsMap);
            transmit.setTemplateObject(currentCodeClassifyTemplateVO);
            transmit.setTempPropObjsList(this.currentCodeClassifyTemplateVO.getAttributes());
        }
        return transmit;
    }
    /****
     * åŠ è½½ä»£ç é¡¹å¯¹åº”çš„æ¨¡æ¿å±žæ€§ä¿¡æ¯åˆ—è¡¨
     * <p>Description: </p>
     *
     * @author Administrator
     * @time 2013-3-23
     * @param transmitForRMData ï¼šæ¨¡æ¿å±žæ€§,分类等信息
     * @return
     */
    private VCIJPanel createTemplateAttributePanel(final RMDataTransmitObject transmitForRMData)  {
        //int maxAttrInLine = 2;
        VCIJPanel pal = new VCIJPanel();
        pal.setLayout(new GridBagLayout());
        int gridx = -1;
        int gridy = -1;
        int gridwidth = 1;
        double weighty = 0.0;
        CodeClassifyTemplateAttrVO[] realAttrs = getRealAttributeObjects(transmitForRMData);
        Map<String, String> attrMaps = getTempPropMap(transmitForRMData);
        attrIdToCtrlMaps.clear();
        attrInnerNameToCtrlMaps.clear();
        for (int attrIndex = 0; attrIndex < realAttrs.length; attrIndex += maxAttrInLine) {// for1
            gridx = 0;
            gridy += 1;
            boolean leastNewLine = checkLeastNewLine(attrIndex, maxAttrInLine,attrMaps,realAttrs);
            for (int columnIndex = 0; columnIndex < maxAttrInLine; columnIndex++) { // for2
                int index = columnIndex + attrIndex;
                if (index >= realAttrs.length) {
                    break;
                }
                CodeClassifyTemplateAttrVO attrObj = realAttrs[index];
                /***如果模板配置了引用模板,属性名称列表添加链接进行处理 BEGIN**/
                //ADD BY liujw
                VCIJLabel lbl = null;
                if(StringUtils.isNotBlank(attrObj.getReferConfig())) {//引用模板属性值
                    lbl = new VCIJLabel("<html><u>"+(attrObj.getName() + ":")+"</u><html>");
                    lbl.setForeground(Color.MAGENTA);
                    lbl.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
                    lbl.setToolTipText("点击此处加载引用模板属性数据");
                    lbl.addMouseListener(new MouseAdapter() {
                        public void mouseClicked(MouseEvent e){
                            getReferTempRMData(attrObj,attrIdToCtrlMaps,transmitForRMData.getTempPropObjsList());
                        }
                    });
                } else if(!"".equals(attrObj.getComponentRule())) {//模板规则的组合
                    String lblName = "☆"+attrObj.getName() + "☆:";
                    lbl = new VCIJLabel("<html><u>"+lblName+"<u></html>");
                    lbl.setForeground(Color.BLUE);
                    lbl.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
                    lbl.setToolTipText("点击此处获取模板对应规则的值");
                    lbl.addMouseListener(new MouseAdapter() {
                        public void mouseClicked(MouseEvent e){
                        getComptAttrValue(attrObj,attrIdToCtrlMaps);
                        }
                    });
                } else if(attrObj.getKeyAttrFlag().equals("true")) {//关键属性
                    lbl = new VCIJLabel(attrObj.getName() + ":");
                    lbl.setForeground(new Color(255, 0, 0));
                }
                else {
                    lbl = new VCIJLabel(attrObj.getName() + ":");
                    lbl.setForeground(attrObj.getRequireFlag().equals("true") ? new Color(0, 120, 0) : new Color(129, 0, 0));
                }
                JComponent compt = createComponent(attrObj);
                JComponent comptAddToPanel = compt;
                //by liujw
                boolean isMultiLineFlag = attrObj.getTextAreaFlag().equals("true") ? true : false;
                if (this.isEnableTextArea && isMultiLineFlag // å¯ç”¨TextArea显示处理,且属性长度超过一定范围
                    && attrObj.getAttributeDataType().toUpperCase().equals("VTstring".toUpperCase()) // String类型
                ) {
                    VCIJTextArea textArea = new VCIJTextArea("", attrObj.getRequireFlag().equals("true"));
                    VCIJScrollPane textAreaScroll = createTextAreaScrollPane(textArea);
                    textArea.setEnabled(compt.isEnabled());
                    comptAddToPanel = textAreaScroll;
                    if(compt instanceof JTextComponent){
                        textArea.setText(((JTextComponent)compt).getText());
                    }
                    compt = textArea;
                }
                /**
                 * æ–¹æ¡ˆï¼šV1 å±žæ€§ç»„件加载、显示策略 1、每行(一组)最多显示maxAttrInLine个属性
                 * 2、如果isEnableTextArea为true,则是启用TextArea
                 * 3、启用TextArea后,如果一组内的属性,只要任意一个属性定义的属性长度大于或等于maxStringLength
                 * ï¼Œåˆ™è¯¥ç»„内的每个属性都将独占一整行
                 * æ­¤æ–¹æ¡ˆå­˜åœ¨çš„问题:因为除TextArea之外的属性也将占整行显示,如果一组内的属性个数较多
                 * ï¼ˆå¤§äºŽ2)时,界面显示层面不太,友好,尤其是连续出现多个TextArea时此现象更加明显
                 * å› æ­¤å»ºè®®é…ç½®ï¼šå¯ç”¨TextArea时,RMData.MaxAttrInLine=2,即一组内最多加载两个属性。
                 */
                // ä¸€ç»„至少存在着一个TextArea时,该组内其它属性也将占整个宽度(独占一行),
                if (leastNewLine) {
                    gridwidth = maxAttrInLine * 2;
                    gridx = 0;
                    gridy += 1;
//                        weighty = 1.0;
                    weighty = 0.0;
                } else {
                    gridwidth = 1;
                    weighty = 0.0;
                }
                pal.add(lbl,createGridBagConstraints(gridx, gridy, 1, 1, 0.0, 0.0,GridBagConstraints.NORTHEAST,GridBagConstraints.NONE));
                pal.add(comptAddToPanel,createGridBagConstraints(gridx + 1, gridy, gridwidth,1, 1.0, weighty, GridBagConstraints.NORTHWEST,GridBagConstraints.BOTH));
                // å¦‚果这一组内不存在着需要占整行显示的,则计算横坐标
                //gridx += 2;
                if (!leastNewLine) {
                    gridx += 2;
                }
                /*********************** æ–¹æ¡ˆï¼šV1 End ***********************/
                // ç¼“存各属性对应的控&组件
                String key = attrObj.getId();
                if (!attrIdToCtrlMaps.containsKey(key)) {
                    attrIdToCtrlMaps.put(key, compt);
                }
                // å­˜å‚¨å±žæ€§å†…部名称与控件的关系
                key = attrObj.getId();
                if (!attrInnerNameToCtrlMaps.containsKey(key)) {
                    attrInnerNameToCtrlMaps.put(key, compt);
                }
            }// for 2
        }// for 1
        // åœ¨åº•部添加一行,占据全部的空余区域,其它控件自动从对齐到顶部
        pal.add(new VCIJLabel(""),createGridBagConstraints(0, gridy + 1, maxAttrInLine * 2, 1,1.0, 10.0, GridBagConstraints.NORTHWEST,GridBagConstraints.BOTH));
        this.setTextComptList(textCompts);
        return pal;
    }
    /**
     * èŽ·å–çœŸå®žçš„ã€å®žé™…çš„éœ€è¦åŠ è½½åˆ°UI的属性列表
     * <p>
     * Description:
     * </p>
     *
     * @author xchao
     * @time 2012-11-6
     * @param transmitForRMData
     *            å½“前上下数据传递对象
     * @return
     */
    private CodeClassifyTemplateAttrVO[] getRealAttributeObjects(RMDataTransmitObject transmitForRMData) {
        // å–模板的属性
        CodeClassifyTemplateAttrVO[] tempAttrs = transmitForRMData.getTempPropObjsList().toArray(new CodeClassifyTemplateAttrVO[0]);
        LinkedList<CodeClassifyTemplateAttrVO> attrsList = new LinkedList<CodeClassifyTemplateAttrVO>();
        // è¿›è¡Œè¿‡æ»¤ï¼Œéšè—çš„不显示,企业代码不显示,其它的允许录入
        for (CodeClassifyTemplateAttrVO attrObj : tempAttrs) {
            String attrId = attrObj.getOid();
            // åˆ¤æ–­å±žæ€§æ˜¯å¦éšè—ï¼Œéšè—çš„不需要提供录入项
            if (attrObj.getFormDisplayFlag().equals("false")) {
                continue;
            }
            // å¦‚果是代码列,则也隐藏,通过代码申请框架录入
            else if (attrObj.getId().toUpperCase().equals("id".toUpperCase())) {
                continue;
            }
            attrsList.add(attrObj);
        }
        // æœ‰æ•ˆçš„、需要显示录入框的属性列表
        CodeClassifyTemplateAttrVO[] attrs = attrsList.toArray(new CodeClassifyTemplateAttrVO[] {});
        return attrs;
    }
    /**
     * åˆ›å»ºå±žæ€§åœ¨UI中呈现的组件
     * <p>
     * Description:
     * </p>
     *
     * @author xchao
     * @time 2012-11-6
     * @param attrObj
     *            å±žæ€§åœ¨æ¨¡æ¿ä¸­å¯¹åº”的属性对象
     * @return
     */
    private JComponent createComponent(CodeClassifyTemplateAttrVO attrObj)  {
        JComponent compt = null;
        String attrId = attrObj.getId();
        // æŸ¥å‡ºå±žæ€§çš„取值范围
        if(StringUtils.isNotBlank(attrObj.getEnumString())||StringUtils.isNotBlank(attrObj.getEnumId())){
            KeyValue[] keyValues = getAttrRangeObjects(attrObj.getOid());
            // å¦‚果存在取值范围,只能从取值范围里选择
            if (keyValues.length != 0) {
                AttrRangObjectWarper[] objs = new AttrRangObjectWarper[keyValues.length];
                VCIJComboBox cbx = new VCIJComboBox();
                DefaultComboBoxModel model = new DefaultComboBoxModel();
                //存在取值范围,如果可以为空,则添加一个空值
                int comboBoxIndex = 1;
                KeyValue keyValue = new KeyValue();
                keyValue.setValue("");
                keyValue.setKey("");
                AttrRangObjectWarper wrapper = new AttrRangObjectWarper(keyValue);
                model.addElement(wrapper);
                /*** å¦‚果模板属性不是必填项,加入空值后修改时功能的完善 **/
                LinkedHashMap<String, Integer> specMap = new LinkedHashMap<String, Integer>();
                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);
                compt = cbx;
            }
        } else if(StringUtils.isNotBlank(attrObj.getReferConfig())){//参照的需要设置成下拉框,并且只读
            VCIJComboBox cbx = new VCIJComboBox();
            DefaultComboBoxModel model = new DefaultComboBoxModel();
            KeyValue keyValue = new KeyValue();
            keyValue.setValue("");
            keyValue.setKey("");
            AttrRangObjectWarper wrapper = new AttrRangObjectWarper(keyValue);
            model.addElement(wrapper);
            cbx.setModel(model);
            compt = cbx;
        } else { // ä¸å­˜åœ¨å–值范围则按类型生成不同的控件
             if (attrObj.getAttributeDataType().equals(VciFieldTypeEnum.VTBoolean)) { // Boolean类型
                VCIJComboBox cbx = new VCIJComboBox();
                DefaultComboBoxModel model = new DefaultComboBoxModel();
                model.addElement("0");
                model.addElement("1");
                cbx.setModel(model);
                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",
                     attrObj.getRequireFlag().equals("true"), true, false);
             }else if (attrObj.getAttributeDataType().equals(VciFieldTypeEnum.VTTime)) { // æ—¥æœŸç±»åž‹
                 compt = new VCIJCalendarPanel("HH:mm:ss",
                     attrObj.getRequireFlag().equals("true"), true, false);
             }
             else if (attrObj.getAttributeDataType().equals(VciFieldTypeEnum.VTDouble)||attrObj.getAttributeDataType().equals(VciFieldTypeEnum.VTLong)) { // Real类型
                RealTextField txt = new RealTextField("");
                txt.setRequired(attrObj.getRequireFlag().equals("true"));
                compt = txt;
            } else if (attrObj.getAttributeDataType().equals(VciFieldTypeEnum.VTInteger)) { // Integer类型
                IntegerTextField txt = new IntegerTextField("");
                txt.setRequired(attrObj.getRequireFlag().equals("true"));
                compt = txt;
            }
             else{
                 VCIJTextField txt = new VCIJTextField(this,attrObj.getRequireFlag().equals("true"));
                 compt = txt;
                 textCompts.add(txt);
             }
            boolean enabled = true;
            /*// é›†å›¢ä»£ç ã€é›†å›¢é™„加码不可以手工录入数据
            if (attrObj.getId().equals(Constants.GROUP_CODE_INNERNAME)|| attrObj.getInternalname().equals(Constants.GROUP_ADD_CODE_INNERNAME)) {
                enabled = false;
            }*/
            compt.setEnabled(enabled);
        }
        return compt;
    }
    /****
     * æ ¹æ®å±žæ€§id获取属性取值范围的值
     * <p>Description: </p>
     *
     * @author Administrator
     * @time 2013-3-23
     * @param attrId
     * @return
     */
    private KeyValue[] getAttrRangeObjects(String attrId){
        KeyValue[] res = new KeyValue[0];
        //String url= ConfigUtils.getConfigValue("410.PDM.attrKeyValue.url","http://127.0.0.1:36014/codeApplySwingController/listComboboxItems");
        /**系统只加载代码项  å¦‚æžœlibName不为空,直接获取对应的代码项**/
        Map<String,String> condtionMap=new HashMap<>();
        condtionMap.put("oid", attrId);
        Map<String,String> headerMap=new HashMap<>();
        headerMap.put("Blade-Auth",this.tokenUserObject.getAccess_token());
        R r=HttpUtil.sendGet(url+"/listComboboxItems",condtionMap,headerMap);
        List<KeyValue> keyValueList=new ArrayList<>();
        if(r.isSuccess()){
            Object object= r.getData();
            if(object!=null) {
                ObjectMapper objectMapper = new ObjectMapper();
                try {
                    keyValueList = objectMapper.readValue(object.toString(), new com.fasterxml.jackson.core.type.TypeReference<List<KeyValue>>() {
                    });
                } catch (JsonProcessingException e) {
                    e.printStackTrace();
                }
            }
        }else{
            VCIOptionPane.showMessage(this,r.getMsg());
        }
        return keyValueList.toArray(new KeyValue[]{});
    }
    /**
     * æ£€æŸ¥éœ€è¦åœ¨ä¸€è¡Œä¸­æ˜¾ç¤ºçš„那些组件(控件)中,是否至少存在着一个需要换行(占整行)显示的组件
     * <p>
     * Description:
     * </p>
     *
     * @author liujw
     * @time 2013-4-16
     * @param attrIndex
     *            å¾ªçŽ¯å±žæ€§çš„ç´¢å¼•
     * @param maxAttrInLine
     *            éœ€è¦æ¢è¡Œæ˜¾ç¤ºçš„判断条件,属性的长度
     * @param realAttrs
     *            çœŸå®žçš„需要加载的属性列表
     * @return
     */
    private boolean checkLeastNewLine(int attrIndex, int maxAttrInLine,Map<String, String> attrMaps, CodeClassifyTemplateAttrVO[] realAttrs){
        boolean res = false;
        int attrsLength = realAttrs.length;
        for(int columnIndex = 0; columnIndex < maxAttrInLine; columnIndex++){
            int index = attrIndex + columnIndex;
            if(index < attrsLength){
                CodeClassifyTemplateAttrVO attrObj = realAttrs[index];
                boolean isStringType = attrObj.getAttributeDataType().toUpperCase().equals("VTstring".toUpperCase());
                // å¯ç”¨TextArea时才进行判断
                if(this.isEnableTextArea && isStringType && attrMaps.size() > 0 && attrMaps.containsKey(attrObj.getId())){
                    res = true;
                    break;
                }
            }
        }
        return res;
    }
    /***获取属性模板对象  @author liujw**/
    private Map<String, String> getTempPropMap(RMDataTransmitObject transmitForRMData) {
        Map<String, String> map = new LinkedHashMap<String, String>();
        List<CodeClassifyTemplateAttrVO> propObjs = transmitForRMData.getTempPropObjsList();
        for(CodeClassifyTemplateAttrVO obj : propObjs) {
            if(obj.getTextAreaFlag().equals("true")) {
                map.put(obj.getOid(), "Y");
            }
        }
        return map;
    }
    /**码段码值描述信息的详细说明**/
    private void clsfValDescActionListener(MouseEvent e) {
        VCIJTextField txt = (VCIJTextField) comtMap.get(e.getComponent());
        DescViewDialog dialog = new DescViewDialog(this, txt.getText());
        dialog.bulidDialog();
        dialog.setVisible(true);
    }
    /**
     * åˆ›å»ºä¸ŽTextArea相关联的ScrollPane对象
     * <p>
     * Description:
     * </p>
     *
     * @author liujw
     * @time 2013-4-16
     * @param txtArea
     *            VCIJTextArea
     * @return
     */
    private VCIJScrollPane createTextAreaScrollPane(VCIJTextArea txtArea) {
        txtArea.setWrapStyleWord(true);
        txtArea.setLineWrap(true);
        VCIJScrollPane txtScroll = new VCIJScrollPane();
        txtScroll.getViewport().add(txtArea);
        txtScroll.setPreferredSize(new Dimension(textAreaPreSizeWidth, textAreaPreSizeHeight));
        txtScroll.setMinimumSize(new Dimension(textAreaMinSizeWidth, textAreaMinSizeHeight));
        txtScroll.setMaximumSize(new Dimension(textAreaMaxSizeWidth, textAreaMaxSizeHeight));
        txtScroll.setBorder(null);
        return txtScroll;
    }
    /**
     * è¿”回GridBagLayout布局管理的Constraints对象
     * <p>
     * Description:
     * </p>
     *
     * @author xchao
     * @time 2012-11-6
     * @param gridx
     * @param gridy
     * @param gridwidth
     * @param gridheight
     * @param weightx
     * @param weighty
     * @param anchor
     * @param fill
     * @return
     */
    private GridBagConstraints createGridBagConstraints(int gridx, int gridy,
                                                        int gridwidth, int gridheight, double weightx, double weighty,int anchor, int fill) {
        int padxy = 5;
        return new GridBagConstraints(gridx, gridy, gridwidth, gridheight,weightx, weighty, anchor, fill, new Insets(padxy, padxy, padxy,padxy), padxy, padxy);
    }
    /**根据属性组合规则获取属性的值 **/
    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)->{
            String value = "";
            if (compt instanceof JTextComponent) {
                value = ((JTextComponent) compt).getText();
            } else if (compt instanceof VCIJCalendarPanel) {
                value = ((VCIJCalendarPanel) compt).getDateString();
                value = value == null ? "" : value;
            } else if (compt instanceof VCIJComboBox) {
                Object objItem = ((VCIJComboBox) compt).getSelectedItem();
                if (objItem instanceof AttrRangObjectWarper) { // å±žæ€§å–值范围
                    value = ((AttrRangObjectWarper) objItem).getKeyValue().getValue();
                } else if (objItem instanceof String) { // Boolean类型的会提供0\1选择
                    value = (String) objItem;
                }
            }
            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());
        R r= HttpUtil.sendGet(url+"/getValueByFormula",condtionMap,headerMap);
        String value="";
        if(r.isSuccess()){
            value= r.getData().toString();
            if(attrIdToCtrlMaps.containsKey(tempPropObj.getId())){
                JComponent comp = attrInnerNameToCtrlMaps.get(tempPropObj.getId());
                if(comp instanceof JTextComponent) {
                    ((JTextComponent) comp).setText(value);
                }
            }
            Object object= r.getData();
            if(object!=null) {
                value= object.toString();
            }
        }else{
            VCIOptionPane.showMessage(this,r.getMsg());
        }
    }
        /**
         * æ ¹æ®å¼•用模板的id获取引用模板对象包含的数据
         * <p>Description: </p>
         *
         * @author liujw
         * @time 2012-11-29
         * @param //referTempId å¼•用模板id
         */
    private void getReferTempRMData(final CodeClassifyTemplateAttrVO tempPropObj,final LinkedHashMap<String, JComponent> attrIdToCtrlMaps,
                                    final List<CodeClassifyTemplateAttrVO>  tempPropList) {
        // æœ¬ç©ºçª—口调用 æœ‰å¯èƒ½æ¥è‡ªä¸¤å¤„
        // æµç¨‹ä»»åŠ¡å¼•ç”¨
        // ä¸€èˆ¬çš„æ•°æ®å½•入、修改
        // ä¸åŒçš„æ¥æºï¼Œéœ€è¦ç»´æŠ¤å¥½Owner父
        /*VCIJDialog ownerDialog = realDialogInstance;
        if(ownerDialog == null){
            ownerDialog = new VCIJDialog();
            ownerDialog.setSize(880, 500);
        }*/
        //final String referTempId = tempPropObj.getReferBtmId();
        if(StringUtils.isBlank(tempPropObj.getReferConfig())){
            VCIOptionPane.showMessage(this,"参照配置信息不正确,请核对!");
            return;
        }
        final RMDataReferTempDialog dialog = new RMDataReferTempDialog(this,tempPropObj.getReferConfig());
        dialog.setDialogCallback(new Runnable() {
            @Override
            public void run() {
                KeyValue keyValue=new KeyValue();
                /*if(dialog.isFromTableDoubleClick()){
                    int index = dialog.getRMDataMainPanel().getTablePanel().getTable().getSelectedRow();
                    list.clear();
                    list.add(dialog.getRMDataMainPanel().getTablePanel().getTableModel().getList().get(index).getObject());
                }*/
                keyValue= dialog.getKeyValue();
                //for(CodeClassifyTemplateAttrVO obj : tempPropList) {
                    if(attrIdToCtrlMaps.containsKey(tempPropObj.getId())) {
                        JComponent comp = attrIdToCtrlMaps.get(tempPropObj.getId());
                        /*if(comp instanceof VCIJTextField) {
                            int index = innnerNamesMaps.get(tempPropObj.getInternalname());
                            ((VCIJTextField) comp).setText(datas[index]);
                        }else if (comp instanceof VCIJCalendarPanel) {
                            int index = innnerNamesMaps.get(tempPropObj.getInternalname());
                            ((VCIJCalendarPanel) comp).setDateString(datas[index]);
                        } else */
                        if (comp instanceof VCIJComboBox) {
                            //DefaultComboBoxModel model = new DefaultComboBoxModel();
                            if(keyValue!=null) {
                                AttrRangObjectWarper wrapper = new AttrRangObjectWarper(keyValue);
                                ((VCIJComboBox) comp).getModel().setSelectedItem(wrapper);
                            }
                            //model.addElement(wrapper);
                             //((VCIJComboBox) comp).setModel(model);
                        }
                    }
                //}
            }
        });
        //dialog.initDialogSize(ownerDialog.getWidth(), ownerDialog.getHeight());
        Dimension dime = Toolkit.getDefaultToolkit().getScreenSize();
        int x = dime.width/2 - 400;
        int y = dime.height/2 -300;
        dialog.setLocation(x, y);
        dialog.setSize(new Dimension(900, 600));
        dialog.setModal(true);
        dialog.setVisible(true);
    }
    private void doSearch(VCIJComboxBox comboxBox,CodeBasicSecVO secObj){
        if(StringUtils.isBlank(secObj.getReferConfig())){
            VCIOptionPane.showMessage(this,"参照配置信息不正确,请核对!");
            return;
        }
        final RMDataReferTempDialog dialog = new RMDataReferTempDialog(this,secObj.getReferConfig());
        dialog.setDialogCallback(new Runnable() {
            @Override
            public void run() {
                KeyValue keyValue=new KeyValue();
                keyValue= dialog.getKeyValue();
                //for(CodeClassifyTemplateAttrVO obj : tempPropList) {
                if (keyValue != null) {
                    AttrRangObjectWarper wrapper = new AttrRangObjectWarper(keyValue);
                    comboxBox.getModel().setSelectedItem(wrapper);
                }
            }
        });
        //dialog.initDialogSize(ownerDialog.getWidth(), ownerDialog.getHeight());
        Dimension dime = Toolkit.getDefaultToolkit().getScreenSize();
        int x = dime.width/2 - 400;
        int y = dime.height/2 -300;
        dialog.setLocation(x, y);
        dialog.setSize(new Dimension(900, 600));
        dialog.setModal(true);
        dialog.setVisible(true);
    }
    /**
     * æ£€æŸ¥ç”³è¯·ç å€¼çš„æ•°æ®å¡«å†™æ˜¯å¦å®Œæ•´
     * 1.检查各个码段的值是否已经填写
     * 2.如果有日期码段,并且日期码段的值为可修改,需校验修改后的日期的格式是否符合
     * @return
     */
    public boolean checkIsAllowed(){
        Iterator<Integer> ite = compMaps.keySet().iterator();
        JComponent compt = null;
        /**校验1:检查各个码段的值是否已经填写完成**/
        while(ite.hasNext()) {
            int k = ite.next();
            //如果是层级码,跳出不进行判断
            if(k == levelPositon) {
                continue;
            }
            compt = compMaps.get(k);
            if(compt instanceof VCIJComboBox) {
                Object obj = ((VCIJComboBox) compt).getSelectedItem();
                if(obj == null || "".equals(obj)) {
                    VCIOptionPane.showMessageDialog(this, "请将信息填写完整!");
                    return false;
                }
            }
        }
        int len = columnSecMap.size();
        for (int i = 0; i < len; i++) {
            CodeBasicSecVO secObj = columnSecMap.get(i);
            String cType = secObj.getSecType();
            /**校验2:如果有日期码段,并且日期码段的值为可修改,需校验修改后的日期的格式是否符合**/
            if (cType.equals("codedatesec")) {
                String df =secObj.getCodeDateFormatStr();
                SimpleDateFormat dateFormate = new SimpleDateFormat(df);
                //String curDate = dateFormate.format(Calendar.getInstance().getTime());
                dateFormate.setLenient(false);//设置严格校验
                String dateStr = (String) ((VCIJComboBox)secAndComMap.get(secObj.getId())).getSelectedItem();
                try {
                    dateFormate.parse(dateStr);
                } catch (ParseException e) {
                    VCIOptionPane.showMessageDialog(this, "修改后的日期格式跟日期码段设置的格式不匹配,请修改!");
                    return false;
                }
                /**校验三:可变码段的校验**/
            } else if (cType .equals( "codevariablesec")) {
                 tempStr = new StringBuffer();
                String codeSecLength =secObj.getCodeSecLength();
                int secLen= Integer.parseInt(codeSecLength);
                //取出用户输入的值
                String varStr = (String) ((VCIJComboBox)secAndComMap.get(secObj.getId())).getSelectedItem();
                if(varStr.length() >secLen){
                    VCIOptionPane.showMessageDialog(this, "输入的可变码值超出了该码段的定义长度"+codeSecLength+"请修改");
                    return false;
                }
                //如果是固定长度,则需要考虑填充和补位
//                if(varObj.getLenType() == SectionConstant.SectionLengthType.VARLEN) {
                if(varStr.length() < secLen) {//没有达到最大长度
                    if(secObj.getCodeFillType().equals("L")) {//如果需要左填充
                        tempStr = new StringBuffer();
                        for(int j=0;j<secLen - varStr.length();j++) {
                            tempStr.append(secObj.getCodeFillSeparator());
                        }
                        tempStr.append(varStr);
                    } else if(secObj.getCodeFillType().equals("R")) {//如果需要右填充
                        tempStr = new StringBuffer();
                        tempStr.append(varStr);
                        for(int j=0;j<secLen- varStr.length();j++) {
                            tempStr.append(secObj.getCodeFillSeparator());
                        }
                    } else {
                        tempStr = new StringBuffer();
                        tempStr.append(varStr);
                    }
                } else {
                    tempStr = new StringBuffer();
                    tempStr.append(varStr);
                }
//                }
                /**层级码段的校验**/
            } else if (cType.equals("codelevelsec")) {
                Integer levelVal= secObj.getCodeLevelValue();
                levelRes = getRuleLevelCodeFromTree(secObj.getCodeLevelValue());
                if("".equals(levelRes)) {
//                    setBuildingHasError(true);
                    if(secObj.getCodeLevelType().equals("min")) {
                        VCIOptionPane.showError(this, "当前编码项规则中包含层级码段,并且层级设置为最小层,选择的当前节点包含子节点,不允许在当前分类下进行码值申请!");
                    }else {
                        VCIOptionPane.showError(this, "请至少在第 " + levelVal + "层(分类)添加数据!(编码项节点不算)" +
                            "\n(注意:如果算上编码项节点,则至少应该在第 " + (levelVal + 1) + " å±‚(分类)添加数据!)");
                    }
                    return false;
                }
            } else if(cType  .equals("codeclassifysec")) {//分类码段码值添加了空值,需要特殊判断一下
                // update by xchao 2013.07.09
//                ClsfCodeValObject obj = (ClsfCodeValObject) ((VCIJComboBox)secAndComMap.get(secObj.getId())).getSelectedItem();
                // åˆ†ç±»ç ç å€¼ä¸ºç©ºæ—¶ï¼Œä¹Ÿå¯ä»¥ç”³è¯·ç¼–码
//                if("".equals(obj.getValue())) {
//                    VCIOptionPane.showMessageDialog(this, "请选择码段:"+secObj.getName()+" å¯¹åº”的码值");
//                    return false;
//                }
            } else if(cType .equals( "codefixedsec")) {//固定码段码值添加了空值,需要特殊判断一下
                CodeFixedValueVO obj = (CodeFixedValueVO) ((VCIJComboBox)secAndComMap.get(secObj.getId())).getSelectedItem();
                if("".equals(obj.getId())) {
                    VCIOptionPane.showMessageDialog(this, "请选择码段:"+secObj.getName()+" å¯¹åº”的码值");
                    return false;
                }
            } else if(cType.equals("coderefersec")) {//引用码段码值添加了空值,需要特殊判断一下
                KeyValue keyValue = ((AttrRangObjectWarper)((VCIJComboBox)secAndComMap.get(secObj.getId())).getSelectedItem()).getKeyValue();
                if(keyValue!=null&&("".equals(keyValue.getKey()))) {
                    VCIOptionPane.showMessageDialog(this, "请选择码段:"+secObj.getName()+" å¯¹åº”的码值");
                    return false;
                }
            }
        }
        return true;
    }
    private LinkedList<VCIBaseTreeNode> parentTreeNodeListDesc = new LinkedList<VCIBaseTreeNode>();
    private LinkedList<VCIBaseTreeNode> parentTreeNodeListAsc = new LinkedList<VCIBaseTreeNode>();
    private String getRuleLevelCodeFromTree(int level){
        String res = null;
        TransmitTreeObject CodeClassifyTreeObj = this.transTreeObject;
        if(CodeClassifyTreeObj != null){
            VCIBaseTreeNode node = CodeClassifyTreeObj.getCurrentTreeNode();
            parentTreeNodeListDesc.clear();
            //每次进行申请时都重新初始化存储树结构的对象
            parentTreeNodeListAsc.clear();
            calcParentTreeNode(node);
            for(int i = parentTreeNodeListDesc.size() - 1; i >=0; i--){
                parentTreeNodeListAsc.add(parentTreeNodeListDesc.get(i));
            }
            /***校验:申请码值时,层级的处理 level = 0 æ ‡ç¤ºä»»æ„å±‚,level = 99 æ ‡ç¤ºæœ€å°å±‚  ,其它指指定层BEGIN**/
            if(level == 0) {
                res = ((CodeClassify)node.getObj()).getId();
                /***level == 99 å¹¶ä¸”是叶子节点时,才允许进行编码申请**/
            } else if(level == 99) {
                if(checkIsHasSonCodeClassify(node)) {
                    res = ((CodeClassify)node.getObj()).getId();
                }else {
                    res = "";
                }
            } else if(level == 99 && !checkIsHasSonCodeClassify(node)){
                res = "";
            } else if(parentTreeNodeListAsc.size() > level + 1) {
                VCIBaseTreeNode levelNode = parentTreeNodeListAsc.get(level + 1);
                CodeClassify codeClassify = (CodeClassify) levelNode.getObj();
                res = codeClassify.getId();
            } else {
                res = "";
            }
            /**************************************END**********************************/
        }
        return res;
    }
    /**
     * æ£€æŸ¥é€‰æ‹©çš„当前分类是否有子分类
     * <p>Description: </p>
     *
     * @author Administrator
     * @time 2013-4-10
     * @return
     */
    public boolean checkIsHasSonCodeClassify(VCIBaseTreeNode node) {
        int count = 0;
        if(node.isExpand()) {
            count = node.getChildCount();
        } else {
            //则需要去查询下面的是否存在
            CodeClassify codeClassify = (CodeClassify) node.getObj();
            codeClassify.getOid();
            Map<String,String> condtionMap=new HashMap<>();
            condtionMap.put("codeClassId", codeClassify.getOid());
            Map<String,String> headerMap=new HashMap<>();
            headerMap.put("Blade-Auth",this.tokenUserObject.getAccess_token());
            R r= HttpUtil.sendGet(url+"/countChildrenByClassifyOid",condtionMap,headerMap);
            if(r.isSuccess()){
                Object object= r.getData();
                count=(int)object;
            }
        }
        if(count <= 0) {
            return true;
        }
        return false;
    }
    /**
     * æä¾›è°ƒç”¨è€…获取各个码段的拼接值
     * <p>Description: </p>
     *
     * @author xf
     * @time 2012-5-28
     * @return
     */
    public List<KeyValue> getSectionValues(){
        List<KeyValue> keyValueList=new ArrayList<>();
        if(getCodeRuleVO()!=null) {
            List<CodeBasicSecVO> codeBasicSecVOList = this.getCodeRuleVO().getSecVOList();
            if (!CollectionUtils.isEmpty(codeBasicSecVOList)) {
                for (int i = 0; i < codeBasicSecVOList.size(); i++) {
                    CodeBasicSecVO secObj=codeBasicSecVOList.get(i);
                    KeyValue keyValue = new KeyValue();
                    String cVal = "";
                    String secObjOid = secObj.getOid();
                    String secType = secObj.getSecType();
                    /***如果系统选择的是特殊规则,即工装图样代码规则,组别代号码段自动设置为空**Begin***/
                    if (isSpecialRuleFlag && secObj.getName().equals(specialSectioName)) {
                        cVal = "";
                        /**********************************End************************/
                    } else if (secType.equals("codedatesec")) {//日期码段的值
                        cVal = (String) ((VCIJComboBox) secAndComMap.get(secObj.getId())).getSelectedItem();
                    } else if (secType.equals("codevariablesec")) {//可变码段的值
//                        cVal = (String) ((VCIJComboBox)secAndComMap.get(secObj.getId())).getSelectedItem();
                        cVal = tempStr.toString();
                    } else if (secType.equals("codeclassifysec")) {//分类码段码值
                        cVal = ((CodeClassifyValue) ((VCIJComboBox) secAndComMap.get(secObj.getId())).getSelectedItem()).getOid();
                    } else if (secType.equals( "codefixedsec")) {//固定码段码值
                        cVal = ((CodeFixedValueVO) ((VCIJComboBox) secAndComMap.get(secObj.getId())).getSelectedItem()).getId();
                    } else if (secType.equals("coderefersec")) {//引用码段码值
//                    cVal = ((CodeValueObject)((VCIJComboBox)secAndComMap.get(secObj.getId())).getSelectedItem()).getPlcodeval();
                        KeyValue newKeyValue = ((AttrRangObjectWarper) ((VCIJComboBox) secAndComMap.get(secObj.getId())).getSelectedItem()).getKeyValue();
                        cVal=newKeyValue.getKey();
                    /*} else if (secType == SectionConstant.SectionType.SECCHAR) {//分隔符
                        cVal = secObj.getName();*/
                    } else if (secType.equals("codelevelsec")) {//层级码段
                        cVal = levelRes;
                    } else if (secType.equals("codeserialsec")) {
                            continue;
                    } else {
                        cVal = (String) ((VCIJComboBox) secAndComMap.get(secObj.getId())).getSelectedItem();
                    }
                    keyValue.setKey(secObjOid);
                    keyValue.setValue(cVal);
                    keyValueList.add(keyValue);
                }
            }
        }
        return keyValueList;
    }
    /**
     * æ ¡éªŒæ¨¡æ¿å±žæ€§ä¿¡æ¯æ˜¯å¦æ­£ç¡®
     * <p>Description: </p>
     *
     * @author Administrator
     * @time 2013-3-23
     * @return
     */
    public String[][] checkInputValues() {
        Map<String, String> attrNameMap = new LinkedHashMap<String, String>();
        Map<String, String> tempProMap = new LinkedHashMap<String, String>();
        // å„属性的内部名称
        LinkedList<String> listInnerNames = new LinkedList<String>();
        // å­˜å‚¨å±žæ€§çš„外部名称
        LinkedList<String> listOutNames = new LinkedList<String>();
        // å„属性对应的数据值
        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));
        Iterator<String> keys = attrIdToCtrlMaps.keySet().iterator();
        JComponent compt = null;
        JComponent firstCompt = null;
        while (keys.hasNext()) {
            String attrOid = keys.next();
            compt = attrIdToCtrlMaps.get(attrOid);
            String value = "";
            CodeClassifyTemplateAttrVO propObj = codeClassifyTemplateAttrVOMap.get(attrOid);
            boolean isExistError = false;
            String message = "";
            if (compt instanceof JTextComponent) {
                value = ((JTextComponent) compt).getText();
            } else if (compt instanceof VCIJCalendarPanel) {
                value = ((VCIJCalendarPanel) compt).getDateString();
                value = value == null ? "" : value;
            } else if (compt instanceof VCIJComboBox) {
                Object objItem = ((VCIJComboBox) compt).getSelectedItem();
                if (objItem instanceof AttrRangObjectWarper) { // å±žæ€§å–值范围
                    value = ((AttrRangObjectWarper) objItem).getKeyValue().getKey();
                } else if (objItem instanceof String) { // Boolean类型的会提供0\1选择
                    value = (String) objItem;
                }
            }
            boolean checkNullInput = true;
            if (checkNullInput) {
                // æ£€æŸ¥å±žæ€§æ˜¯å¦å¯ä»¥ä¸ºç©º isNull=0 è¡¨ç¤ºä¸èƒ½ä¸ºç©ºï¼ŒisNull=1表示可以为空
                if ("true".equals(propObj.getRequireFlag())) {// ä¸èƒ½ä¸ºç©ºæ—¶éœ€è¦åˆ¤æ–­è¾“入的值是否为空
                    if ((value == null) || (value != null && value.trim().length() == 0)) {
                        isExistError = true;
                        compt.requestFocus();
                        message = propObj.getName() + " ä¸èƒ½ä¸ºç©ºï¼Œè¯·é‡æ–°è¾“入!";
                    }
                }
                // æ ¡éªŒé•¿åº¦
                else if ((value != null && !value.equals(""))
                    && value.length() > Integer.valueOf(propObj.getControlLength())
                    && !(propObj.getAttributeDataType().toUpperCase().equals(VciFieldTypeEnum.VTDate)||
                    propObj.getAttributeDataType().toUpperCase().equals(VciFieldTypeEnum.VTDateTime))
                ) {
                    isExistError = true;
                    compt.requestFocus();
                    message = propObj.getName() + " çš„属性值  " + value
                        + " çš„长度不能超过" + propObj.getControlLength();
                }
                // æ£€æŸ¥è¾“入的值是否满足属性校验规则(如果存在)
                if (!isExistError && !propObj.getComponentRule().equals("")) { // å­˜åœ¨ç€å±žæ€§æ ¡éªŒè§„则
                    // æ—¥æœŸç±»åž‹çš„不检查属性校验规则
//                    if (propObj.getAttributeDataType().toUpperCase().equals(Constants.DATA_TYPE_DATE)|| (compt instanceof VCIJComboBox)) {
//                        // ä¸åšæ£€æŸ¥
//                    } else {
//                        initAllAttrRuleMaps();
//                        // åšæ£€æŸ¥
//                        if (!value.equals("") && allAttrRulesMap.containsKey(propObj.getAttrRuleId())) {
//                            // TODO è°ƒç”¨å±žæ€§æ ¡éªŒè§„则的接口,校验当前输入的值是否满足规则条件
//                            AttrRuleObject attrRuleObj = allAttrRulesMap.get(attrObj.getAttrRuleId());
//                            String regex = attrRuleObj.getRule();
//                            Pattern p = Pattern.compile(regex);
//                            if (!p.matcher(value).matches()) {
//                                // ä¸åŒ¹é…
//
//                                isExistError = true;
//                                compt.requestFocus();
//                                message = attrObj.getName() + "的输入值 " + value
//                                    + " ä¸æ»¡è¶³è¯¥å±žæ€§å®šä¹‰çš„æ ¡éªŒè§„则  \n\n" + ""
//                                    + attrRuleObj.getRuleName() + ":\t"
//                                    + attrRuleObj.getRule() + "\n\n"
//                                    + "请重新输入!";
//                            }
//                        }
//                    }
                }
            }
            // æ˜¯å¦å­˜åœ¨é”™è¯¯
            if (isExistError) {
                //setErrorMessageFlag(true);
                listInnerNames.clear();
                listOutNames.clear();
                listValues.clear();
                listDataTypes.clear();
                VCIOptionPane.showMessage(this, message);
                break;
            } else {
                //setErrorMessageFlag(false);
                // å¦‚果是日期类型,且属性可空,又没有选择日期值,则给个默认值
                if (value == null && propObj.getAttributeDataType().toUpperCase().equals(VciFieldTypeEnum.VTDate)) {
                    SimpleDateFormat sdfDateAndTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                    value = sdfDateAndTime.format(new Date());
                }else if(value == null&&propObj.getAttributeDataType().toUpperCase().equals(VciFieldTypeEnum.VTDateTime)){
                    SimpleDateFormat sdfDateAndTime = new SimpleDateFormat("HH:mm:ss");
                    value = sdfDateAndTime.format(new Date());
                }
                // å…¨éƒ¨éªŒè¯é€šè¿‡
                value = value.trim();
                listInnerNames.add(propObj.getId());
                listOutNames.add(propObj.getName());
                listValues.add(value);
                if(propObj.getAttributeDataType().equals(VciFieldTypeEnum.VTFilePath)){
                    listDataTypes.add("String");
                }else{
                    listDataTypes.add(propObj.getAttributeDataType());
                }
                attrNameMap.put(propObj.getName(), value);
                tempProMap.put(propObj.getId(), propObj.getId());
            }
            // update by xchao 2012.07.11
            if (firstCompt == null) {
                firstCompt = compt;
            }
        }// end while(keys.hadNext())
        LinkedList<String[]> res = new LinkedList<String[]>();
        res.add(listInnerNames.toArray(new String[] {}));
        res.add(listValues.toArray(new String[] {}));
        res.add(listDataTypes.toArray(new String[] {}));
        res.add(listOutNames.toArray(new String[]{}));
        return res.toArray(new String[][] {});
    }
    private void calcParentTreeNode(VCIBaseTreeNode node){
        parentTreeNodeListDesc.add(node);
        if(node.getParent() != null){
            calcParentTreeNode((VCIBaseTreeNode)node.getParent());
        } else{
            // æ ¹èŠ‚ç‚¹
            // æ¥è‡ªä¸“用库(带分类显示的)
            // ç”±äºŽä¸“用库(带分类显示的)将库节点向上提升了一级,库节点就是根节点
            // å› æ­¤ä¸ºä¿æŒç»Ÿè®¡ï¼Œæ–¹ä¾¿æ ¹æ®å±‚级取分类码(代号),在此将原因的根添加到集合
            if(node.getObj() instanceof CodeClassify){
                parentTreeNodeListDesc.add(new VCIBaseTreeNode("所有资源数据", "root"));
            }
        }
    }
    //获取系统配置的码段码值
    private Map<String, String> getSpecialValMap(String[] vals) {
        Map<String, String> map = new LinkedHashMap<String, String>();
        for (String val : vals) {
            map.put(val, "Y");
        }
        return map;
    }
    private boolean isNumber(String value) {
        return Pattern.matches("[0-9]+", value);
    }
    public LinkedHashMap<String, JComponent> getAttrIdToCtrlMaps() {
        return attrIdToCtrlMaps;
    }
    public void setAttrIdToCtrlMaps(LinkedHashMap<String, JComponent> attrIdToCtrlMaps) {
        this.attrIdToCtrlMaps = attrIdToCtrlMaps;
    }
    public LinkedHashMap<String, JComponent> getAttrInnerNameToCtrlMaps() {
        return attrInnerNameToCtrlMaps;
    }
    public void setAttrInnerNameToCtrlMaps(LinkedHashMap<String, JComponent> attrInnerNameToCtrlMaps) {
        this.attrInnerNameToCtrlMaps = attrInnerNameToCtrlMaps;
    }
    public TransmitTreeObject getTransTreeObject() {
        return transTreeObject;
    }
    public void setTransTreeObject(TransmitTreeObject transTreeObject) {
        this.transTreeObject = transTreeObject;
    }
    public CodeRuleVO getCodeRuleVO() {
        return codeRuleVO;
    }
    public void setCodeRuleVO(CodeRuleVO codeRuleVO) {
        this.codeRuleVO = codeRuleVO;
    }
    public TokenUserObject getTokenUserObject() {
        return tokenUserObject;
    }
    public void setTokenUserObject(TokenUserObject tokenUserObject) {
        this.tokenUserObject = tokenUserObject;
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyFor410SearchDialog.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,165 @@
package com.vci.rmip.code.client.codeapply.Apply410;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.LinkedList;
import com.vci.base.ui.swing.VCIOptionPane;
import com.vci.base.ui.swing.VCISwingUtil;
import com.vci.base.ui.swing.components.*;
import com.vci.base.ui.swing.components.table.VCIJTablePanel;
import com.vci.rmip.code.client.codeapply.Apply410.object.BaseModel;
public class CodeApplyFor410SearchDialog extends VCIJDialog {
    /**
     *
     */
    private static final long serialVersionUID = 1L;
    private CodeApplyPanelFor410 ownerPanel;
    private VCIJLabel codeName = new VCIJLabel("代码:");
    private VCIJTextField  txtCodeName = new VCIJTextField(false);
    private VCIJButton btnSearch= VCISwingUtil.createVCIJButton("btnSearch", "查询", "查询", "search.png", null);
    private VCIJButton btnOk = VCISwingUtil.createVCIJButton("replace", "确定", "确定", "ok.gif",null);
    private VCIJButton btnCancel = VCISwingUtil.createVCIJButton("cancel", "取消", "取消", "cancel.gif",null);
    private String strName = "";
    private String str = "";
    public CodeApplyFor410SearchDialog(CodeApplyPanelFor410 ownerPanel){
        //super(LogonApplication.frame,true);
        this.ownerPanel = ownerPanel;
        this.setTitle("查询代码");
        Dimension dime = Toolkit.getDefaultToolkit().getScreenSize();
        int x = dime.width/2 - 300;
        int y = dime.height/2 - 300;
        this.setLocation(x, y);
        this.setSize(new Dimension(700, 600));
        init();
        setModal(true);
        setVisible(true);
    }
    private LinkedList<VCIJButton> selfCustomButtons = new LinkedList<VCIJButton>();
    {
        selfCustomButtons.add(btnOk);
        selfCustomButtons.add(btnCancel);
    }
    public void init(){
        setLayout(new BorderLayout());
        add(nothPanel(),BorderLayout.NORTH);
        add(createCenterTPanel(), BorderLayout.CENTER);
        cancel();
    }
    private VCIJPanel nothPanel(){
        VCIJPanel pal = new VCIJPanel();
        VCIJPanel nothPanel = new VCIJPanel();
        nothPanel.setLayout(null);
        nothPanel.setPreferredSize(new Dimension(300,40));
        codeName.setBounds(10, 5, 60, 28);
        txtCodeName.setBounds(70, 5, 200, 28);
        btnSearch.setBounds(300, 5, 80, 25);
        nothPanel.add(codeName);
        nothPanel.add(txtCodeName);
        nothPanel.add(btnSearch);
        pal.setLayout(new BorderLayout());
        pal.add(nothPanel);
        pal.setVisible(true);
        return pal;
    }
    private CodeApplyFor410SearchMainPanel codeDataMainPanel=null;
    private VCIJPanel createCenterTPanel(){
        codeDataMainPanel=new CodeApplyFor410SearchMainPanel();
        CodeApplyFor410SearchProvider  dataProvider=new CodeApplyFor410SearchProvider(this);
        codeDataMainPanel.setDataProvider(dataProvider);
        codeDataMainPanel.setCustomTopPanel(nothPanel());
        codeDataMainPanel.buildPanel();
        VCIJTable table = codeDataMainPanel.getTablePanel().getTable();
        table.addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent e) {
                if (e.getButton() == 1 && e.getClickCount() == 2) {
                    btnOk.doClick();
                }
            }
        });
        return codeDataMainPanel;
    }
    public VCIJTablePanel<BaseModel> getPanel() {
        return codeDataMainPanel.getTablePanel();
    }
    /**
     * æŒ‰é’®äº‹ä»¶
     */
    public void cancel(){
        btnCancel.addActionListener(new ActionListener() {
            @Override
        public void actionPerformed(ActionEvent e) {
            // TODO Auto-generated method stub
             btn_Cancel();    //取消
            }
        });
        btnSearch.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent arg0) {
                searchButton_action();//查询
            }
        });
        btnOk.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent arg0) {
                okButton_action();//确定
            }
        });
    }
    public void okButton_action(){
        int len = codeDataMainPanel.getTablePanel().getSelectedRowObjects().size();
        if (len==0) {
            VCIOptionPane.showMessage(this, "请先选择要操作的数据");
            return;
        }else if (len>1) {
            VCIOptionPane.showMessage(this, "一次只能选择一条数据进行操作");
            return;
        }
        LinkedList<BaseModel> list = codeDataMainPanel.getTablePanel().getSelectedRowObjects();
        for (BaseModel object : list) {
            str = object.getId();
            setStr(str);
        }
        this.dispose();
    }
    public void searchButton_action(){
        strName = txtCodeName.getText();
        setStrName(strName);
        codeDataMainPanel.getTablePanel().refreshTableData();
    }
    public CodeApplyPanelFor410 getOwnerPanel() {
        return ownerPanel;
    }
    public void setOwnerPanel(CodeApplyPanelFor410 ownerPanel) {
        this.ownerPanel = ownerPanel;
    }
    public String getStr() {
        return str;
    }
    public void setStr(String str) {
        this.str = str;
    }
    public String getStrName() {
        return strName;
    }
    public void setStrName(String strName) {
        this.strName = strName;
    }
    public void btn_Cancel(){
        this.dispose();
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyFor410SearchMainPanel.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,87 @@
package com.vci.rmip.code.client.codeapply.Apply410;
import com.vci.base.ui.swing.components.VCIJPanel;
import com.vci.base.ui.swing.components.table.AbstractVCIJTableDataProvider;
import com.vci.base.ui.swing.components.table.VCIJTablePanel;
import com.vci.rmip.code.client.codeapply.Apply410.object.BaseModel;
import java.awt.*;
public class CodeApplyFor410SearchMainPanel  extends VCIJPanel {
    /**
     * è‡ªå®šä¹‰é¡¶éƒ¨æŽ§ä»¶åŒºåŸŸ
     */
    private VCIJPanel customTopPanel = null;
    public void buildPanel(){
        this.init();
    }
    private void init(){
        initComponents();
    }
    private void initComponents(){
        setLayout(new BorderLayout());
        add(createNorthBaseAttrsPanel(), BorderLayout.NORTH);
        add(createCenterDataTablePanel(), BorderLayout.CENTER);
    }
    private VCIJPanel createNorthBaseAttrsPanel(){
        VCIJPanel palRes = new VCIJPanel(new BorderLayout());
        if(getCustomTopPanel() != null) {
            palRes.add(getCustomTopPanel(), BorderLayout.CENTER);
        }
        return palRes;
    }
    /**
     * æ ¹æ®ç±»åž‹æ˜¾ç¤ºtable
     */
    private VCIJTablePanel<BaseModel> tablePanel = null;
    private AbstractVCIJTableDataProvider<BaseModel> dataProvider = null;
    private VCIJPanel createCenterDataTablePanel() {
        tablePanel = new VCIJTablePanel<BaseModel>(dataProvider);
        //tablePanel.setCustomButtons(getCombinedButtons());
        tablePanel.setShowExport(true);
        tablePanel.setShowPaging(true);
        tablePanel.setShowProgressBar(true);
        tablePanel.setPageButtonFlowAlign(FlowLayout.CENTER);
        tablePanel.setCustomButtonFlowAlign(FlowLayout.CENTER);
        tablePanel.buildTablePanel();
        int columnCount = tablePanel.getTable().getColumnCount();
        //tablePanel.getTable().getColumnModel().getColumn(columnCount - 2).setPreferredWidth(150);
        //tablePanel.getTable().getColumnModel().getColumn(columnCount - 4).setPreferredWidth(150);
        /**
         * ç¦æ­¢table表头拖动,防止第一列的复选框和第二列的序号拖动出问题:
         * ç‚¹å‡»æŸè¡Œï¼Œè¡¨æ ¼ä¸­çš„复选框看不到,且选中表头上的复选框系统会报错;数据信息显示不正确。
         * 2012-12-4 wangxl
         */
        tablePanel.getTable().getTableHeader().setReorderingAllowed(false);
        tablePanel.refreshTableData();
        return tablePanel;
    }
    public VCIJPanel getCustomTopPanel() {
        return customTopPanel;
    }
    public void setCustomTopPanel(VCIJPanel customTopPanel) {
        this.customTopPanel = customTopPanel;
    }
    public VCIJTablePanel<BaseModel> getTablePanel() {
        return tablePanel;
    }
    public void setTablePanel(VCIJTablePanel<BaseModel> tablePanel) {
        this.tablePanel = tablePanel;
    }
    public AbstractVCIJTableDataProvider<BaseModel> getDataProvider() {
        return dataProvider;
    }
    public void setDataProvider(AbstractVCIJTableDataProvider<BaseModel> dataProvider) {
        this.dataProvider = dataProvider;
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyFor410SearchProvider.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,121 @@
package com.vci.rmip.code.client.codeapply.Apply410;
import java.util.*;
import com.alibaba.cloud.commons.lang.StringUtils;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.vci.base.ui.swing.VCIOptionPane;
import com.vci.base.ui.swing.components.table.AbstractVCIJTableDataProvider;
import com.vci.base.ui.swing.components.table.VCIJTableNode;
import com.vci.rmip.code.client.codeapply.Apply410.object.BaseModel;
import com.vci.rmip.code.client.codeapply.Apply410.object.CodeClassify;
import com.vci.rmip.code.client.codeapply.Apply410.object.DataGrid;
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.CodeClassifyTemplateVO;
import com.vci.rmip.code.client.codeapply.Apply410.utils.ConfigUtils;
import com.vci.ubcs.starter.web.util.VciBaseUtil;
import org.apache.commons.collections4.CollectionUtils;
public class CodeApplyFor410SearchProvider extends AbstractVCIJTableDataProvider<BaseModel> {
    private String[] fields = {};
    private boolean view = true;
    private String codeName;
    LinkedList<String> fieldList = new LinkedList<String>();
    private CodeApplyFor410SearchDialog dialog = null;
    private String url= ConfigUtils.getConfigValue("410.code.url","http://127.0.0.1:36014/codeApplySwingController");
    public CodeApplyFor410SearchProvider(CodeApplyFor410SearchDialog dialog){
        this.dialog = dialog;
    }
    @Override
    public String[] getSpecialColumns() {
        LinkedList<String> nameList = new LinkedList<String>();
        CodeClassifyTemplateVO codeClassifyTemplateVO=this.dialog.getOwnerPanel().getCurrentCodeClassifyTemplateVO();
        if(codeClassifyTemplateVO!=null){
            if(!CollectionUtils.isEmpty(codeClassifyTemplateVO.getAttributes())){
                codeClassifyTemplateVO.getAttributes().stream().forEach(codeClassifyTemplateAttrVO -> {
                    fieldList.add(codeClassifyTemplateAttrVO.getId());
                    nameList.add(codeClassifyTemplateAttrVO.getName());
                });
            }
        }
        fields = fieldList.toArray(new String[]{});
        return nameList.toArray(new String[]{});
    }
    @Override
    public int getTotal() {
        // TODO Auto-generated method stub
        return this.total;
    }
    @Override
    public VCIJTableNode<BaseModel> getNewRowNode(BaseModel dataObj) {
        Map<String,String> dataMap= dataObj.getData();
        Map<String, String> defaultDataMap= VciBaseUtil.objectToMapString(dataObj);
        defaultDataMap.putAll(dataMap);
        VCIJTableNode<BaseModel> res = new VCIJTableNode<BaseModel>(dataObj);
        int i=dataColumnStartIndex;
        String data="";
        for (String field:fields){
            if(defaultDataMap.containsKey(field+"_text")){
                 data=defaultDataMap.getOrDefault(field+"_text","");
            }else if(defaultDataMap.containsKey(field+"Text")){
                data=defaultDataMap.getOrDefault(field+"Text","");
            }else{
                data=defaultDataMap.getOrDefault(field,"");
            }
            res.setPropertyValue(getColumns()[i++], data);
        }
        return res;
    }
    @Override
    public BaseModel[] getDatas(int pageIndex, int pageSize) {
        DataGrid dataGrid=new DataGrid();
        try{
            CodeClassifyTemplateVO codeClassifyTemplateVO=this.dialog.getOwnerPanel().getCurrentCodeClassifyTemplateVO();
            CodeClassify codeClassify = (CodeClassify) this.dialog.getOwnerPanel().getRightMainPanel().getTransTreeObject().getCurrentTreeNode().getObj();
            Map<String,String> condtionMap=new HashMap<>();
            condtionMap.put("codeClassifyOid",codeClassify.getOid());
            condtionMap.put("templateOid",codeClassifyTemplateVO.getOid());
            condtionMap.put("page",pageIndex+"");
            condtionMap.put("limit",pageSize+"");
            if(StringUtils.isNotBlank(this.dialog.getStrName())){
                condtionMap.put("conditionMap[id]",this.dialog.getStrName());
            }
            //condtionMap.put("conditionMap[lcStatus]","Released");
            Map<String,String> headerMap=new HashMap<>();
            headerMap.put("Blade-Auth",this.dialog.getOwnerPanel().getTokenUserObject().getAccess_token());
            R r= HttpUtil.sendGet(url+"/gridTableDataByClassifyOid",condtionMap,headerMap);
            if(r.isSuccess()){
                Object object= r.getData();
                if(object!=null) {
                    ObjectMapper objectMapper = new ObjectMapper();
                    dataGrid = objectMapper.readValue(object.toString(), DataGrid.class);
                }
            }else{
                VCIOptionPane.showMessage(this.dialog,r.getMsg());
            }
        } catch (
        JsonProcessingException e) {
            e.printStackTrace();
        }
        this.total= new Long(dataGrid.getTotal()).intValue();
        List<Map>  dataList= dataGrid.getData();
        List<BaseModel> hostInfos=new ArrayList<>();
        //List<BaseModel> hostInfos=    ListUtil.listMapParseListObj(dataList, BaseModel.class);
        dataList.stream().forEach(map->{
            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());
        return hostInfos.toArray(new BaseModel[]{});
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyFor410TreePanel.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,309 @@
package com.vci.rmip.code.client.codeapply.Apply410;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.vci.base.ui.swing.VCIOptionPane;
import com.vci.base.ui.swing.components.VCIJPanel;
import com.vci.base.ui.tree.VCIBaseTree;
import com.vci.base.ui.tree.VCIBaseTreeModel;
import com.vci.base.ui.tree.VCIBaseTreeNode;
import com.vci.rmip.code.client.codeapply.Apply410.object.CodeClassify;
import com.vci.rmip.code.client.codeapply.Apply410.object.R;
import com.vci.rmip.code.client.codeapply.Apply410.object.TokenUserObject;
import com.vci.rmip.code.client.codeapply.Apply410.utils.ConfigUtils;
import com.vci.rmip.code.client.codeapply.Apply410.utils.HttpUtil;
import javax.swing.event.TreeExpansionEvent;
import javax.swing.event.TreeExpansionListener;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.TreePath;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public abstract class CodeApplyFor410TreePanel extends VCIJPanel {
    /**
     *
     */
    private static final long serialVersionUID = 3252637341L;
    private VCIBaseTree tree = null;
    private VCIBaseTreeModel treeModel = null;
    private VCIBaseTreeNode rootNode = null;
    private CodeClassify currentRmType = null;
    private TransmitTreeObject transmitTreeObject = new TransmitTreeObject();
    private TokenUserObject tokenUserObject = null;
    private VCIBaseTreeNode selNode = null;
    private String url=ConfigUtils.getConfigValue("410.code.url","http://127.0.0.1:36014/codeApplySwingController");
    /**
     * å­˜å‚¨åˆ†ç±»çš„Map,key:分类名称,value:分类值
     */
    private String clsfName = null;
    //    private String[] clsfVal = new String[2];
    private String libName = "";
    public CodeApplyFor410TreePanel(CodeClassify currentRmType, TokenUserObject tokenUserObject, String clsfName, String libName) {
        this.currentRmType = currentRmType;
        this.tokenUserObject = tokenUserObject;
        this.clsfName = clsfName;
        this.libName = libName;
        if (this.libName == null) {
            libName = "";
        }
    }
    public void buildTreePanel(){
        initComponents();
    }
    private void initComponents(){
        initLeftPanel();
    }
    private void initLeftPanel() {
        rootNode = new VCIBaseTreeNode(currentRmType.getName(), currentRmType);
        treeModel = new VCIBaseTreeModel(rootNode);
        tree = new VCIBaseTree(treeModel, new CodeLibTreeCellRenderer());
        selNode = rootNode;
        if (clsfName == null || clsfName.equals("")) {
            loadTreeData(rootNode);
        } else {
            CodeClassify[] rmTypes = getRMTypeByDescAndLib();
            int len = rmTypes.length;
            addChildrenToParentTreeNode(currentRmType,rootNode,rmTypes, len - 2);
        }
        inittreeActions();
    }
    /**
     * å±•开树
     * <p>Description: </p>
     *
     * @author ligang
     * @time 2013-5-8
     * @param rmTypeObj
     * @param parentNode
     */
    private void addChildrenToParentTreeNode(CodeClassify rmTypeObj, VCIBaseTreeNode parentNode, CodeClassify[] rmTypes, int pos){
        String parentId = rmTypeObj.getOid();
        CodeClassify[] libs = {};
        libs = getChildRMTypeObjects(parentId);
        for(CodeClassify obj : libs) {
            VCIBaseTreeNode node = new VCIBaseTreeNode(obj.getName(), obj);
            treeModel.insertNodeInto(node, parentNode, parentNode.getChildCount());
            node.setLeaf(false);
            node.setExpand(false);
            if (pos < 0) {
                continue;
            }
            if (checkIsSel(obj, rmTypes[pos])) {
                selNode = node;
                addChildrenToParentTreeNode(obj, node, rmTypes, pos - 1);
            }
        }
        parentNode.setLeaf(libs.length == 0);
        parentNode.setExpand(true);
        if(tree != null){
            tree.expandPath(new TreePath(selNode.getPath()));
            tree.setSelectionPath(new TreePath(selNode.getPath()));
        }
    }
    private void loadTreeData(VCIBaseTreeNode rootNode){
        CodeClassify currentObj = (CodeClassify) rootNode.getObj();
        String parentId = currentObj.getOid();
        CodeClassify[] libs = {};
        libs = getChildRMTypeObjects(parentId);
        for(CodeClassify obj : libs) {
            VCIBaseTreeNode node = new VCIBaseTreeNode(obj.getName(), obj);
            rootNode.add(node);
            node.setLeaf(false);
            node.setExpand(false);
        }
        rootNode.setLeaf(libs.length == 0);
        rootNode.setExpand(true);
        tree.setSelectionPath(new TreePath(selNode));
        tree.updateUI();
    }
    /**
     * æ ¹æ®å‚数判断当前分类是否是选中状态
     * <p>Description: </p>
     *
     * @author ligang
     * @time 2013-5-8
     * @param obj
     * @return
     */
    private boolean checkIsSel(CodeClassify obj, CodeClassify selObj) {
        if(obj.getId().equals(selObj.getId())) {
            return true;
        }
        return false;
    }
    private void inittreeActions(){
        tree.addTreeSelectionListener(new TreeSelectionListener() {
            @Override
            public void valueChanged(TreeSelectionEvent e) {
                if(!e.isAddedPath()) return;
                leftTree_valueChanged(e);
            }
        });
        tree.addTreeExpansionListener(new TreeExpansionListener() {
            @Override
            public void treeExpanded(TreeExpansionEvent e) {
                tree_treeExpanded_local(e);
            }
            @Override
            public void treeCollapsed(TreeExpansionEvent e) {
            }
        });
    }
    /**
     * æ ¹æ®åˆ†ç±»æè¿°èŽ·å–ä¼ å…¥åˆ†ç±»çš„æ‰€æœ‰çˆ¶åˆ†ç±»ä¿¡æ¯
     * @return
     */
    private CodeClassify[] getRMTypeByDescAndLib() {
        CodeClassify[] objs = new CodeClassify[]{};
    //    String url= ConfigUtils.getConfigValue("410.PDM.leftdescLibNode.url","http://127.0.0.1:36014/codeApplySwingController/getRMTypeByDescAndLib");
        /**系统只加载代码项  å¦‚æžœlibName不为空,直接获取对应的代码项**/
        Map<String,String> condtionMap=new HashMap<>();
        condtionMap.put("desc", this.clsfName);
        condtionMap.put("codeLibName",rootNode.toString());
        Map<String,String> headerMap=new HashMap<>();
        headerMap.put("Blade-Auth",this.tokenUserObject.getAccess_token());
        R r= HttpUtil.sendGet(url+"/getRMTypeByDescAndLib",condtionMap,headerMap);
        List<CodeClassify> codeClassifyList = new ArrayList<>();
        if(r.isSuccess()){
            Object object= r.getData();
            if(object!=null) {
                ObjectMapper objectMapper = new ObjectMapper();
                try {
                    codeClassifyList = objectMapper.readValue(object.toString(), new com.fasterxml.jackson.core.type.TypeReference<List<CodeClassify>>() {
                    });
                } catch (JsonProcessingException e) {
                    e.printStackTrace();
                }
            }
        }else{
            VCIOptionPane.showMessage(this,r.getMsg());
        }
        return codeClassifyList.toArray(new CodeClassify[]{});
    }
    /**
     * æ ¹æ®ID直接获取子分类,无权限检查
     * <p>Description: </p>
     *
     * @author xchao
     * @time 2013-3-20
     * @param parentId
     * @return
     */
    private CodeClassify[] getChildRMTypeObjects(String parentId){
    //    String url= ConfigUtils.getConfigValue("410.PDM.leftClsfNode.url","http://127.0.0.1:36014/codeApplySwingController/selectCodeClassifyVOByParentId");
        /**系统只加载代码项  å¦‚æžœlibName不为空,直接获取对应的代码项**/
        Map<String,String> condtionMap=new HashMap<>();
        condtionMap.put("parentId", parentId );
        Map<String,String> headerMap=new HashMap<>();
        headerMap.put("Blade-Auth",this.tokenUserObject.getAccess_token());
        R r=HttpUtil.sendGet(url+"/selectCodeClassifyVOByParentId",condtionMap,headerMap);
        List<CodeClassify> codeClassifyList = new ArrayList<>();
        if(r.isSuccess()){
            Object object= r.getData();
            if(object!=null) {
                ObjectMapper objectMapper = new ObjectMapper();
                try {
                    codeClassifyList = objectMapper.readValue(object.toString(), new com.fasterxml.jackson.core.type.TypeReference<List<CodeClassify>>() {
                    });
                } catch (JsonProcessingException e) {
                    e.printStackTrace();
                }
            }
        }else{
            VCIOptionPane.showMessage(this,r.getMsg());
        }
        return codeClassifyList.toArray(new CodeClassify[]{});
    }
    private void tree_treeExpanded_local(TreeExpansionEvent e) {
        TreePath treePath = e.getPath();
        VCIBaseTreeNode treeNode = (VCIBaseTreeNode)treePath.getLastPathComponent();
        if(treeNode.isExpand()) return;
        if(!(treeNode.getObj() instanceof CodeClassify)) return;
        CodeClassify rmTypeObject = (CodeClassify)treeNode.getObj();
        CodeClassify[] childs = null;
        childs = getChildRMTypeObjects(rmTypeObject.getOid());
        addRMTypeObjectsToParentTreeNode(childs, treeNode);
        treeNode.setExpand(true);
        treeNode.setLeaf(treeModel.getChildCount(treeNode) == 0);
    }
    private void addRMTypeObjectsToParentTreeNode(CodeClassify[] objs, VCIBaseTreeNode parentNode){
        for(CodeClassify obj : objs){
            VCIBaseTreeNode node = new VCIBaseTreeNode(obj.getName(), obj);
            treeModel.insertNodeInto(node, parentNode, treeModel.getChildCount(parentNode));
        }
    }
    private void leftTree_valueChanged(TreeSelectionEvent e) {
        tree_valueChanged(e);
    }
    /**
     * é€‰æ‹©äº†æ ‘节点的事件处理
     * <p>Description: </p>
     *
     * @author xchao
     * @time 2012-5-26
     * @param e
     */
    public abstract void tree_valueChanged(TreeSelectionEvent e);
    public VCIBaseTree getTree() {
        return tree;
    }
    public void setTree(VCIBaseTree tree) {
        this.tree = tree;
    }
    public VCIBaseTreeModel getTreeModel() {
        return treeModel;
    }
    public void setTreeModel(VCIBaseTreeModel treeModel) {
        this.treeModel = treeModel;
    }
    public VCIBaseTreeNode getRootNode() {
        return rootNode;
    }
    public void setRootNode(VCIBaseTreeNode rootNode) {
        this.rootNode = rootNode;
    }
    public TransmitTreeObject getTransmitTreeObject() {
        return transmitTreeObject;
    }
    public void setTransmitTreeObject(TransmitTreeObject transmitTreeObject) {
        this.transmitTreeObject = transmitTreeObject;
    }
    public VCIBaseTreeNode getSelNode() {
        return selNode;
    }
    public void setSelNode(VCIBaseTreeNode selNode) {
        this.selNode = selNode;
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyPanelFor410.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,431 @@
package com.vci.rmip.code.client.codeapply.Apply410;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.vci.base.ui.swing.VCIOptionPane;
import com.vci.base.ui.swing.VCISwingUtil;
import com.vci.base.ui.swing.components.*;
import com.vci.base.ui.tree.VCIBaseTree;
import com.vci.base.ui.tree.VCIBaseTreeModel;
import com.vci.base.ui.tree.VCIBaseTreeNode;
import com.vci.rmip.code.client.codeapply.Apply410.object.CodeClassify;
import com.vci.rmip.code.client.codeapply.Apply410.object.R;
import com.vci.rmip.code.client.codeapply.Apply410.object.TokenUserObject;
import com.vci.rmip.code.client.codeapply.Apply410.utils.ConfigUtils;
import com.vci.rmip.code.client.codeapply.Apply410.utils.HttpUtil;
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateVO;
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO;
import net.logstash.logback.encoder.org.apache.commons.lang3.StringUtils;
import org.apache.commons.collections4.CollectionUtils;
import javax.swing.*;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.tree.TreePath;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
public class CodeApplyPanelFor410  extends VCIJPanel {
    //右侧面板
    private CodeApplyFor410MainPanel rightMainPanel = null;
    private VCIJScrollPane scrollLeftTreePane = new VCIJScrollPane();
    private VCIJSplitPane jspLeftToRight = new VCIJSplitPane(VCIJSplitPane.HORIZONTAL_SPLIT, scrollLeftTreePane, rightMainPanel);
    private CodeApplyPanelFor410ActionListener actionListener = new CodeApplyPanelFor410ActionListener(this);
    private VCIJButton applyBtn = VCISwingUtil.createVCIJButton("apply", "申请码值", "申请码值", "arrow-right.png", actionListener);
    private VCIJButton batchApplyBtn = VCISwingUtil.createVCIJButton("batchApply", "批量导入申请", "批量导入申请", "import.gif", actionListener);
    private VCIJButton btnSearch= VCISwingUtil.createVCIJButton("btnSearch", "查询代码", "查询代码", "search.png", actionListener);
    private VCIJButton clearBtn = VCISwingUtil.createVCIJButton("clear", "清空属性", "清空属性", "search.png", actionListener);
    private JLabel codeItemLabel = new JLabel("选择代码项:");
    private VCIJLabel applylbl = new VCIJLabel("申请码值:");
    public VCIJTextField applyTxt = new VCIJTextField(40);
    private JComboBox codeItemCombo = new JComboBox();
    private TokenUserObject tokenUserObject = null;;
    private CodeClassifyTemplateVO currentCodeClassifyTemplateVO;
    private boolean isIntegrate = false; //集成时不显示批量申请按钮
    /**
     * å­˜å‚¨åˆ†ç±»çš„Map,key:分类名称,value:分类值
     */
    private String clsfName = null;
    private CodeApplyFor410Dialog owner;
    /**
     * å­˜å‚¨å±žæ€§å’Œå€¼çš„Map,key:属性名称,value:属性值
     */
    private String deptName = null;
    private String[] libName = new String[]{};//代码项名称
    private VCIBaseTree leftTree = null;
    private VCIBaseTreeModel leftTreeModel = null;
    //左侧树
    private CodeApplyFor410TreePanel typeTreePanel = null;
    private TransmitTreeObject transmitTreeObject = new TransmitTreeObject();
    private String url= ConfigUtils.getConfigValue("410.code.url","http://127.0.0.1:36014/codeApplySwingController");
    /***
     *
     * @param tokenUserObject
     * @param isIntegrate
     * @param clsfName
     * @param deptName
     * @param libName
     */
    public CodeApplyPanelFor410(CodeApplyFor410Dialog owner , TokenUserObject tokenUserObject, boolean isIntegrate, String clsfName, String deptName, String[] libName){
        this.tokenUserObject = tokenUserObject;
        this.owner =owner;
        rightMainPanel = new CodeApplyFor410MainPanel(transmitTreeObject,tokenUserObject,getCurrentCodeClassifyTemplateVO());
        this.isIntegrate = isIntegrate;
        this.clsfName = clsfName;
        this.deptName = deptName;
        this.libName = libName;
        init();
        initActionListener();
    }
    /***
     * åˆå§‹åŒ–界面
     */
    private void init() {
        try {
            this.setLayout(new BorderLayout());
            this.add(initCodeItemPal(), BorderLayout.NORTH);
            this.add(initMiddlePanel(), BorderLayout.CENTER);
            this.add(initBtnPal(), BorderLayout.SOUTH);
            this.setVisible(true);
        }catch (Exception ex){
            VCIOptionPane.showMessage(owner,ex.getMessage());
        }
    }
    private JPanel initMiddlePanel()  {
        JPanel middlePanel = new JPanel();
        middlePanel.setLayout(new BorderLayout());
        JTextField jTextField1 = new JTextField();//instead of up line
        JTextField jTextField2 = new JTextField();//instead of down line
        jTextField1.setPreferredSize(new Dimension(63,2));
        jTextField2.setPreferredSize(new Dimension(63,2));
        middlePanel.add(jTextField1, BorderLayout.NORTH);
        middlePanel.add(jTextField2, BorderLayout.SOUTH);
        jspLeftToRight.setDividerSize(10);
        jspLeftToRight.setContinuousLayout(true);
        jspLeftToRight.setOneTouchExpandable(true);
        jspLeftToRight.setDividerLocation(200);
        initLeftPanel();
        middlePanel.add(jspLeftToRight, BorderLayout.CENTER);
        return middlePanel;
    }
    private JPanel initBtnPal() {
        JPanel bottomPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
        bottomPanel.add(applylbl);
        bottomPanel.add(applyTxt);
        applyTxt.setEditable(false);
        bottomPanel.add(applyBtn);
        if (!this.isIntegrate) {
            bottomPanel.add(batchApplyBtn);
        } else {
            bottomPanel.add(btnSearch);
        }
        bottomPanel.add(clearBtn);
        return bottomPanel;
    }
    /***
     * åˆå§‹åŒ–代码项目
     * @return
     */
    private JPanel initCodeItemPal()  {
        VCIJPanel codeItemPal = new VCIJPanel(new FlowLayout(FlowLayout.LEFT));
        codeItemCombo.setPreferredSize(new Dimension(200,25));
        initCodeItemCombo();//初始化代码项下拉框数据
        codeItemPal.add(codeItemLabel);
        codeItemPal.add(codeItemCombo);
        return codeItemPal;
    }
    /**
     * ä»£ç é¡¹äº‹ä»¶ï¼šé€‰æ‹©ä»£ç é¡¹åŽï¼Œè‡ªåŠ¨åˆ·æ–°ä»£ç é¡¹ä¸‹å¯¹åº”çš„è§„åˆ™ç æ®µå’Œæ¨¡æ¿å±žæ€§ä¿¡æ¯
     * <p>Description: </p>
     *
     * @author Administrator
     * @time 2013-3-23
     */
    public void initCodeItemCombo()  {
        CodeClassifyVO [] codeClassifyVOS = new CodeClassifyVO[0];
        Map<String,String> condtionMap=new HashMap<>();
        //condtionMap.put("parentOid",);
        //String url=ConfigUtils.getConfigValue("410.code.url","http://127.0.0.1:36014/codeApplySwingController");
        /**系统只加载代码项  å¦‚æžœlibName不为空,直接获取对应的代码项**/
        if(libName.length>0) {
            condtionMap.put("libName", StringUtils.join(libName,",") );
        }
        Map<String,String> headerMap=new HashMap<>();
        headerMap.put("Blade-Auth",this.tokenUserObject.getAccess_token());
        R r= HttpUtil.sendGet(url+"/getRMLibByName",condtionMap,headerMap);
        List<CodeClassify> codeClassifyList = new ArrayList<>();
        if(r.isSuccess()){
            Object object= r.getData();
            if(object!=null) {
                ObjectMapper objectMapper = new ObjectMapper();
                try {
                    codeClassifyList = objectMapper.readValue(object.toString(), new com.fasterxml.jackson.core.type.TypeReference<List<CodeClassify>>() {
                    });
                } catch (JsonProcessingException e) {
                    e.printStackTrace();
                }
            }
        }else{
            VCIOptionPane.showMessage(this,r.getMsg());
        }
        if(!CollectionUtils.isEmpty(codeClassifyList)){
            codeClassifyList.stream().forEach(codeClassify -> {
                codeItemCombo.addItem(codeClassify);
            });
            codeItemCombo.setSelectedIndex(0);
        }
        initLeftPanel();
    }
    /***
     * åˆå§‹åŒ–按钮事件
     */
    private void initActionListener() {
        /**代码项下拉事件**/
        codeItemCombo.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                if(codeItemCombo.getSelectedIndex() == -1) {
                    return;
                }
                try {
                    ruleComboActionListener();
                } catch (Exception ex) {
                    VCIOptionPane.showMessage(owner,ex.getMessage());
                }
            }
        });
    }
    /**
     * å¤„理代码项下拉事件
     * <p>Description: </p>
     *
     * @author Administrator
     * @time 2013-3-23
     */
    private void ruleComboActionListener()   {
        leftTree.removeAll();
        initLeftPanel();
    }
    private void initLeftPanel()  {
        CodeClassify currentCodeClassify= (CodeClassify) this.codeItemCombo.getSelectedItem();
        if(currentCodeClassify == null) {
            return;
        }
        String  libName=currentCodeClassify.getName();
        String classOid=currentCodeClassify.getOid();
        final CodeApplyPanelFor410 self = this;
        typeTreePanel = new CodeApplyFor410TreePanel(currentCodeClassify,tokenUserObject,clsfName, libName) {
            private static final long serialVersionUID = 8121108576137012228L;
            @Override
            public void tree_valueChanged(TreeSelectionEvent e) {
                self.leftTree_valueChanged(e);
            }
        };
        typeTreePanel.buildTreePanel();
        leftTree = typeTreePanel.getTree();
        leftTreeModel = typeTreePanel.getTreeModel();
        transmitTreeObject.setCurrentTreeNode(typeTreePanel.getSelNode());
        transmitTreeObject.setTree(leftTree);
        transmitTreeObject.setTreeModel(leftTreeModel);
        VCIJPanel rightPanel = new VCIJPanel();
        rightPanel.setLayout(new BorderLayout());
        jspLeftToRight.setRightComponent(rightPanel);
        rightPanel.add(scrollPane, BorderLayout.CENTER);
        Object obj =transmitTreeObject.getCurrentTreeNode();
        if(obj instanceof VCIBaseTreeNode){
            VCIBaseTreeNode vciBaseTreeNode=    (VCIBaseTreeNode)obj;
            Object node=vciBaseTreeNode.getObj();
            if(node instanceof CodeClassify) {
                CodeClassify codeClassify=(CodeClassify)node;
                classOid = codeClassify.getOid();
                //String url = ConfigUtils.getConfigValue("410.PDM.clsfTemplate.url", "http://127.0.0.1:36014/codeApplySwingController/getUsedTemplateByClassifyOid");
                /**系统只加载代码项  å¦‚æžœlibName不为空,直接获取对应的代码项**/
                Map<String, String> condtionMap = new HashMap<>();
                condtionMap.put("codeClassifyOid", classOid);
                Map<String,String> headerMap=new HashMap<>();
                headerMap.put("Blade-Auth",this.tokenUserObject.getAccess_token());
                R r = HttpUtil.sendGet(url+"/getUsedTemplateByClassifyOid", condtionMap, headerMap);
                boolean res = false;
                if (r.isSuccess()) {
                    //List<CodeClassifyTemplateVO> codeClassifyTemplateVOList=new ArrayList<>();
                    CodeClassifyTemplateVO codeClassifyTemplateVO = new CodeClassifyTemplateVO();
                    Object object = r.getData();
                    if (object != null) {
                        ObjectMapper objectMapper = new ObjectMapper();
                        try {
                            codeClassifyTemplateVO = objectMapper.readValue(object.toString(), CodeClassifyTemplateVO.class);
                            if (codeClassifyTemplateVO != null) {
                                setCurrentCodeClassifyTemplateVO(codeClassifyTemplateVO);
                                res = true;
                            }
                        } catch (JsonProcessingException e) {
                            e.printStackTrace();
                        }
                    }
                }/*else{
                    VCIOptionPane.showMessage(this,r.getMsg());
                }*/
                initBtnStatus(res);
            }
        }
        rightMainPanel = new CodeApplyFor410MainPanel(transmitTreeObject,tokenUserObject,deptName,getCurrentCodeClassifyTemplateVO());
        scrollPane.setViewportView(rightMainPanel);
        rightMainPanel.buildMainPanel(1);
        int location = jspLeftToRight.getDividerLocation();
        jspLeftToRight.setDividerLocation(location);
        scrollLeftTreePane.setViewportView(leftTree);
        leftTree.scrollPathToVisible(leftTree.getSelectionPath());
    }
    private void leftTree_valueChanged(TreeSelectionEvent e) {
        TreePath selectedTreePath = e.getPath();
        /**校验 åˆ¤æ–­é€‰æ‹©çš„代码项是否包含模板 Begin**/
        VCIBaseTreeNode selectedTreeNode = (VCIBaseTreeNode)selectedTreePath.getLastPathComponent();
        Object obj = selectedTreeNode.getObj();
        boolean res=false;
        if(obj instanceof CodeClassify) {
            CodeClassify curentCodeClassify=(CodeClassify)obj;
            //String url=ConfigUtils.getConfigValue("410.PDM.clsfTemplate.url","http://127.0.0.1:36014/codeApplySwingController/getUsedTemplateByClassifyOid");
            /**系统只加载代码项  å¦‚æžœlibName不为空,直接获取对应的代码项**/
            Map<String,String> condtionMap=new HashMap<>();
            condtionMap.put("codeClassifyOid",curentCodeClassify.getOid());
            Map<String,String> headerMap=new HashMap<>();
            headerMap.put("Blade-Auth",this.tokenUserObject.getAccess_token());
            R r=HttpUtil.sendGet(url+"/getUsedTemplateByClassifyOid",condtionMap,headerMap);
            if(r.isSuccess()) {
                CodeClassifyTemplateVO codeClassifyTemplateVO=new CodeClassifyTemplateVO();
                Object object= r.getData();
                if(object!=null) {
                    ObjectMapper objectMapper = new ObjectMapper();
                    try {
                        codeClassifyTemplateVO = objectMapper.readValue(object.toString(), CodeClassifyTemplateVO.class);
                        if(codeClassifyTemplateVO!=null){
                            setCurrentCodeClassifyTemplateVO(codeClassifyTemplateVO);
                            res=true;
                        }
                    } catch (JsonProcessingException e1) {
                        e1.printStackTrace();
                    }
                }
            }/*else{
                VCIOptionPane.showMessage(this.owner,r.getMsg());
            }*/
        }
        initBtnStatus(res);
        /*******************End**********************/
        initRightDataTablePanel(selectedTreeNode);
    }
    private void initBtnStatus(boolean enable) {
        applyBtn.setEnabled(enable);
        batchApplyBtn.setEnabled(enable);
        btnSearch.setEnabled(enable);
        clearBtn.setEnabled(enable);
    }
    private void initRightDataTablePanel(VCIBaseTreeNode selectedTreeNode) {
        leftTree = typeTreePanel.getTree();
        leftTreeModel = typeTreePanel.getTreeModel();
        transmitTreeObject.setTree(leftTree);
        transmitTreeObject.setTreeModel(leftTreeModel);
        transmitTreeObject.setCurrentTreeNode(selectedTreeNode);
        if(selectedTreeNode.isRoot() && selectedTreeNode.getObj() instanceof String) return;
        scrollPane = new JScrollPane();
        rightMainPanel = new CodeApplyFor410MainPanel(transmitTreeObject,tokenUserObject,deptName,getCurrentCodeClassifyTemplateVO());
        scrollPane.setViewportView(rightMainPanel);
        rightMainPanel.buildMainPanel(1);
        VCIJPanel rightPanel = new VCIJPanel();
        rightPanel.setLayout(new BorderLayout());
        rightPanel.add(scrollPane, BorderLayout.CENTER);
        applyTxt.setText("");
        jspLeftToRight.setRightComponent(rightPanel);
        int location = jspLeftToRight.getDividerLocation();
        jspLeftToRight.setDividerLocation(location);
    }
    private Map<String, String> attrNameAndValMap = new LinkedHashMap();
    private JScrollPane scrollPane = new JScrollPane();
    public Map<String, String> getAttrNameAndValMap() {
        return attrNameAndValMap;
    }
    public void setAttrNameAndValMap(Map<String, String> attrNameAndValMap) {
        this.attrNameAndValMap = attrNameAndValMap;
    }
    public String getApplyCode() {
        return this.applyTxt.getText().trim();
    }
    public void setApplyCode(String codeVal) {
        this.applyTxt.setText(codeVal);
    }
    public VCIJTextField getApplyTxt() {
        return applyTxt;
    }
    public void setApplyTxt(VCIJTextField applyTxt) {
        this.applyTxt = applyTxt;
    }
    public CodeClassifyTemplateVO getCurrentCodeClassifyTemplateVO() {
        return currentCodeClassifyTemplateVO;
    }
    public void setCurrentCodeClassifyTemplateVO(CodeClassifyTemplateVO currentCodeClassifyTemplateVO) {
        this.currentCodeClassifyTemplateVO = currentCodeClassifyTemplateVO;
    }
    public CodeApplyFor410MainPanel getRightMainPanel() {
        return rightMainPanel;
    }
    public void setRightMainPanel(CodeApplyFor410MainPanel rightMainPanel) {
        this.rightMainPanel = rightMainPanel;
    }
    public TransmitTreeObject getTransmitTreeObject() {
        return transmitTreeObject;
    }
    public void setTransmitTreeObject(TransmitTreeObject transmitTreeObject) {
        this.transmitTreeObject = transmitTreeObject;
    }
    public TokenUserObject getTokenUserObject() {
        return tokenUserObject;
    }
    public void setTokenUserObject(TokenUserObject tokenUserObject) {
        this.tokenUserObject = tokenUserObject;
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeApplyPanelFor410ActionListener.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,203 @@
package com.vci.rmip.code.client.codeapply.Apply410;
import com.alibaba.cloud.commons.lang.StringUtils;
import com.alibaba.fastjson.JSONObject;
import com.vci.base.ui.swing.VCIOptionPane;
import com.vci.base.ui.swing.components.VCIJComboBox;
import com.vci.rmip.code.client.codeapply.Apply410.object.CodeClassify;
import com.vci.rmip.code.client.codeapply.Apply410.object.R;
import com.vci.ubcs.code.dto.CodeOrderDTO;
import com.vci.ubcs.code.dto.CodeOrderSecDTO;
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateVO;
import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO;
import com.vci.rmip.code.client.codeapply.Apply410.utils.ConfigUtils;
import com.vci.rmip.code.client.codeapply.Apply410.utils.HttpUtil;
import com.vci.ubcs.starter.web.pagemodel.KeyValue;
import org.apache.commons.collections4.CollectionUtils;
import javax.swing.*;
import javax.swing.text.JTextComponent;
import java.awt.event.ActionEvent;
import java.util.*;
public class CodeApplyPanelFor410ActionListener extends CommonActionListener {
    private CodeApplyPanelFor410 owner = null;
    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");
    public CodeApplyPanelFor410ActionListener(CodeApplyPanelFor410 owner){
        this.owner = owner;
        this.initActionMap();
    }
    @Override
    public void initActionMap(){
        actionMaps.put("batchApply", new Runnable() { public void run() {
            //batchApply();//批量导入申请代码
        }});
        actionMaps.put("apply", new Runnable() { public void run() {
            apply();//码值申请
        }});
        actionMaps.put("btnSearch", new Runnable() { public void run() {
            search();//代码查询
        }});
        actionMaps.put("clear", new Runnable() { public void run() {
            clear();//清空属性
        }});
    }
    @Override
    public void actionPerformed(ActionEvent e) {
        String key = e.getActionCommand();
        if(actionMaps.containsKey(key)){
            actionMaps.get(key).run();
        }
    }
    private void apply() {
        codeAlreadExist = false;
        if(null == this.owner.getTransmitTreeObject().getCurrentTreeNode()) {
            return;
        }
        CodeClassify codeClassify = (CodeClassify) this.owner.getTransmitTreeObject().getCurrentTreeNode().getObj();
        if(codeClassify == null || "".equals(codeClassify.getOid())){
            VCIOptionPane.showMessage(this.owner, "请选择编码项分类!");
            return;
        }
        CodeClassifyTemplateVO codeClassifyTemplateVO = this.owner.getCurrentCodeClassifyTemplateVO();
        if(codeClassifyTemplateVO!=null&&"".equals(codeClassifyTemplateVO.getOid())) {
            VCIOptionPane.showMessageDialog(this.owner, "代码项没有配置模板,不允许申请!");
            return;
        }
        CodeRuleVO codeRuleVO= this.owner.getRightMainPanel().getCodeRuleVO();
        /**选择的分类是否包含规则的校验**/
        if(codeRuleVO==null||"".equals(codeRuleVO.getOid())) {
            VCIOptionPane.showMessage(this.owner, "分类:" + codeClassify.getName() + " æ²¡æœ‰åŒ…含规则,无法申请!");
            return;
        }
        //校验规则是否填写合格
        if(!this.owner.getRightMainPanel().checkIsAllowed()) {
            return;
        }
        //  æ£€æŸ¥æ¨¡æ¿å„属性的输入值是否满足要求
        String[][] inputValues = this.owner.getRightMainPanel().checkInputValues();
        //获取属性名称和值的集合
        Map<String, String> attrNameAndValMap = getAttrMap(inputValues);
        String[] fields = inputValues[0];
        String[] values = inputValues[1];
        String[] dataTypes = inputValues[2];
        String[] outNames = inputValues[3];
        Map<String,String> dataMap=new HashMap<>();
        for (int i=0;i<fields.length;i++){
            dataMap.put(fields[i],values[i]);
        }
        List<KeyValue> keyValueList= this.owner.getRightMainPanel().getSectionValues();
        if(CollectionUtils.isEmpty(keyValueList)){
            VCIOptionPane.showMessage(this.owner, "分类:" + codeClassify.getName() + " æ²¡æœ‰èŽ·å–è§„åˆ™ç æ®µé€‰æ‹©å€¼ä¿¡æ¯ï¼Œæ— æ³•ç”³è¯·ï¼");
            return;
        }
        CodeOrderDTO codeOrderDTO=new CodeOrderDTO();
        /**系统只加载代码项  å¦‚æžœlibName不为空,直接获取对应的代码项**/
        codeOrderDTO.setCodeClassifyOid(codeClassify.getOid());
        codeOrderDTO.setTemplateOid(codeClassifyTemplateVO.getOid());
        codeOrderDTO.setCodeRuleOid(codeRuleVO.getOid());
        List<CodeOrderSecDTO> secDTOList=new ArrayList<>();
        keyValueList.stream().forEach(keyValue -> {
            CodeOrderSecDTO codeOrderSecDTO=new CodeOrderSecDTO();
            codeOrderSecDTO.setSecOid(keyValue.getKey());
            codeOrderSecDTO.setSecValue(keyValue.getValue());
            secDTOList.add(codeOrderSecDTO);
        });
        codeOrderDTO.setLcStatus("Released");
        codeOrderDTO.setSecDTOList(secDTOList);
        codeOrderDTO.setData(dataMap);
        Object object = JSONObject.toJSON(codeOrderDTO);
        Map<String,String> headerMap=new HashMap<>();
        headerMap.put("content-type","application/json");
        headerMap.put("Blade-Auth",this.owner.getTokenUserObject().getAccess_token());
        String code="";
        //校验关键属性存在的数据直接返回编码
        R checkKeyAttrOnOrderR= HttpUtil.sendPost(url+"/checkKeyAttrOnOrderFordatas",object.toString(),headerMap);
        if(checkKeyAttrOnOrderR.isSuccess()){
            List<Map> list=(List)checkKeyAttrOnOrderR.getData();
            if(!CollectionUtils.isEmpty(list)) {
                code=list.get(0).get("ID")!=null?list.get(0).get("ID").toString():"";
                this.owner.setApplyCode(code);
                this.owner.getApplyTxt().requestFocusInWindow();
                this.owner.getApplyTxt().selectAll();
                this.owner.setAttrNameAndValMap(attrNameAndValMap);
                return;
            }
        }
        R r= HttpUtil.sendPost(url+"/addSaveCode",object.toString(),headerMap);
        if(r.isSuccess()){
            code=r.getData().toString();
            this.owner.setApplyCode(code);
            this.owner.getApplyTxt().requestFocusInWindow();
            this.owner.getApplyTxt().selectAll();
            this.owner.setAttrNameAndValMap(attrNameAndValMap);
        }else{
            VCIOptionPane.showMessage(this.owner,r.getMsg());
        }
    }
    private Map<String, String>  getAttrMap(String[][] inputValues) {
        Map<String, String> attrNameAndValMap = new LinkedHashMap<String, String>();
        String[] fields = inputValues[0];
        String[] values = inputValues[1];
        String[] outNames = inputValues[3];
        for(int k = 0;k < fields.length;k++) {
            attrNameAndValMap.put(fields[k], values[k]);//属性内部名称
            attrNameAndValMap.put(outNames[k], values[k]);//属性外部名称
        }
        return attrNameAndValMap;
    }
    /***
     * æ¸…空属性
     */
    private void clear(){
        CodeApplyFor410MainPanel rightMainPanel2 = this.owner.getRightMainPanel();
        LinkedHashMap<String, JComponent> attrInnerNameToCtrlMaps = rightMainPanel2.getAttrInnerNameToCtrlMaps();
        if(attrInnerNameToCtrlMaps!=null&&attrInnerNameToCtrlMaps.size()>0){
            attrInnerNameToCtrlMaps.forEach((key,component)->{
                if(component instanceof JTextComponent){
                    if(((JTextComponent) component).isEnabled())
                        ((JTextComponent) component).setText("");
                }else if(component instanceof VCIJComboBox){
                    if(((VCIJComboBox) component).isEnabled())
                        ((VCIJComboBox) component).setSelectedIndex(0);
                }
            });
        }
        String applyCode = this.owner.getApplyCode();
        if(StringUtils.isBlank(applyCode)) {
            this.owner.setApplyCode("");
        }
    }
    /**
     *
     * æŸ¥è¯¢ä»£ç 
     */
    private void search(){
        if(null == this.owner.getRightMainPanel().getTransTreeObject().getCurrentTreeNode()) {
            return;
        }
        CodeClassify rmType = (CodeClassify) this.owner.getRightMainPanel().getTransTreeObject().getCurrentTreeNode().getObj();
        if(rmType == null || "".equals(rmType.getId())){
            VCIOptionPane.showMessage(this.owner, "请选择代码项分类!");
            return;
        }
        CodeApplyFor410SearchDialog dialog = new CodeApplyFor410SearchDialog(this.owner);
        String str = dialog.getStr();
        if (!str.equals("")) {
            owner.applyTxt.setText(str);
        }
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeDataMainPanel.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,165 @@
package com.vci.rmip.code.client.codeapply.Apply410;
import com.vci.base.ui.swing.VCISwingUtil;
import com.vci.base.ui.swing.components.VCIJButton;
import com.vci.base.ui.swing.components.VCIJPanel;
import com.vci.base.ui.swing.components.table.AbstractVCIJTableDataProvider;
import com.vci.base.ui.swing.components.table.VCIJTablePanel;
import com.vci.rmip.code.client.codeapply.Apply410.object.BaseModel;
import com.vci.rmip.code.client.codeapply.Apply410.object.TokenUserObject;
import com.vci.rmip.code.client.codeapply.Apply410.object.UIFormRefer;
import java.awt.*;
import java.util.HashMap;
import java.util.Map;
public class CodeDataMainPanel extends VCIJPanel {
    /**
     * è‡ªå®šä¹‰é¡¶éƒ¨æŽ§ä»¶åŒºåŸŸ
     */
    private AttarSearchPanel customTopPanel = null;
    private UIFormRefer uiFormRefer;
    private CodeDataMainPanelActionListener actionListener = new CodeDataMainPanelActionListener(this);
    private VCIJButton btnSearch = VCISwingUtil.createVCIJButton("search", "查询", "查询", "search.png", actionListener);
    private VCIJButton btnClear = VCISwingUtil.createVCIJButton("clear_search", "清空查询条件", "清空查询条件", "clear.gif", actionListener);
    private TokenUserObject tokenUserObject=null;
    public CodeDataMainPanel(UIFormRefer uiFormRefer, TokenUserObject tokenUserObject) {
        this.uiFormRefer=uiFormRefer;
        this.tokenUserObject=tokenUserObject;
    }
    private Map<String,String> customCondtionMap=new HashMap<>();
    public void buildPanel(){
        this.init();
    }
    private void init(){
        initComponents();
    }
    private void initComponents(){
        setLayout(new BorderLayout());
        add(createNorthBaseAttrsPanel(), BorderLayout.NORTH);
        add(createCenterDataTablePanel(), BorderLayout.CENTER);
    }
    /**
     * æ ¹æ®ç±»åž‹æ˜¾ç¤ºtable
     */
    private VCIJTablePanel<BaseModel> tablePanel = null;
    private AbstractVCIJTableDataProvider<BaseModel> dataProvider = null;
    private VCIJPanel createCenterDataTablePanel() {
        tablePanel = new VCIJTablePanel<BaseModel>(dataProvider);
        //tablePanel.setCustomButtons(getCombinedButtons());
        //tablePanel.setShowExport(true);
        tablePanel.setShowPaging(true);
        tablePanel.setShowProgressBar(true);
        tablePanel.setPageButtonFlowAlign(FlowLayout.CENTER);
        tablePanel.setCustomButtonFlowAlign(FlowLayout.CENTER);
        tablePanel.buildTablePanel();
        int columnCount = tablePanel.getTable().getColumnCount();
        //tablePanel.getTable().getColumnModel().getColumn(columnCount - 2).setPreferredWidth(150);
        //tablePanel.getTable().getColumnModel().getColumn(columnCount - 4).setPreferredWidth(150);
        /**
         * ç¦æ­¢table表头拖动,防止第一列的复选框和第二列的序号拖动出问题:
         * ç‚¹å‡»æŸè¡Œï¼Œè¡¨æ ¼ä¸­çš„复选框看不到,且选中表头上的复选框系统会报错;数据信息显示不正确。
         * 2012-12-4 wangxl
         */
        tablePanel.getTable().getTableHeader().setReorderingAllowed(false);
        tablePanel.refreshTableData();
        return tablePanel;
    }
    private VCIJPanel createNorthBaseAttrsPanel(){
        VCIJPanel palRes = new VCIJPanel(new BorderLayout());
        if(getCustomTopPanel() != null){
            VCIJPanel pal = new VCIJPanel();
            pal.setLayout(new GridBagLayout());
            GridBagConstraints c = new GridBagConstraints();
            int x = 0;
            int y = 0;
            c.gridx = x++;
            c.gridy = y++;
            c.gridheight = 1;
            c.gridwidth = 1;
            c.weightx = 0;
            c.weighty = 0;
            c.fill = GridBagConstraints.NONE;
            c.anchor = GridBagConstraints.EAST;
            c.insets = new Insets(1, 1, 1, 1);
            c.ipadx = 1;
            c.ipady = 1;
            pal.add(btnSearch, c);
            c.gridx = x++;
            pal.add(btnClear, c);
            palRes.add(pal, BorderLayout.SOUTH);
            palRes.add(getCustomTopPanel(), BorderLayout.CENTER);
        }
        return palRes;
    }
    public AttarSearchPanel getCustomTopPanel() {
        return customTopPanel;
    }
    public void setCustomTopPanel(AttarSearchPanel customTopPanel) {
        this.customTopPanel = customTopPanel;
    }
    public VCIJTablePanel<BaseModel> getTablePanel() {
        return tablePanel;
    }
    public void setTablePanel(VCIJTablePanel<BaseModel> tablePanel) {
        this.tablePanel = tablePanel;
    }
    public UIFormRefer getUiFormRefer() {
        return uiFormRefer;
    }
    public void setUiFormRefer(UIFormRefer uiFormRefer) {
        this.uiFormRefer = uiFormRefer;
    }
    public TokenUserObject getTokenUserObject() {
        return tokenUserObject;
    }
    public void setTokenUserObject(TokenUserObject tokenUserObject) {
        this.tokenUserObject = tokenUserObject;
    }
    public AbstractVCIJTableDataProvider<BaseModel> getDataProvider() {
        return dataProvider;
    }
    public void setDataProvider(AbstractVCIJTableDataProvider<BaseModel> dataProvider) {
        this.dataProvider = dataProvider;
    }
    public Map<String, String> getCustomCondtionMap() {
        if(this.getCustomTopPanel()!=null){
            Map<String,String> newCustomCondtionMap= this.getCustomTopPanel().getAttrSearchFilterString();
            customCondtionMap.putAll(newCustomCondtionMap);
        }
        return customCondtionMap;
    }
    public void setCustomCondtionMap(Map<String, String> customCondtionMap) {
        this.customCondtionMap = customCondtionMap;
    }
    /**
     * æ¸…空条件
     * <p>Description: </p>
     *
     * @author liujw
     */
    public void clearCustomTopPanel(){
        customCondtionMap.clear();
        AttarSearchPanel search = (AttarSearchPanel)getCustomTopPanel();
        search.clear();
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeDataMainPanelActionListener.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
package com.vci.rmip.code.client.codeapply.Apply410;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.LinkedHashMap;
public class CodeDataMainPanelActionListener implements ActionListener {
    private CodeDataMainPanel owner = null;
    private LinkedHashMap<String, Runnable> actionMaps = new LinkedHashMap<String, Runnable>();
    public CodeDataMainPanelActionListener(CodeDataMainPanel owner) {
        this.owner = owner;
        this.initActionMap();
    }
    private void initActionMap(){
        actionMaps.put("search", new Runnable() { public void run() {
            search();
        }});
        actionMaps.put("clear_search", new Runnable() { public void run() {
            clear_search();
        }});
    }
    @Override
    public void actionPerformed(ActionEvent e) {
        String key = e.getActionCommand();
        if(actionMaps.containsKey(key)){
            actionMaps.get(key).run();
        }
    }
    private void clear_search(){
        owner.clearCustomTopPanel();
        owner.getTablePanel().refreshTableData();
    }
    private void search() {
        owner.getTablePanel().setPageIndex(1);
        owner.getTablePanel().refreshTableData();
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeDataMainPanelDataProvider.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,124 @@
package com.vci.rmip.code.client.codeapply.Apply410;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONObject;
import com.vci.base.ui.swing.components.table.AbstractVCIJTableDataProvider;
import com.vci.base.ui.swing.components.table.VCIJTableNode;
import com.vci.rmip.code.client.codeapply.Apply410.object.BaseModel;
import com.vci.rmip.code.client.codeapply.Apply410.object.Page;
import com.vci.rmip.code.client.codeapply.Apply410.object.R;
import com.vci.rmip.code.client.codeapply.Apply410.utils.HttpUtil;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.vci.base.ui.swing.VCIOptionPane;
import com.vci.ubcs.code.vo.webserviceModel.coderule.CodeShowFieldConfigVO;
import com.vci.ubcs.code.vo.webserviceModel.coderule.CodeSrchCondConfigVO;
import com.vci.rmip.code.client.codeapply.Apply410.object.UIFormRefer;
import com.vci.rmip.code.client.codeapply.Apply410.utils.ConfigUtils;
import com.vci.ubcs.starter.web.util.VciBaseUtil;
import net.logstash.logback.encoder.org.apache.commons.lang3.StringUtils;
import org.apache.commons.collections4.CollectionUtils;
import java.util.*;
import java.util.stream.Collectors;
public class CodeDataMainPanelDataProvider extends AbstractVCIJTableDataProvider<BaseModel> {
    private CodeDataMainPanel ownerPanel;
    private String[] specialColumns = {};
    private String url= ConfigUtils.getConfigValue("410.code.url","http://127.0.0.1:36014/codeApplySwingController");
    private String[] fields = {};
    public CodeDataMainPanelDataProvider(CodeDataMainPanel ownerPanel) {
        this.ownerPanel=ownerPanel;
    }
    @Override
    public String[] getSpecialColumns() {
        LinkedList<String> nameList = new LinkedList<>();
        LinkedList<String> fieldList = new LinkedList<>();
        List<CodeShowFieldConfigVO> colsList=ownerPanel.getUiFormRefer().getCodeShowFieldConfigVOS();
        colsList.stream().forEach(columns->{
            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;
    }
    @Override
    public int getTotal() {
        return total;
    }
    @Override
    public VCIJTableNode<BaseModel> getNewRowNode(BaseModel model) {
        Map<String,String> dataMap= model.getData();
        Map<String, String> defaultDataMap= VciBaseUtil.objectToMapString(model);
        defaultDataMap.putAll(dataMap);
        VCIJTableNode<BaseModel> res = new VCIJTableNode<BaseModel>(model);
        int i=dataColumnStartIndex;
        for (String field:fields){
            String data=defaultDataMap.getOrDefault(field,"");
            res.setPropertyValue(getColumns()[i++], data);
        }
        return res;
    }
    @Override
    public BaseModel[] getDatas(int pageIndex, int pageSize) {
        /**系统只加载代码项  å¦‚æžœlibName不为空,直接获取对应的代码项**/
        Map<String,String> condtionMap=new HashMap<>();
        Page<BaseModel> iPage= new Page<BaseModel>() {};
        try{
            UIFormRefer uiFormRefer=    this.ownerPanel.getUiFormRefer();
            condtionMap.put("referType", StringUtils.isBlank(uiFormRefer.getReferType())?"":uiFormRefer.getReferType());
            condtionMap.put("page",pageIndex+"");
            condtionMap.put("limit",pageSize+"");
            List<CodeSrchCondConfigVO> codeSrchCondConfigVOS=uiFormRefer.getCodeSrchCondConfigVOS();
            JSONObject jsonObject=new JSONObject();
            if(!CollectionUtils.isEmpty(codeSrchCondConfigVOS)){
                codeSrchCondConfigVOS.stream().forEach(codeSrchCondConfigVO -> {
                    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);
                });
            }
            Map<String,String> headerMap=new HashMap<>();
            headerMap.put("Blade-Auth",this.ownerPanel.getTokenUserObject().getAccess_token());
            R r= HttpUtil.sendGet(url+"/defaultReferDataGrid",condtionMap,headerMap);
            if(r.isSuccess()){
                Object object= r.getData();
                if(object!=null) {
                    ObjectMapper objectMapper = new ObjectMapper();
                    iPage = objectMapper.readValue(object.toString(), Page.class);
                }
            }else{
                VCIOptionPane.showMessage(this.ownerPanel,r.getMsg());
            }
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
        this.total= new Long(iPage.getTotal()).intValue();
        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());
            baseModels = hostInfos.toArray(new BaseModel[]{});
        }
        return baseModels;
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeLibTreeCellRenderer.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,51 @@
package com.vci.rmip.code.client.codeapply.Apply410;
import com.vci.base.ui.image.bundle.BundleImage;
import com.vci.base.ui.tree.VCIBaseTreeNode;
import com.vci.rmip.code.client.codeapply.Apply410.object.CodeClassify;
import javax.swing.*;
import javax.swing.tree.DefaultTreeCellRenderer;
import java.awt.*;
public class CodeLibTreeCellRenderer extends DefaultTreeCellRenderer {
    /**
     *
     */
    private static final long serialVersionUID = 1L;
    public CodeLibTreeCellRenderer() {
    }
    public Component getTreeCellRendererComponent (
        JTree tree,
        Object value,
        boolean sel,
        boolean expanded,
        boolean leaf,
        int row,
        boolean hasFocus) {
        super.getTreeCellRendererComponent (
            tree, value, sel,
            expanded, leaf, row,
            hasFocus);
        try {
            ToolTipManager.sharedInstance().registerComponent(tree);
            VCIBaseTreeNode node = (VCIBaseTreeNode)value;
            if(node.isRoot()){
                setIcon(new BundleImage().createImageIcon ("house.png"));
            } else if (node.getObj().equals("root")) { //根节点
                setIcon(new BundleImage().createImageIcon ("house.png"));
            }else if(node.getObj() instanceof CodeClassify){
                //CodeClassify rmTypeInfo=(CodeClassify)node.getObj();
                setIcon(new BundleImage().createImageIcon ("box.gif"));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return this;
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CodeReferTreePanel.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,211 @@
package com.vci.rmip.code.client.codeapply.Apply410;
import com.alibaba.cloud.commons.lang.StringUtils;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.vci.base.ui.swing.VCIOptionPane;
import com.vci.base.ui.swing.components.VCIJPanel;
import com.vci.base.ui.tree.VCIBaseTree;
import com.vci.base.ui.tree.VCIBaseTreeModel;
import com.vci.base.ui.tree.VCIBaseTreeNode;
import com.vci.rmip.code.client.codeapply.Apply410.object.R;
import com.vci.rmip.code.client.codeapply.Apply410.object.ReferTreObject;
import com.vci.rmip.code.client.codeapply.Apply410.object.TokenUserObject;
import com.vci.rmip.code.client.codeapply.Apply410.object.UIFormRefer;
import com.vci.rmip.code.client.codeapply.Apply410.utils.ConfigUtils;
import com.vci.rmip.code.client.codeapply.Apply410.utils.HttpUtil;
import com.vci.ubcs.starter.web.pagemodel.Tree;
import org.apache.commons.collections4.CollectionUtils;
import javax.swing.event.TreeExpansionEvent;
import javax.swing.event.TreeExpansionListener;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.TreePath;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public abstract class CodeReferTreePanel extends VCIJPanel {
    private VCIBaseTree tree = null;
    private VCIBaseTreeModel treeModel = null;
    private VCIBaseTreeNode rootNode = null;
    private ReferTreObject referTreObject;
    private UIFormRefer uiFormRefer;
    private TokenUserObject tokenUserObject;
    public CodeReferTreePanel(UIFormRefer uiFormRefer ,TokenUserObject tokenUserObject) {
        this.uiFormRefer=uiFormRefer;
        this.tokenUserObject=tokenUserObject;
    }
    public void buildTreePanel(){
        initComponents();
    }
    private String url= ConfigUtils.getConfigValue("410.code.url","http://127.0.0.1:36014/codeApplySwingController");
    private void initComponents(){
        List<Tree> treeList=new ArrayList<>();
        ObjectMapper objectMapper = new ObjectMapper();
        if(uiFormRefer!=null){
            try {
                /**系统只加载代码项  å¦‚æžœlibName不为空,直接获取对应的代码项**/
                Map<String,String> condtionMap=new HashMap<>();
                condtionMap.put("referType",StringUtils.isBlank(uiFormRefer.getReferType())?"":uiFormRefer.getReferType());
                condtionMap.put("parentUsedField",StringUtils.isBlank(uiFormRefer.getParentUsedField())?"":uiFormRefer.getParentUsedField());
                condtionMap.put("valueField",StringUtils.isBlank(uiFormRefer.getValueField())?"":uiFormRefer.getValueField());
                condtionMap.put("parentValue",StringUtils.isBlank(uiFormRefer.getParentValue())?"":uiFormRefer.getParentValue());
                condtionMap.put("parentFieldName",StringUtils.isBlank(uiFormRefer.getParentFieldName())?"":uiFormRefer.getParentFieldName());
                condtionMap.put("textField",StringUtils.isBlank(uiFormRefer.getTextField())?"":uiFormRefer.getTextField());
                condtionMap.put("muti",uiFormRefer.isMuti()?"true":"false");
                condtionMap.put("queryAllLevel", StringUtils.isBlank(uiFormRefer.getLoadType())?"false":"true");//queryAllLevel
                //condtionMap.put("parentOid",null);
                Map<String,String> headerMap=new HashMap<>();
                headerMap.put("Blade-Auth",this.tokenUserObject.getAccess_token());
                R r= HttpUtil.sendGet(url+"/defaultReferTree",condtionMap,headerMap);
                if(r.isSuccess()){
                    Object object= r.getData();
                    if(object!=null) {
//                        ObjectMapper objectMapper = new ObjectMapper();
                            treeList = objectMapper.readValue(object.toString(), new com.fasterxml.jackson.core.type.TypeReference<List<Tree>>() {});
                            treeList=treeList;
                    }
                }else{
                    VCIOptionPane.showMessage(this,r.getMsg());
                }
            } catch (JsonProcessingException e) {
                e.printStackTrace();
            }
        }
        rootNode = new VCIBaseTreeNode("参照", "参照");
        treeModel = new VCIBaseTreeModel(rootNode);
        tree = new VCIBaseTree(treeModel, new CodeLibTreeCellRenderer());
        addChildrenToParentTreeNode(rootNode,treeList);
        inittreeActions();
    }
    private void initTreeData() {
    }
    /*private void loadTreeData(VCIBaseTreeNode rootNode){
        CodeClassify currentObj = (CodeClassify) rootNode.getObj();
        String parentId = currentObj.getOid();
        CodeClassify[] libs = {};
        libs = getChildRMTypeObjects(parentId);
        for(CodeClassify obj : libs) {
            VCIBaseTreeNode node = new VCIBaseTreeNode(obj.getName(), obj);
            rootNode.add(node);
            node.setLeaf(false);
            node.setExpand(false);
        }
        rootNode.setLeaf(libs.length == 0);
        rootNode.setExpand(true);
        tree.setSelectionPath(new TreePath(selNode));
        tree.updateUI();
    }*/
    /**
     * å±•开树
     * <p>Description: </p>
     *
     * @author ligang
     * @time 2013-5-8
     * @param parentNode
     */
    private void addChildrenToParentTreeNode(VCIBaseTreeNode parentNode, List<Tree>children){
        parentNode.setLeaf(children.size() == 0);
        parentNode.setExpand(true);
        for(Tree obj : children) {
            VCIBaseTreeNode node = new VCIBaseTreeNode(obj.getName(), obj);
            List<Tree>newChildren = obj.getChildren();
            treeModel.insertNodeInto(node, parentNode, parentNode.getChildCount());
            if(!CollectionUtils.isEmpty(newChildren)) {
                node.setExpand(true);
                node.setLeaf(false);
                addChildrenToParentTreeNode(node, newChildren);
            }else{
                node.setExpand(true);
                node.setLeaf(true);
            }
        }
        if(tree != null){
            //tree.expandPath(new TreePath(selNode.getPath()));
            //tree.setSelectionPath(new TreePath(selNode.getPath()));
            tree.updateUI();
        }
    }
    private void inittreeActions(){
        tree.addTreeSelectionListener(new TreeSelectionListener() {
            @Override
            public void valueChanged(TreeSelectionEvent e) {
                if(!e.isAddedPath()) return;
                leftTree_valueChanged(e);
            }
        });
        tree.addTreeExpansionListener(new TreeExpansionListener() {
            @Override
            public void treeExpanded(TreeExpansionEvent e) {
                tree_treeExpanded_local(e);
            }
            @Override
            public void treeCollapsed(TreeExpansionEvent e) {
            }
        });
    }
    private void leftTree_valueChanged(TreeSelectionEvent e) {
        tree_valueChanged(e);
    }
    /**
     * é€‰æ‹©äº†æ ‘节点的事件处理
     * <p>Description: </p>
     *
     * @author xchao
     * @time 2012-5-26
     * @param e
     */
    public abstract void tree_valueChanged(TreeSelectionEvent e);
    /**
     * å±•开事件
     * @param e
     */
    private void tree_treeExpanded_local(TreeExpansionEvent e) {
        TreePath treePath = e.getPath();
        VCIBaseTreeNode treeNode = (VCIBaseTreeNode)treePath.getLastPathComponent();
        if(treeNode.isExpand()) return;
        if(!(treeNode.getObj() instanceof Tree)) return;
        Tree tree = (Tree)treeNode.getObj();
        List<Tree> childs = new ArrayList<>();
        //childs = getChildRMTypeObjects(rmTypeObject.getOid());
        addRMTypeObjectsToParentTreeNode(childs, treeNode);
        treeNode.setExpand(true);
        treeNode.setLeaf(treeModel.getChildCount(treeNode) == 0);
    }
    private void addRMTypeObjectsToParentTreeNode(List<Tree> objs, VCIBaseTreeNode parentNode){
        for(Tree obj : objs){
            VCIBaseTreeNode node = new VCIBaseTreeNode(obj.getName(), obj);
            treeModel.insertNodeInto(node, parentNode, treeModel.getChildCount(parentNode));
        }
    }
    public VCIBaseTree getTree() {
        return tree;
    }
    public void setTree(VCIBaseTree tree) {
        this.tree = tree;
    }
    public VCIBaseTreeModel getTreeModel() {
        return treeModel;
    }
    public void setTreeModel(VCIBaseTreeModel treeModel) {
        this.treeModel = treeModel;
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/CommonActionListener.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.vci.rmip.code.client.codeapply.Apply410;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.LinkedHashMap;
public class CommonActionListener implements ActionListener {
    protected LinkedHashMap<String, Runnable> actionMaps = new LinkedHashMap<String, Runnable>();
    public void initActionMap(){
        //
    }
    @Override
    public void actionPerformed(ActionEvent e) {
        String key = e.getActionCommand();
        if(actionMaps.containsKey(key)){
            actionMaps.get(key).run();
        }
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/DescViewDialog.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,84 @@
package com.vci.rmip.code.client.codeapply.Apply410;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import com.vci.base.ui.swing.components.VCIJDialog;
public class DescViewDialog extends VCIJDialog {
    /**
     *
     */
    private static final long serialVersionUID = 1L;
    private JPanel topPanel;
    private JTextArea reasonTextArea = new JTextArea(5,5);
    private JButton cancelBtn = new JButton("关闭");
    private String desc;
    private CodeApplyFor410MainPanel owner = null;
    public DescViewDialog(CodeApplyFor410MainPanel owner,String desc){
//        super(frame,true);
        this.owner = owner;
        this.desc = desc;
        this.setModal(true);
    }
    public void bulidDialog() {
        init ();
    }
    private void init(){
        int width = 550,height = 250;
        int px = (int)(this.owner.getLocationOnScreen().getX());
        int py = (int)(this.owner.getLocationOnScreen().getY());
        int pWidth = this.owner.getBounds().width;
        int pHeight = this.owner.getBounds().height;
        this.setLocation(px + (pWidth - width) / 2, py + (pHeight - height) / 2);
        this.setSize(new Dimension(550, 250));
//        this.initDialogSize(600, 250);
        this.setResizable(false);
        this.setTitle("码段码值的详细描述信息");
        initUI();
        JPanel bottomPanel = new JPanel();
        bottomPanel.add(cancelBtn);
        cancelBtn.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                close();
            }
        });
        this.setLayout(new BorderLayout());
        this.add(topPanel,BorderLayout.CENTER);
        this.add(bottomPanel,BorderLayout.SOUTH);
    }
    private void close() {
        this.setDialogResult(DialogResult.CANCEL);
        this.setVisible(false);
    }
    private void initUI() {
        topPanel = new JPanel();
        topPanel.setLayout(new BorderLayout());
        reasonTextArea.setText(desc);
        reasonTextArea.setAutoscrolls(true);
        reasonTextArea.setLineWrap(true);
        JScrollPane scrollPanel = new JScrollPane();
        scrollPanel.setViewportView(reasonTextArea);
        scrollPanel.setAutoscrolls(true);
        topPanel.add(scrollPanel,BorderLayout.CENTER);
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/RMDataReferTempDialog.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,225 @@
package com.vci.rmip.code.client.codeapply.Apply410;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Toolkit;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JPanel;
import javax.swing.event.TreeSelectionEvent;
import com.alibaba.cloud.commons.lang.StringUtils;
import com.alibaba.fastjson.JSONObject;
import com.vci.base.ui.swing.VCISwingUtil;
import com.vci.base.ui.swing.components.*;
import com.vci.base.ui.tree.VCIBaseTree;
import com.vci.base.ui.tree.VCIBaseTreeModel;
import com.vci.rmip.code.client.codeapply.Apply410.enums.CodeReferConfigTypeEnum;
import com.vci.rmip.code.client.codeapply.Apply410.object.UIFormRefer;
import com.vci.ubcs.starter.web.pagemodel.KeyValue;
public class RMDataReferTempDialog extends VCIJDialog {
    private CodeApplyFor410MainPanel owner;
    //private CodeClassifyTemplateAttrVO codeClassifyTemplateAttr;
    private String referConfig="";
    private RMDataReferTempDialogActionListener actionListener = new RMDataReferTempDialogActionListener(this);
    private VCIJButton btnOk = VCISwingUtil.createVCIJButton("ok", "确定", "确定", "accept.png", actionListener);
    private VCIJButton btnCancel = VCISwingUtil.createVCIJButton("cancel", "取消", "取消", "cancel.png", actionListener);
    private static final long serialVersionUID = 1L;
    private VCIJScrollPane scrollLeftTreePane = new VCIJScrollPane();
    CodeReferTreePanel typeTreePanel;
    private VCIBaseTree leftTree = null;
    private VCIBaseTreeModel leftTreeModel = null;
    private KeyValue keyValue;
    public RMDataReferTempDialog(CodeApplyFor410MainPanel owner, String  referConfig) {
        //super(true);
        this.owner = owner;
        this.referConfig = referConfig;
        init();
        setTitle("引用模板-属性选择");
        //initDialogSize(rmDataAddDialog.getWidth(), rmDataAddDialog.getHeight());
    }
    private void init(){
        this.setLayout(new BorderLayout());
        JPanel panel = new JPanel(new FlowLayout());
        panel.add(btnOk);
        panel.add(btnCancel);
        this.add(createRMDataMainPanel(), BorderLayout.CENTER);
        this.add(panel,BorderLayout.SOUTH);
        Dimension dime = Toolkit.getDefaultToolkit().getScreenSize().getSize();
        int x = dime.width/6;
        int y = dime.height/6 + 50;
        this.setLocation(x , y);
        this.setSize(850, 400);
    }
    private boolean fromTableDoubleClick = false;
    public boolean isFromTableDoubleClick() {
        return fromTableDoubleClick;
    }
    public void setFromTableDoubleClick(boolean fromTableDoubleClick) {
        this.fromTableDoubleClick = fromTableDoubleClick;
    }
    private UIFormRefer uiFormRefer;
    private VCIJPanel createRMDataMainPanel(){
        VCIJPanel rmDataTablePanel = new VCIJPanel(new BorderLayout());
        uiFormRefer=new UIFormRefer();
        if(StringUtils.isNotBlank(referConfig)){
            uiFormRefer = JSONObject.toJavaObject(JSONObject.parseObject(referConfig.toString()), UIFormRefer.class);
        }
        if(uiFormRefer !=null&&(uiFormRefer.getType().equals(CodeReferConfigTypeEnum.TREE.getValue())
                ||uiFormRefer.getType().equals(CodeReferConfigTypeEnum.ORGDEPARTMENTREFER.getValue()))){
            rmDataTablePanel.add(createTreePanel(),BorderLayout.CENTER);
        }else if(uiFormRefer !=null&&(uiFormRefer.getType().equals(CodeReferConfigTypeEnum.GRID.getValue()))){
        //树表
        }else{
            rmDataTablePanel.add(getRMDataMainPanel(),BorderLayout.CENTER);
        }
        //rmDataTablePanel.setPreferredSize(new Dimension(880,300));
        return rmDataTablePanel;
    }
    /**
     * æ ¹æ®ç±»åž‹æ˜¾ç¤ºtable
     */
    private CodeDataMainPanel codeDataMainPanel = null;
    public CodeDataMainPanel getRMDataMainPanel() {
        codeDataMainPanel=new CodeDataMainPanel(uiFormRefer,this.owner.getTokenUserObject());
        CodeDataMainPanelDataProvider dataProvider=new CodeDataMainPanelDataProvider(codeDataMainPanel);
        codeDataMainPanel.setDataProvider(dataProvider);
        codeDataMainPanel.setCustomTopPanel(new AttarSearchPanel(uiFormRefer));
        codeDataMainPanel.buildPanel();
        VCIJTable table = codeDataMainPanel.getTablePanel().getTable();
        table.addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent e) {
                if (e.getButton() == 1 && e.getClickCount() == 2) {
                    setFromTableDoubleClick(true);
                    btnOk.doClick();
                }
            }
        });
        return codeDataMainPanel;
    }
    /***
     * æ ¹æ®ç±»åž‹å±•示树
     * @return
     */
    private VCIJScrollPane createTreePanel(){
        final RMDataReferTempDialog self = this;
        typeTreePanel = new CodeReferTreePanel(uiFormRefer,this.owner.getTokenUserObject()) {
            private static final long serialVersionUID = 8121108576137012228L;
            @Override
            public void tree_valueChanged(TreeSelectionEvent e) {
                self.leftTree_valueChanged(e);
            }
        };
        typeTreePanel.buildTreePanel();
        leftTree = typeTreePanel.getTree();
        leftTreeModel = typeTreePanel.getTreeModel();
        scrollLeftTreePane.setViewportView(leftTree);
        return scrollLeftTreePane;
    }
    /***
     * æ ‘切换事件
     * @param e
     */
    private void leftTree_valueChanged(TreeSelectionEvent e) {
        btnOk.doClick();
    }
    /***获取资源数据的主面板**/
/*
    public RMDataMainPanel getRMDataMainPanel() {
        return rmDataMainPanel;
    }
*/
    /*private RMDataTransmitObject loadTemplateAttributes(String libId, String classifyId, String templateId){
        LinkedHashMap<String, TemplatePropertyObject> tempPropObjsMap = new LinkedHashMap<String, TemplatePropertyObject>();
        LinkedList<TemplatePropertyObject> tempPropObjsList = new LinkedList<TemplatePropertyObject>();
        LinkedHashMap<String, AttributeObject> tempAttrObjsMap = new LinkedHashMap<String, AttributeObject>();
        LinkedList<AttributeObject> tempAttrObjsList = new LinkedList<AttributeObject>();
        TemplateObject templateObject = null;
        RMDataTransmitObject transmit = new RMDataTransmitObject();
        transmit.setLibId(libId);
        transmit.setClassifyId(classifyId);
        transmit.setTemplateId(templateId);
        transmit.setSpecialLib(true);//added by ligang 2012.07.04备件库不做权限校验
        try{
            UserEntityObject userEntityObject = LogonApplication.getUserEntityObject();
            TemplateClientDelegate  tempDel = new TemplateClientDelegate(userEntityObject);
            RMTemplateProertyClientDelegate tempPropDel = new RMTemplateProertyClientDelegate(userEntityObject);
            AttributeClientDelegate attrDel = new AttributeClientDelegate(userEntityObject);
//            RMTypeObject rmTypeObject = new RMTypeClientDelegate(userEntityObject).getRMTypeById(classifyId);
            RMTypeObject rmTypeObject = new RMTypeObject();
            // ä»Žèµ„源分类树中选择的对应的分类对象
            transmit.setRmTypeObject(rmTypeObject);
            // èŽ·å–æ¨¡æ¿å¯¹è±¡
            templateObject = tempDel.getTemplateObjectById(templateId);
            transmit.setTemplateObject(templateObject);
            // èŽ·å–æ¨¡æ¿å®šä¹‰çš„å±žæ€§å¯¹è±¡ï¼ˆè¿™ä¸ªå¯¹è±¡åŒ…å«çš„æ˜¯å±žæ€§åœ¨æ¨¡æ¿ä¸­æ˜¯å¦ä¸ºå…³é”®å±žæ€§ã€å¯å¦ä¸ºç©ºç­‰ç­‰ï¼‰
            TemplatePropertyObject[] tempPropObjs = tempPropDel.getTempletePropertys(templateId);
            for(TemplatePropertyObject obj : tempPropObjs){
                tempPropObjsMap.put(obj.getAttrId(), obj);
                tempPropObjsList.add(obj);
            }
            transmit.setTempPropObjsMap(tempPropObjsMap);
            transmit.setTempPropObjsList(tempPropObjsList);
            // èŽ·å–æ¨¡æ¿å®šä¹‰çš„å±žæ€§å¯¹è±¡å¯¹åº”åˆ°çš„çœŸå®žçš„å±žæ€§å¯¹è±¡ï¼ˆç³»ç»Ÿé…ç½®æ¨¡å—å®šä¹‰çš„é‚£äº›å±žæ€§å¯¹è±¡ï¼‰
            AttributeObject[] attrObjs = attrDel.fetchAttributeByTemplateId(templateId);
            for(AttributeObject obj : attrObjs){
                tempAttrObjsMap.put(obj.getId(), obj);
                tempAttrObjsList.add(obj);
            }
            transmit.setTempAttrObjsMap(tempAttrObjsMap);
            transmit.setTempAttrObjsList(tempAttrObjsList);
        }catch(VCIException e){
            e.printStackTrace();
        }
        return transmit;
    }*/
    public KeyValue getKeyValue() {
        return keyValue;
    }
    public void setKeyValue(KeyValue keyValue) {
        this.keyValue = keyValue;
    }
    public UIFormRefer getUiFormRefer() {
        return uiFormRefer;
    }
    public void setUiFormRefer(UIFormRefer uiFormRefer) {
        this.uiFormRefer = uiFormRefer;
    }
    public CodeReferTreePanel getTypeTreePanel() {
        return typeTreePanel;
    }
    public void setTypeTreePanel(CodeReferTreePanel typeTreePanel) {
        this.typeTreePanel = typeTreePanel;
    }
    public CodeDataMainPanel getCodeDataMainPanel() {
        return codeDataMainPanel;
    }
    public void setCodeDataMainPanel(CodeDataMainPanel codeDataMainPanel) {
        this.codeDataMainPanel = codeDataMainPanel;
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/RMDataReferTempDialogActionListener.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,109 @@
package com.vci.rmip.code.client.codeapply.Apply410;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.Map;
import com.vci.base.ui.swing.VCIOptionPane;
import com.vci.base.ui.swing.components.VCIJDialog.DialogResult;
import com.vci.base.ui.tree.VCIBaseTreeNode;
import com.vci.rmip.code.client.codeapply.Apply410.object.BaseModel;
import com.vci.rmip.code.client.codeapply.Apply410.enums.CodeReferConfigTypeEnum;
import com.vci.rmip.code.client.codeapply.Apply410.object.UIFormRefer;
import com.vci.ubcs.starter.web.pagemodel.KeyValue;
import com.vci.ubcs.starter.web.pagemodel.Tree;
import com.vci.ubcs.starter.web.util.VciBaseUtil;
import javax.swing.tree.TreePath;
public class RMDataReferTempDialogActionListener implements ActionListener {
    private RMDataReferTempDialog owner = null;
    public RMDataReferTempDialogActionListener(RMDataReferTempDialog owner){
        this.owner = owner;
        this.initActionMap();
    }
    private LinkedHashMap<String, Runnable> actionMaps = new LinkedHashMap<String, Runnable>();
    private void initActionMap(){
        actionMaps.put("ok", new Runnable() { public void run() {
            ok();
        }});
        actionMaps.put("cancel", new Runnable() { public void run() {
            cancel();
        }});
    }
    @Override
    public void actionPerformed(ActionEvent e) {
        String key = e.getActionCommand();
        if(actionMaps.containsKey(key)){
            actionMaps.get(key).run();
        }
    }
    private void ok(){
        //if(!owner.isFromTableDoubleClick()){
        /*    LinkedList<RMDataObject> list = this.owner.getRMDataMainPanel().getTablePanel().getSelectedRowObjects();
            if(list.size() > 1) {
                VCIOptionPane.showMessageDialog(this.owner, "不允许选择多条数据进行操作!");
                return;
            } else if(list.size() <= 0) {
                VCIOptionPane.showMessageDialog(this.owner, "请选择数据进行操作!");
                return;
            }*/
            UIFormRefer uiFormRefer=owner.getUiFormRefer();
            String textField=uiFormRefer.getTextField();
            String valueField=uiFormRefer.getValueField();
            if(uiFormRefer !=null&&(uiFormRefer.getType().equals(CodeReferConfigTypeEnum.TREE.getValue())
                ||uiFormRefer.getType().equals(CodeReferConfigTypeEnum.ORGDEPARTMENTREFER.getValue()))){
                TreePath treePath=this.owner.getTypeTreePanel().getTree().getSelectionPath();
                VCIBaseTreeNode treeNode = (VCIBaseTreeNode)treePath.getLastPathComponent();
                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,"");
                    KeyValue keyValue=new KeyValue();
                    keyValue.setKey(fieldValue);
                    keyValue.setValue(textValue);
                    this.owner.setKeyValue(keyValue);
                }
            }else{
                LinkedList<BaseModel> list =this.owner.getCodeDataMainPanel().getTablePanel().getSelectedRowObjects();
                if(list.size() > 1) {
                    VCIOptionPane.showMessageDialog(this.owner, "不允许选择多条数据进行操作!");
                    return;
                } else if(list.size() <= 0) {
                    VCIOptionPane.showMessageDialog(this.owner, "请选择数据进行操作!");
                    return;
                }
                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,"");
                KeyValue keyValue=new KeyValue();
                keyValue.setKey(fieldValue);
                keyValue.setValue(textValue);
                this.owner.setKeyValue(keyValue);
            }
        //}
        owner.setDialogResult(DialogResult.OK);
        close();
        owner.getDialogCallback().run();
    }
    private void cancel(){
        owner.setDialogResult(DialogResult.CANCEL);
        close();
    }
    private void close(){
        owner.setVisible(false);
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/SectionObject.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,4 @@
package com.vci.rmip.code.client.codeapply.Apply410;
public class SectionObject {
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/TestIntegrateFrame.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
package com.vci.rmip.code.client.codeapply.Apply410;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.HashMap;
import java.util.Map;
public class TestIntegrateFrame {
    public static JButton apply = new JButton();
    public static JTextField text = new JTextField();
    public static void main(String[] args) {
        final JFrame j = new JFrame();
        j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel p = new JPanel();
        j.setSize(200, 200);
        apply.setText("test");
        apply.setSize(80, 25);
        text.setPreferredSize(new Dimension(100,25));
        p.add(text);
        p.add(apply);
        j.add(p);
        j.setLocation(new Point(500,300));
        j.setVisible(true);
        apply.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                Map<String, String> map = new HashMap<String, String>();
//                map.put("原材料替换件", "YUANCAILIAOTIHUANJIAN");
//                map.put("原材料部件", "1");
//                map.put("简易示波器", "");
                map.put("", "YCL");
                String clsfName = "";
                String deptName = "";
                CodeApplyFor410Dialog dialog = new CodeApplyFor410Dialog(j, clsfName,deptName);
                String code = dialog.getCodeValue();
                dialog.getAttributeValue("mi");
                text.setText(code + "_" + dialog.getAttributeValue("name"));
                System.out.println("code:---"+code+"---");
            }
        });
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/TransmitTreeObject.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,67 @@
package com.vci.rmip.code.client.codeapply.Apply410;
import com.vci.base.ui.tree.VCIBaseTree;
import com.vci.base.ui.tree.VCIBaseTreeModel;
import com.vci.base.ui.tree.VCIBaseTreeNode;
public class TransmitTreeObject {
    private VCIBaseTreeNode currentTreeNode; //选中的树节点
    private VCIBaseTreeModel treeModel;  // è¦æ“ä½œçš„ treeModel
    private VCIBaseTree tree;  // è¦æ“ä½œçš„ tree
    private VCIBaseTreeNode lastRightClickedTreeNode;// æœ€åŽä¸€æ¬¡å³é”®å¯¹åº”çš„TreeNode
    public TransmitTreeObject(){
        super();
    }
    public TransmitTreeObject(VCIBaseTreeNode currentTreeNode,
                              VCIBaseTreeModel treeModel, VCIBaseTree tree,
                              VCIBaseTreeNode lastRightClickedTreeNode) {
        super();
        this.currentTreeNode = currentTreeNode;
        this.treeModel = treeModel;
        this.tree = tree;
        this.lastRightClickedTreeNode = lastRightClickedTreeNode;
    }
    public VCIBaseTreeNode getCurrentTreeNode() {
        return currentTreeNode;
    }
    public void setCurrentTreeNode(VCIBaseTreeNode currentTreeNode) {
        this.currentTreeNode = currentTreeNode;
    }
    public VCIBaseTree getTree() {
        return tree;
    }
    public void setTree(VCIBaseTree tree) {
        this.tree = tree;
    }
    public VCIBaseTreeModel getTreeModel() {
        return treeModel;
    }
    public void setTreeModel(VCIBaseTreeModel treeModel) {
        this.treeModel = treeModel;
    }
    /**
     * è¿”回 æœ€åŽä¸€æ¬¡å³é”®å¯¹åº”çš„TreeNode
     * <p>Description: </p>
     *
     * @author xchao
     * @time 2012-5-21
     * @return
     */
    public VCIBaseTreeNode getLastRightClickedTreeNode() {
        return lastRightClickedTreeNode;
    }
    /**
     * è®¾ç½® æœ€åŽä¸€æ¬¡å³é”®å¯¹åº”çš„TreeNode
     * <p>Description: </p>
     *
     * @author xchao
     * @time 2012-5-21
     * @param lastRightClickedTreeNode
     */
    public void setLastRightClickedTreeNode(VCIBaseTreeNode lastRightClickedTreeNode) {
        this.lastRightClickedTreeNode = lastRightClickedTreeNode;
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/enums/CodeReferConfigTypeEnum.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,176 @@
package com.vci.rmip.code.client.codeapply.Apply410.enums;
import com.vci.ubcs.starter.web.enumpck.BaseEnum;
/**
 * å‚照配置中用到的——窗口类型
 * @author ludc
 * @date 2023/5/24 14:09
 */
public enum CodeReferConfigTypeEnum implements BaseEnum {
    /**
     * é»˜è®¤æ ·å¼
     */
    DEFAULT("default","默认样式"),
    /**
     * å¹³å°é…ç½®
     */
    STAND("stand","平台配置"),
    /**
     * æ ‘å½¢
     */
    TREE("tree","树形"),
    /**
     * æ ‘å½¢
     */
    GRID("grid","列表"),
    /**
     * éƒ¨é—¨æ ‘
     */
    ORGDEPARTMENTREFER("refer/OrgDepartmentRefer","部门树"),
    /**
     * éƒ¨é—¨åˆ—表
     */
    ORGDEPARTMENTGRIDREFERS("refer/OrgDepartmentGridRefers","部门列表"),
    /**
     * ç”¨æˆ·
     */
    SMUSERREFER("refer/SmUserRefer","用户"),
    /**
     * ç”¨æˆ·åˆ—表
     */
    SMUSERGRIDREFER("refer/SmUserGridRefer","用户列表"),
    /**
     * è§’色列表
     */
    SMROLEREFER("refer/SmRoleRefer","角色列表"),
    /**
     * èŒåŠ¡
     */
    ORGDUTYREFER("refer/OrgDutyRefer","职务"),
    /**
     * å·¥ç§
     */
    SMWORKTYPEREFER("refer/SmWorkTypeRefer","工种"),
    /**
     * æµç¨‹æ¨¡æ¿
     */
    WFPROCESSTEMPLATEREFER("refer/WfProcessTemplateRefer","流程模板");
    /**
     * æžšä¸¾çš„值
     */
    private String value;
    /**
     * æžšä¸¾æ˜¾ç¤ºæ–‡æœ¬
     */
    private String text;
    /**
     * èŽ·å–æžšä¸¾å€¼
     *
     * @return æžšä¸¾å€¼
     */
    @Override
    public String getValue() {
        return value;
    }
    /**
     * è®¾ç½®æžšä¸¾å€¼
     *
     * @param value æžšä¸¾å€¼
     */
    public void setValue(String value) {
        this.value = value;
    }
    /**
     * èŽ·å–æžšä¸¾æ˜¾ç¤ºæ–‡æœ¬
     *
     * @return æ˜¾ç¤ºæ–‡æœ¬
     */
    @Override
    public String getText() {
        return text;
    }
    /**
     * è®¾ç½®æ˜¾ç¤ºæ–‡æœ¬
     *
     * @param text æ˜¾ç¤ºæ–‡æœ¬
     */
    public void setText(String text) {
        this.text = text;
    }
    /**
     * æž„造函数
     *
     * @param value å€¼
     * @param text  æ˜¾ç¤ºæ–‡æœ¬
     */
    private CodeReferConfigTypeEnum(String value, String text) {
        this.value = value;
        this.text = text;
    }
    /**
     * æ ¹æ®åç§°èŽ·å–å¯¹åº”çš„æžšä¸¾å€¼
     *
     * @param text åç§°
     * @return æžšä¸¾å€¼
     */
    public static String getValueByText(String text) {
        for (CodeReferConfigTypeEnum wenum : CodeReferConfigTypeEnum.values()) {
            if (wenum.getText().equalsIgnoreCase(text)) {
                return wenum.getValue();
            }
        }
        return "";
    }
    /**
     * æ ¹æ®æžšä¸¾å€¼èŽ·å–åç§°
     *
     * @param value æžšä¸¾å€¼
     * @return åç§°
     */
    public static String getTextByValue(String value) {
        for (CodeReferConfigTypeEnum wenum : CodeReferConfigTypeEnum.values()) {
            if (wenum.getValue().equalsIgnoreCase(value)) {
                return wenum.getText();
            }
        }
        return "";
    }
    /**
     * æ ¹æ®æžšä¸¾å€¼èŽ·å–æžšä¸¾å¯¹è±¡
     *
     * @param value æžšä¸¾å€¼
     * @return æžšä¸¾å¯¹è±¡ï¼Œä¸å­˜åœ¨æ—¶å€™è¿”回null
     */
    public static CodeReferConfigTypeEnum forValue(String value) {
        for (CodeReferConfigTypeEnum wenum : CodeReferConfigTypeEnum.values()) {
            if (wenum.getValue().equalsIgnoreCase(value)) {
                return wenum;
            }
        }
        return null;
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/AttrRangObjectWarper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
package com.vci.rmip.code.client.codeapply.Apply410.object;
import com.vci.ubcs.starter.web.pagemodel.KeyValue;
import java.io.Serializable;
import java.text.MessageFormat;
public class AttrRangObjectWarper implements Serializable {
    /**
     *
     */
    private static final long serialVersionUID = 8306930792434927633L;
    private KeyValue keyValue = null;
    public AttrRangObjectWarper(KeyValue keyValue){
        this.keyValue = keyValue;
    }
    public KeyValue getKeyValue() {
        return keyValue;
    }
    public void setKeyValue(KeyValue keyValue) {
        this.keyValue = keyValue;
    }
    @Override
    public String toString() {
        String res = "";
        String desc = keyValue.getValue();
        String value = keyValue.getKey();
        if("".equals(desc) && "".equals(value)) {
            return "";
        }else if (desc.equals("")) {
            res = value;
//            res = MessageFormat.format("{0}({1})", value, value);
        } else {
            res = MessageFormat.format("{0}({1})", desc, value);
        }
        return res;
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/BaseModel.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,321 @@
package com.vci.rmip.code.client.codeapply.Apply410.object;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import org.springframework.data.annotation.Transient;
import java.util.Date;
import java.util.Map;
@JsonIgnoreProperties
public class BaseModel {
    private String oid;
    private String id;
    private String name;
    private String description;
    private String revisionOid;
    private String nameOid;
    private String btmname;
    private String lastR;
    private String firstR;
    private String lastV;
    private String firstV;
    private String creator;
    private Date createTime;
    private String lastModifier;
    private Date lastModifyTime;
    private String revisionRule;
    private Integer revisionSeq;
    private String revisionValue;
    private String versionRule;
    private Integer versionSeq;
    private String versionValue;
    private String lcStatus;
    private String lcStatusText;
    private Date ts;
    private String owner;
    //    private String checkInBy;
//    private Date checkInTime;
//    private String checkOutBy;
//    private Date checkOutTime;
    private String copyFromVersion;
    private Integer secretGrade;
    private String secretGradeText;
    private String lctid;
    private Map<String, String> data;
    public String getOid() {
        return oid;
    }
    public void setOid(String oid) {
        this.oid = oid;
    }
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
    public String getRevisionOid() {
        return revisionOid;
    }
    public void setRevisionOid(String revisionOid) {
        this.revisionOid = revisionOid;
    }
    public String getNameOid() {
        return nameOid;
    }
    public void setNameOid(String nameOid) {
        this.nameOid = nameOid;
    }
    public String getBtmname() {
        return btmname;
    }
    public void setBtmname(String btmname) {
        this.btmname = btmname;
    }
    public String getLastR() {
        return lastR;
    }
    public void setLastR(String lastR) {
        this.lastR = lastR;
    }
    public String getFirstR() {
        return firstR;
    }
    public void setFirstR(String firstR) {
        this.firstR = firstR;
    }
    public String getLastV() {
        return lastV;
    }
    public void setLastV(String lastV) {
        this.lastV = lastV;
    }
    public String getFirstV() {
        return firstV;
    }
    public void setFirstV(String firstV) {
        this.firstV = firstV;
    }
    public String getCreator() {
        return creator;
    }
    public void setCreator(String creator) {
        this.creator = creator;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public String getLastModifier() {
        return lastModifier;
    }
    public void setLastModifier(String lastModifier) {
        this.lastModifier = lastModifier;
    }
    public Date getLastModifyTime() {
        return lastModifyTime;
    }
    public void setLastModifyTime(Date lastModifyTime) {
        this.lastModifyTime = lastModifyTime;
    }
    public String getRevisionRule() {
        return revisionRule;
    }
    public void setRevisionRule(String revisionRule) {
        this.revisionRule = revisionRule;
    }
    public Integer getRevisionSeq() {
        return revisionSeq;
    }
    public void setRevisionSeq(Integer revisionSeq) {
        this.revisionSeq = revisionSeq;
    }
    public String getRevisionValue() {
        return revisionValue;
    }
    public void setRevisionValue(String revisionValue) {
        this.revisionValue = revisionValue;
    }
    public String getVersionRule() {
        return versionRule;
    }
    public void setVersionRule(String versionRule) {
        this.versionRule = versionRule;
    }
    public Integer getVersionSeq() {
        return versionSeq;
    }
    public void setVersionSeq(Integer versionSeq) {
        this.versionSeq = versionSeq;
    }
    public String getVersionValue() {
        return versionValue;
    }
    public void setVersionValue(String versionValue) {
        this.versionValue = versionValue;
    }
    public String getLcStatus() {
        return lcStatus;
    }
    public void setLcStatus(String lcStatus) {
        this.lcStatus = lcStatus;
    }
    public String getLcStatusText() {
        return lcStatusText;
    }
    public void setLcStatusText(String lcStatusText) {
        this.lcStatusText = lcStatusText;
    }
    public Date getTs() {
        return ts;
    }
    public void setTs(Date ts) {
        this.ts = ts;
    }
    public String getOwner() {
        return owner;
    }
    public void setOwner(String owner) {
        this.owner = owner;
    }
    public String getCopyFromVersion() {
        return copyFromVersion;
    }
    public void setCopyFromVersion(String copyFromVersion) {
        this.copyFromVersion = copyFromVersion;
    }
    public Integer getSecretGrade() {
        return secretGrade;
    }
    public void setSecretGrade(Integer secretGrade) {
        this.secretGrade = secretGrade;
    }
    public String getSecretGradeText() {
        return secretGradeText;
    }
    public void setSecretGradeText(String secretGradeText) {
        this.secretGradeText = secretGradeText;
    }
    public String getLctid() {
        return lctid;
    }
    public void setLctid(String lctid) {
        this.lctid = lctid;
    }
    public Map<String, String> getData() {
        return data;
    }
    public void setData(Map<String, String> data) {
        this.data = data;
    }
    @Override
    public String toString() {
        return "BaseModel{" +
            "oid='" + oid + '\'' +
            ", id='" + id + '\'' +
            ", name='" + name + '\'' +
            ", description='" + description + '\'' +
            ", revisionOid='" + revisionOid + '\'' +
            ", nameOid='" + nameOid + '\'' +
            ", btmname='" + btmname + '\'' +
            ", lastR='" + lastR + '\'' +
            ", firstR='" + firstR + '\'' +
            ", lastV='" + lastV + '\'' +
            ", firstV='" + firstV + '\'' +
            ", creator='" + creator + '\'' +
            ", createTime=" + createTime +
            ", lastModifier='" + lastModifier + '\'' +
            ", lastModifyTime=" + lastModifyTime +
            ", revisionRule='" + revisionRule + '\'' +
            ", revisionSeq=" + revisionSeq +
            ", revisionValue='" + revisionValue + '\'' +
            ", versionRule='" + versionRule + '\'' +
            ", versionSeq=" + versionSeq +
            ", versionValue='" + versionValue + '\'' +
            ", lcStatus='" + lcStatus + '\'' +
            ", lcStatusText='" + lcStatusText + '\'' +
            ", ts=" + ts +
            ", owner='" + owner + '\'' +
            ", copyFromVersion='" + copyFromVersion + '\'' +
            ", secretGrade=" + secretGrade +
            ", secretGradeText='" + secretGradeText + '\'' +
            ", lctid='" + lctid + '\'' +
            ", data=" + data +
            '}';
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/ClassifyLevel.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,62 @@
package com.vci.rmip.code.client.codeapply.Apply410.object;
public class ClassifyLevel {
    /***
     * åˆ†ç±»ä»£å·
     */
    private String type;
    /**
     * å¦
     */
    private String change;
    /**
     * æœ€å°å±‚
     */
    private String set;
    /**
     * å±‚级
     */
    private int injectNum;
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    public String getChange() {
        return change;
    }
    public void setChange(String change) {
        this.change = change;
    }
    public String getSet() {
        return set;
    }
    public void setSet(String set) {
        this.set = set;
    }
    public int getInjectNum() {
        return injectNum;
    }
    public void setInjectNum(int injectNum) {
        this.injectNum = injectNum;
    }
    @Override
    public String toString() {
        return "classifyLevel{" +
            "type='" + type + '\'' +
            ", change='" + change + '\'' +
            ", set='" + set + '\'' +
            ", injectNum='" + injectNum + '\'' +
            '}';
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/CodeClassify.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
package com.vci.rmip.code.client.codeapply.Apply410.object;
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO;
public class CodeClassify extends CodeClassifyVO {
    @Override
    public String toString() {
        return super.getName();
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/CodeClassifyValue.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
package com.vci.rmip.code.client.codeapply.Apply410.object;
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyValueVO;
public class CodeClassifyValue extends CodeClassifyValueVO {
    @Override
    public String toString() {
        return super.getName();
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/CodeDataObject.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,4 @@
package com.vci.rmip.code.client.codeapply.Apply410.object;
public class CodeDataObject {
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/CodeFixedValue.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
package com.vci.rmip.code.client.codeapply.Apply410.object;
import com.vci.ubcs.code.vo.pagemodel.CodeFixedValueVO;
public class CodeFixedValue extends CodeFixedValueVO {
    @Override
    public String toString() {
        return super.getId();
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/CoderefersecSearchVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,68 @@
package com.vci.rmip.code.client.codeapply.Apply410.object;
import com.vci.ubcs.code.vo.webserviceModel.coderule.CodeShowFieldConfigVO;
import com.vci.ubcs.code.vo.webserviceModel.coderule.CodeSrchCondConfigVO;
import lombok.Data;
import java.util.List;
@Data
public class CoderefersecSearchVO {
    private List<CodeSrchCondConfigVO> codeSrchCondConfigVOS;
    private List<CodeShowFieldConfigVO> codeShowFieldConfigVOS;
    private String referTypeName;// wupin,
    private String referType;//wupin,
    private String textField;// name,
    private String valueField;//oid,
    private String type;// default,
    private String url;// http://localhost:38000/api/ubcs-code/codeSyncUniversalController/queryClassifyRule,
    private String backPath;// http://localhost:38000/api,
    private String method;// POST,
    private String height;// ,
    private String useFormKey;
    private String paramForFormKey;
    private boolean isMuti;// false,
    private String mapFields;// ,
    private boolean isOpenGlobal;// true,
    private boolean isPersistence;// false,
    private int limit;// 15,
    private String sortField;// ,
    private String sortType;//private String "
    private String parentFieldName;// private String PARENTCODECLASSIFYOIDprivate String ,
    private String parentUsedField;// private String oidprivate String ,
    private String parentValue;// private String \\IN(SELECT oid from PLATFORMBTM_CODECLASSIFY where id ='hesuanfenlei')private String ,
    private String loadType;// private String allprivate String ,
    private boolean onlyLeaf;// false,
    @Override
    public String toString() {
        return "CoderefersecSearchVO{" +
            "codeSrchCondConfigVOS=" + codeSrchCondConfigVOS +
            ", codeShowFieldConfigVOS=" + codeShowFieldConfigVOS +
            ", referTypeName='" + referTypeName + '\'' +
            ", referType='" + referType + '\'' +
            ", textField='" + textField + '\'' +
            ", valueField='" + valueField + '\'' +
            ", type='" + type + '\'' +
            ", url='" + url + '\'' +
            ", backPath='" + backPath + '\'' +
            ", method='" + method + '\'' +
            ", height='" + height + '\'' +
            ", useFormKey='" + useFormKey + '\'' +
            ", paramForFormKey='" + paramForFormKey + '\'' +
            ", isMuti=" + isMuti +
            ", mapFields='" + mapFields + '\'' +
            ", isOpenGlobal=" + isOpenGlobal +
            ", isPersistence=" + isPersistence +
            ", limit=" + limit +
            ", sortField='" + sortField + '\'' +
            ", sortType='" + sortType + '\'' +
            ", parentFieldName='" + parentFieldName + '\'' +
            ", parentUsedField='" + parentUsedField + '\'' +
            ", parentValue='" + parentValue + '\'' +
            ", loadType='" + loadType + '\'' +
            ", onlyLeaf=" + onlyLeaf +
            '}';
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/DataGrid.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,115 @@
package com.vci.rmip.code.client.codeapply.Apply410.object;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
public class DataGrid<T> implements Serializable {
    private static final long serialVersionUID = -5909212697362510055L;
    private long total = 0L;
    private List<T> data = new ArrayList();
    private int start;
    private int limit;
    private int page;
    private String sort;
    private String order;
    private String msg;
    private int code = 0;
    private String traceId;
    public long getTotal() {
        return total;
    }
    public void setTotal(long total) {
        this.total = total;
    }
    public List<T> getData() {
        return data;
    }
    public void setData(List<T> data) {
        this.data = data;
    }
    public int getStart() {
        return start;
    }
    public void setStart(int start) {
        this.start = start;
    }
    public int getLimit() {
        return limit;
    }
    public void setLimit(int limit) {
        this.limit = limit;
    }
    public int getPage() {
        return page;
    }
    public void setPage(int page) {
        this.page = page;
    }
    public String getSort() {
        return sort;
    }
    public void setSort(String sort) {
        this.sort = sort;
    }
    public String getOrder() {
        return order;
    }
    public void setOrder(String order) {
        this.order = order;
    }
    public String getMsg() {
        return msg;
    }
    public void setMsg(String msg) {
        this.msg = msg;
    }
    public int getCode() {
        return code;
    }
    public void setCode(int code) {
        this.code = code;
    }
    public String getTraceId() {
        return traceId;
    }
    public void setTraceId(String traceId) {
        this.traceId = traceId;
    }
    @Override
    public String toString() {
        return "DataGrid{" +
            "total=" + total +
            ", data=" + data +
            ", start=" + start +
            ", limit=" + limit +
            ", page=" + page +
            ", sort='" + sort + '\'' +
            ", order='" + order + '\'' +
            ", msg='" + msg + '\'' +
            ", code=" + code +
            ", traceId='" + traceId + '\'' +
            '}';
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/IPage.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,71 @@
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 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 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;
    }
    List<T> getRecords();
    IPage<T> setRecords(List<T> records);
    long getTotal();
    IPage<T> setTotal(long total);
    long getSize();
    IPage<T> setSize(long size);
    long getCurrent();
    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;
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/OrderItem.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,98 @@
package com.vci.rmip.code.client.codeapply.Apply410.object;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class OrderItem {
    private static final long serialVersionUID = 1L;
    private String column;
    private boolean asc = true;
    public static OrderItem asc(String column) {
        return build(column, true);
    }
    public static OrderItem desc(String column) {
        return build(column, false);
    }
    public static List<OrderItem> ascs(String... columns) {
        return (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());
    }
    private static OrderItem build(String column, boolean asc) {
        return new OrderItem(column, asc);
    }
    public String getColumn() {
        return this.column;
    }
    public boolean isAsc() {
        return this.asc;
    }
    public void setColumn(final String column) {
        this.column = column;
    }
    public void setAsc(final boolean asc) {
        this.asc = asc;
    }
    public boolean equals(final Object o) {
        if (o == this) {
            return true;
        } else if (!(o instanceof OrderItem)) {
            return false;
        } else {
            OrderItem other = (OrderItem)o;
            if (!other.canEqual(this)) {
                return false;
            } else if (this.isAsc() != other.isAsc()) {
                return false;
            } else {
                Object this$column = this.getColumn();
                Object other$column = other.getColumn();
                if (this$column == null) {
                    if (other$column != null) {
                        return false;
                    }
                } else if (!this$column.equals(other$column)) {
                    return false;
                }
                return true;
            }
        }
    }
    protected boolean canEqual(final Object other) {
        return other instanceof com.baomidou.mybatisplus.core.metadata.OrderItem;
    }
    public int hashCode() {
        int result = 1;
        result = result * 59 + (this.isAsc() ? 79 : 97);
        Object $column = this.getColumn();
        result = result * 59 + ($column == null ? 43 : $column.hashCode());
        return result;
    }
    public String toString() {
        return "OrderItem(column=" + this.getColumn() + ", asc=" + this.isAsc() + ")";
    }
    public OrderItem() {
    }
    public OrderItem(final String column, final boolean asc) {
        this.column = column;
        this.asc = asc;
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/Page.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,241 @@
package com.vci.rmip.code.client.codeapply.Apply410.object;
import java.util.ArrayList;
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;
    protected List<T> records;
    protected long total;
    protected long size;
    protected long current;
    protected List<OrderItem> orders;
    protected boolean optimizeCountSql;
    protected boolean searchCount;
    protected boolean optimizeJoinOfCountSql;
    protected String countId;
    protected Long maxLimit;
    protected long pages;
    public Page() {
        this.records = Collections.emptyList();
        this.total = 0L;
        this.size = 10L;
        this.current = 1L;
        this.orders = new ArrayList();
        this.optimizeCountSql = true;
        this.searchCount = true;
        this.optimizeJoinOfCountSql = true;
    }
    public Page(long current, long size) {
        this(current, size, 0L);
    }
    public Page(long current, long size, long total) {
        this(current, size, total, true);
    }
    public Page(long current, long size, boolean searchCount) {
        this(current, size, 0L, searchCount);
    }
    public Page(long current, long size, long total, boolean searchCount) {
        this.records = Collections.emptyList();
        this.total = 0L;
        this.size = 10L;
        this.current = 1L;
        this.orders = new ArrayList();
        this.optimizeCountSql = true;
        this.searchCount = true;
        this.optimizeJoinOfCountSql = true;
        if (current > 1L) {
            this.current = current;
        }
        this.size = size;
        this.total = total;
        this.searchCount = searchCount;
    }
    public boolean hasPrevious() {
        return this.current > 1L;
    }
    public boolean hasNext() {
        return this.current < this.getPages();
    }
    public List<T> getRecords() {
        return this.records;
    }
    public Page<T> setRecords(List records) {
        this.records = records;
        return this;
    }
    public long getTotal() {
        return this.total;
    }
    public Page<T> setTotal(long total) {
        this.total = total;
        return this;
    }
    public long getSize() {
        return this.size;
    }
    public Page<T> setSize(long size) {
        this.size = size;
        return this;
    }
    public long getCurrent() {
        return this.current;
    }
    public Page<T> setCurrent(long current) {
        this.current = current;
        return this;
    }
    public String countId() {
        return this.countId;
    }
    public Long maxLimit() {
        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());
            }
        });
        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);
            }
        }
    }
    public Page<T> addOrder(OrderItem... items) {
        this.orders.addAll(Arrays.asList(items));
        return this;
    }
    public Page<T> addOrder(List<OrderItem> items) {
        this.orders.addAll(items);
        return this;
    }
    public List<OrderItem> orders() {
        return this.orders;
    }
    public boolean optimizeCountSql() {
        return this.optimizeCountSql;
    }
    public static <T> Page<T> of(long current, long size, long total, boolean searchCount) {
        return new Page(current, size, total, searchCount);
    }
    public boolean optimizeJoinOfCountSql() {
        return this.optimizeJoinOfCountSql;
    }
    public Page<T> setSearchCount(boolean searchCount) {
        this.searchCount = searchCount;
        return this;
    }
    public Page<T> setOptimizeCountSql(boolean optimizeCountSql) {
        this.optimizeCountSql = optimizeCountSql;
        return this;
    }
    public long getPages() {
        return getPages();
    }
    public void setPages(long pages) {
        this.pages = pages;
    }
    public static <T> Page<T> of(long current, long size) {
        return of(current, size, 0L);
    }
    public static <T> Page<T> of(long current, long size, long total) {
        return of(current, size, total, true);
    }
    public static <T> Page<T> of(long current, long size, boolean searchCount) {
        return of(current, size, 0L, searchCount);
    }
    public boolean searchCount() {
        return this.total < 0L ? false : this.searchCount;
    }
    /** @deprecated */
    @Deprecated
    public String getCountId() {
        return this.countId;
    }
    /** @deprecated */
    @Deprecated
    public Long getMaxLimit() {
        return this.maxLimit;
    }
    /** @deprecated */
    @Deprecated
    public List<OrderItem> getOrders() {
        return this.orders;
    }
    /** @deprecated */
    @Deprecated
    public boolean isOptimizeCountSql() {
        return this.optimizeCountSql;
    }
    /** @deprecated */
    @Deprecated
    public boolean isSearchCount() {
        return this.searchCount;
    }
    public void setOrders(final List<OrderItem> orders) {
        this.orders = orders;
    }
    public void setOptimizeJoinOfCountSql(final boolean optimizeJoinOfCountSql) {
        this.optimizeJoinOfCountSql = optimizeJoinOfCountSql;
    }
    public void setCountId(final String countId) {
        this.countId = countId;
    }
    public void setMaxLimit(final Long maxLimit) {
        this.maxLimit = maxLimit;
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/R.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,50 @@
package com.vci.rmip.code.client.codeapply.Apply410.object;
public class R<T> {
    private int code;
    private boolean success;
    private T data;
    private String msg;
    public int getCode() {
        return code;
    }
    public void setCode(int code) {
        this.code = code;
    }
    public boolean isSuccess() {
        return success;
    }
    public void setSuccess(boolean success) {
        this.success = success;
    }
    public T getData() {
        return data;
    }
    public void setData(T data) {
        this.data = data;
    }
    public String getMsg() {
        return msg;
    }
    public void setMsg(String msg) {
        this.msg = msg;
    }
    @Override
    public String toString() {
        return "R{" +
            "code=" + code +
            ", success=" + success +
            ", data=" + data +
            ", msg='" + msg + '\'' +
            '}';
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/RMDataTransmitObject.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,160 @@
package com.vci.rmip.code.client.codeapply.Apply410.object;
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateAttrVO;
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateVO;
import java.util.*;
public class RMDataTransmitObject {
    // åº“ID
    private String libId = "";
    // åˆ†ç±»ID
    private String classifyId = "";
    // åˆ†ç±»ç 
    private String classifyCode = "";
    // æ¨¡æ¿ID
    private String templateId = "";
    // æ¨¡æ¿å¯¹è±¡
    private CodeClassifyTemplateVO templateObject = null;
    // æ¨¡æ¿çš„属性配置对象MAP  key:属性ID value:模板和属性定义对象
    private Map<String, CodeClassifyTemplateAttrVO> tempPropObjsMap = new LinkedHashMap<String, CodeClassifyTemplateAttrVO>();
    /**
     * æ¨¡æ¿çš„属性配置,key:innerName, value:TemplatePropertyObject
     */
    private Map<String, CodeClassifyTemplateAttrVO> tempPropObjMapsByInnerName = new LinkedHashMap<String, CodeClassifyTemplateAttrVO>();
    // æ¨¡æ¿çš„属性配置对象LIST
    private List<CodeClassifyTemplateAttrVO> tempPropObjsList = new ArrayList<>();
    // èµ„源数据操作时,选择的流程对象
    //private ProcessDefinitionObject processObject = null;
    // èµ„源数据操作时,流程的任务对象,在添加资源数据时,此任务对象是选择的流程的第一个任务,在资源数据编辑或从任务箱中编辑时,是该任务对应的任务对象
    //private ProcessTaskInfo processTaskInfo = null;
    // èµ„源数据面板区域(表格区域)
    //private RMDataMainPanel rmDataMainPanel = null;
    // èµ„源数据对应的库或分类
    private CodeClassify rmTypeObject = null;
    // æœ€åŽä¸€æ¬¡åˆ›å»ºæˆåŠŸçš„èµ„æºæ•°æ®å¯¹è±¡ï¼‰
    //private RMDataObject lastCreatedRMDataObject = null;
    // æœ€åŽä¸€æ¬¡æ›´æ–°æˆåŠŸçš„èµ„æºæ•°æ®å¯¹è±¡
    //private RMDataObject lastUpdateRMDataObject = null;
    //资源数据操作时,流程的任务对象,在添加资源数据时,此任务对象是选择的流程的第一个任务,在资源数据编辑或从任务箱中编辑时,是该任务对应的任务对象
    //private FlowInstanceInfo flowInstanceInfo = null;
    // å±žæ€§çš„取值范围列表 key:属性ID value: map key:属性名称,value:取值范围值
    private LinkedHashMap<String, LinkedHashMap<String, String>> attrRangeNameToValueMaps = new LinkedHashMap<String, LinkedHashMap<String,String>>();
    //  å±žæ€§çš„取值范围列表 key:属性ID value: map key:取值范围值,value:属性名称
    private LinkedHashMap<String, LinkedHashMap<String, String>> attrRangeValueToNameMaps = new LinkedHashMap<String, LinkedHashMap<String,String>>();
    //是否是专有库标示
    private boolean specialLib = false;
    private boolean view = true;
    public String getLibId() {
        return libId;
    }
    public void setLibId(String libId) {
        this.libId = libId;
    }
    public String getClassifyId() {
        return classifyId;
    }
    public void setClassifyId(String classifyId) {
        this.classifyId = classifyId;
    }
    public String getClassifyCode() {
        return classifyCode;
    }
    public void setClassifyCode(String classifyCode) {
        this.classifyCode = classifyCode;
    }
    public String getTemplateId() {
        return templateId;
    }
    public void setTemplateId(String templateId) {
        this.templateId = templateId;
    }
    public CodeClassifyTemplateVO getTemplateObject() {
        return templateObject;
    }
    public void setTemplateObject(CodeClassifyTemplateVO templateObject) {
        this.templateObject = templateObject;
    }
    public Map<String, CodeClassifyTemplateAttrVO> getTempPropObjsMap() {
        return tempPropObjsMap;
    }
    public void setTempPropObjsMap(Map<String, CodeClassifyTemplateAttrVO> tempPropObjsMap) {
        this.tempPropObjsMap = tempPropObjsMap;
    }
    public Map<String, CodeClassifyTemplateAttrVO> getTempPropObjMapsByInnerName() {
        return tempPropObjMapsByInnerName;
    }
    public void setTempPropObjMapsByInnerName(Map<String, CodeClassifyTemplateAttrVO> tempPropObjMapsByInnerName) {
        this.tempPropObjMapsByInnerName = tempPropObjMapsByInnerName;
    }
    public List<CodeClassifyTemplateAttrVO> getTempPropObjsList() {
        return tempPropObjsList;
    }
    public void setTempPropObjsList(List<CodeClassifyTemplateAttrVO> tempPropObjsList) {
        this.tempPropObjsList = tempPropObjsList;
    }
    public LinkedHashMap<String, LinkedHashMap<String, String>> getAttrRangeNameToValueMaps() {
        return attrRangeNameToValueMaps;
    }
    public void setAttrRangeNameToValueMaps(LinkedHashMap<String, LinkedHashMap<String, String>> attrRangeNameToValueMaps) {
        this.attrRangeNameToValueMaps = attrRangeNameToValueMaps;
    }
    public LinkedHashMap<String, LinkedHashMap<String, String>> getAttrRangeValueToNameMaps() {
        return attrRangeValueToNameMaps;
    }
    public void setAttrRangeValueToNameMaps(LinkedHashMap<String, LinkedHashMap<String, String>> attrRangeValueToNameMaps) {
        this.attrRangeValueToNameMaps = attrRangeValueToNameMaps;
    }
    public boolean isSpecialLib() {
        return specialLib;
    }
    public void setSpecialLib(boolean specialLib) {
        this.specialLib = specialLib;
    }
    public boolean isView() {
        return view;
    }
    public void setView(boolean view) {
        this.view = view;
    }
    public CodeClassify getRmTypeObject() {
        return rmTypeObject;
    }
    public void setRmTypeObject(CodeClassify rmTypeObject) {
        this.rmTypeObject = rmTypeObject;
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/ReferTreObject.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,179 @@
package com.vci.rmip.code.client.codeapply.Apply410.object;
import com.vci.ubcs.starter.web.pagemodel.Tree;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class ReferTreObject implements Serializable {
    private static final long serialVersionUID = 6886695271635257882L;
    private String oid;
    private String text;
    private String name;
    private boolean leaf = false;
    private boolean showCheckbox = false;
    private boolean checked = false;
    private List<Tree> children = new ArrayList();
    private String icon;
    private String iconCls;
    private String parentId;
    private String parentName;
    private String parentBtmName;
    private boolean expanded = false;
    private String href;
    private String index;
    private Map<String, String> attributes = new HashMap();
    public String getOid() {
        return oid;
    }
    public void setOid(String oid) {
        this.oid = oid;
    }
    public String getText() {
        return text;
    }
    public void setText(String text) {
        this.text = text;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public boolean isLeaf() {
        return leaf;
    }
    public void setLeaf(boolean leaf) {
        this.leaf = leaf;
    }
    public boolean isShowCheckbox() {
        return showCheckbox;
    }
    public void setShowCheckbox(boolean showCheckbox) {
        this.showCheckbox = showCheckbox;
    }
    public boolean isChecked() {
        return checked;
    }
    public void setChecked(boolean checked) {
        this.checked = checked;
    }
    public List<Tree> getChildren() {
        return children;
    }
    public void setChildren(List<Tree> children) {
        this.children = children;
    }
    public String getIcon() {
        return icon;
    }
    public void setIcon(String icon) {
        this.icon = icon;
    }
    public String getIconCls() {
        return iconCls;
    }
    public void setIconCls(String iconCls) {
        this.iconCls = iconCls;
    }
    public String getParentId() {
        return parentId;
    }
    public void setParentId(String parentId) {
        this.parentId = parentId;
    }
    public String getParentName() {
        return parentName;
    }
    public void setParentName(String parentName) {
        this.parentName = parentName;
    }
    public String getParentBtmName() {
        return parentBtmName;
    }
    public void setParentBtmName(String parentBtmName) {
        this.parentBtmName = parentBtmName;
    }
    public boolean isExpanded() {
        return expanded;
    }
    public void setExpanded(boolean expanded) {
        this.expanded = expanded;
    }
    public String getHref() {
        return href;
    }
    public void setHref(String href) {
        this.href = href;
    }
    public String getIndex() {
        return index;
    }
    public void setIndex(String index) {
        this.index = index;
    }
    public Map<String, String> getAttributes() {
        return attributes;
    }
    public void setAttributes(Map<String, String> attributes) {
        this.attributes = attributes;
    }
    @Override
    public String toString() {
        return "ReferDataObject{" +
            "oid='" + oid + '\'' +
            ", text='" + text + '\'' +
            ", name='" + name + '\'' +
            ", leaf=" + leaf +
            ", showCheckbox=" + showCheckbox +
            ", checked=" + checked +
            ", children=" + children +
            ", icon='" + icon + '\'' +
            ", iconCls='" + iconCls + '\'' +
            ", parentId='" + parentId + '\'' +
            ", parentName='" + parentName + '\'' +
            ", parentBtmName='" + parentBtmName + '\'' +
            ", expanded=" + expanded +
            ", href='" + href + '\'' +
            ", index='" + index + '\'' +
            ", attributes=" + attributes +
            '}';
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/TokenUserObject.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,264 @@
package com.vci.rmip.code.client.codeapply.Apply410.object;
public class TokenUserObject {
    private String access_token; //"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRfaWQiOiIwMDAwMDAiLCJkZXB0TmFtZSI6bnVsbCwidXNlcl9uYW1lIjoiYWRtaW4iLCJzdHJhdGVneVVwZGF0ZVN0YXR1cyI6bnVsbCwicmVhbF9uYW1lIjoi6LaF57qn566h55CG5ZGYIiwiYXZhdGFyIjoiaHR0cHM6Ly9ndy5hbGlwYXlvYmplY3RzLmNvbS96b3Mvcm1zcG9ydGFsL0JpYXpmYW54bWFtTlJveHhWeGthLnBuZyIsImF1dGhvcml0aWVzIjpbImFkbWluaXN0cmF0b3IiXSwiY2xpZW50X2lkIjoic3dvcmQiLCJyb2xlX25hbWUiOiJhZG1pbmlzdHJhdG9yIiwibGljZW5zZSI6InBvd2VyZWQgYnkgYmxhZGV4IiwicG9zdF9pZCI6IjAiLCJ0ZW5hbnROYW1lIjpudWxsLCJ1c2VyX2lkIjoiMCIsInJvbGVfaWQiOiIxMTIzNTk4ODE2NzM4Njc1MjAxIiwic2NvcGUiOlsiYWxsIl0sIm5pY2tfbmFtZSI6Iui2hee6p-euoeeQhuWRmCIsIm9hdXRoX2lkIjoiIiwiZGV0YWlsIjp7InR5cGUiOiJ3ZWIifSwiZXhwIjoxNjkxOTM3ODUzLCJkZXB0X2lkIjoiMCIsImp0aSI6IjA4ODYwMjM5LWFkNWEtNDNlMi05ZTZhLWUyMjYxM2M3Mjc1MSIsImFjY291bnQiOiJhZG1pbiIsImVtYWlsIjpudWxsLCJzZWNyZXRHcmFkZSI6bnVsbH0.npERYaufS4QmITF3WOf09XcPSlelfltu30Eije4DOqs",
    private String token_type;// "bearer",
    private String refresh_token;// "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRfaWQiOiIwMDAwMDAiLCJkZXB0TmFtZSI6bnVsbCwidXNlcl9uYW1lIjoiYWRtaW4iLCJyZWFsX25hbWUiOiLotoXnuqfnrqHnkIblkZgiLCJjbGllbnRfaWQiOiJzd29yZCIsInRlbmFudE5hbWUiOm51bGwsInJvbGVfaWQiOiIxMTIzNTk4ODE2NzM4Njc1MjAxIiwic2NvcGUiOlsiYWxsIl0sImF0aSI6IjA4ODYwMjM5LWFkNWEtNDNlMi05ZTZhLWUyMjYxM2M3Mjc1MSIsIm9hdXRoX2lkIjoiIiwiZXhwIjoxNjkyNTM5MDUzLCJqdGkiOiI3YTA0NWRlZS01YjI0LTQ3MDUtOWU0OS1mMTUyNjJiZWJjNzMiLCJlbWFpbCI6bnVsbCwic2VjcmV0R3JhZGUiOm51bGwsInN0cmF0ZWd5VXBkYXRlU3RhdHVzIjpudWxsLCJhdmF0YXIiOiJodHRwczovL2d3LmFsaXBheW9iamVjdHMuY29tL3pvcy9ybXNwb3J0YWwvQmlhemZhbnhtYW1OUm94eFZ4a2EucG5nIiwiYXV0aG9yaXRpZXMiOlsiYWRtaW5pc3RyYXRvciJdLCJyb2xlX25hbWUiOiJhZG1pbmlzdHJhdG9yIiwibGljZW5zZSI6InBvd2VyZWQgYnkgYmxhZGV4IiwicG9zdF9pZCI6IjAiLCJ1c2VyX2lkIjoiMCIsIm5pY2tfbmFtZSI6Iui2hee6p-euoeeQhuWRmCIsImRldGFpbCI6eyJ0eXBlIjoid2ViIn0sImRlcHRfaWQiOiIwIiwiYWNjb3VudCI6ImFkbWluIn0.GXbwrhlvGAerayV81YCQUPW0gfxQPoALL1aU6Ot24L8",
    private String expires_in;// 3599,
    private String scope;// "all",
    private String tenant_id;// "000000",
    private String deptName;// null,
    private String user_name;// "admin",
    private String strategyUpdateStatus;// null,
    private String real_name;// "超级管理员",
    private String avatar;// "https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png",
    private String client_id;// "sword",
    private String role_name;// "administrator",
    private String license;// "powered by bladex",
    private String post_id;// "0",
    private String tenantName;// null,
    private String user_id;// "0",
    private String role_id;// "1123598816738675201",
    private String nick_name;// "超级管理员",
    private String oauth_id;// "",
    /*private String detail;// {
        "type;// "web"
    },*/
    private String dept_id;// "0",
    private String account;// "admin",
    private String email;// null,
    private String secretGrade;// null,
    private String jti;// "08860239-ad5a-43e2-9e6a-e22613c72751"
    public String getAccess_token() {
        return access_token;
    }
    public void setAccess_token(String access_token) {
        this.access_token = access_token;
    }
    public String getToken_type() {
        return token_type;
    }
    public void setToken_type(String token_type) {
        this.token_type = token_type;
    }
    public String getRefresh_token() {
        return refresh_token;
    }
    public void setRefresh_token(String refresh_token) {
        this.refresh_token = refresh_token;
    }
    public String getExpires_in() {
        return expires_in;
    }
    public void setExpires_in(String expires_in) {
        this.expires_in = expires_in;
    }
    public String getScope() {
        return scope;
    }
    public void setScope(String scope) {
        this.scope = scope;
    }
    public String getTenant_id() {
        return tenant_id;
    }
    public void setTenant_id(String tenant_id) {
        this.tenant_id = tenant_id;
    }
    public String getDeptName() {
        return deptName;
    }
    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }
    public String getUser_name() {
        return user_name;
    }
    public void setUser_name(String user_name) {
        this.user_name = user_name;
    }
    public String getStrategyUpdateStatus() {
        return strategyUpdateStatus;
    }
    public void setStrategyUpdateStatus(String strategyUpdateStatus) {
        this.strategyUpdateStatus = strategyUpdateStatus;
    }
    public String getReal_name() {
        return real_name;
    }
    public void setReal_name(String real_name) {
        this.real_name = real_name;
    }
    public String getAvatar() {
        return avatar;
    }
    public void setAvatar(String avatar) {
        this.avatar = avatar;
    }
    public String getClient_id() {
        return client_id;
    }
    public void setClient_id(String client_id) {
        this.client_id = client_id;
    }
    public String getRole_name() {
        return role_name;
    }
    public void setRole_name(String role_name) {
        this.role_name = role_name;
    }
    public String getLicense() {
        return license;
    }
    public void setLicense(String license) {
        this.license = license;
    }
    public String getPost_id() {
        return post_id;
    }
    public void setPost_id(String post_id) {
        this.post_id = post_id;
    }
    public String getTenantName() {
        return tenantName;
    }
    public void setTenantName(String tenantName) {
        this.tenantName = tenantName;
    }
    public String getUser_id() {
        return user_id;
    }
    public void setUser_id(String user_id) {
        this.user_id = user_id;
    }
    public String getRole_id() {
        return role_id;
    }
    public void setRole_id(String role_id) {
        this.role_id = role_id;
    }
    public String getNick_name() {
        return nick_name;
    }
    public void setNick_name(String nick_name) {
        this.nick_name = nick_name;
    }
    public String getOauth_id() {
        return oauth_id;
    }
    public void setOauth_id(String oauth_id) {
        this.oauth_id = oauth_id;
    }
    public String getDept_id() {
        return dept_id;
    }
    public void setDept_id(String dept_id) {
        this.dept_id = dept_id;
    }
    public String getAccount() {
        return account;
    }
    public void setAccount(String account) {
        this.account = account;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public String getSecretGrade() {
        return secretGrade;
    }
    public void setSecretGrade(String secretGrade) {
        this.secretGrade = secretGrade;
    }
    public String getJti() {
        return jti;
    }
    public void setJti(String jti) {
        this.jti = jti;
    }
    @Override
    public String toString() {
        return "TokenUserObject{" +
            "access_token='" + access_token + '\'' +
            ", token_type='" + token_type + '\'' +
            ", refresh_token='" + refresh_token + '\'' +
            ", expires_in='" + expires_in + '\'' +
            ", scope='" + scope + '\'' +
            ", tenant_id='" + tenant_id + '\'' +
            ", deptName='" + deptName + '\'' +
            ", user_name='" + user_name + '\'' +
            ", strategyUpdateStatus='" + strategyUpdateStatus + '\'' +
            ", real_name='" + real_name + '\'' +
            ", avatar='" + avatar + '\'' +
            ", client_id='" + client_id + '\'' +
            ", role_name='" + role_name + '\'' +
            ", license='" + license + '\'' +
            ", post_id='" + post_id + '\'' +
            ", tenantName='" + tenantName + '\'' +
            ", user_id='" + user_id + '\'' +
            ", role_id='" + role_id + '\'' +
            ", nick_name='" + nick_name + '\'' +
            ", oauth_id='" + oauth_id + '\'' +
            ", dept_id='" + dept_id + '\'' +
            ", account='" + account + '\'' +
            ", email='" + email + '\'' +
            ", secretGrade='" + secretGrade + '\'' +
            ", jti='" + jti + '\'' +
            '}';
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/UIFormRefer.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,267 @@
package com.vci.rmip.code.client.codeapply.Apply410.object;
import com.vci.ubcs.code.vo.webserviceModel.coderule.CodeShowFieldConfigVO;
import com.vci.ubcs.code.vo.webserviceModel.coderule.CodeSrchCondConfigVO;
import java.util.List;
public class UIFormRefer {
    private List<CodeSrchCondConfigVO> codeSrchCondConfigVOS;
    private List<CodeShowFieldConfigVO> codeShowFieldConfigVOS;
    private String referTypeName;// wupin,
    private String referType;//wupin,
    private String textField;// name,
    private String valueField;//oid,
    private String type;// default,
    private String url;// http://localhost:38000/api/ubcs-code/codeSyncUniversalController/queryClassifyRule,
    private String backPath;// http://localhost:38000/api,
    private String method;// POST,
    private String height;// ,
    private String useFormKey;
    private String paramForFormKey;
    private boolean isMuti;// false,
    private String mapFields;// ,
    private boolean isOpenGlobal;// true,
    private boolean isPersistence;// false,
    private int limit;// 15,
    private String sortField;// ,
    private String sortType;//private String "
    private String parentFieldName;// private String PARENTCODECLASSIFYOIDprivate String ,
    private String parentUsedField;// private String oidprivate String ,
    private String parentValue;// private String \\IN(SELECT oid from PLATFORMBTM_CODECLASSIFY where id ='hesuanfenlei')private String ,
    private String loadType;// private String allprivate String ,
    private boolean onlyLeaf;// false,
    public List<CodeSrchCondConfigVO> getCodeSrchCondConfigVOS() {
        return codeSrchCondConfigVOS;
    }
    public void setCodeSrchCondConfigVOS(List<CodeSrchCondConfigVO> codeSrchCondConfigVOS) {
        this.codeSrchCondConfigVOS = codeSrchCondConfigVOS;
    }
    public List<CodeShowFieldConfigVO> getCodeShowFieldConfigVOS() {
        return codeShowFieldConfigVOS;
    }
    public void setCodeShowFieldConfigVOS(List<CodeShowFieldConfigVO> codeShowFieldConfigVOS) {
        this.codeShowFieldConfigVOS = codeShowFieldConfigVOS;
    }
    public String getReferTypeName() {
        return referTypeName;
    }
    public void setReferTypeName(String referTypeName) {
        this.referTypeName = referTypeName;
    }
    public String getReferType() {
        return referType;
    }
    public void setReferType(String referType) {
        this.referType = referType;
    }
    public String getTextField() {
        return textField;
    }
    public void setTextField(String textField) {
        this.textField = textField;
    }
    public String getValueField() {
        return valueField;
    }
    public void setValueField(String valueField) {
        this.valueField = valueField;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    public String getUrl() {
        return url;
    }
    public void setUrl(String url) {
        this.url = url;
    }
    public String getBackPath() {
        return backPath;
    }
    public void setBackPath(String backPath) {
        this.backPath = backPath;
    }
    public String getMethod() {
        return method;
    }
    public void setMethod(String method) {
        this.method = method;
    }
    public String getHeight() {
        return height;
    }
    public void setHeight(String height) {
        this.height = height;
    }
    public String getUseFormKey() {
        return useFormKey;
    }
    public void setUseFormKey(String useFormKey) {
        this.useFormKey = useFormKey;
    }
    public String getParamForFormKey() {
        return paramForFormKey;
    }
    public void setParamForFormKey(String paramForFormKey) {
        this.paramForFormKey = paramForFormKey;
    }
    public boolean isMuti() {
        return isMuti;
    }
    public void setMuti(boolean muti) {
        isMuti = muti;
    }
    public String getMapFields() {
        return mapFields;
    }
    public void setMapFields(String mapFields) {
        this.mapFields = mapFields;
    }
    public boolean isOpenGlobal() {
        return isOpenGlobal;
    }
    public void setOpenGlobal(boolean openGlobal) {
        isOpenGlobal = openGlobal;
    }
    public boolean isPersistence() {
        return isPersistence;
    }
    public void setPersistence(boolean persistence) {
        isPersistence = persistence;
    }
    public int getLimit() {
        return limit;
    }
    public void setLimit(int limit) {
        this.limit = limit;
    }
    public String getSortField() {
        return sortField;
    }
    public void setSortField(String sortField) {
        this.sortField = sortField;
    }
    public String getSortType() {
        return sortType;
    }
    public void setSortType(String sortType) {
        this.sortType = sortType;
    }
    public String getParentFieldName() {
        return parentFieldName;
    }
    public void setParentFieldName(String parentFieldName) {
        this.parentFieldName = parentFieldName;
    }
    public String getParentUsedField() {
        return parentUsedField;
    }
    public void setParentUsedField(String parentUsedField) {
        this.parentUsedField = parentUsedField;
    }
    public String getParentValue() {
        return parentValue;
    }
    public void setParentValue(String parentValue) {
        this.parentValue = parentValue;
    }
    public String getLoadType() {
        return loadType;
    }
    public void setLoadType(String loadType) {
        this.loadType = loadType;
    }
    public boolean isOnlyLeaf() {
        return onlyLeaf;
    }
    public void setOnlyLeaf(boolean onlyLeaf) {
        this.onlyLeaf = onlyLeaf;
    }
    @Override
    public String toString() {
        return "CoderefersecSearchVO{" +
            "codeSrchCondConfigVOS=" + codeSrchCondConfigVOS +
            ", codeShowFieldConfigVOS=" + codeShowFieldConfigVOS +
            ", referTypeName='" + referTypeName + '\'' +
            ", referType='" + referType + '\'' +
            ", textField='" + textField + '\'' +
            ", valueField='" + valueField + '\'' +
            ", type='" + type + '\'' +
            ", url='" + url + '\'' +
            ", backPath='" + backPath + '\'' +
            ", method='" + method + '\'' +
            ", height='" + height + '\'' +
            ", useFormKey='" + useFormKey + '\'' +
            ", paramForFormKey='" + paramForFormKey + '\'' +
            ", isMuti=" + isMuti +
            ", mapFields='" + mapFields + '\'' +
            ", isOpenGlobal=" + isOpenGlobal +
            ", isPersistence=" + isPersistence +
            ", limit=" + limit +
            ", sortField='" + sortField + '\'' +
            ", sortType='" + sortType + '\'' +
            ", parentFieldName='" + parentFieldName + '\'' +
            ", parentUsedField='" + parentUsedField + '\'' +
            ", parentValue='" + parentValue + '\'' +
            ", loadType='" + loadType + '\'' +
            ", onlyLeaf=" + onlyLeaf +
            '}';
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/UIFormRefers.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,315 @@
package com.vci.rmip.code.client.codeapply.Apply410.object;
import com.vci.ubcs.code.vo.pagemodel.UIFieldSortVO;
import com.vci.ubcs.code.vo.pagemodel.UITableCustomDefineVO;
import java.util.Map;
public class UIFormRefers {
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = 1459005348514757537L;
    /**
     * å‚照的窗口类型
     */
    private String type;
    /**
     * æ˜¾ç¤ºçš„字段属性
     */
    private String textField = "name";
    /**
     * å€¼çš„属性
     */
    private String valueField = "oid";
    /**
     * æ˜¯å¦å¤šé€‰
     */
    private boolean muti = false;
    /**
     * åŽå°åœ°å€
     */
    private String url;
    /**
     * æœåŠ¡çš„åœ°å€
     */
    private String backPath;
    /**
     * è¯·æ±‚后台的形式
     */
    private String method = "GET";
    /**
     * é«˜åº¦
     */
    private Integer height;
    //通用的参照
    /**
     * å‚照的业务类型
     */
    private String referType;
    /**
     * å‚ç…§çš„UI上下文
     */
    private String referContent;
    //树形的参照
    /**
     * ä¸Šçº§å­—段
     */
    private String parentFieldName;
    /**
     * ä¸Šçº§å­—段的内容对应的属性的值
     */
    private String parentUsedField;
    /**
     * ä¸Šçº§å­—段的值
     */
    private String parentValue;
    /**
     * åŠ è½½æ–¹å¼
     */
    private String loadType = "all";
    /**
     * æ˜¯å¦åªèƒ½é€‰æ‹©å¶å­èŠ‚ç‚¹
     */
    private boolean onlyLeaf = false;
    /**
     * è¿‡æ»¤(级联)属性
     */
    private String useFormKey;
    /**
     * è¿‡æ»¤å±žæ€§è¯·æ±‚参数
     */
    private String paramForFormKey;
    /**
     * æ˜ å°„其他属性
     */
    private String mapFields;
    //列表的参照
    /**
     * æ˜¾ç¤ºçš„列表
     */
    private String displayTable;
    /**
     * è¡¨æ ¼çš„自定义定义
     */
    private UITableCustomDefineVO tableConfig;
    /**
     * ç­›é€‰æ¡ä»¶
     */
    private Map<String,String> where;
    /**
     * åŽå°æŽ’序
     */
    private boolean remoteSort;
    /**
     * åˆå§‹åŒ–排序
     */
    private UIFieldSortVO initSort;
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    public String getTextField() {
        return textField;
    }
    public void setTextField(String textField) {
        this.textField = textField;
    }
    public String getValueField() {
        return valueField;
    }
    public void setValueField(String valueField) {
        this.valueField = valueField;
    }
    public boolean isMuti() {
        return muti;
    }
    public void setMuti(boolean muti) {
        this.muti = muti;
    }
    public String getUrl() {
        return url;
    }
    public void setUrl(String url) {
        this.url = url;
    }
    public String getBackPath() {
        return backPath;
    }
    public void setBackPath(String backPath) {
        this.backPath = backPath;
    }
    public String getMethod() {
        return method;
    }
    public void setMethod(String method) {
        this.method = method;
    }
    public Integer getHeight() {
        return height;
    }
    public void setHeight(Integer height) {
        this.height = height;
    }
    public String getReferType() {
        return referType;
    }
    public void setReferType(String referType) {
        this.referType = referType;
    }
    public String getReferContent() {
        return referContent;
    }
    public void setReferContent(String referContent) {
        this.referContent = referContent;
    }
    public String getParentFieldName() {
        return parentFieldName;
    }
    public void setParentFieldName(String parentFieldName) {
        this.parentFieldName = parentFieldName;
    }
    public String getParentUsedField() {
        return parentUsedField;
    }
    public void setParentUsedField(String parentUsedField) {
        this.parentUsedField = parentUsedField;
    }
    public String getParentValue() {
        return parentValue;
    }
    public void setParentValue(String parentValue) {
        this.parentValue = parentValue;
    }
    public String getLoadType() {
        return loadType;
    }
    public void setLoadType(String loadType) {
        this.loadType = loadType;
    }
    public boolean isOnlyLeaf() {
        return onlyLeaf;
    }
    public void setOnlyLeaf(boolean onlyLeaf) {
        this.onlyLeaf = onlyLeaf;
    }
    public String getUseFormKey() {
        return useFormKey;
    }
    public void setUseFormKey(String useFormKey) {
        this.useFormKey = useFormKey;
    }
    public String getParamForFormKey() {
        return paramForFormKey;
    }
    public void setParamForFormKey(String paramForFormKey) {
        this.paramForFormKey = paramForFormKey;
    }
    public String getMapFields() {
        return mapFields;
    }
    public void setMapFields(String mapFields) {
        this.mapFields = mapFields;
    }
    public String getDisplayTable() {
        return displayTable;
    }
    public void setDisplayTable(String displayTable) {
        this.displayTable = displayTable;
    }
    public UITableCustomDefineVO getTableConfig() {
        return tableConfig;
    }
    public void setTableConfig(UITableCustomDefineVO tableConfig) {
        this.tableConfig = tableConfig;
    }
    public Map<String, String> getWhere() {
        return where;
    }
    public void setWhere(Map<String, String> where) {
        this.where = where;
    }
    public boolean isRemoteSort() {
        return remoteSort;
    }
    public void setRemoteSort(boolean remoteSort) {
        this.remoteSort = remoteSort;
    }
    public UIFieldSortVO getInitSort() {
        return initSort;
    }
    public void setInitSort(UIFieldSortVO initSort) {
        this.initSort = initSort;
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/object/UserObject.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
package com.vci.rmip.code.client.codeapply.Apply410.object;
public class UserObject {
    private String grant_type;     // password;
    private String scope;//all
    private String  username;//admin
    private String password;//:123456
    public String getGrant_type() {
        return grant_type;
    }
    public void setGrant_type(String grant_type) {
        this.grant_type = grant_type;
    }
    public String getScope() {
        return scope;
    }
    public void setScope(String scope) {
        this.scope = scope;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/swing/IntegerTextField.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
package com.vci.rmip.code.client.codeapply.Apply410.swing;
import java.io.Serializable;
import javax.swing.text.Document;
import com.vci.base.ui.swing.components.NumberPlainDocument;
import com.vci.base.ui.swing.components.VCIJTextField;
public class IntegerTextField  extends VCIJTextField implements Serializable {
    /**
     *
     */
    private static final long serialVersionUID = 3885601645788779103L;
    public IntegerTextField(String text){
        super(text);
    }
    @Override
    protected Document createDefaultModel(){
        return new NumberPlainDocument(false);
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/swing/RealTextField.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,54 @@
package com.vci.rmip.code.client.codeapply.Apply410.swing;
import com.vci.base.ui.swing.components.NumberPlainDocument;
import com.vci.base.ui.swing.components.VCIJTextField;
import javax.swing.text.Document;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
public class RealTextField extends VCIJTextField {
    /**
     *
     */
    private static final long serialVersionUID = -2711989168936034987L;
    /**
     *
     */
    public RealTextField(String text) {
        super(text);
        addKeyListener(new KeyAdapter() {
            public void keyReleased(KeyEvent e) {
                this_keyReleased(e);
            }
        });
    }
    private void this_keyReleased(KeyEvent e) {
        String text = getText();
        if (text.equals(""))
            return;
        // æ•°å€¼ä¸èƒ½ä»¥-.或.开头
        if (text.startsWith("-.")) {
            text = "-0." + text.substring(2);
        } else if (text.startsWith(".")) {
            text = "0." + text.substring(1);
        }
        String str = text.substring(0, text.length() - 1);
        String last = text.substring(text.length() - 1);
        // Real类型的输入时,只能出现一个.
        if (last.equals(".")) {
            if (str.indexOf(".") > 0) {
                text = str;
            }
        }
        setText(text);
    }
    @Override
    protected Document createDefaultModel() {
        return new NumberPlainDocument(true);
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/swing/VCIJComboxBox.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,50 @@
package com.vci.rmip.code.client.codeapply.Apply410.swing;
import java.awt.BorderLayout;
import java.awt.Dimension;
import com.vci.base.ui.swing.VCISwingUtil;
import com.vci.base.ui.swing.components.VCIJButton;
import com.vci.base.ui.swing.components.VCIJComboBox;
public class VCIJComboxBox  extends VCIJComboBox{
    private static final long serialVersionUID = 1L;
//    private KJButton searchBtn = new KJButton("", "search.png");
    private VCIJButton searchBtn = VCISwingUtil.createVCIJButton("search", "", "", "search.png", null);
    public VCIJButton getSearchBtn() {
        return searchBtn;
    }
    public void setSearchBtn(VCIJButton searchBtn) {
        this.searchBtn = searchBtn;
    }
    private boolean flag = false;
    public VCIJComboxBox(){
        this.setLayout(new BorderLayout());
        searchBtn.setVisible(false);
        searchBtn.setPreferredSize(new Dimension(40, 30));
        this.add(searchBtn, BorderLayout.EAST );
    }
//    public KJButton getSearchBtn() {
//        return searchBtn;
//    }
//
//    public void setSearchBtn(KJButton searchBtn) {
//        this.searchBtn = searchBtn;
//    }
    public boolean isFlag() {
        return flag;
    }
    public void setFlag(boolean flag) {
        this.flag = flag;
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/utils/ConfigUtils.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
package com.vci.rmip.code.client.codeapply.Apply410.utils;
import net.logstash.logback.encoder.org.apache.commons.lang3.StringUtils;
import com.vci.base.common.resource.CommonProperties;
/**
 * é…ç½®ä¿¡æ¯ç»Ÿä¸€è¯»å–ç±»
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2012</p>
 * <p>Company: VCI</p>
 * @author xchao
 * @time 2013-3-20
 * @version 1.0
 */
public class ConfigUtils {
    /**
     * æ ¹æ®KEY,从远程服务器端conf.properties中配置值
     * <p>Description: æ ¹æ®æœªæ‰¾åˆ°ç›¸åº”的值,则返回KEY</p>
     *
     * @author xchao
     * @time 2013-3-20
     * @param key
     * @return
     */
    public static String getConfigValue(String key){
        String res=CommonProperties.getStringProperty(key);
        return res;
    }
    /**
     * æ ¹æ®KEY,从远程服务器端conf.properties中配置值
     * <p>Description: æ ¹æ®æœªæ‰¾åˆ°ç›¸åº”的值,则返回KEY</p>
     *
     * @author xchao
     * @time 2013-3-20
     * @param key
     * @return
     */
    public static String getConfigValue(String key,String defaultValue){
        String res=CommonProperties.getStringProperty(key);
        if(StringUtils.isBlank(res)){
            return defaultValue;
        }
        return res;
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/utils/HttpClient.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,141 @@
package com.vci.rmip.code.client.codeapply.Apply410.utils;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class HttpClient {
    public static String doGet(String httpurl) {
        HttpURLConnection connection = null;
        InputStream is = null;
        BufferedReader br = null;
        String result = null;// è¿”回结果字符串
        try {
            // åˆ›å»ºè¿œç¨‹url连接对象
            URL url = new URL(httpurl);
            // é€šè¿‡è¿œç¨‹url连接对象打开一个连接,强转成httpURLConnectionç±»
            connection = (HttpURLConnection) url.openConnection();
            // è®¾ç½®è¿žæŽ¥æ–¹å¼ï¼šget
            connection.setRequestMethod("GET");
            // è®¾ç½®è¿žæŽ¥ä¸»æœºæœåŠ¡å™¨çš„è¶…æ—¶æ—¶é—´ï¼š15000毫秒
            connection.setConnectTimeout(15000);
            // è®¾ç½®è¯»å–远程返回的数据时间:60000毫秒
            connection.setReadTimeout(60000);
            // å‘送请求
            connection.connect();
            // é€šè¿‡connection连接,获取输入流
            if (connection.getResponseCode() == 200) {
                is = connection.getInputStream();
                // å°è£…输入流is,并指定字符集
                br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
                // å­˜æ”¾æ•°æ®
                StringBuffer sbf = new StringBuffer();
                String temp = null;
                while ((temp = br.readLine()) != null) {
                    sbf.append(temp);
                    sbf.append("\r\n");
                }
                result = sbf.toString();
            }
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            // å…³é—­èµ„源
            if (null != br) {
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (null != is) {
                try {
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            connection.disconnect();// å…³é—­è¿œç¨‹è¿žæŽ¥
        }
        return result;
    }
    public static String doPost(String httpUrl, String param) {
        HttpURLConnection connection = null;
        InputStream is = null;
        OutputStream os = null;
        BufferedReader br = null;
        String result = null;
        try {
            URL url = new URL(httpUrl);
            // é€šè¿‡è¿œç¨‹url连接对象打开连接
            connection = (HttpURLConnection) url.openConnection();
            // è®¾ç½®è¿žæŽ¥è¯·æ±‚方式
            connection.setRequestMethod("POST");
            // è®¾ç½®è¿žæŽ¥ä¸»æœºæœåŠ¡å™¨è¶…æ—¶æ—¶é—´ï¼š15000毫秒
            connection.setConnectTimeout(15000);
            // è®¾ç½®è¯»å–主机服务器返回数据超时时间:60000毫秒
            connection.setReadTimeout(60000);
            // é»˜è®¤å€¼ä¸ºï¼šfalse,当向远程服务器传送数据/写数据时,需要设置为true
            connection.setDoOutput(true);
            // é»˜è®¤å€¼ä¸ºï¼štrue,当前向远程服务读取数据时,设置为true,该参数可有可无
            connection.setDoInput(true);
            // è®¾ç½®ä¼ å…¥å‚数的格式:请求参数应该是 name1=value1&name2=value2 çš„形式。
            connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
            // è®¾ç½®é‰´æƒä¿¡æ¯ï¼šAuthorization: Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0
            connection.setRequestProperty("Authorization", "Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0");
            // é€šè¿‡è¿žæŽ¥å¯¹è±¡èŽ·å–ä¸€ä¸ªè¾“å‡ºæµ
            os = connection.getOutputStream();
            // é€šè¿‡è¾“出流对象将参数写出去/传输出去,它是通过字节数组写出的
            os.write(param.getBytes());
            // é€šè¿‡è¿žæŽ¥å¯¹è±¡èŽ·å–ä¸€ä¸ªè¾“å…¥æµï¼Œå‘è¿œç¨‹è¯»å–
            if (connection.getResponseCode() == 200) {
                is = connection.getInputStream();
                // å¯¹è¾“入流对象进行包装:charset根据工作项目组的要求来设置
                br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
                StringBuffer sbf = new StringBuffer();
                String temp = null;
                // å¾ªçŽ¯éåŽ†ä¸€è¡Œä¸€è¡Œè¯»å–æ•°æ®
                while ((temp = br.readLine()) != null) {
                    sbf.append(temp);
                    sbf.append("\r\n");
                }
                result = sbf.toString();
            }
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            // å…³é—­èµ„源
            if (null != br) {
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (null != os) {
                try {
                    os.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (null != is) {
                try {
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            // æ–­å¼€ä¸Žè¿œç¨‹åœ°å€url的连接
            connection.disconnect();
        }
        return result;
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/utils/HttpClient3.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,159 @@
package com.vci.rmip.code.client.codeapply.Apply410.utils;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
public class HttpClient3 {
    public static String doGet(String url) {
        // è¾“入流
        InputStream is = null;
        BufferedReader br = null;
        String result = null;
        // åˆ›å»ºhttpClient实例
        HttpClient httpClient = new HttpClient();
        // è®¾ç½®http连接主机服务超时时间:15000毫秒
        // å…ˆèŽ·å–è¿žæŽ¥ç®¡ç†å™¨å¯¹è±¡ï¼Œå†èŽ·å–å‚æ•°å¯¹è±¡,再进行参数的赋值
        httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(15000);
        // åˆ›å»ºä¸€ä¸ªGet方法实例对象
        GetMethod getMethod = new GetMethod(url);
        // è®¾ç½®get请求超时为60000毫秒
        getMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, 60000);
        // è®¾ç½®è¯·æ±‚重试机制,默认重试次数:3次,参数设置为true,重试机制可用,false相反
        getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler(3, true));
        try {
            // æ‰§è¡ŒGet方法
            int statusCode = httpClient.executeMethod(getMethod);
            // åˆ¤æ–­è¿”回码
            if (statusCode != HttpStatus.SC_OK) {
                // å¦‚果状态码返回的不是ok,说明失败了,打印错误信息
                System.err.println("Method faild: " + getMethod.getStatusLine());
            } else {
                // é€šè¿‡getMethod实例,获取远程的一个输入流
                is = getMethod.getResponseBodyAsStream();
                // åŒ…装输入流
                br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
                StringBuffer sbf = new StringBuffer();
                // è¯»å–封装的输入流
                String temp = null;
                while ((temp = br.readLine()) != null) {
                    sbf.append(temp).append("\r\n");
                }
                result = sbf.toString();
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            // å…³é—­èµ„源
            if (null != br) {
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (null != is) {
                try {
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            // é‡Šæ”¾è¿žæŽ¥
            getMethod.releaseConnection();
        }
        return result;
    }
    public static String doPost(String url, Map<String, Object> paramMap) {
        // èŽ·å–è¾“å…¥æµ
        InputStream is = null;
        BufferedReader br = null;
        String result = null;
        // åˆ›å»ºhttpClient实例对象
        HttpClient httpClient = new HttpClient();
        // è®¾ç½®httpClient连接主机服务器超时时间:15000毫秒
        httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(15000);
        // åˆ›å»ºpost请求方法实例对象
        PostMethod postMethod = new PostMethod(url);
        // è®¾ç½®post请求超时时间
        postMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, 60000);
        NameValuePair[] nvp = null;
        // åˆ¤æ–­å‚æ•°map集合paramMap是否为空
        if (null != paramMap && paramMap.size() > 0) {// ä¸ä¸ºç©º
            // åˆ›å»ºé”®å€¼å‚数对象数组,大小为参数的个数
            nvp = new NameValuePair[paramMap.size()];
            // å¾ªçŽ¯éåŽ†å‚æ•°é›†åˆmap
            Set<Entry<String, Object>> entrySet = paramMap.entrySet();
            // èŽ·å–è¿­ä»£å™¨
            Iterator<Entry<String, Object>> iterator = entrySet.iterator();
            int index = 0;
            while (iterator.hasNext()) {
                Entry<String, Object> mapEntry = iterator.next();
                // ä»ŽmapEntry中获取key和value创建键值对象存放到数组中
                try {
                    nvp[index] = new NameValuePair(mapEntry.getKey(),
                        new String(mapEntry.getValue().toString().getBytes("UTF-8"), "UTF-8"));
                } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                }
                index++;
            }
        }
        // åˆ¤æ–­nvp数组是否为空
        if (null != nvp && nvp.length > 0) {
            // å°†å‚数存放到requestBody对象中
            postMethod.setRequestBody(nvp);
        }
        // æ‰§è¡ŒPOST方法
        try {
            int statusCode = httpClient.executeMethod(postMethod);
            // åˆ¤æ–­æ˜¯å¦æˆåŠŸ
            if (statusCode != HttpStatus.SC_OK) {
                System.err.println("Method faild: " + postMethod.getStatusLine());
            }
            // èŽ·å–è¿œç¨‹è¿”å›žçš„æ•°æ®
            is = postMethod.getResponseBodyAsStream();
            // å°è£…输入流
            br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
            StringBuffer sbf = new StringBuffer();
            String temp = null;
            while ((temp = br.readLine()) != null) {
                sbf.append(temp).append("\r\n");
            }
            result = sbf.toString();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            // å…³é—­èµ„源
            if (null != br) {
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (null != is) {
                try {
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            // é‡Šæ”¾è¿žæŽ¥
            postMethod.releaseConnection();
        }
        return result;
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/utils/HttpUtil.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,376 @@
package com.vci.rmip.code.client.codeapply.Apply410.utils;
import com.alibaba.cloud.commons.lang.StringUtils;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.nacos.shaded.com.google.gson.JsonObject;
import com.vci.rmip.code.client.codeapply.Apply410.object.R;
import org.apache.http.*;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import java.io.IOException;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
public class HttpUtil {
    private static final CloseableHttpClient httpclient = HttpClients.createDefault();
    /**
     * å‘送HttpGet请求
     * @param url
     * @return
     */
    public static String sendGet(String url) {
        HttpGet httpget = new HttpGet(url);
        CloseableHttpResponse response = null;
        try {
            response = httpclient.execute(httpget);
        } catch (IOException e1) {
            e1.printStackTrace();
        }
        String result = null;
        try {
            HttpEntity entity = response.getEntity();
            if (entity != null) {
                result = EntityUtils.toString(entity);
            }
        } catch (ParseException | IOException e) {
            e.printStackTrace();
        } finally {
            try {
                response.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return result;
    }
    /**
     * å‘送HttpGet带参请求
     * @param url
     * @param params
     * @return
     */
    public static R sendGet(String url, Map<String, String> params, Map<String,String> headers) {
        R r=new R();
        // èŽ·å–è¿žæŽ¥å®¢æˆ·ç«¯å·¥å…·
        CloseableHttpClient httpClient = HttpClients.createDefault();
        String entityStr = null;
        CloseableHttpResponse response = null;
        try {
            /*
             * ç”±äºŽGET请求的参数都是拼装在URL地址后方,所以我们要构建一个URL,带参数
             */
            URIBuilder uriBuilder = new URIBuilder(url);
            /** ç¬¬ä¸€ç§æ·»åŠ å‚æ•°çš„å½¢å¼ */
        /*uriBuilder.addParameter("name", "root");
        uriBuilder.addParameter("password", "123456");*/
            /** ç¬¬äºŒç§æ·»åŠ å‚æ•°çš„å½¢å¼ */
            List<NameValuePair> list = new LinkedList<>();
            //设置头部
            for(Map.Entry<String,String> entry:params.entrySet()){
                BasicNameValuePair param1 = new BasicNameValuePair(entry.getKey(), entry.getValue());
                list.add(param1);
            }
            uriBuilder.setParameters(list);
            // æ ¹æ®å¸¦å‚æ•°çš„URI对象构建GET请求对象
            HttpGet httpGet = new HttpGet(uriBuilder.build());
            /*
             * æ·»åŠ è¯·æ±‚å¤´ä¿¡æ¯
             */
            if(headers!=null&&headers.size()>0) {
                for (Map.Entry<String, String> entry : params.entrySet()) {
                    httpGet.addHeader(entry.getKey(), entry.getValue());
                }
            }
            // æ‰§è¡Œè¯·æ±‚
            response = httpClient.execute(httpGet);
            // èŽ·å¾—å“åº”çš„å®žä½“å¯¹è±¡
            HttpEntity entity = response.getEntity();
            // ä½¿ç”¨Apache提供的工具类进行转换成字符串
            entityStr = EntityUtils.toString(entity, "UTF-8");
            if(StringUtils.isNotBlank(entityStr)){
                r = JSONObject.toJavaObject(JSONObject.parseObject(entityStr), R.class);
            }
        } catch (ClientProtocolException e) {
            System.err.println("Http协议出现问题");
            e.printStackTrace();
        } catch (ParseException e) {
            System.err.println("解析错误");
            e.printStackTrace();
        } catch (URISyntaxException e) {
            System.err.println("URI解析异常");
            e.printStackTrace();
        } catch (IOException e) {
            System.err.println("IO异常");
            e.printStackTrace();
        } finally {
            // é‡Šæ”¾è¿žæŽ¥
            if (null != response) {
                try {
                    response.close();
                    httpClient.close();
                } catch (IOException e) {
                    System.err.println("释放连接出错");
                    e.printStackTrace();
                }
            }
        }
        return r;
    }
    /**
     * å‘送HttpGet带参请求
     * @param url
     * @param header
     * @return
     */
    public static String sendGet(String url, Map<String, String> header) {
        HttpGet httpGet = new HttpGet(url);
        //设置头部
        for(Map.Entry entry:header.entrySet()){
//            System.out.println(entry.getKey()+ "###########" + entry.getValue());
            httpGet.setHeader(entry.getKey().toString(),entry.getValue().toString());
        }
//        System.out.println(jsonObject.toString());
//        HttpGet httpget = new HttpGet(url);
        CloseableHttpResponse response = null;
        try {
            response = httpclient.execute(httpGet);
        } catch (IOException e1) {
            e1.printStackTrace();
        }
        String result = null;
        try {
            HttpEntity entity = response.getEntity();
            if (entity != null) {
                result = EntityUtils.toString(entity);
            }
        } catch (ParseException | IOException e) {
            e.printStackTrace();
        } finally {
            try {
                response.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return result;
    }
    /**
     * å‘送HttpPost请求,参数为map
     * @param url
     * @param jsonDataStr
     * @return
     */
    public static R sendPost(String url, String jsonDataStr,Map<String,String> headers) {
        R r=new R();
//        JsonObject formparams = new JsonObject();
//        for (Map.Entry<String, String> entry : map.entrySet()) {
//            formparams.add(entry.getKey(), entry.getValue();
//        }
        //json æ ¼å¼
        //UrlEncodedFormEntity entity = new UrlEncodedFormEntity(jsonDataStr, Consts.UTF_8);
//        System.out.println(jsonObject.toString());
        StringEntity entity = new StringEntity(jsonDataStr, Consts.UTF_8);
        HttpPost httppost = new HttpPost(url);
        /*
         * æ·»åŠ è¯·æ±‚å¤´ä¿¡æ¯
         */
        if(headers!=null&&headers.size()>0) {
            for (Map.Entry<String, String> entry : headers.entrySet()) {
                httppost.addHeader(entry.getKey(), entry.getValue());
            }
        }
        httppost.setEntity(entity);
        CloseableHttpResponse response = null;
        try {
            response = httpclient.execute(httppost);
        } catch (IOException e) {
            e.printStackTrace();
        }
        HttpEntity entity1 = response.getEntity();
        String result = null;
        try {
            result = EntityUtils.toString(entity1, "UTF-8");
            // ä½¿ç”¨Apache提供的工具类进行转换成字符串
            if(StringUtils.isNotBlank(result)){
                r = JSONObject.toJavaObject(JSONObject.parseObject(result), R.class);
            }
        } catch (ParseException | IOException e) {
            e.printStackTrace();
        }
        return r;
    }
    /**
     * å‘送HttpPost请求,参数为map
     * @param url
     * @param map
     * @return
     */
    public static R sendPost(String url, Map<String,String> map,Map<String,String> headers) {
        R r=new R();
//        JsonObject formparams = new JsonObject();
//        for (Map.Entry<String, String> entry : map.entrySet()) {
//            formparams.add(entry.getKey(), entry.getValue();
//        }
        //json æ ¼å¼
//        UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams, Consts.UTF_8);
        JsonObject jsonObject = new JsonObject();
        for(Map.Entry entry:map.entrySet()){
//            System.out.println(entry.getKey()+ "###########" + entry.getValue());
            jsonObject.addProperty(entry.getKey().toString(),entry.getValue().toString());
        }
//        System.out.println(jsonObject.toString());
        StringEntity entity = new StringEntity(jsonObject.toString(), Consts.UTF_8);
        HttpPost httppost = new HttpPost(url);
        /*
         * æ·»åŠ è¯·æ±‚å¤´ä¿¡æ¯
         */
        if(headers!=null&&headers.size()>0) {
            for (Map.Entry<String, String> entry : headers.entrySet()) {
                httppost.addHeader(entry.getKey(), entry.getValue());
            }
        }
        httppost.setEntity(entity);
        CloseableHttpResponse response = null;
        try {
            response = httpclient.execute(httppost);
        } catch (IOException e) {
            e.printStackTrace();
        }
        HttpEntity entity1 = response.getEntity();
        String result = null;
        try {
            result = EntityUtils.toString(entity1, "UTF-8");
            // ä½¿ç”¨Apache提供的工具类进行转换成字符串
            if(StringUtils.isNotBlank(result)){
                r = JSONObject.toJavaObject(JSONObject.parseObject(result), R.class);
            }
        } catch (ParseException | IOException e) {
            e.printStackTrace();
        }
        return r;
    }
    /**
     * å‘送HttpPost请求,参数为map
     * @param url
     * @param map
     * @return
     */
    public static String sendPost(String url, Map<String,String> map) {
//        JsonObject formparams = new JsonObject();
//        for (Map.Entry<String, String> entry : map.entrySet()) {
//            formparams.add(entry.getKey(), entry.getValue();
//        }
        //json æ ¼å¼
//        UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams, Consts.UTF_8);
        JsonObject jsonObject = new JsonObject();
        for(Map.Entry entry:map.entrySet()){
//            System.out.println(entry.getKey()+ "###########" + entry.getValue());
            jsonObject.addProperty(entry.getKey().toString(),entry.getValue().toString());
        }
//        System.out.println(jsonObject.toString());
        StringEntity entity = new StringEntity(jsonObject.toString(), Consts.UTF_8);
        HttpPost httppost = new HttpPost(url);
        httppost.setEntity(entity);
        CloseableHttpResponse response = null;
        try {
            response = httpclient.execute(httppost);
        } catch (IOException e) {
            e.printStackTrace();
        }
        HttpEntity entity1 = response.getEntity();
        String result = null;
        try {
            result = EntityUtils.toString(entity1);
        } catch (ParseException | IOException e) {
            e.printStackTrace();
        }
        return result;
    }
    /**
     * å‘送HttpPost请求,参数为map
     * @param url
     * @param dataMap
     * @return
     */
    public static String sendFormPost(String url, Map<String,String> dataMap, Map<String,String> headers) {
        String result = null;
        try {
            //json æ ¼å¼
            List<NameValuePair> nvps = new ArrayList<>();
//
            HttpPost httppost = new HttpPost(url);
            if (dataMap != null && dataMap.size() > 0) {
                for (Map.Entry<String, String> entry : dataMap.entrySet()) {
                    nvps.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));
                }
            }
            /*
             * æ·»åŠ è¯·æ±‚å¤´ä¿¡æ¯
             */
            if (headers != null && headers.size() > 0) {
                for (Map.Entry<String, String> entry : headers.entrySet()) {
                    httppost.addHeader(entry.getKey(), entry.getValue());
                }
            }
            httppost.setEntity(new UrlEncodedFormEntity(nvps, "utf-8")); //将参数传入post方法中
            //httppost.setEntity(entity);
            CloseableHttpResponse response = null;
            response = httpclient.execute(httppost);
            HttpEntity entity1 = response.getEntity();
            result = EntityUtils.toString(entity1, "UTF-8");
            // ä½¿ç”¨Apache提供的工具类进行转换成字符串
            if (StringUtils.isNotBlank(result)) {
                return result;
            }
        }catch (Throwable e){
            e.printStackTrace();;
        }
        return result;
    }
    /**
     * å‘送不带参数的HttpPost请求
     * @param url
     * @return
     */
    public static String sendPost(String url) {
        HttpPost httppost = new HttpPost(url);
        CloseableHttpResponse response = null;
        try {
            response = httpclient.execute(httppost);
        } catch (IOException e) {
            e.printStackTrace();
        }
        HttpEntity entity = response.getEntity();
        String result = null;
        try {
            result = EntityUtils.toString(entity);
        } catch (ParseException | IOException e) {
            e.printStackTrace();
        }
        return result;
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/utils/ListUtil.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,172 @@
package com.vci.rmip.code.client.codeapply.Apply410.utils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Lists;
import com.vci.ubcs.starter.web.util.VciBaseUtil;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.PropertyUtils;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.util.StringUtils;
import java.lang.reflect.Field;
import java.lang.reflect.Type;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.Map;
public class ListUtil {
    /**
     * targetList éœ€è¦å¤„理的list
     * targetClass ç›®æ ‡class
     * @return List å¤„理好的list
     */
    public static List listMapParseListObj(List targetList, Class targetClass){
        // å…ˆèŽ·å–è¯¥ç±»çš„ä»£ç†å¯¹è±¡
        Object obj = null;
        try {
            obj = targetClass.newInstance();
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
        Field[] fields = targetClass.getDeclaredFields();
        // å°†list转为list对象
        for(int i = 0; i< targetList.size(); i++){
            Map map = (Map)targetList.get(i);                  // èŽ·å–æ¯ä¸ªlist里面每个map
            for (Field field : fields) {
                String fieldName = field.getName();
                if(fieldName.equals("data")){
                    try {
                        PropertyUtils.setProperty(obj, fieldName, map);
                    }catch(Exception ex){
                    ex.printStackTrace();
                    }
                }else if (map.containsKey(fieldName.toUpperCase(Locale.ROOT))||map.containsKey(fieldName.toLowerCase(Locale.ROOT))) {
                    Object value="";
                    if (map.containsKey(fieldName.toUpperCase(Locale.ROOT))) {
                        value = map.get(fieldName.toUpperCase());
                    }else if(map.containsKey(fieldName.toLowerCase(Locale.ROOT))){
                        value = map.get(fieldName.toLowerCase());
                    }
                    try{
                        //取得值的类形
                        Class type = PropertyUtils.getPropertyType(obj, fieldName);
                        if(!StringUtils.isEmpty(type)){
                            PropertyUtils.setProperty(obj, fieldName,convert(value, type));
                        }
                    }catch(Exception ex){
                        ex.printStackTrace();
                    }
                }
            }
        }
        // å°†list<Map> è½¬ä¸ºå¯¹è±¡è¿›è¡Œè¿”回
        List resListObj = Lists.newArrayList();
        for (Object object : targetList) {
            JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(object));
            resListObj.add(jsonObject.toJavaObject((Type)targetClass));
        }
        //返回封装好的集合
        return resListObj;
    }
    /**
     * targetList éœ€è¦å¤„理的list
     * targetClass ç›®æ ‡class
     * @return List å¤„理好的list
     */
    public static <T> T mapParseJavaBean(Map map, Class targetClass){
        // å…ˆèŽ·å–è¯¥ç±»çš„ä»£ç†å¯¹è±¡
        Object obj = null;
        try {
            obj = targetClass.newInstance();
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
        Field[] fields = targetClass.getDeclaredFields();
        // å°†list转为list对象
            for (Field field : fields) {
                String fieldName = field.getName();
                if(fieldName.equals("data")){
                    try {
                        PropertyUtils.setProperty(obj, fieldName, map);
                    }catch(Exception ex){
                        ex.printStackTrace();
                    }
                }else if (map.containsKey(fieldName.toUpperCase(Locale.ROOT))||map.containsKey(fieldName.toLowerCase(Locale.ROOT))) {
                    Object value="";
                    if (map.containsKey(fieldName.toUpperCase(Locale.ROOT))) {
                        value = map.get(fieldName.toUpperCase());
                    }else if(map.containsKey(fieldName.toLowerCase(Locale.ROOT))){
                        value = map.get(fieldName.toLowerCase());
                    }
                    try{
                        //取得值的类形
                        Class type = PropertyUtils.getPropertyType(obj, fieldName);
                        if(!StringUtils.isEmpty(type)){
                            PropertyUtils.setProperty(obj, fieldName,convert(value, type));
                        }
                    }catch(Exception ex){
                        ex.printStackTrace();
                    }
                }
            }
            /*// å°†list<Map> è½¬ä¸ºå¯¹è±¡è¿›è¡Œè¿”回
            List resListObj = Lists.newArrayList();
            JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(obj));
            resListObj.add(jsonObject.toJavaObject((Type)targetClass));*/
        //返回封装好的集合
        return (T) obj;
    }
    public static Object convert(Object value, Class clazz){
        if (value == null) { // å¦‚果获取参数值为null,则返回null
            return null;
        } else if (!value.equals("")) { // å¦‚果获取参数值不为"",则通过convertGt方法进行类型转换后返回结果
            return convertGt(value, clazz);
        } else if (clazz.getName().equals(String.class.getName())) { // å¦‚果获取参数值为""
            return convertGt(value, clazz);
        } else {// å¦‚果获取参数值为"",并且clazz不是是String类型,则返回null
            return null;
        }
    }
    /**
     * @param value
     * @param clazz
     * @return
     */
    @SuppressWarnings("unchecked")
    public static Object convertGt(Object value, Class clazz) {
        if (value == null) { // å¦‚果值为null,则返回null
            return null;
        } else if (value.equals("")&& !clazz.getName().equals(String.class.getName())) { // å¦‚æžœvalue值为"",而且要转为的类型不是string类型,那么就统一返回null,也就是空字符串不能转成任何其他类型的实体,只能返回null
                return null;
            } else if (Date.class.getName().equalsIgnoreCase(clazz.getName())) { // å¢žåŠ å¯¹ä»ŽString类型到Date
                return convertSTD(value.toString());
            }
            return ConvertUtils.convert(value, clazz);
        }
    //日期类型的转换
    private static SimpleDateFormat simpleDateFormate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    public static Date convertSTD(String date){
        try {
            return simpleDateFormate.parse(date);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
        }
    public static String convertDTS(Date date){
        return simpleDateFormate.format(date);
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/utils/MdmEngineConstant.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,112 @@
package com.vci.rmip.code.client.codeapply.Apply410.utils;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class MdmEngineConstant {
    /**
     * ç¼–码的字段
     */
    public static final String OID_FIELD = "Oid";
    /**
     * ç¼–码的字段
     */
    public static final String CODE_FIELD = "id";
    /**
     * åç§°
     */
    public static final String NAME_FIELD = "name";
    /***
     * æè¿°
     */
    public static final String DESCRIPTION_FIELD = "description";
    /***
     * åˆ›å»ºè€…
     */
    public static final String CREATOR_FIELD = "creator";
    /***
     * åˆ›å»ºæ—¶é—´
     */
    public static final String CREATORTIME_FIELD = "createTime";
    /***
     * ä¿®æ”¹è€…
     */
    public static final String EDITOR_FIELD = "lastModifier";
    /***
     * ä¿®æ”¹æ—¶é—´
     */
    public static final String EDITORTIME_FIELD = "lastModifyTime";
    /**
     * çŠ¶æ€
     */
    public static final String CODE_STATUS_FILED = "lcstatus";
    /**
     * çŠ¶æ€
     */
    public static final String CODE_STATUS_TEXT_FILED = "lcStatusText";
    /**
     * é›†å›¢ç çš„字段
     */
    public static final String CODE_GROUP_FIELD = "groupcode";
    /**
     * åˆ†ç±»çš„主键字段
     */
    public static final String CODE_CLASSIFY_OID_FIELD = "codeclsfid";
    /**
     * æ¨¡æ¿çš„主键字段
     */
    public static final String CODE_TEMPLATE_OID_FIELD = "codetemplateoid";
    /**
     * åˆ†ç±»å…¨è·¯å¾„的字段
     */
    public static final String CODE_FULL_PATH_FILED = "codeclsfpath";
    /**
     * ç æ®µçš„长度的字段,-这不是数据库里的字段
     */
    public static final String CODE_SEC_LENGTH_FIELD = "codeSecLengthField";
    /**
     * å¯†çº§çš„字段
     */
    public static final String SECRET_FIELD = "secretgrade";
    /**
     * æ‹¥æœ‰è€…
     */
    public static final String OWNER_FIELD = "owner";
    /**
     * é»˜è®¤çš„属性列表
     */
    public static final List DEFAULT_ATTR_LIST = new ArrayList(){{
        add(OID_FIELD);
        add(CODE_FIELD);
        add(NAME_FIELD);
        add(DESCRIPTION_FIELD);
        add(CREATOR_FIELD);
        add(CREATORTIME_FIELD);
        add(EDITOR_FIELD);
        add(EDITORTIME_FIELD);
        add(CODE_STATUS_FILED);
        add(CODE_STATUS_TEXT_FILED);
        add(CODE_GROUP_FIELD);
        add(CODE_CLASSIFY_OID_FIELD);
        add(CODE_TEMPLATE_OID_FIELD);
        add(CODE_FULL_PATH_FILED);
        add(OWNER_FIELD);
        add(SECRET_FIELD);
    }};
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/rmip/code/client/codeapply/Apply410/utils/httpClient4.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,134 @@
package com.vci.rmip.code.client.codeapply.Apply410.utils;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
public class httpClient4 {
    public static String doGet(String url) {
        CloseableHttpClient httpClient = null;
        CloseableHttpResponse response = null;
        String result = "";
        try {
            // é€šè¿‡å€é»˜è®¤é…ç½®åˆ›å»ºä¸€ä¸ªhttpClient实例
            httpClient = HttpClients.createDefault();
            // åˆ›å»ºhttpGet远程连接实例
            HttpGet httpGet = new HttpGet(url);
            // è®¾ç½®è¯·æ±‚头信息,鉴权
            httpGet.setHeader("Authorization", "Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0");
            // è®¾ç½®é…ç½®è¯·æ±‚参数
            RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(35000)// è¿žæŽ¥ä¸»æœºæœåŠ¡è¶…æ—¶æ—¶é—´
                .setConnectionRequestTimeout(35000)// è¯·æ±‚è¶…æ—¶æ—¶é—´
                .setSocketTimeout(60000)// æ•°æ®è¯»å–è¶…æ—¶æ—¶é—´
                .build();
            // ä¸ºhttpGet实例设置配置
            httpGet.setConfig(requestConfig);
            // æ‰§è¡Œget请求得到返回对象
            response = httpClient.execute(httpGet);
            // é€šè¿‡è¿”回对象获取返回数据
            HttpEntity entity = response.getEntity();
            // é€šè¿‡EntityUtils中的toString方法将结果转换为字符串
            result = EntityUtils.toString(entity);
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            // å…³é—­èµ„源
            if (null != response) {
                try {
                    response.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (null != httpClient) {
                try {
                    httpClient.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return result;
    }
    public static String doPost(String url, Map<String, Object> paramMap) {
        CloseableHttpClient httpClient = null;
        CloseableHttpResponse httpResponse = null;
        String result = "";
        // åˆ›å»ºhttpClient实例
        httpClient = HttpClients.createDefault();
        // åˆ›å»ºhttpPost远程连接实例
        HttpPost httpPost = new HttpPost(url);
        // é…ç½®è¯·æ±‚参数实例
        RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(35000)// è®¾ç½®è¿žæŽ¥ä¸»æœºæœåŠ¡è¶…æ—¶æ—¶é—´
            .setConnectionRequestTimeout(35000)// è®¾ç½®è¿žæŽ¥è¯·æ±‚è¶…æ—¶æ—¶é—´
            .setSocketTimeout(60000)// è®¾ç½®è¯»å–数据连接超时时间
            .build();
        // ä¸ºhttpPost实例设置配置
        httpPost.setConfig(requestConfig);
        // è®¾ç½®è¯·æ±‚头
        httpPost.addHeader("Content-Type", "application/x-www-form-urlencoded");
        // å°è£…post请求参数
        if (null != paramMap && paramMap.size() > 0) {
            List<NameValuePair> nvps = new ArrayList<NameValuePair>();
            // é€šè¿‡map集成entrySet方法获取entity
            Set<Entry<String, Object>> entrySet = paramMap.entrySet();
            // å¾ªçŽ¯éåŽ†ï¼ŒèŽ·å–è¿­ä»£å™¨
            Iterator<Entry<String, Object>> iterator = entrySet.iterator();
            while (iterator.hasNext()) {
                Entry<String, Object> mapEntry = iterator.next();
                nvps.add(new BasicNameValuePair(mapEntry.getKey(), mapEntry.getValue().toString()));
            }
            // ä¸ºhttpPost设置封装好的请求参数
            try {
                httpPost.setEntity(new UrlEncodedFormEntity(nvps, "UTF-8"));
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
        }
        try {
            // httpClient对象执行post请求,并返回响应参数对象
            httpResponse = httpClient.execute(httpPost);
            // ä»Žå“åº”对象中获取响应内容
            HttpEntity entity = httpResponse.getEntity();
            result = EntityUtils.toString(entity);
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            // å…³é—­èµ„源
            if (null != httpResponse) {
                try {
                    httpResponse.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (null != httpClient) {
                try {
                    httpClient.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return result;
    }
}
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/AttarSearchPanel.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410Dialog.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410DialogActionListener.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410MainPanel.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410SearchDialog.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410SearchMainPanel.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410SearchProvider.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410TreePanel.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyPanelFor410.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyPanelFor410ActionListener.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeDataMainPanel.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeDataMainPanelActionListener.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeDataMainPanelDataProvider.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeLibTreeCellRenderer.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeReferTreePanel.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CommonActionListener.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/DescViewDialog.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/RMDataReferTempDialog.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/RMDataReferTempDialogActionListener.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/SectionObject.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/TestIntegrateFrame.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/TransmitTreeObject.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/enums/CodeReferConfigTypeEnum.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/AttrRangObjectWarper.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/BaseModel.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/ClassifyLevel.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/CodeClassify.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/CodeClassifyValue.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/CodeDataObject.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/CodeFixedValue.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/CoderefersecSearchVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/DataGrid.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/IPage.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/OrderItem.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/Page.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/R.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/RMDataTransmitObject.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/ReferTreObject.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/TokenUserObject.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/UIFormRefer.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/UIFormRefers.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/UserObject.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/swing/IntegerTextField.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/swing/RealTextField.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/swing/VCIJComboxBox.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/utils/ConfigUtils.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/utils/HttpClient.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/utils/HttpClient3.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/utils/HttpUtil.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/utils/ListUtil.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/utils/MdmEngineConstant.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/utils/httpClient4.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeImportResultVO.java
@@ -31,6 +31,10 @@
     */
    private Set<String> keyAttrRepeatRowIndexList  = new HashSet<>();
    /***
     * å…³é”®å±žæ€§ç›¸åŒçš„属性oid与其重复的数据oid
     */
    private Map<String,List<String>> keyAttrOkOidTORepeatOidMap=new HashMap<>();
    /***
     * æ ¹æ®å…³é”®ç†Ÿæ‚‰æŸ¥è¯¢çš„重复的数据对象
     */
    private Map<String,  List<BaseModel>> indexTODataMap=new HashMap<>();
@@ -101,6 +105,14 @@
    public void setIndexTODataMap(Map<String, List<BaseModel>> indexTODataMap) {
        this.indexTODataMap = indexTODataMap;
    }
    public Map<String, List<String>> getKeyAttrOkOidTORepeatOidMap() {
        return keyAttrOkOidTORepeatOidMap;
    }
    public void setKeyAttrOkOidTORepeatOidMap(Map<String, List<String>> keyAttrOkOidTORepeatOidMap) {
        this.keyAttrOkOidTORepeatOidMap = keyAttrOkOidTORepeatOidMap;
    }
    /*public Map<String,List<ClientBusinessObject>> getIndexTODataMap() {
        return indexTODataMap;
    }
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/controller/DockingPreApplyCodeController.java
@@ -190,7 +190,21 @@
            return R.fail("集团码申请失败:"+e.getMessage());
        }
    }
    /***
     * æ›´æ–°é›†å›¢ç¼–码数据
     * @return
     */
    @PostMapping( "/receiveEditApply")
    @ApiOperationSupport(order = 2)
    @ApiOperation(value = "集团码申请", notes = "dockingPreAttrMappingVOList")
    public R receiveEditApply(String oids,String btmName){
        List<BaseModelVO> BaseModelVOs=new ArrayList<>();
        try {
            return groupMdmInterService.receiveEditApply(oids,btmName);
        }catch (Throwable e){
            return R.fail("集团码更新失败:"+e.getMessage());
        }
    }
    /***
     * åŒæ­¥é›†å›¢æ¨¡åž‹è§†å›¾
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/impl/GroupMdmInterServiceImpl.java
@@ -202,7 +202,7 @@
            }
            return R.success("申请接口调用成功");
        }catch (VciBaseException e){
            return R.success("申请接口调用成功"+e);
            return R.fail("申请接口调用失败"+e);
        }
    }
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
@@ -665,7 +665,11 @@
            }
            final String[] sql = {"select count(*) from " + listR.getData().get(0).getTableName() + " t where 1 = 1 "};
            conditionMap.forEach((key, value) -> {
                sql[0] += " and " + key + " = " + value;
                if(StringUtils.isBlank(value)||value.equals(QueryOptionConstant.ISNULL)) {
                    sql[0] += " and " + key + " is null";
                }else{
                    sql[0] += " and " + key + " = " + value;
                }
            });
            if (StringUtils.isNotBlank(orderDTO.getOid())) {
                //修改的时候,需要排除自己
@@ -685,9 +689,11 @@
    /**
     * æ ¡éªŒå…³é”®å±žæ€§
     *
     * @param classifyFullInfo åˆ†ç±»çš„全部信息
     * @param templateVO       æ¨¡æ¿çš„内容,必须包含模板属性
     * @param orderDTO         ç¼–码申请的相关的信息
     */
    @Override
    public List<Map> checkKeyAttrOnOrderFordatas(CodeOrderDTO orderDTO) {
        List<Map>dataList=new ArrayList<>();
        CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(orderDTO.getCodeClassifyOid());
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
@@ -2083,7 +2083,7 @@
                            XMLResultDataObjectDetailDO resultDataObjectDetailDO = new XMLResultDataObjectDetailDO();
                            if(isCodeOrGroupCode) {
                                if(StringUtils.isBlank(groupCode)){
                                    mes+=";等待集团编码赋值";
                                    mes+=";申请的编码类型为集团码,等待集团编码赋值";
                                }
                                resultDataObjectDetailDO.setCode(groupCode);
                            }else{
@@ -2136,15 +2136,26 @@
                // if(!isProcess){
                dataCBOList.stream().forEach(needSaveCbo->{
                    XMLResultDataObjectDetailDO resultDataObjectDetailDO=new XMLResultDataObjectDetailDO();
                    resultDataObjectDetailDO.setCode(needSaveCbo.getId());
                    String code=needSaveCbo.getId();
                    String groupCode=needSaveCbo.getData().getOrDefault("GROUPCODE","");
                    //resultDataObjectDetailDO.setCode(needSaveCbo.getId());
                    String msg="申请编码成功";
                    String oid=needSaveCbo.getOid();
                    String sourceOid=oid;
                    if(codeOidToSystemOidMap.containsKey(oid)){
                        sourceOid=codeOidToSystemOidMap.get(oid);
                    }
                    if(isCodeOrGroupCode) {
                        if(StringUtils.isBlank(groupCode)){
                            msg="申请的编码类型为集团码,等待集团编码赋值";
                        }
                        resultDataObjectDetailDO.setCode(groupCode);
                    }else{
                        resultDataObjectDetailDO.setCode(code);
                    }
                    resultDataObjectDetailDO.setId(sourceOid);
                    resultDataObjectDetailDO.setErrorid("0");
                    resultDataObjectDetailDO.setMsg("申请编码成功");
                    resultDataObjectDetailDO.setMsg(msg);
                    resultDataObjectDetailDOs.add(resultDataObjectDetailDO);
                });
               /* }else{
@@ -3665,7 +3676,8 @@
        CodeImportResultVO resultVO = new CodeImportResultVO();
        resultVO.setKeyAttrRuleInfo(String.format(keyRuleVO ==null?"":"查询规则:去除空格--{0},忽略大小写--{1},忽略全半角--{2},忽略全部空格--{3}",
            new String[]{trim?"是":"否",ignoreCase?"是":"否",ignoreWidth?"是":"否",trimAll?"是":"否"}));
        resultVO.setSelfRepeatRowIndexList(getSelfRepeatRowIndex(ketAttrMap,cboList,keyRuleVO));
        //resultVO.setSelfRepeatRowIndexList(getSelfRepeatRowIndex(ketAttrMap,cboList,keyRuleVO));
        getSelfRepeatRowIndex(ketAttrMap,cboList,keyRuleVO,resultVO);
        if(!CollectionUtils.isEmpty(resultVO.getSelfRepeatRowIndexList())){
            //我们移除本身重复的数据
            cboList = cboList.stream().filter(s->!resultVO.getSelfRepeatRowIndexList().contains(s.getAttributeValue(IMPORT_ROW_INDEX))).collect(Collectors.toList());
@@ -3824,9 +3836,10 @@
     * @param keyRuleVO å…³é”®å±žæ€§æŽ§åˆ¶è§„则
     * @return é‡å¤çš„行号
     */
    private Set<String> getSelfRepeatRowIndex(Map<String/**属性的编号**/, CodeClassifyTemplateAttrVO> ketAttrMap,
                                              List<ClientBusinessObject> dataList,CodeKeyAttrRepeatVO keyRuleVO){
    private void getSelfRepeatRowIndex(Map<String/**属性的编号**/, CodeClassifyTemplateAttrVO> ketAttrMap,
                                              List<ClientBusinessObject> dataList,CodeKeyAttrRepeatVO keyRuleVO,CodeImportResultVO resultVO){
        Set<String> selfRepeatRowIndexList = new CopyOnWriteArraySet<>();
        Map<String,List<String>> keyAttrOkOidTORepeatOidMap=new HashMap<>();
        boolean trimAll =keyRuleVO ==null?false: VciBaseUtil.getBoolean(keyRuleVO.getIgnoreallspaceflag());
        //全部去空的优先级大于去空
        boolean trim =keyRuleVO ==null?false:  VciBaseUtil.getBoolean(keyRuleVO.getIgnorespaceflag());
@@ -3835,8 +3848,10 @@
        //必须将属性按照顺序排序好
        List<CodeClassifyTemplateAttrVO> attrVOList = ketAttrMap.values().stream().sorted(((o1, o2) -> o1.getOrderNum().compareTo(o2.getOrderNum()))).collect(Collectors.toList());
        Map<String/**行号**/,String/**关键属性的组合内容**/> rowIndexKeyStringMap = new HashMap<>();
        Map<String/**关键属性的组合内容**/,String/**第一个关键属性的数据oid**/> okOidKeyStringMap = new HashMap<>();
        dataList.parallelStream().forEach(cbo-> {
            String rowIndex = cbo.getAttributeValue(IMPORT_ROW_INDEX);
            String oid=cbo.getOid();
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < attrVOList.size(); i++) {
                CodeClassifyTemplateAttrVO attrVO = attrVOList.get(i);
@@ -3862,12 +3877,25 @@
            String keyString = sb.toString();
            if(rowIndexKeyStringMap.containsValue(keyString) && StringUtils.isNotBlank(keyString)){
                selfRepeatRowIndexList.add(rowIndex);
                String okOid=okOidKeyStringMap.getOrDefault(keyString,"");
                if(StringUtils.isBlank(okOid)){
                    List<String>newOidList=new ArrayList<>();
                    newOidList.add(oid);
                    if(keyAttrOkOidTORepeatOidMap.containsKey(okOid)){
                        List<String> oldOidList=    keyAttrOkOidTORepeatOidMap.get(okOid);
                        newOidList.addAll(oldOidList);
                    }
                    keyAttrOkOidTORepeatOidMap.put(okOid,newOidList);
                }
            }else {
                okOidKeyStringMap.put(sb.toString(),oid);
                rowIndexKeyStringMap.put(rowIndex, sb.toString());
            }
        });
        //因为只是关键属性重复,所以我们不能重复的多条选一条来报错
        return selfRepeatRowIndexList;
        resultVO.setKeyAttrRepeatRowIndexList(selfRepeatRowIndexList);
        resultVO.setKeyAttrOkOidTORepeatOidMap(keyAttrOkOidTORepeatOidMap);
    }
    /**
     * excel的标题上获取字段所在的位置
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/META-INF/additional-spring-configuration-metadata.json
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
{
  "properties": [
    {
      "name": "docking.apply.jtInterUrl",
      "type": "java.lang.String",
      "description": "Description for docking.apply.jtInterUrl."
  }
] }
Source/¸ü¸Ä¹ýµÄjar°ü.zip
Binary files differ
Source/¸ü¸Ä¹ýµÄjar°ü£¨ÓиüУ©.zip
Binary files differ