田源
2023-05-09 d2570148ec3884de3af721bd99c4b7acbbdee075
前端代码提交
已修改122个文件
已删除89个文件
已添加209个文件
42853 ■■■■■ 文件已修改
Source/UBCS-WEB/public/index.html 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/api/code/codeClassifyValue.js 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/api/code/codeFixedValue.js 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/api/template/templateAttr.js 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/Tree/classifyTreeform.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/Tree/classifyTrees.vue 259 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/code-dialog-page/formulaEditor.vue 705 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/const/code/classifyTreeOptionDialog.js 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/const/code/classisyValueTreeDialog.js 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/const/code/cloneBasicDialogOption.js 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/const/code/cloneCodeRuleDialogOption.js 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/const/code/cloneOption.js 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/const/code/fixedValueMgrDialog.js 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/const/code/parentClassifyParentOptionDialog.js 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/const/code/referBtmDialog.js 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/const/code/selectAttrOptionDialog.js 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/vue.config.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/pom.xml 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-common/pom.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-common/src/main/java/com/vci/ubcs/common/constant/LauncherConstant.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-common/src/main/java/com/vci/ubcs/common/utils/CommonUtil.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-common/src/main/java/com/vci/ubcs/common/utils/PageDO2PageVO.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/controller/FlowManagerController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/pom.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/pom.xml 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/bo/TreeWrapperOptions.java 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeBasicSecDTO.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeFixedValueDTO.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeOrderDTO.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeTempbuttonDTO.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeTempphaseDTO.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/DockingDataDTO.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/PreApplyCodeOrderDTO.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/datapush/BaseModelDTO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/BaseModel.java 355 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeAllCode.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeBasicSec.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeButton.java 189 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeButtonEntity.java 189 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClassify.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClassifyProcessTemp.java 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClassifyTemplateAttr.java 357 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClassifyTemplateButton.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClassifyValue.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClsflowtempEntity.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClstempattrEntity.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClstemplateEntity.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeFixedValue.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeOsattributeEntity.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeOsbtmtypeEntity.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeOsbtmtypeattributeEntity.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodePhaseAttr.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodePhaseattrEntity.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeRule.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeSerialValue.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeTempbuttonEntity.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeTemplatePhase.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeTempphaseEntity.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/po/CodeClassifyPO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeButtonVO.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeOsbtmtypeattributeVO.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodePhaseattrVO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeTempbuttonVO.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeTempphaseVO.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeBasicSecVO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeClassifyProcessTempVO.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeClassifyTemplateButtonVO.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeClassifyValueVO.java 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeFixedValueVO.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeTemplatePhaseVO.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/DockingDataVO.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/TreeQueryObject.java 137 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/annotation/Transient.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/annotation/VciEnum.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/bo/WriteExcelData.java 244 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/exception/VciBaseException.java 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/poi/annotation/ExcelColumn.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/poi/annotation/ExcelTitle.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/poi/bo/AppendDataExcelOption.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/poi/bo/DownloadTempOption.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/poi/bo/ExcelColumnMap.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/poi/bo/ReadExcelOption.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/poi/bo/SheetDataSet.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/poi/bo/SheetRowData.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/poi/bo/WriteExcelOption.java 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/poi/constant/ExcelLangCodeConstant.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/poi/util/ExcelUtil.java 1520 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/poi/util/PoiImportProcesser.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/poi/util/PoiTemplateProcesser.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/revision/model/ReleasedObjDO.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/revision/model/RevisionInfo.java 147 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/revision/service/RevisionModelUtil.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/revision/service/VciRevisionServiceI.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/util/LocalFileUtil.java 318 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/util/VciBaseUtil.java 1101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/annotation/VciFieldType.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/annotation/VciUseEnum.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/constant/EnumIdConstant.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/constant/MdmEnumIdConstant.java 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/constant/QueryOptionConstant.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/enumpck/BaseEnum.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/enumpck/BaseEnumInt.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/enumpck/OsCodeFillTypeEnum.java 133 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/enumpck/UserSecretEnum.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/enumpck/VciFieldTypeEnum.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/pagemodel/BaseQueryObject.java 165 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/pagemodel/DataGrid.java 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/pagemodel/KeyValue.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/pagemodel/PageHelper.java 239 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/pagemodel/SessionInfo.java 421 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/pagemodel/Tree.java 205 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/pagemodel/UIFieldSortVO.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/pagemodel/UIFormReferVO.java 349 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/pagemodel/UITableCustomDefineVO.java 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/pagemodel/UITableFieldVO.java 398 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/pagemodel/UITablePageVO.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/service/VciSecretServiceI.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/toolmodel/DateConverter.java 188 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/util/BeanUtilForVCI.java 162 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/util/ControllerUtil.java 248 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/util/LangBaseUtil.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/util/Lunar.java 194 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/util/MessageUtils.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/util/VciBaseUtil.java 1211 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/util/VciDateUtil.java 638 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/util/WebThreadLocalUtil.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/util/WebUtil.java 712 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-ddl-api/pom.xml 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-ddl-api/src/main/java/com/vci/ubcs/ddl/bo/DdlFieldMappingAttrBO.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-ddl-api/src/main/java/com/vci/ubcs/ddl/bo/DdlTableBO.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-ddl-api/src/main/java/com/vci/ubcs/ddl/bo/DdlTableInDataBaseBO.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-ddl-api/src/main/java/com/vci/ubcs/ddl/enums/BusinessTypeEnum.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-ddl-api/src/main/java/com/vci/ubcs/ddl/enums/DataBaseEnum.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-ddl-api/src/main/java/com/vci/ubcs/ddl/enums/ModifyTableTaskEnum.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-ddl-api/src/main/java/com/vci/ubcs/ddl/properties/DdlExportWordFieldProperties.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-ddl-api/src/main/java/com/vci/ubcs/ddl/properties/DdlPropertise.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/cache/AttributeCache.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/cache/BtmTypeCache.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/cache/OmdAttributeCache.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/constant/BtmTypeConstant.java 140 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/constant/BtmTypeFieldConstant.java 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/constant/BtmTypeLcStatusConstant.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/constant/OmdCacheConstant.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/dto/AttributeDTO.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/dto/BtmAndLinkTypeDdlDTO.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/dto/BtmTypeDTO.java 151 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/dto/BtmTypeExportDTO.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/dto/BtmTypeLinkAttributesDTO.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/dto/EnumDTO.java 163 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/dto/LifeCycleDTO.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/dto/LifeCycleLineDTO.java 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/dto/LifeCycleLineEventDTO.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/dto/LinkTypeDTO.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/dto/OmdAttributeDTO.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/dto/RevisionRuleDTO.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/dto/StatusDTO.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/entity/Attribute.java 187 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/entity/BtmType.java 179 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/entity/BtmTypeAttribute.java 140 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/entity/FieldRange.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/entity/LifeCycleEvent.java 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/entity/LifeCycleLine.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/entity/LifeCycleLineEvent.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/entity/LifeCycleRule.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/entity/LinkTypeAttribute.java 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/entity/LinkTypeDO.java 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/entity/ModifyAttributeInfo.java 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/entity/OmdAttribute.java 179 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/entity/OmdFieldRange.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IAttributeClient.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IAttributeFallback.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IBtmTypeClient.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IBtmTypeFallback.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IDictClientFallback.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IOmdAttributeClient.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IOmdAttributeFallback.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/AttributeVO.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/BtmTypeAttributeVO.java 161 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/BtmTypeVO.java 185 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/FieldRangeVO.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/LifeCycleEventVO.java 177 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/LifeCycleLineEventVO.java 192 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/LifeCycleLineVO.java 248 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/LifeCycleVO.java 233 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/LinkTypeAttributeVO.java 390 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/LinkTypeVO.java 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/ModifyAttributeInfoVO.java 373 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/OmdAttributeVO.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/OmdFieldRangeVO.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/RevisionRuleVO.java 247 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/StatusVO.java 178 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/pom.xml 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/annotation/Transient.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/annotation/VciEnum.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/bo/WriteExcelData.java 244 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/exception/VciBaseException.java 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/poi/annotation/ExcelColumn.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/poi/annotation/ExcelTitle.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/poi/bo/AppendDataExcelOption.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/poi/bo/DownloadTempOption.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/poi/bo/ExcelColumnMap.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/poi/bo/ReadExcelOption.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/poi/bo/SheetDataSet.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/poi/bo/SheetRowData.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/poi/bo/WriteExcelOption.java 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/poi/constant/ExcelLangCodeConstant.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/poi/util/ExcelUtil.java 1517 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/poi/util/PoiImportProcesser.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/poi/util/PoiTemplateProcesser.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/model/BaseModel.java 355 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/model/ReleasedObjDO.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/model/RevisionInfo.java 147 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/model/TreeQueryObject.java 137 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/model/TreeWrapperOptions.java 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/service/RevisionModelUtil.java 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/service/VciRevisionServiceI.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/LocalFileUtil.java 318 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/MybatisParameterUtils.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/VciSpringUtil.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/annotation/VciFieldType.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/annotation/VciUseEnum.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/constant/EnumIdConstant.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/constant/MdmEnumIdConstant.java 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/constant/OmdRegExpConstant.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/constant/QueryOptionConstant.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/enumpck/BaseEnum.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/enumpck/BaseEnumInt.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/enumpck/BooleanEnum.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/enumpck/OsCodeFillTypeEnum.java 133 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/enumpck/UserSecretEnum.java 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/enumpck/VciFieldTypeEnum.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/pagemodel/BaseQueryObject.java 165 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/pagemodel/DataGrid.java 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/pagemodel/KeyValue.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/pagemodel/PageHelper.java 239 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/pagemodel/SessionInfo.java 421 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/pagemodel/Tree.java 205 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/pagemodel/UIFieldSortVO.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/pagemodel/UIFormReferVO.java 349 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/pagemodel/UITableCustomDefineVO.java 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/pagemodel/UITableFieldVO.java 398 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/pagemodel/UITablePageVO.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/service/VciSecretServiceI.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/toolmodel/DateConverter.java 188 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/BeanUtil.java 175 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/BeanUtilForVCI.java 162 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/ClassUtil.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/ControllerUtil.java 248 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/LangBaseUtil.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/Lunar.java 194 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/MessageUtils.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciBaseUtil.java 1228 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciDateUtil.java 638 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/WebThreadLocalUtil.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/WebUtil.java 712 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/wrapper/VciQueryWrapperForDO.java 284 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/pom.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/pom.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/CodeApplication.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/constant/FrameWorkLangCodeConstant.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/constant/MdmBtmTypeConstant.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeAllCodeController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeBasicSecController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeButtonController.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyController.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyProcessTempController.java 168 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyTemplateButtonController.java 137 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyValueController.java 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClstemplateController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeFixedValueController.java 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodePhaseattrController.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeRuleController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeTempbuttonController.java 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeTemplatePhaseController.java 160 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeTempphaseController.java 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeButtonUseEnum.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeClassifyProcessUseEnum.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeCutTypeEnum.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeGetValueTypeEnum.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeLevelTypeEnum.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeMapRuleTypeEnum.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeSecLengthTypeEnum.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeSecTypeEnum.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeUseButtonPositionTypeEnum.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/NewAppConstantEnum.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationAuthorityTypeEnum.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationDataFlowTypeEnum.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationParamAndReturnTypeEnum.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationRequestMethodEnum.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationRequestTypeEnum.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/sysIntegrationPushTypeEnum.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/CodeButtonClient.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/CodePhaseattrClient.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/CodeTempbuttonClient.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/CodeTempphaseClient.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/ICodeButtonClient.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/ICodePhaseattrClient.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/ICodeTempbuttonClient.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/ICodeTempphaseClient.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/lifecycle/CodeRuleLC.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeButtonMapper.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyProcessTempMapper.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyTemplateAttrMapper.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyTemplateButtonMapper.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClstemplateMapper.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeFixedValueMapper.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodePhaseAttrMapper.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodePhaseattrMapper.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeTempbuttonMapper.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeTemplatePhaseMapper.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeTempphaseMapper.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CommonsMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeBasicSecService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeButtonService.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyProcessTempService.java 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyService.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyTemplateAttrService.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyValueService.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClstemplateService.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeFixedValueService.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodePhaseattrService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeRuleService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeTempbuttonService.java 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeTempphaseService.java 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeButtonServiceImpl.java 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyProcessTempServiceImpl.java 367 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java 70 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyTemplateAttrServiceImpl.java 133 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyValueServiceImpl.java 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstempattrServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstemplateServiceImpl.java 631 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeFixedValueServiceImpl.java 330 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeKeyattrrepeatServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodePhaseattrServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeRuleServiceImpl.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeTempbuttonServiceImpl.java 335 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeTempphaseServiceImpl.java 467 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeBasicSecWrapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeButtonWrapper.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeFixedValueWrapper.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodePhaseattrWrapper.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeTempbuttonWrapper.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeTempphaseWrapper.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeBasicSecMapper.xml 182 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeButtonMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClassifyProcessTempMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClassifyTemplateAttrMapper.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClassifyTemplateButtonMapper.xml 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClsflowtempMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClstempattrMapper.xml 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClstemplateMapper.xml 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeFixedValueMapper.xml 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodePhaseAttrMapper.xml 156 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodePhaseattrMapper.xml 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeTempbuttonMapper.xml 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeTemplatePhaseMapper.xml 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeTempphaseMapper.xml 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CommonsMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/pom.xml 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/controller/DdlController.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/mapper/DdlMSMapper.java 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/mapper/DdlMapper.java 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/mapper/DdlMySqlMapper.java 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/mapper/DdlOracleMapper.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/mapper/DllMapper.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/mapper/DllMsMapper.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/mapper/DllMySqlMapper.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/mapper/DllOracleMapper.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/mapper/DllSqlLiteMapper.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlBehavior.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMapperProcessStrategy.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMapperProcessor.java 157 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMsMapperProcessor.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMySqlMapperProcessor.java 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlOracleMapperProcessor.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllBehavior.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMapperProcessor.java 173 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMapperProcessorStrategy.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMsMapperProcessor.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMySqlMapperProcessor.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllOracleMapperProcessor.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllSqlLiteMapperProcessor.java 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/service/IDdlService.java 249 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/service/impl/DdlServiceImpl.java 1132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/pom.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/controller/AttributeController.java 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/controller/BtmTypeController.java 153 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/controller/OmdAttributeController.java 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/AttributeClient.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/BtmTypeClient.java 117 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/OmdAttributeClient.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/mapper/AttributeMapper.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/mapper/BtmTypeAttributeMapper.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/mapper/BtmTypeMapper.java 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/mapper/ModifyAttributeInfoMapper.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/mapper/OmdAttributeMapper.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/repeater/DomainRepeater.java 226 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/IAttributeService.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/IBtmTypeAttributeService.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/IBtmTypeService.java 213 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/IModifyAttributeService.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/IOmdAttributeService.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/AttributeServiceImpl.java 230 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/BtmAttributeServiceImpl.java 182 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/BtmTypeServiceImpl.java 624 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/ModifyAtributeServiceImpl.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/OmdAttributeServiceImpl.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/wrapper/AttributeWrapper.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/wrapper/BtmTypeAttributeWrapper.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/wrapper/BtmTypeWrapper.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/wrapper/FiledRangeWrapper.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/wrapper/ModifyAttributeWrapper.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/wrapper/OmdAttributeWrapper.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/wrapper/OmdFiledRangeWrapper.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/resources/mapper/AttributeMapper.xml 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/resources/mapper/OmdAttributeMapper.xml 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/public/index.html
@@ -97,10 +97,6 @@
        åˆæ¬¡åŠ è½½èµ„æºå¯èƒ½éœ€è¦è¾ƒå¤šæ—¶é—´ è¯·è€å¿ƒç­‰å¾…
      </div>
    </div>
    <div class="avue-home__footer">
      <a href="https://bladex.vip" target="_blank">
        https://bladex.vip </a>
    </div>
  </div>
</div>
<!-- built files will be auto injected -->
Source/UBCS-WEB/src/api/code/codeClassifyValue.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
import request from '@/router/axios';
export const treeCodeClassifyValue = (params) => {
  return request({
    url: '/api/ubcs-code/codeClassifyValueController/treeCodeClassifyValue',
    method: 'get',
    params: {
      ...params,
    }
  })
}
export const addSaveCodeClassifyValue = (codeFixedValueDTO) => {
  return request({
    url: '/api/ubcs-code/codeClassifyValueController/addSave',
    method: 'post',
    data: codeFixedValueDTO
  })
}
export const editCodeClassifyValue = (codeFixedValueDTO) => {
  return request({
    url: '/api/ubcs-code/codeClassifyValueController/editSave',
    method: 'put',
    data: codeFixedValueDTO,
  })
}
export const deleteCodeClassifyValue = (codeFixedValueDTO) => {
  return request({
    url: '/api/ubcs-code/codeClassifyValueController/deleteData',
    method: 'delete',
    data: codeFixedValueDTO,
  })
}
export const saveCodeClassifyValueOrder = (data) => {
  return request({
    url: '/api/ubcs-code/codeClassifyValueController/saveOrder',
    method: 'post',
    data: data,
  })
}
Source/UBCS-WEB/src/api/code/codeFixedValue.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
import request from '@/router/axios';
export const gridCodeFixedValue = (current, size, params) => {
  return request({
    url: '/api/ubcs-code/codeFixedValueController/gridCodeFixedValue',
    method: 'get',
    params: {
      ...params,
      current,
      size,
    }
  })
}
export const addSaveCodeFixedValue = (codeFixedValueDTO) => {
  return request({
    url: '/api/ubcs-code/codeFixedValueController/addSave',
    method: 'post',
    data: codeFixedValueDTO,
  })
}
export const editCodeFixedValue = (codeFixedValueDTO) => {
  return request({
    url: '/api/ubcs-code/codeFixedValueController/editSave',
    method: 'put',
    data: codeFixedValueDTO,
  })
}
export const deleteCodeFixedValue = (codeFixedValueDTO) => {
  return request({
    url: '/api/ubcs-code/codeFixedValueController/deleteData',
    method: 'delete',
    data: codeFixedValueDTO,
  })
}
export const saveOrder = (data) => {
  return request({
    url: '/api/ubcs-code/codeFixedValueController/saveOrder',
    method: 'post',
    data: data,
  })
}
Source/UBCS-WEB/src/api/template/templateAttr.js
@@ -15,15 +15,65 @@
    data:data
  })
}
export const  TreeDel = (oid) =>{
//检查是否可以删除
export const  TreeCheckDel = (data) =>{
  return request({
    url:'/api/ubcs-code/codeClassify/checkIsCanDelete',
    method: 'post',
    data:data
  })
}
//删除
export const  TreeDel = (data) =>{
  return request({
    url:'/api/ubcs-code/codeClassify/deleteData',
    method: 'Delete',
    data:data
  })
}
//暂时有问题
export const  TreeObjcet = (oid) =>{
  return request({
    url:'/api/ubcs-code/codeClassify/getObjectByOid',
    method: 'get',
    params:{
      oid
    }
  })
}
//启用
export const  TreeEnable = (data) =>{
  return request({
    url:'/api/ubcs-code/codeClassify/enableData',
    method: 'post',
    data:data
  })
}
//停用
export const  TreeDeactivate = (data) =>{
  return request({
    url:'/api/ubcs-code/codeClassify/disableData',
    method: 'post',
    data:data
  })
}
export const  importClassify = (data) =>{
  return request({
    url:'/api/ubcs-code/codeClassify/importClassify',
    method: 'post',
    data:data
  })
}
//主键获取分类模板属性
export const  gridCodeClassifyTemplateAttr = (oid) =>{
  return request({
    url:'/api/ubcs-code/codeClassifyTempAttrController/gridCodeClassifyTemplateAttr',
    method: 'get',
    params:{
      oid
    }
  })
}
Source/UBCS-WEB/src/components/Tree/classifyTreeform.vue
@@ -1,6 +1,5 @@
<template>
  <avue-form v-model="TreeNewForm" :option="option" @submit="submit">
  </avue-form>
</template>
Source/UBCS-WEB/src/components/Tree/classifyTrees.vue
@@ -6,17 +6,25 @@
        <div>
          <div style="display: flex;justify-content: space-around">
            <el-button plain size="small" type="primary" @click="TreeAdd">添加</el-button>
            <el-button plain size="small" type="primary">修改</el-button>
            <el-button plain size="small" type="primary" @click="TreeEdit">修改</el-button>
            <el-button plain size="small" type="primary" @click="TreeDel">删除</el-button>
            <el-button plain size="small" type="primary">启用</el-button>
            <el-button plain size="small" type="primary" @click="Enable">启用</el-button>
          </div>
          <div style="display: flex;justify-content: space-around;margin-top: 5px;margin-bottom: 5px">
            <el-button plain size="small" type="primary">停用</el-button>
            <el-button plain size="small" type="primary">导出</el-button>
            <el-button plain size="small" type="primary">导入</el-button>
            <el-button plain size="small" type="primary" @click="Deactivate">停用</el-button>
            <el-button plain size="small" type="primary" @click="ExportExcel">导出</el-button>
            <el-button plain size="small" type="primary" @click="ImportExcel">导入</el-button>
            <el-button plain size="small" type="primary" @click="flushed">刷新</el-button>
          </div>
        </div>
        <el-upload
          multiple
          :limit="3"
          :on-preview="handlePreview"
          action="https://jsonplaceholder.typicode.com/posts/"
          :file-list="fileList">
          <el-button size="small" type="primary" @click="importExcel">点击上传</el-button>
        </el-upload>
        <!--        æ ‘节点添加对话框-->
        <el-dialog :title="this.TreeFlag ? '添加分类' :'添加主题库'" :visible.sync="TreeAddFormVisible" append-to-body
                   style="width: 1700px;margin: auto">
@@ -50,12 +58,18 @@
            <el-button type="primary" @click="TreeAddHandler">ç¡® å®š</el-button>
          </div>
        </el-dialog>
        <avue-tree ref="tree" v-model="TreeAvueform" v-loading="loading" :data="Treedata" :option="Treeoption" :defaultExpandAll="false"
                    style="height: 80.5vh;padding-top: 5px;padding-bottom: 30px"
<!--        ä¿®æ”¹å¯¹è¯æ¡†-->
        <el-dialog  title="修改分类" :visible.sync="TreeEditFormVisible" append-to-body>
          <classifyTreeform ref="childForm" :TreeNewForm="TreeList" :nodeList="nodeList"></classifyTreeform>
        </el-dialog>
        <avue-tree ref="tree" v-model="TreeAvueform" v-loading="loading" :data="Treedata" :defaultExpandAll="false"
                   :option="Treeoption"
                   style="height: 80.5vh;padding-top: 5px;padding-bottom: 30px"
                   @node-click=" nodeClick"
                   @check-change="checkChange"
        >
        </avue-tree>
      </basic-container>
    </el-aside>
    <el-main>
@@ -63,25 +77,26 @@
        <!--        å³ä¾§è¡¨æ ¼-->
        <avue-tabs :option="tabOption" @change="handleChange"></avue-tabs>
        <span v-if="type.prop==='tab1'">
            <avue-crud v-model="crudForm" :data="this.Formlist" :option="this.crudTreeOption"
                       style="height: 700px"></avue-crud>
          <avue-crud v-model="crudForm" :data="this.Formlist" :option="this.crudTreeOption"
          ></avue-crud>
          <templatePro></templatePro>
        </span>
        <span v-else-if="type.prop==='tab2'">
<!--          å¦‚果是表格加表单就再次引入这个classifyTreeform组件,里面是表单的内容,没用就删掉。把上面的tab栏也删除了-->
<!--          å¦‚果是表格加表单就再次引入这个classifyTreeform组件,里面是表单的内容,没用就删除掉。把上面tab栏也删除了-->
          <classifyTreeform ref="childForm" :TreeNewForm="TreeList" :nodeList="nodeList"></classifyTreeform>
          <template-pro></template-pro>
           <classifyTreeform ref="childForm" :TreeNewForm="TreeList" :nodeList="nodeList"></classifyTreeform>
        </span>
      </basic-container>
    </el-main>
  </el-container>
</template>
<script>
//这里声明一些菜单组件用法:首先布局分为左侧菜单右侧表格,可能会有右侧Tab栏加表单的情况。所以另外引入了一个右侧表单的组件"classifyTreeform"。
//首先父组件调用子组件菜单,通过provide传递参数。有Treeoption左侧树新增表单项 Treedata左侧树节点配置项 crudTreeOption右侧表格配置项 crudTreeData右侧表格显示内容
//其中表格的配置项直接父传子传递过来就行,直接:option=传递的参数名,里面数据显示的内容因为是和左侧联动的,所以重新一个Formlist,通过点击树节点下标来动态渲染右侧表格,下面方法都有具体注释
//然后再说右侧的表单,专门定义了一个组件,通过父传子再把表单数据TreeList传递过去,传递前在10deCLi1ck方法里面便了处理也是一个联动的效果,表单的配置项在哪个子组件或者父组件写都可以。
import {getAtrrList,TreeSave,TreeDel} from "@/api/template/templateAttr";
import {getAtrrList, TreeSave, TreeDel, TreeCheckDel,TreeObjcet,TreeEnable,TreeDeactivate,importClassify,gridCodeClassifyTemplateAttr} from "@/api/template/templateAttr";
export default {
  name: "classifyTrees.vue",
@@ -91,12 +106,17 @@
  inject: ['crudTreeOption', "crudTreeData"],
  data() {
    return {
      fileList:[],
      FlagObj:{},
      //修改对话框
      TreeEditFormVisible:false,
      //添加对话框
      TreeAddFormVisible: false,
      //当前点击项
      nodeClickList: "",
      // åˆ†ç±»å’Œä¸»é¢˜åº“状态
      //分类和主题库状态
      TreeFlag: false,
      // æ ‘加载
      //树加载
      loading: false,
      TreeAddform: {
        id: "",
@@ -115,13 +135,13 @@
      TreeAvueform: {},
      Treedata: [],
      Treeoption: {
        addBtn:false,
        editBtn:false,
        delBtn:false,
        addBtn: false,
        editBtn: false,
        delBtn: false,
        defaultExpandAll: false,
        menu:false,
        //这个是多选
        multiple:true,
        menu: false,
        // //这个是多选
        // multiple: true,
      },
      crudForm: "",
      //动态切换处理过的表格数据
@@ -161,13 +181,27 @@
  mounted() {
    this.type = this.tabOption.column[0];
    this.getAttr();
    console.log(this.fileList)
  },
  methods: {
    ExportExcel(){
      console.log(this.fileList)
    },
    importExcel(){
    },
    handlePreview(file) {
      debugger
      console.log(file);
      importClassify(file.raw).then(res=>{
        console.log(res)
      })
    },
    //分类树数据处理
    getAttr() {
      getAtrrList().then(res => {
        this.Treedata = res.data;
        this.Treedata.forEach((item, value) => {
        this.Treedata.forEach(() => {
          for (let i = 0; i < this.Treedata.length; i++) {
            this.Treedata[i].value = i;
          }
@@ -199,41 +233,63 @@
      }
    },
    //树节点添加事件
    TreeAddHandler(){
      const data=this.TreeAddform
      this.$set(data,"parentCodeClassifyOid",this.nodeClickList.oid)
    TreeAddHandler() {
      const data = this.TreeAddform
      this.$set(data, "parentCodeClassifyOid", this.nodeClickList.oid)
      console.log(data)
      TreeSave(data).then(res=>{
        console.log(res)
      }).catch(res=>{
        console.log(res)
      TreeSave(data).then(() => {
        this.$message({
          type: 'success',
          message: '添加成功!'
        });
        this.getAttr();
        this.TreeAddFormVisible = false
        this.TreeAddform=""
      }).catch(res => {
        this.$message({
          type: 'warning',
          message: res
        });
      })
    },
    //树节点删除按钮
    TreeDel(){
      const oid=this.nodeClickList.oid
      if(this.nodeClickList !==""){
        this.$confirm('是否删除当前选择的分类,将会把子分类一并删除,如果存在编码数据将不能被删除,是否继续?', '提示', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning',
          customClass: 'my-messagebox',
        }).then(() => {
          if(this.nodeClickList.children.length > 0){
    TreeDel() {
      this.$confirm('是否删除当前选择的分类,将会把子分类一并删除,如果存在编码数据将不能被删除,是否继续?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning',
        customClass: 'my-messagebox',
      }).then(() => {
        TreeCheckDel(this.nodeClickList).then(res => {
          if (res.data.data) {
            TreeDel(this.nodeClickList).then(() => {
              this.$message({
                type: 'success',
                message: '删除成功!'
              });
              this.getAttr();
            }).catch(res => {
              this.$message({
                type: 'warning',
                message: res
              });
            })
          } else {
            this.$confirm('当前数据包含有下级数据,要删除的话会和下级数据一起删除,你确认继续?', '提示', {
              confirmButtonText: '确定',
              cancelButtonText: '取消',
              type: 'warning',
              customClass: 'my-messageboxs',
            }).then(() => {
              TreeDel(JSON.parse(oid)).then(()=>{
              TreeDel(this.nodeClickList).then(() => {
                this.$message({
                  type: 'success',
                  message: '删除成功!'
                });
              }).catch(res=>{
                this.getAttr();
              }).catch(res => {
                this.$message({
                  type: 'error',
                  type: 'warning',
                  message: res
                });
              })
@@ -243,35 +299,95 @@
                message: '已取消删除'
              });
            });
          }else {
            TreeDel(oid).then(()=>{
              this.$message({
                type: 'success',
                message: '删除成功!'
              });
            }).catch(res=>{
              this.$message({
                type: 'error',
                message: res
              });
            })
          }
        }).catch(() => {
          this.$message({
            type: 'info',
            message: '已取消删除'
          });
        })
      }).catch(() => {
        this.$message({
          type: 'info',
          message: '已取消删除'
        });
      });
    },
    //修改回填
    TreeEdit(){
      if(this.nodeClickList == ""){
        this.$message({
          type: 'warning',
          message:'请先从树上选择一条数据!'
        });
      }else {
        this.TreeEditFormVisible=true
      }
    },
    //树刷新
    flushed() {
      this.loading = true
      this.getAttr()
      setTimeout(() => {
        this.loading = false;
        this.nodeClickList = ""
      }, 600);
      console.log(this.fileList)
      // this.loading = true
      // this.getAttr()
      // setTimeout(() => {
      //   this.loading = false;
      //   this.nodeClickList = ""
      // }, 600);
    },
    //启用和停用都先判断状态
    //启用
    Enable(){
      if(this.FlagObj.lcStatus == "Enabled"){
        this.$message({
          type: 'warning',
          message: '当前分类不是停用状态'
        });
      }else {
        this.$confirm('是否将子分类一并启用?', '提示', {
          confirmButtonText: '是',
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
          TreeEnable(this.nodeClickList).then((res)=>{
            console.log(res)
            this.$message({
              type: 'success',
              message: '启用成功!'
            });
            this.getAttr()
          })
        }).catch(() => {
          this.$message({
            type: 'info',
            message: '已取消启用'
          });
        });
      }
    },
    //停用
    Deactivate(){
      if(this.FlagObj.lcStatus ==="Disabled"){
        this.$message({
          type: 'warning',
          message: '当前分类不是启用状态!'
        });
      }else {
        this.$confirm('是否停用当前分类,停用后,子分类也将不能被使用,是否继续?', '提示', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
          TreeDeactivate(this.nodeClickList).then((res)=>{
            console.log(res)
            this.$message({
              type: 'success',
              message: '停用成功!'
            });
            this.nodeClickList['flag']=true;
            this.getAttr()
          })
        }).catch(() => {
          this.$message({
            type: 'info',
            message: '已取消停用'
          });
        });
      }
    },
    nodeClick(data) {
      //点击左侧树右侧动态的方法
@@ -281,7 +397,15 @@
      //   return item.value == data.value
      // });
      this.nodeClickList = data
      console.log(data)
      TreeObjcet(data.oid).then(res=>{
        console.log("object",res)
        this.FlagObj=res.data.data
      })
      gridCodeClassifyTemplateAttr(data.oid).then(res=>{
        console.log(res)
      }).catch(res=>{
        console.log(res)
      })
    },
    //tab栏切换
    handleChange(column) {
@@ -291,8 +415,6 @@
    checkChange(val) {
      console.log(val)
    },
  }
}
</script>
@@ -302,7 +424,6 @@
  display: flex;
  flex-wrap: wrap; /* è®¾ç½®å¯æ¢è¡Œï¼Œä»¥ä¾¿åœ¨å°å±å¹•设备上使用多行布局 */
}
.el-form-item {
  flex: 1; /* è®¾ç½®å…ƒç´ å æ®1份空间 */
  margin-right: 1rem; /* è®¾ç½®å…ƒç´ ä¹‹é—´çš„间距 */
Source/UBCS-WEB/src/components/code-dialog-page/formulaEditor.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,705 @@
<template>
  <!-- ç¬¬äºŒå±‚对话框,属性码段,公式编辑框弹窗 -->
  <el-dialog
    title="公式编辑框"
    append-to-body
    :visible.sync="isShowformulaEdit"
    @close="closeFormulaEdit"
    width="78%"
    style="height: 150vh; margin-top: -13vh; overflow: hidden">
    <div style="overflow-y: auto; height: 80vh">
      <el-row>
        <!-- å·¦ä¾§å…¬å¼å†…容 -->
        <el-col :span="14" style="overflow: hidden">
          <el-card
            class="box-card"
            style="height: 33vh; overflow-y: auto; overflow-x: auto">
            <div slot="header" class="clearfix">
              <span style="font-size: medium">公式内容</span>
              <el-button
                type="primary"
                size="mini"
                style="float: right"
                @click="saveFormulaContent">
                ç¡®å®š
              </el-button>
              <el-button
                type="warning"
                size="mini"
                style="margin-right: 10px; float: right"
                @click="resetFormulaContent">
                æ¸…空内容
              </el-button>
            </div>
            <div class="text item">
              <el-input
                type="textarea"
                :rows="5"
                style="width: 560px"
                v-model="formulaContent"
              ></el-input>
            </div>
          </el-card>
        </el-col>
        <!-- å³ä¾§è¿ç®—符 -->
        <el-col :span="10">
          <el-card
            class="box-card"
            style="height: 33vh;">
            <div slot="header" class="clearfix">
              <span style="font-size: medium">运算符</span>
            </div>
            <div class="text item">
              <div class="formula-editor">
                <div class="one">
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '7' })"
                  >
                    7
                  </button>
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '8' })"
                  >
                    8
                  </button>
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '9' })"
                  >
                    9
                  </button>
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '/' })"
                  >
                    /</button
                  ><br />
                </div>
                <div class="one">
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '4' })"
                  >
                    4
                  </button>
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '5' })"
                  >
                    5
                  </button>
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '6' })"
                  >
                    6
                  </button>
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '*' })"
                  >
                    *</button
                  ><br />
                </div>
                <div class="one">
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '1' })"
                  >
                    1
                  </button>
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '2' })"
                  >
                    2
                  </button>
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '3' })"
                  >
                    3
                  </button>
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '>' })"
                  >
                    -</button
                  ><br />
                </div>
                <div class="one">
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '0' })"
                  >
                    0
                  </button>
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '00' })"
                  >
                    00
                  </button>
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '.' })"
                  >
                    .
                  </button>
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '+' })"
                  >
                    +</button
                  ><br />
                </div>
                <div class="one">
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '->' })"
                  >
                    ->
                  </button>
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '==' })"
                  >
                    ==
                  </button>
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '(' })"
                  >
                    (
                  </button>
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: ')' })"
                  >
                    )</button
                  ><br />
                </div>
                <div class="one">
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '<' })"
                  >
                    &lt;
                  </button>
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '>' })"
                  >
                    &gt;
                  </button>
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '<=' })"
                  >
                    &lt;=
                  </button>
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '>=' })"
                  >
                    &gt;=
                  </button>
                </div>
              </div>
            </div>
          </el-card>
        </el-col>
      </el-row>
      <el-row>
        <!-- å·¦ä¾§å…¬å¼é€‰æ‹©åŒºåŸŸ -->
        <el-col :span="14" style="overflow: hidden">
          <el-card
            class="box-card"
            style="height: 40vh; overflow-y: auto; overflow-x: auto"
          >
            <div slot="header" class="clearfix">
              <span style="font-size: medium">公式选择</span>
            </div>
            <div class="text item">
              <el-tabs v-model="activeName">
                <el-tab-pane label="常用" name="first">
                  <el-table
                    :data="commonFormulaTableData"
                    :show-header="false"
                    @row-dblclick="dbClickAddContent"
                    style="width: 100%"
                  >
                    <el-table-column prop="formula" width="300">
                    </el-table-column>
                    <el-table-column prop="desc" width="300"> </el-table-column>
                  </el-table>
                </el-tab-pane>
                <el-tab-pane label="财务" name="second">
                  <el-table
                    :data="financialFormulaTableData"
                    @row-dblclick="dbClickAddContent"
                    :show-header="false"
                    style="width: 100%"
                  >
                    <el-table-column prop="formula" width="300">
                    </el-table-column>
                    <el-table-column prop="desc" width="300"> </el-table-column>
                  </el-table>
                </el-tab-pane>
                <el-tab-pane label="日期" name="third">
                  <el-table
                    :data="dateFormulaTableData"
                    :show-header="false"
                    @row-dblclick="dbClickAddContent"
                    style="width: 100%"
                  >
                    <el-table-column prop="formula" width="300">
                    </el-table-column>
                    <el-table-column prop="desc" width="300"> </el-table-column>
                  </el-table>
                </el-tab-pane>
                <el-tab-pane label="数学" name="fourth">
                  <el-table
                    :data="mathFormulaTableData"
                    :show-header="false"
                    @row-dblclick="dbClickAddContent"
                    style="width: 100%"
                  >
                    <el-table-column prop="formula" width="300">
                    </el-table-column>
                    <el-table-column prop="desc" width="300"> </el-table-column>
                  </el-table>
                </el-tab-pane>
                <el-tab-pane label="其他" name="five">
                  <el-table
                    :data="otherFormulaTableData"
                    @row-dblclick="dbClickAddContent"
                    :show-header="false"
                    style="width: 100%"
                  >
                    <el-table-column prop="formula" width="300">
                    </el-table-column>
                    <el-table-column prop="desc" width="300"> </el-table-column>
                  </el-table>
                </el-tab-pane>
              </el-tabs>
            </div>
          </el-card>
        </el-col>
        <!-- å³ä¾§å˜é‡é€‰æ‹©åŒºåŸŸ -->
        <el-col :span="10" style="overflow: hidden">
          <el-card
            class="box-card"
            style="height: 40vh; overflow-y: auto; overflow-x: auto"
          >
            <div slot="header" class="clearfix">
              <span style="font-size: medium">变量</span>
            </div>
            <div class="text item">
              <el-tabs v-model="activeNameAttr">
                <el-tab-pane label="本场景变量" name="first">
                  <el-table
                    :data="thisSceneTableData"
                    @row-dblclick="dbClickAddContent"
                    :show-header="false"
                    style="width: 100%"
                  >
                    <el-table-column prop="formula" width="40">
                    </el-table-column>
                    <el-table-column prop="desc" width="100"> </el-table-column>
                  </el-table>
                </el-tab-pane>
                <el-tab-pane label="系统变量" name="second">
                  <el-table
                    :data="systemVariableTableData"
                    @row-dblclick="dbClickAddContent"
                    :show-header="false"
                    style="width: 100%"
                  >
                    <el-table-column prop="formula" width="150">
                    </el-table-column>
                    <el-table-column prop="desc" width="150"> </el-table-column>
                  </el-table>
                </el-tab-pane>
              </el-tabs>
            </div>
          </el-card>
        </el-col>
      </el-row>
    </div>
  </el-dialog>
</template>
  <script>
export default {
  name: "formulaEditor",
  props: {
    //本场景变量
    thisSceneTableData: {
      type: Array,
    },
     //系统变量
    systemVariableTableData: {
      type: Array,
    },
  },
  data() {
    return {
      isShowformulaEdit: false, //公式编辑框对话框显示控制
      formulaContent: '', //公式编辑框内容,方便值的回传
      activeName: 'first', //当前活动的tab
      activeNameAttr: 'first', //变量中的当前活动tab
      //常用公式
      commonFormulaTableData: [
      {
          formula: "if(compare,trueResult,falseResult)",
          desc: "如果compare的表达式为true,则执行trueResult的表达式,否则执行flaseResult.例如if(3>2,2*(3+2),3/(2-4)),值等于10",
      },
      {
          formula: "sum(douber1,douber2)",
          desc: "两个格式为douber的参数求和",
      },
      {
          formula: "sub(douber1,douber2)",
          desc: "格式为douber的参数douber1减去格式为douber的参数douber2",
      },
      {
          formula: "mul(douber1,douber2)",
          desc: "两个格式为douber的参数相乘",
      },
      {
          formula: "div(douber1,douber2)",
          desc: "格式为douber的参数douber1除以格式为douber的参数douber2.当douber2等于0的时候,返回0;如果除不尽的时候保留10位小数",
      },
      {
          formula: "mod(int,int)",
          desc: "求余数",
      },
      {
          formula: "toInt(string)",
          desc: "转换为int格式",
      },
      {
          formula: "doubleRound(string,count)",
          desc: "处理douber的小数位数,count表示小数位数",
      },
      {
          formula: "zeroIfNull(value)",
          desc: '如果参数的值为null或者"",将返回0',
      },
      {
          formula: "endsWith(string,str1)",
          desc: "字符串string是不是以str1结尾",
      },
      {
          formula: "startsWith(string,str1)",
          desc: "字符串string是否以str1开头",
      },
      {
          formula: "charAt(string,index)",
          desc: "获取字符串string中第index位置的字符,如果长度小于index,则返回",
      },
      {
          formula: "equalsIgnoreCase(str1,str2)",
          desc: "字符串str1和字符串str2是否相等",
      },
      {
          formula: "indexOf(str1,str2)",
          desc: "字符串str2在字符串str1中首次出现的位置",
      },
      {
          formula: "isEmpty(str1)",
          desc: "参数str1是否为空,其中null这个字符串也表示为空",
      },
      {
          formula: "lastIndexOf(str1,str2)",
          desc: "字符串str2在字符串str1中最后出现的位置",
      },
      {
          formula: "leftStr(str1,index)",
          desc: "获取index位置左侧的所有字符",
      },
      {
          formula: "rightStr(str1,str2)",
          desc: "获取index位置右侧的所有字符",
      },
      {
          formula: "length(str1)",
          desc: "参数str1的长度",
      },
      {
          formula: "mid(str1,start,end)",
          desc: "获取str1的从start到end直接的字符串,出现异常时返回",
      },
      {
          formula: "tolowercase(str1)",
          desc: "将字符串str1转为小写",
      },
      {
          formula: "touppercase(str1)",
          desc: "将字符串str1转为大写",
      },
      {
          formula: "trimzero(str1)",
          desc: "去除字符串str1中的0",
      },
      {
          formula: "MD5(str1)",
          desc: "将字符串进行MD5加密",
      },
      ],
      //财务公式
      financialFormulaTableData: [
      {
          formula: "toChinese(value)",
          desc: "将阿拉伯数字转为为汉字大写方式",
      },
      {
          formula: "getChineseCurrency(value)",
          desc: "将阿拉伯数字转为为汉字金额大写方式,与tochiness的区别是这个会显示元、角、分",
      },
      {
          formula: "setThmark(value)",
          desc: "为参数value设置千分位",
      },
      ],
      //日期公式
      dateFormulaTableData: [
      {
          formula: "compareDate(d1,d2)",
          desc: "对比参数d1,d2的大小。d1,d2为yyyy-MM-dd格式的日期字符串",
      },
      {
          formula: "nowDate()",
          desc: "获取当前日期",
      },
      {
          formula: "chinaDate(d1)",
          desc: "将时间转换为农历,d1是yyyy-MM-dd格式的日期字符串",
      },
      {
          formula: "dateAdd(d1,count)",
          desc: "在d1的基础上添加count天,d1为yyyy-MM-dd HH:mm:ss格式的时间字符串",
      },
      {
          formula: "dateBalanceYear(sourceDate,targetDate,false)",
          desc: '计算相差的年份,比如计算年龄,targetDate为""表示当前时间,第三个参数为true表示有多余的月份或者天数时,就加1;',
      },
      {
          formula: "dateBalanceDay(sourceDate,targetDate)",
          desc: '计算相差的天数,targetDate为""表示当前时间',
      },
      {
          formula: "dateformat(d1,format)<",
          desc: "将当前的日期(时间)字符串转为指定的字符串,如果format的内容有空格,请使用&代替",
      },
      {
          formula: "nowDatetime()",
          desc: "获取当前日期和时间。格式为yyyy-MM-dd HH:mm:ss",
      },
      {
          formula: "dayOf(d1)",
          desc: "获取格式为yyyy-MM-dd的日期的天数",
      },
      {
          formula: "nowMon()",
          desc: "获取当前的月份,格式为MM",
      },
      {
          formula: "monOf(d1)",
          desc: "获取日期d1的月份数",
      },
      {
          formula: "nowTime()",
          desc: "获取当前时间,格式为HH:mm:ss",
      },
      {
          formula: "nowYear()",
          desc: "获取年份,格式为yyyy",
      },
      {
          formula: "yearOf()",
          desc: "获取时间d1的年份",
      },
      ],
      //数学公式
      mathFormulaTableData: [
      {
          formula: "abs(value)",
          desc: "求参数value的绝对值,value必须为数字格式",
      },
      {
          formula: "acos(value)",
          desc: "求参数value的反余弦,value必须为数字格式",
      },
      {
          formula: "asin(value)",
          desc: "求参数value的反正弦,value必须为数字格式",
      },
      {
          formula: "atan(value)",
          desc: "求参数value的反正切,value必须为数字格式",
      },
      {
          formula: "cbrt(value)",
          desc: "求参数value的立方根,value必须为数字格式",
      },
      {
          formula: "ceil(value)",
          desc: "返回不大于参数value的最小整数,例如ceil(1.7)就等于2,value必须为数字格式",
      },
      {
          formula: "cos(value)",
          desc: "求参数value的余弦值,value必须为数字格式",
      },
      {
          formula: "cosh(value)",
          desc: "求参数value的双曲余弦值,value必须为数字格式",
      },
      {
          formula: "exp(n)",
          desc: "欧拉数 e çš„n次幂,n必须为数字格式",
      },
      {
          formula: "floor(n)",
          desc: "欧拉数 e çš„n次幂减1,n必须为数字格式",
      },
      {
          formula: "log(value)",
          desc: "返回不小于参数value的最大整数,例如floor(1.7)等于1,n必须为数字格式",
      },
      {
          formula: "log10(value)",
          desc: "自然对数,value必须为数字格式",
      },
      {
          formula: "log1p(value)",
          desc: "计算底数为 10 çš„对数,value必须为数字格式",
      },
      {
          formula: "random()",
          desc: "返回参数与 1 ä¹‹å’Œçš„自然对数,value必须为数字格式",
      },
      {
          formula: "rint(value)",
          desc: "返回一个伪随机数,该值大于等于 0.0 ä¸”小于 1.0",
      },
      {
          formula: "round(value)",
          desc: "返回其值最接近参数并且是整数的 double å€¼ã€‚如果两个整数的 double å€¼éƒ½åŒæ ·æŽ¥è¿‘,那么结果取偶数。特殊情况是:如果参数值是整数,那么结果就是该参数。如果参数是 NaN æˆ–无穷大或正零或负零,那么结果与参数相同",
      },
      {
          formula: "signum(value)",
          desc: "符号函数;如果参数为 0,则返回 0;如果参数大于 0, åˆ™è¿”回 1.0;如果参数小于 0,则返回 -1.0",
      },
      {
          formula: "sin(value)",
          desc: "求参数value的正弦值,value必须为数字格式",
      },
      {
          formula: "sinh(value)",
          desc: "求参数value的双曲正弦值,value必须为数字格式",
      },
      {
          formula: "tan(value)",
          desc: "求参数value的正切值,value必须为数字格式",
      },
      {
          formula: "tanh(value)",
          desc: "求参数value的双曲正切值,value必须为数字格式",
      },
      {
          formula: "max(v1,v2)",
          desc: "求两个数中的较大的值,v1,v2都必须为数字格式,例如max(3.2,3)就等于3.2",
      },
      {
          formula: "min(v1,v2)",
          desc: "求两个数中的较小的值,v1,v2都必须为数字格式,例如max(3.2,3)就等于3",
      },
      {
          formula: "sqrt(value)",
          desc: "求平方根",
      },
      ],
      //其他公式
      otherFormulaTableData: [
      {
          formula: "getcolvalue(servername,tablename,fieldname,pkField,pkValue)",
          desc: "查询servername中tablename数据库表中fieldname字段的值,pkfield表示主键的字段名称,pkValue表示主键的值,serverName现在默认为localServer",
      },
      ],
    };
  },
  methods: {
    //双击添加公式内容
    dbClickAddContent(row){
      //console.log(row.formula);
      this.formulaContent = this.formulaContent + row.formula;
    },
    //清空公式内容
    resetFormulaContent(){
      this.formulaContent = '';
    },
    //关闭时清空上次公式内容
    closeFormulaEdit(){
      this.resetFormulaContent();
    },
    //编辑完成公式内容回显并关闭对话框
    saveFormulaContent(){
      //console.log(this.formulaContent);
      if(this.formulaContent.trim == null || this.formulaContent.trim == ''){
          this.$message.warning("公式内容不能为空!");
          return;
      }
      //公式内容回显
      this.$emit('updateFormulaContent', this.formulaContent) // è§¦å‘update:data将子组件值传递给父组件
      this.isShowformulaEdit = false;
    },
  },
};
</script>
<style scoped>
  .formula-editor{
    margin-top: -15px;
    margin-left: 4vw;
    /*设置弹性盒子*/
    display: flex;
    /*子元素以竖列排列,一共有6列*/
    flex-direction:column;
    width: 310px;
    height: 185px;
    /*左右均匀排列*/
    justify-content: space-around;
    /*上下均匀排列*/
    align-items: center;
  }
  .one{
    display: flex;
    /*以行排列*/
    flex-direction: row;
    width: 223px;
    height: 80px;
    justify-content: space-between;
    align-items: center;
    }
  .formula-editor-btn-sm {
    width: 55px;
    height: 29px;
    background: rgb(153, 214, 240);
    border-radius: 10%;
  }
</style>
Source/UBCS-WEB/src/const/code/classifyTreeOptionDialog.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
import { treeTopCodeClassify } from "@/api/code/codeclassify";
export default {
    nodeKey: 'oid',
    border: true,
    lazy: true,
    treeLoad: function (node, resolve) {
      // const parentId = (node.level === 0) ? 0 : node.data.id;
      treeTopCodeClassify({"queryAllLevel": true,"loadType": "all","multipleSelect": false}).then( res=> {
        resolve(res.data.map(classifyitem => {
          let item = {
            "hasChildren": false,
            "oid": classifyitem.oid,
            "key": classifyitem.oid,
            "parentId": 0,
            "title": classifyitem.text,
            "value": classifyitem.oid,
          }
          return {
            ...item,
            leaf: !item.hasChildren
          }
        }))
      });
    },
    addBtn: false,
    menu: false,
    size: 'small',
    props: {
      labelText: '标题',
      label: 'title',
      value: 'value',
      children: 'children'
    }
}
Source/UBCS-WEB/src/const/code/classisyValueTreeDialog.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
export default {
    nodeKey: 'oid',
    border: true,
    lazy: false,
    defaultExpandAll: true,
    treeLoad: function (node, resolve) {
      // const parentId = (node.level === 0) ? 0 : node.data.id;
      // treeCodeClassifyValue(condtionData).then( res=> {
      //   console.log(res);
      //   resolve(res.data.map(classifyValueItem => {
      //     let item = {
      //       "hasChildren": item.children!=null,
      //       "oid": classifyValueItem.oid,
      //       "key": classifyValueItem.oid,
      //       "parentId": classifyValueItem.parentclassifyvalueoid,
      //       "title": classifyValueItem.text,
      //       "value": classifyValueItem.oid,
      //     }
      //     return {
      //       ...item,
      //       leaf: item.hasChildren
      //     }
      //   }))
      // });
    },
    addBtn: false,
    menu: false,
    size: 'small',
    props: {
      labelText: 'text',
      label: 'text',
      key: 'oid',
      value: 'oid',
      parentId: 'parentId',
      parentBtmName: 'parentBtmName',
      parentName: 'parentName',
      codeclassifysecoid: 'codeclassifysecoid',
      children: 'children'
    }
}
Source/UBCS-WEB/src/const/code/cloneBasicDialogOption.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
export default {
    height:"190px",
    calcHeight: 30,
    tip: false,
    editBtn: false,
    addBtn: false,
    delBtn: false,
    searchShow: false,
    searchBtn: false,
    searchMenuSpan: 5,
    disablePage: false,
    border: true,
    index: true,
    viewBtn: false,
    selection: true,
    menu: false,
    refreshBtn: false,
    columnBtn: false,
    dialogClickModal: false,
    highlightCurrentRow: true, //行选中时高亮
    column: [
      {
        label: "码段编号",
        prop: "id",
        search: false,
        searchLabelWidth: 80,
        searchSpan: 5,
      },
      {
        label: "码段名称",
        prop: "name",
        search: false,
        searchLabelWidth: 80,
        searchSpan: 5,
      },
      {
        label: "码段描述",
        prop: "description",
        search: false,
        span: 24,
      },
      {
        label: "码段类型",
        prop: "secTypeText",
      }
    ]
}
Source/UBCS-WEB/src/const/code/cloneCodeRuleDialogOption.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
export default {
    height:"210px",
    calcHeight: 30,
    tip: false,
    editBtn: false,
    addBtn: false,
    delBtn: false,
    searchShow: false,
    searchMenuSpan: 5,
    disablePage: true,
    border: true,
    index: true,
    viewBtn: false,
    selection: true,
    menu: false,
    refreshBtn: false,
    columnBtn: false,
    dialogClickModal: false,
    highlightCurrentRow: true, //行选中时高亮
    column: [
      {
        label: "编号",
        prop: "id",
        search: false,
      },
      {
        label: "名称",
        prop: "name",
        search: false,
      },
      {
        label: "描述",
        prop: "description",
        search: false,
        type: "textarea",
        span: 24,
      },
      {
        label: "状态",
        prop: "lcStatusText",
        search: false,
      },
    ]
  }
Source/UBCS-WEB/src/const/code/cloneOption.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
export default {
    height:'350px',
    calcHeight: 30,
    tip: false,
    editBtn: false,
    addBtn: false,
    delBtn: false,
    searchShow: false,
    searchMenuSpan: 5,
    disablePage: false,
    border: true,
    index: true,
    viewBtn: false,
    selection: false,
    menu:true,
    refreshBtn: false,
    columnBtn: false,
    dialogClickModal: false,
    highlightCurrentRow: true, //行选中时高亮
    column: [
      {
        label: "码段编号",
        prop: "id",
        search: false,
        searchLabelWidth: 80,
        searchSpan: 5,
      },
      {
        label: "码段名称",
        prop: "name",
        search: false,
        searchLabelWidth: 80,
        searchSpan: 5,
      },
      {
        label: "码段描述",
        prop: "description",
        search: false,
        span: 24,
      },
      {
        label: "码段类型",
        prop: "secTypeText",
        search: false,
      }
    ]
}
Source/UBCS-WEB/src/const/code/fixedValueMgrDialog.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
export default {
    //width: '70%',
    height: '60vh',
    calcHeight: 30,
    tip: false,
    editBtn: false,
    addBtn: false,
    delBtn: false,
    searchShow: false,
    searchMenuSpan: 5,
    border: true,
    disablePage: false,
    index: true,
    viewBtn: false,
    selection: false,
    menu: true,
    refreshBtn: false,
    columnBtn: false,
    dialogClickModal: false,
    highlightCurrentRow: true,
    column: [
      {
        label: "码值",
        prop: "id",
        search: false,
        searchLabelWidth: 100,
        searchSpan: 7,
      },
      {
        label: "描述",
        prop: "description",
        search: false,
        searchLabelWidth: 100,
        searchSpan: 7,
      },
    ]
}
Source/UBCS-WEB/src/const/code/parentClassifyParentOptionDialog.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,38 @@
export default {
    height: '40vh',
    calcHeight: 30,
    tip: false,
    editBtn: false,
    addBtn: false,
    searchShow: true,
    searchMenuSpan: 5,
    border: true,
    disablePage: false,
    index: true,
    viewBtn: false,
    selection: true,
    menu: false,
    dialogClickModal: false,
    highlightCurrentRow: true,
    column: [
      {
        label: "英文名称",
        prop: "id",
        search: true,
        searchLabelWidth: 100,
        searchSpan: 7,
      },
      {
        label: "中文名称",
        prop: "name",
        search: true,
        searchLabelWidth: 100,
        searchSpan: 7,
      },
      {
        label: "描述",
        prop: "description",
        search: false,
      },
    ]
}
Source/UBCS-WEB/src/const/code/referBtmDialog.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,38 @@
export default {
    height: '40vh',
    calcHeight: 30,
    tip: false,
    editBtn: false,
    addBtn: false,
    searchShow: true,
    searchMenuSpan: 5,
    border: true,
    disablePage: false,
    index: true,
    viewBtn: false,
    selection: true,
    menu: false,
    dialogClickModal: false,
    highlightCurrentRow: true,
    column: [
      {
        label: "业务类型编号",
        prop: "id",
        search: true,
        searchLabelWidth: 100,
        searchSpan: 7,
      },
      {
        label: "业务类型名称",
        prop: "name",
        search: true,
        searchLabelWidth: 100,
        searchSpan: 7,
      },
      {
        label: "描述",
        prop: "description",
        search: false,
      },
    ]
}
Source/UBCS-WEB/src/const/code/selectAttrOptionDialog.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,42 @@
export default {
    calcHeight: 30,
    tip: false,
    editBtn: false,
    addBtn: false,
    searchShow: true,
    searchMenuSpan: 5,
    disablePage: false,
    border: true,
    index: true,
    viewBtn: false,
    selection: true,
    menu: false,
    dialogClickModal: false,
    highlightCurrentRow: true,
    column: [
      {
        label: "属性英文名称",
        prop: "id",
        search: true,
        searchLabelWidth: 100,
        searchSpan: 7,
      },
      {
        label: "属性中文名称",
        prop: "name",
        search: true,
        searchLabelWidth: 100,
        searchSpan: 7,
      },
      {
        label: "属性长度",
        prop: "attrLength",
        search: false,
      },
      {
        label: "属性类型",
        prop: "attributeDataTypeText",
        search: false,
      }
    ]
}
Source/UBCS-WEB/vue.config.js
@@ -26,8 +26,8 @@
    proxy: {
      '/api': {
        //本地服务接口地址
        // target: 'http://192.168.0.103:37000/',
        target: 'http://dev.vci-tech.com:37000',
        target: 'http://192.168.0.108:37000/',
        // target: 'http://dev.vci-tech.com:37000',
        //远程演示服务地址,可用于直接启动项目
        //target: 'https://saber.bladex.vip/api',
        ws: true,
Source/UBCS/pom.xml
@@ -19,6 +19,7 @@
        <spring.boot.version>2.7.1</spring.boot.version>
        <spring.cloud.version>2021.0.3</spring.cloud.version>
        <spring.platform.version>Cairo-SR8</spring.platform.version>
        <maven.plugin.version>3.8.1</maven.plugin.version>
        <!-- æŽ¨èä½¿ç”¨Harbor -->
        <docker.registry.url>192.168.0.157</docker.registry.url>
@@ -87,6 +88,17 @@
        </dependency>
    </dependencies>
    <!--  jar部署到私服地址  -->
    <distributionManagement>
        <repository>
            <id>rdc-releases</id>
            <url>http://dev.yunkeruida.top:9000/repository/maven-releases/</url>
        </repository>
        <snapshotRepository>
            <id>rdc-snapshots</id>
            <url>http://dev.yunkeruida.top:9000/repository/maven-snapshots/</url>
        </snapshotRepository>
    </distributionManagement>
    <build>
        <finalName>${project.name}</finalName>
        <resources>
@@ -173,10 +185,11 @@
                    <skip>true</skip>
                </configuration>
            </plugin>
            <plugin>
            <!--springboot打包插件会去找每个模块下面的启动类,因为当前有不需要启动类的需求,所以注释掉,使用mvn的打包插件-->
            <!--<plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            </plugin>-->
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${maven.plugin.version}</version>
Source/UBCS/ubcs-common/pom.xml
@@ -28,6 +28,12 @@
            <artifactId>blade-core-auto</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-core</artifactId>
            <version>3.5.2</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>
    <build>
Source/UBCS/ubcs-common/src/main/java/com/vci/ubcs/common/constant/LauncherConstant.java
@@ -41,19 +41,19 @@
     * nacos dev åœ°å€
     */
    //String NACOS_DEV_ADDR = "dev.vci-tech.com:38848";
    String NACOS_DEV_ADDR = "192.168.93.161:38848";
    String NACOS_DEV_ADDR = "192.168.93.185:38848";
    /**
     * nacos prod åœ°å€
     */
    //String NACOS_PROD_ADDR = "dev.vci-tech.com:38848";
    String NACOS_PROD_ADDR = "192.168.93.129:38848";
    String NACOS_PROD_ADDR = "127.0.0.1:8848";
    /**
     * nacos test åœ°å€
     */
    //String NACOS_TEST_ADDR = "dev.vci-tech.com:38848";
    String NACOS_TEST_ADDR = "192.168.93.133:38848";
    String NACOS_TEST_ADDR = "127.0.0.1:8848";
    /**
     * sentinel dev åœ°å€
Source/UBCS/ubcs-common/src/main/java/com/vci/ubcs/common/utils/CommonUtil.java
@@ -23,4 +23,8 @@
 */
public class CommonUtil {
}
Source/UBCS/ubcs-common/src/main/java/com/vci/ubcs/common/utils/PageDO2PageVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package com.vci.ubcs.common.utils;
import com.baomidou.mybatisplus.core.metadata.IPage;
public class PageDO2PageVO {
    /**
     * pagedo转为pagevo,里面的分页参数需要转换
     * @param doList pageDO对象
     * @param pageList pageVO对象
     * @param <T> DO对象类型
     * @param <R> VO对象类型
     * @return
     */
    public static <T,R> IPage<R> pageDO2PageVO(IPage<T> doList,IPage<R> pageList){
        pageList.setTotal(doList.getTotal());
        pageList.setSize(doList.getSize());
        pageList.setCurrent(doList.getCurrent());
        pageList.setPages(doList.getPages());
        return pageList;
    }
}
Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/controller/FlowManagerController.java
@@ -63,7 +63,6 @@
        return R.data(pages);
    }
    /**
     * å˜æ›´æµç¨‹çŠ¶æ€
     *
Source/UBCS/ubcs-service-api/pom.xml
@@ -23,6 +23,8 @@
        <module>ubcs-user-api</module>
        <module>ubcs-code-api</module>
        <module>ubcs-omd-api</module>
        <module>ubcs-util-api</module>
        <module>ubcs-ddl-api</module>
    </modules>
    <dependencies>
Source/UBCS/ubcs-service-api/ubcs-code-api/pom.xml
@@ -13,16 +13,16 @@
    <version>${bladex.project.version}</version>
    <dependencies>
<!--        <dependency>-->
<!--            <groupId>com.thoughtworks.xstream</groupId>-->
<!--            <artifactId>xstream</artifactId>-->
<!--        </dependency>-->
<!--        <dependency>-->
<!--            <groupId>com.vci</groupId>-->
<!--            <artifactId>vci-starter-poi</artifactId>-->
<!--            <version>1.0-SNAPSHOT</version>-->
<!--            <scope>compile</scope>-->
<!--        </dependency>-->
        <!--<dependency>
            <groupId>com.thoughtworks.xstream</groupId>
            <artifactId>xstream</artifactId>
        </dependency>
        <dependency>
            <groupId>com.vci</groupId>
            <artifactId>vci-starter-poi</artifactId>
            <version>1.0-SNAPSHOT</version>
            <scope>compile</scope>
        </dependency>-->
        <!--<dependency>
            <groupId>com.vci</groupId>
@@ -78,6 +78,13 @@
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
        </dependency>
        <dependency>
            <groupId>com.vci.ubcs</groupId>
            <artifactId>ubcs-util-api</artifactId>
            <version>3.0.1.RELEASE</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>
    <packaging>jar</packaging>
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/bo/TreeWrapperOptions.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeBasicSecDTO.java
@@ -19,12 +19,12 @@
    /**
     * ç æ®µç±»åž‹
     */
    private String sectype;
    private String secType;
    /**
     * ç æ®µç±»åž‹æ˜¾ç¤ºæ–‡æœ¬
     */
    private String sectypeText;
    private String secTypeText;
    /**
     * ç¼–码规则主键
@@ -243,23 +243,23 @@
    /**
     * èŽ·å– ç æ®µç±»åž‹
     */
    public String getSectype (){
        return sectype;
    public String getSecType (){
        return secType;
    }
    /**
     * è®¾ç½® ç æ®µç±»åž‹
     */
    public void setSectype (String sectype){
        this.sectype = sectype;
    public void setSecType (String sectype){
        this.secType = sectype;
    }
    public String getSectypeText() {
        return sectypeText;
    public String getSecTypeText() {
        return secTypeText;
    }
    public void setSectypeText(String sectypeText) {
        this.sectypeText = sectypeText;
    public void setSecTypeText(String secTypeText) {
        this.secTypeText = secTypeText;
    }
    /**
@@ -620,8 +620,8 @@
    @Override
    public String toString() {
        return "CodeBasicSecDTO{" +
                "sectype='" + sectype + '\'' +
                ", sectypeText='" + sectypeText + '\'' +
                "sectype='" + secType + '\'' +
                ", secTypeText='" + secTypeText + '\'' +
                ", pkCodeRule='" + pkCodeRule + '\'' +
                ", orderNum=" + orderNum +
                ", referBtmId='" + referBtmId + '\'' +
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeFixedValueDTO.java
@@ -6,7 +6,7 @@
/**
 * å›ºå®šç æ®µçš„码值数据传输对象
 *
 * @author weidy
 * @author ludc
 * @date 2022-01-24
 */
public class CodeFixedValueDTO extends BaseModelVO {
@@ -19,7 +19,7 @@
    /**
     * å›ºå®šç æ®µä¸»é”®
     */
    private String codefixedsecoid;
    private String codeFixedSecOid;
    /**
     * å›ºå®šç æ®µä¸»é”®æ˜¾ç¤ºæ–‡æœ¬
@@ -28,21 +28,21 @@
    /**
     * ç å€¼åºå·
     */
    private Integer ordernum;
    private Integer orderNum;
    /**
     * èŽ·å– å›ºå®šç æ®µä¸»é”®
     */
    public String getCodefixedsecoid (){
        return codefixedsecoid;
    public String getCodeFixedSecOid (){
        return codeFixedSecOid;
    }
    /**
     * è®¾ç½® å›ºå®šç æ®µä¸»é”®
     */
    public void setCodefixedsecoid (String codefixedsecoid){
        this.codefixedsecoid = codefixedsecoid;
    public void setCodeFixedSecOid (String codeFixedSecOid){
        this.codeFixedSecOid = codeFixedSecOid;
    }
    /**
@@ -61,24 +61,24 @@
    /**
     * èŽ·å– ç å€¼åºå·
     */
    public Integer getOrdernum (){
        return ordernum;
    public Integer getOrderNum (){
        return orderNum;
    }
    /**
     * è®¾ç½® ç å€¼åºå·
     */
    public void setOrdernum (Integer ordernum){
        this.ordernum = ordernum;
    public void setOrderNum (Integer ordernum){
        this.orderNum = ordernum;
    }
    @Override
    public String toString() {
        return "CodeFixedValueDTO{" +
        "codefixedsecoid='" + codefixedsecoid +"',"+
        "codeFixedSecOid='" + codeFixedSecOid +"',"+
        "codefixedsecoidName='" + codefixedsecoidName +"'," +
        "ordernum='" + ordernum +"',"+
        "orderNum='" + orderNum +"',"+
        "}" + super.toString();
    }
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeOrderDTO.java
@@ -1,6 +1,7 @@
package com.vci.ubcs.code.dto;
import com.vci.web.dto.BaseModelDTO;
import com.vci.ubcs.code.dto.datapush.BaseModelDTO;
import java.util.List;
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeTempbuttonDTO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeTempphaseDTO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/DockingDataDTO.java
@@ -1,6 +1,7 @@
package com.vci.ubcs.code.dto;
import com.vci.ubcs.code.entity.BaseModel;
import com.vci.ubcs.starter.revision.model.BaseModel;
/**
 * è¦æŽ¨é€å¾—数据
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/PreApplyCodeOrderDTO.java
@@ -1,6 +1,7 @@
package com.vci.ubcs.code.dto;
import com.vci.web.dto.BaseModelDTO;
import com.vci.ubcs.code.dto.datapush.BaseModelDTO;
import java.util.List;
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/datapush/BaseModelDTO.java
@@ -1,7 +1,7 @@
package com.vci.web.dto;
package com.vci.ubcs.code.dto.datapush;
import com.vci.ubcs.code.entity.BaseModel;
import com.vci.ubcs.starter.revision.model.BaseModel;
import java.util.ArrayList;
import java.util.HashMap;
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/BaseModel.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeAllCode.java
@@ -18,6 +18,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.vci.ubcs.starter.revision.model.BaseModel;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeBasicSec.java
@@ -2,10 +2,9 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.vci.ubcs.com.vci.starter.annotation.Transient;
import com.vci.ubcs.com.vci.starter.web.annotation.VciUseEnum;
import com.vci.ubcs.com.vci.starter.web.constant.EnumIdConstant;
import com.vci.ubcs.com.vci.starter.web.constant.MdmEnumIdConstant;
import com.vci.ubcs.starter.annotation.Transient;
import com.vci.ubcs.starter.revision.model.BaseModel;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -20,7 +19,7 @@
@TableName("PL_CODE_BASICSEC")
@ApiModel(value = "CodeBasicSec对象", description = "码段基础信息")
@EqualsAndHashCode(callSuper = true)
public class CodeBasicSec extends BaseModel{
public class CodeBasicSec extends BaseModel {
    /**
     * åºåˆ—化
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeButton.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,189 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill åº„骞 (smallchill@163.com)
 */
package com.vci.ubcs.code.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
 * æ¨¡æ¿æ‰©å±•æ±  å®žä½“ç±»
 *
 * @author yuxc
 * @since 2023-03-29
 */
@Data
@TableName("PL_CODE_BUTTON")
@ApiModel(value = "codebutton对象", description = "模板扩展池")
//@EqualsAndHashCode(callSuper = false)
public class CodeButton implements Serializable {
    @JsonSerialize(
        using = ToStringSerializer.class
    )
    @ApiModelProperty("主键id")
    @TableId(
        value = "oid",
        type = IdType.ASSIGN_ID
    )
    private Long oid;
    @ApiModelProperty("按钮编码")
    private String id;
    /**
     *
     */
    @ApiModelProperty(value = "")
    private String revisionoid;
    /**
     *
     */
    @ApiModelProperty(value = "")
    private String nameoid;
    /**
     *
     */
    @ApiModelProperty(value = "")
    private String btmname;
    /**
     *
     */
    @ApiModelProperty(value = "")
    private String lastr;
    /**
     *
     */
    @ApiModelProperty(value = "")
    private String firstr;
    /**
     *
     */
    @ApiModelProperty(value = "")
    private String lastv;
    /**
     *
     */
    @ApiModelProperty(value = "")
    private String firstv;
    /**
     *
     */
    @ApiModelProperty(value = "")
    private String creator;
    /**
     *
     */
    @ApiModelProperty(value = "")
    private Date createtime;
    /**
     *
     */
    @ApiModelProperty(value = "")
    private String lastmodifier;
    /**
     *
     */
    @ApiModelProperty(value = "")
    private Date lastmodifytime;
    /**
     *
     */
    @ApiModelProperty(value = "")
    private String revisionrule;
    /**
     *
     */
    @ApiModelProperty(value = "")
    private String versionrule;
    /**
     *
     */
    @ApiModelProperty(value = "")
    private Short revisionseq;
    /**
     *
     */
    @ApiModelProperty(value = "")
    private String revisionvalue;
    /**
     *
     */
    @ApiModelProperty(value = "")
    private Short versionseq;
    /**
     *
     */
    @ApiModelProperty(value = "")
    private String versionvalue;
    /**
     *
     */
    @ApiModelProperty(value = "")
    private String lctid;
    /**
     *
     */
    @ApiModelProperty(value = "")
    private String lcstatus;
    /**
     *
     */
    @ApiModelProperty(value = "")
    private Date ts;
    /**
     *
     */
    @ApiModelProperty(value = "")
    private String name;
    /**
     *
     */
    @ApiModelProperty(value = "")
    private String description;
    /**
     *
     */
    @ApiModelProperty(value = "")
    private String owner;
    /**
     *
     */
    @ApiModelProperty(value = "")
    private String copyfromversion;
    /**
     *
     */
    @ApiModelProperty(value = "")
    private String iconcls;
    /**
     *
     */
    @ApiModelProperty(value = "")
    private String executejs;
    /**
     *
     */
    @ApiModelProperty(value = "")
    private String usedpositiontype;
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeButtonEntity.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClassify.java
@@ -2,7 +2,8 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.vci.ubcs.com.vci.starter.annotation.Transient;
import com.vci.ubcs.starter.annotation.Transient;
import com.vci.ubcs.starter.revision.model.BaseModel;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClassifyProcessTemp.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,73 @@
package com.vci.ubcs.code.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
import com.vci.ubcs.starter.revision.model.BaseModel;
import com.vci.ubcs.starter.web.annotation.VciUseEnum;
import com.vci.ubcs.starter.web.constant.MdmEnumIdConstant;
import io.swagger.annotations.ApiModel;
import lombok.Data;
/**
 * åˆ†ç±»ä½¿ç”¨çš„æµç¨‹æ¨¡æ¿
 * @author ludc
 * @date 2023/5/5
 */
@Data
@TableName("PL_CODE_CLSFLOWTEMP")
@ApiModel(value = "CodeTempphase对象", description = "分类使用的流程模板")
public class CodeClassifyProcessTemp extends BaseModel {
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = 6606901931032525995L;
    /**
     * ä¸»é¢˜åº“分类主键
     */
    //@Column(nullable = false,columnDefinition = "主题库分类主键")
    //@VciUseRefer(MdmBtmTypeConstant.CODE_CLASSIFY)
    private String codeClassifyOid;
    /**
     * æ‰€å±žæ¨¡æ¿
     */
    //@Column(nullable = false,columnDefinition = "所属模板")
    //@VciUseRefer(MdmBtmTypeConstant.CODE_CLASSIFY_TEMPLATE)
    private String classifyTemplateOid;
    /**
     * æµç¨‹æ¨¡æ¿ç”¨é€”
     */
    //@Column(columnDefinition = "流程模板用途",nullable = false)
    @VciUseEnum(value = MdmEnumIdConstant.CODE_CLASSIFY_PROCESS_USE,showTextField = "codeProcessUseText")
    private String codeProcessUse;
    /**
     * æµç¨‹æ¨¡æ¿ç”¨é€”显示名称
     */
    //@Transient
    @TableField(exist = false)
    private String codeProcessUseText;
    /**
     * æµç¨‹æ¨¡æ¿çš„版本
     */
    //@Column(nullable = false)
    private String processVersion;
    /**
     * å­˜å‚¨å…³è”的模板属性编号
     */
    //@Column(columnDefinition = "显示在流程中的属性")
    private String codeTempAttrOidArr;
    /**
     * å­˜å‚¨å…³è”的模板属性名称
     */
    //@Column(columnDefinition = "显示在流程中的属性名称")
    private String codeTempAttrOidArrName;
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClassifyTemplateAttr.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,357 @@
package com.vci.ubcs.code.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.vci.ubcs.starter.revision.model.BaseModel;
import com.vci.ubcs.starter.web.annotation.VciFieldType;
import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
 * ä¸»é¢˜åº“分类的模板属性
 * @author ludc
 * @date 2022-1-17
 */
//@VciBtmType(name = MdmBtmTypeConstant.CODE_CLASSIFY_TEMPLATE_ATTR,text = "主题库分类的模板属性",lifeCycle = FrameWorkLcStatusConstant.EMTYPE_LIFE_CYCLE)
@Data
@TableName("PL_CODE_CLSTEMPATTR")
@ApiModel(value = "CodeTempphase对象", description = "编码库定义-模板阶段")
@EqualsAndHashCode(callSuper = true)
public class CodeClassifyTemplateAttr extends BaseModel {
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = -8685210169495428202L;
    /**
     * æ‰€å±žæ¨¡æ¿
     */
    //@Column(nullable = false,columnDefinition = "所属模板")
    //@VciUseRefer(MdmBtmTypeConstant.CODE_CLASSIFY_TEMPLATE)
    private String classifyTemplateOid;
    /**
     * æ‰€å±žæ¨¡æ¿åç§°
     */
    //@Transient(referColumn = "classifyTemplateOid.name")
    private String classifyTemplateOidName;
    /**
     * å±žæ€§çš„类型
     */
    //@Column(columnDefinition = "属性的类型",nullable = false)
    private String attributeDataType;
    /**
     * æ˜¯å¦å…³é”®å±žæ€§
     */
    //@Column(columnDefinition = "是否关键属性",defaultValue = "false")
    @VciFieldType(VciFieldTypeEnum.VTBoolean)
    private String keyAttrFlag;
    /**
     * æ˜¯å¦å¿«é€ŸæŸ¥è¯¢å±žæ€§
     */
    //@Column(columnDefinition = "是否快速查询属性",defaultValue = "false")
    @VciFieldType(VciFieldTypeEnum.VTBoolean)
    private String queryAttrFlag;
    /**
     * æ˜¯å¦é«˜çº§æŸ¥è¯¢å±žæ€§
     */
    //@Column(columnDefinition = "是否高级查询属性",defaultValue = "false")
    @VciFieldType(VciFieldTypeEnum.VTBoolean)
    private String seniorQueryAttrFlag;
    /**
     * ç›¸ä¼¼æŸ¥é‡å±žæ€§
     */
    //@Column(columnDefinition = "相似查重属性",defaultValue = "false")
    @VciFieldType(VciFieldTypeEnum.VTBoolean)
    private String sameRepeatAttrFlag;
    /**
     * æ˜¯å¦æŽ’序
     */
    //@Column(columnDefinition = "是否排序",defaultValue = "true")
    @VciFieldType(VciFieldTypeEnum.VTBoolean)
    private String sortAttrFlag;
    /**
     * æ˜¯å¦ç”ŸæˆäºŒç»´ç 
     */
    //@Column(columnDefinition = "是否生成二维码",defaultValue = "false")
    @VciFieldType(VciFieldTypeEnum.VTBoolean)
    private String qrcodeFlag;
    /**
     * æ˜¯å¦ç”Ÿæˆæ¡å½¢ç 
     */
    //@Column(columnDefinition = "是否生成一维码",defaultValue = "false")
    @VciFieldType(VciFieldTypeEnum.VTBoolean)
    private String barcodeFlag;
    /**
     * ç»„合规则
     */
    //@Column(columnDefinition = "组合规则",length = 4000)
    private String componentRule;
    /**
     * éªŒè¯è§„则
     */
    //@Column(columnDefinition = "验证规则",length = 4000)
    private String verifyRule;
    /**
     * åˆ†ç±»æ³¨å…¥å±‚级
     */
    //@Column(columnDefinition = "分类注入层级",defaultValue = "none")
    private String classifyInvokeLevel;
    /**
     * åˆ†ç±»æ³¨å…¥çš„属性
     */
    //@Column(columnDefinition = "分类注入的属性英文名称",length = 32)
    private String classifyInvokeAttr;
    /**
     * åˆ†ç±»æ³¨å…¥çš„属性中文名称
     */
    //@Column(columnDefinition = "分类注入的属性中文名称",length = 200)
    private String classifyInvokeAttrName;
    /**
     * åˆ†ç±»æ³¨å…¥æ˜¯å¦å¯ä»¥ç¼–辑
     */
    //@Column(columnDefinition = "分类注入是否可以编辑",defaultValue = "false")
    @VciFieldType(VciFieldTypeEnum.VTBoolean)
    private String classifyInvokeEditFlag;
    /**
     * å±žæ€§æŽ’序号
     */
    //@Column(columnDefinition = "属性排序号")
    private Integer orderNum;
    /**
     * è¡¨å•里是否显示
     */
    //@Column(columnDefinition = "表单里是否显示",defaultValue = "true")
    @VciFieldType(VciFieldTypeEnum.VTBoolean)
    private String formDisplayFlag;
    /**
     * åˆ—表里是否显示
     */
    //@Column(columnDefinition = "列表里是否显示",defaultValue = "true")
    @VciFieldType(VciFieldTypeEnum.VTBoolean)
    private String tableDisplayFlag;
    /**
     * æ‰€å±žå±žæ€§åˆ†ç»„
     */
    //@Column(columnDefinition = "所属属性分组")
    private String attributeGroup;
    /**
     * ä½¿ç”¨æžšä¸¾è‹±æ–‡ç¼–号
     */
    //@Column(columnDefinition = "使用枚举英文编号")
    private String enumId;
    /**
     * ä½¿ç”¨æžšä¸¾ä¸­æ–‡åç§°
     */
    //@Column(columnDefinition = "使用枚举中文名称")
    private String enumName;
    /**
     * æžšä¸¾æ˜¯å¦å¯ä»¥ç¼–辑
     */
    //@Column(columnDefinition = "枚举是否可以编辑")
    private String enumEditFlag;
    /**
     * å‚照业务类型
     */
    //@Column(columnDefinition = "参照的业务类型英文名称")
    private String referBtmId;
    /**
     * å‚照的业务类型中文名称
     */
    //@Column(columnDefinition = "参照的业务类型中文名称")
    private String referBtmName;
    /**
     * å‚照的窗口配置
     */
    //@Column(columnDefinition = "参照窗口配置",length = 4000)
    private String referConfig;
    /**
     * æ˜¯å¦å¿…输
     */
    //@Column(columnDefinition = "是否必输",defaultValue = "false")
    @VciFieldType(VciFieldTypeEnum.VTBoolean)
    private String requireFlag;
    /**
     * æ˜¯å¦åªè¯»
     */
    //@Column(columnDefinition = "是否只读",defaultValue = "false")
    @VciFieldType(VciFieldTypeEnum.VTBoolean)
    private String readOnlyFlag;
    /**
     * å±žæ€§æŽ§åˆ¶è¾“入的长度
     */
    //@Column(columnDefinition = "属性控制输入的长度",defaultValue = "254")
    private Integer controlLength = 254;
    /**
     * è¡¨å•上显示的样式
     */
    //@Column(length = 1000,columnDefinition = "表单里显示的样式")
    private String formDisplayStyle;
    /**
     * è¡¨æ ¼é‡Œæ˜¾ç¤ºçš„æ ·å¼
     */
    //@Column(length = 1000,columnDefinition = "表格里显示的样式")
    private String tableDisplayStyle;
    /**
     * è¡¨å•中超链接
     */
    //@Column(columnDefinition = "表单中超链接内容",length = 1000)
    private String formHref;
    /**
     * è¡¨æ ¼ä¸­è¶…链接
     */
    //@Column(columnDefinition = "表格中超链接内容",length = 1000)
    private String tableHref;
    /**
     * å°æ•°ç²¾åº¦
     */
    //@Column(columnDefinition = "小数精度")
    private Integer precisionLength;
    /**
     * å°æ•°åˆ»åº¦
     */
    //@Column(columnDefinition = "小数刻度")
    private Integer scaleLength;
    /**
     * å–值范围
     */
    //@Column(columnDefinition = "取值范围",length = 1000)
    private String valueArea;
    /**
     * æ—¶é—´æ ¼å¼
     */
    //@Column(columnDefinition = "时间格式")
    private String codeDateFormat;
    /**
     * è¡¨æ ¼ä¸­æ˜¾ç¤ºçš„js
     */
    //@Column(columnDefinition = "表格里显示调用的js",length = 254)
    private String tableDisplayJs;
    /**
     * æ˜¯å¦æ˜¾ç¤ºå¤šè¡Œæ–‡æœ¬
     */
    //@Column(columnDefinition = "是否显示多行文本",defaultValue = "false")
    @VciFieldType(VciFieldTypeEnum.VTBoolean)
    private String textAreaFlag;
    /**
     * æ˜¯å¦ä¸ºå›¾ç‰‡ç­‰å…ƒç´ 
     */
    //@Column(columnDefinition = "预览图",defaultValue = "false")
    @VciFieldType(VciFieldTypeEnum.VTBoolean)
    private String imageFlag;
    /**
     * é»˜è®¤å€¼
     */
    //@Column(columnDefinition = "默认值")
    private String defaultValue;
    /**
     * å‰ç¼€
     */
    //@Column(columnDefinition = "前缀")
    private String prefixValue;
    /**
     * åŽç¼€
     */
    //@Column(columnDefinition = "后缀")
    private String suffixValue;
    /**
     * é€‰æ‹©æ•°æ®æ—¶è¿‡æ»¤çš„属性
     */
    //@Column(columnDefinition = "选择数据时过滤的属性")
    private String filterSourceAttr;
    /**
     * é€‰æ‹©æ•°æ®æ—¶è¿‡æ»¤çš„属性名称
     */
    //@Column(columnDefinition = "选择数据时过滤的属性名称")
    private String filterSourceAttrName;
    /**
     * ä½¿ç”¨æžšä¸¾æ³¨å…¥çš„字符串格式
     */
    //@Column(length = 4000,columnDefinition = "枚举注入的内容")
    private String enumString;
    /**
     * å±žæ€§çš„宽度
     */
    //@Column(columnDefinition = "属性列表中宽度")
    private Integer attrTableWidth;
    /**
     * è¯´æ˜Ž
     */
    //@Column(columnDefinition = "说明")
    private String explain;
    /**
     * é€‰æ‹©åº“标识
     */
    //@Column(columnDefinition = "选择库标识")
    private String libraryIdentification;
    /**
     * çº§è”属性编号
     */
    //@Column(columnDefinition = "级联属性编号")
    private String parentCode;
    /**
     * çº§è”属性名称
     */
    //@Column(columnDefinition = "级联属性名称")
    private String parentName;
    /**
     * çº§è”查询属性
     */
    //Column(columnDefinition = "级联查询属性")
    private String parentQueryAttr;
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClassifyTemplateButton.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,59 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill åº„骞 (smallchill@163.com)
 */
package com.vci.ubcs.code.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.vci.ubcs.starter.revision.model.BaseModel;
import lombok.Data;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
/**
 * ç¼–码库定义-模板按钮扩展 å®žä½“ç±»
 *
 * @author yuxc
 * @since 2023-04-20
 */
@Data
@TableName("PL_CODE_TEMPBUTTON")
@ApiModel(value = "CodeTempbutton对象", description = "编码库定义-模板按钮扩展")
@EqualsAndHashCode(callSuper = true)
public class CodeClassifyTemplateButton extends BaseModel {
    /**
     *
     */
    @ApiModelProperty(value = "")
    private String classifytemplateoid;
    /**
     *
     */
    @ApiModelProperty(value = "")
    private String classifybuttonoid;
    /**
     *
     */
    @ApiModelProperty(value = "")
    private String buttonuse;
    /**
     *
     */
    @ApiModelProperty(value = "")
    private Integer orderNum;
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClassifyValue.java
@@ -1,6 +1,7 @@
package com.vci.ubcs.code.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.vci.ubcs.starter.revision.model.BaseModel;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -8,8 +9,8 @@
/**
 * åˆ†ç±»ç æ®µçš„码值
 * ç›¸å½“于级联的下拉框
 * @author weidy
 * @date 2022-1-18
 * @author ludc
 * @date 2023/4/5
 */
@Data
@TableName("PL_CODE_CLASSIFYVALUE")
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClsflowtempEntity.java
@@ -16,13 +16,14 @@
 */
package com.vci.ubcs.code.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.vci.ubcs.starter.revision.model.BaseModel;
import lombok.Data;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
/**
 * ç¼–码库定义-模板流程 å®žä½“ç±»
@@ -37,11 +38,6 @@
public class CodeClsflowtempEntity extends BaseModel {
    /**
     *
     */
    @ApiModelProperty(value = "")
    private String islastr;
    /**
     *
     */
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClstempattrEntity.java
@@ -16,13 +16,13 @@
 */
package com.vci.ubcs.code.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.vci.ubcs.starter.revision.model.BaseModel;
import lombok.Data;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
/**
 * ç¼–码库定义-模板属性 å®žä½“ç±»
@@ -202,12 +202,12 @@
     *
     */
    @ApiModelProperty(value = "")
    private Short precisionlength;
    private Integer precisionlength;
    /**
     *
     */
    @ApiModelProperty(value = "")
    private Short scalelength;
    private Integer scalelength;
    /**
     *
     */
@@ -272,6 +272,7 @@
     *
     */
    @ApiModelProperty(value = "")
    @TableField("\"EXPLAIN\"")
    private String explain;
    /**
     *
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClstemplateEntity.java
@@ -16,8 +16,10 @@
 */
package com.vci.ubcs.code.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.vci.ubcs.com.vci.starter.annotation.Transient;
import com.vci.ubcs.starter.annotation.Transient;
import com.vci.ubcs.starter.revision.model.BaseModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -55,6 +57,7 @@
    /**
     * ä¸»é¢˜åº“分类主键显示文本
     */
    @TableField(exist = false)
    @Transient(referColumn = "codeClassifyOid.name")
    private String codeClassifyOidName;
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeFixedValue.java
@@ -1,6 +1,7 @@
package com.vci.ubcs.code.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.vci.ubcs.starter.revision.model.BaseModel;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeOsattributeEntity.java
@@ -17,12 +17,11 @@
package com.vci.ubcs.code.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.vci.ubcs.starter.revision.model.BaseModel;
import lombok.Data;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
/**
 * å±žæ€§æ˜¾ç¤ºå¯¹è±¡ å®žä½“ç±»
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeOsbtmtypeEntity.java
@@ -17,6 +17,7 @@
package com.vci.ubcs.code.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.vci.ubcs.starter.revision.model.BaseModel;
import lombok.Data;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -32,7 +33,7 @@
@TableName("PL_CODE_OSBTMTYPE")
@ApiModel(value = "PLCodeOsbtmtype对象", description = "业务类型")
@EqualsAndHashCode(callSuper = true)
public class CodeOsbtmtypeEntity  extends BaseModel  {
public class CodeOsbtmtypeEntity  extends BaseModel {
    /**
     * åºåˆ—化
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeOsbtmtypeattributeEntity.java
@@ -16,7 +16,11 @@
 */
package com.vci.ubcs.code.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -41,6 +45,13 @@
     */
    private static final long serialVersionUID = -4431848943790920077L;
    @JsonSerialize(
        using = ToStringSerializer.class
    )
    @ApiModelProperty("主键id")
    @TableId(value = "OID",type = IdType.ASSIGN_UUID)
    private String oid;
    /**
     * æ‰€å±žä¸šåŠ¡ç±»åž‹
     */
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodePhaseAttr.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,50 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill åº„骞 (smallchill@163.com)
 */
package com.vci.ubcs.code.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.vci.ubcs.starter.revision.model.BaseModel;
import lombok.Data;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
/**
 * ç¼–码库定义-模板阶段-属性 å®žä½“ç±»
 *
 * @author yuxc
 * @since 2023-04-20
 */
@Data
@TableName("PL_CODE_PHASEATTR")
@ApiModel(value = "CodePhaseattr对象", description = "编码库定义-模板阶段-属性")
@EqualsAndHashCode(callSuper = true)
public class CodePhaseAttr extends BaseModel {
    /**
     *
     */
    @ApiModelProperty(value = "")
    private String codePhaseOid;
    /**
     *
     */
    @ApiModelProperty(value = "")
    private String attributegroup;
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodePhaseattrEntity.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeRule.java
@@ -17,6 +17,7 @@
package com.vci.ubcs.code.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.vci.ubcs.starter.revision.model.BaseModel;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeSerialValue.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.annotation.TableName;
import com.vci.ubcs.starter.revision.model.BaseModel;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeTempbuttonEntity.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeTemplatePhase.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,42 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill åº„骞 (smallchill@163.com)
 */
package com.vci.ubcs.code.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.vci.ubcs.starter.revision.model.BaseModel;
import lombok.Data;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
/**
 * ç¼–码库定义-模板阶段 å®žä½“ç±»
 *
 * @author yuxc
 * @since 2023-04-20
 */
@Data
@TableName("PL_CODE_TEMPPHASE")
@ApiModel(value = "CodeTempphase对象", description = "编码库定义-模板阶段")
@EqualsAndHashCode(callSuper = true)
public class CodeTemplatePhase extends BaseModel {
    /**
     *
     */
    @ApiModelProperty(value = "")
    private String codeClassifyTemplateOid;
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeTempphaseEntity.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/po/CodeClassifyPO.java
@@ -1,6 +1,6 @@
package com.vci.ubcs.code.po;
import com.vci.ubcs.com.vci.starter.poi.annotation.ExcelColumn;
import com.vci.ubcs.starter.poi.annotation.ExcelColumn;
/**
 * ä¸»é¢˜åº“分类的导入导出对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeButtonVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeOsbtmtypeattributeVO.java
@@ -32,4 +32,11 @@
public class CodeOsbtmtypeattributeVO extends CodeOsbtmtypeattributeEntity {
    private static final long serialVersionUID = 1L;
    public String id;
    public String name;
    public String attrDataType;
    public String attributeLength;
    public String referBtmTypeId;
    public String referBtmTypeName;
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodePhaseattrVO.java
@@ -16,7 +16,7 @@
 */
package com.vci.ubcs.code.vo;
import com.vci.ubcs.code.entity.CodePhaseattrEntity;
import com.vci.ubcs.code.entity.CodePhaseAttr;
import org.springblade.core.tool.node.INode;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -29,7 +29,7 @@
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class CodePhaseattrVO extends CodePhaseattrEntity {
public class CodePhaseattrVO extends CodePhaseAttr {
    private static final long serialVersionUID = 1L;
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeTempbuttonVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeTempphaseVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeBasicSecVO.java
@@ -350,8 +350,8 @@
    /**
    * è®¾ç½® ç æ®µç±»åž‹
    */
    public void setSecType (String sectype){
        this.secType = sectype;
    public void setSecType (String secType){
        this.secType = secType;
    }
    public String getSecTypeText() {
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeClassifyProcessTempVO.java
@@ -1,5 +1,6 @@
package com.vci.ubcs.code.vo.pagemodel;
import com.vci.ubcs.code.entity.CodeClassifyProcessTemp;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
import java.util.List;
@@ -10,7 +11,7 @@
 * @author weidy
 * @date 2022-01-24
 */
public class CodeClassifyProcessTempVO extends BaseModelVO {
public class CodeClassifyProcessTempVO extends CodeClassifyProcessTemp {
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeClassifyTemplateButtonVO.java
@@ -1,6 +1,6 @@
package com.vci.ubcs.code.vo.pagemodel;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
import com.vci.ubcs.code.entity.CodeClassifyTemplateButton;
/**
 * ä¸»é¢˜åº“里模板包含的按钮显示对象
@@ -8,7 +8,7 @@
 * @author weidy
 * @date 2022-01-24
 */
public class CodeClassifyTemplateButtonVO extends BaseModelVO {
public class CodeClassifyTemplateButtonVO extends CodeClassifyTemplateButton {
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
@@ -62,6 +62,7 @@
    /**
     * èŽ·å– æ‰€å±žæ¨¡æ¿
     */
    @Override
    public String getClassifytemplateoid (){
        return classifytemplateoid;
    }
@@ -69,6 +70,7 @@
    /**
    * è®¾ç½® æ‰€å±žæ¨¡æ¿
    */
    @Override
    public void setClassifytemplateoid (String classifytemplateoid){
        this.classifytemplateoid = classifytemplateoid;
    }
@@ -88,6 +90,7 @@
    /**
     * èŽ·å– æŒ‰é’®çš„主键
     */
    @Override
    public String getClassifybuttonoid (){
        return classifybuttonoid;
    }
@@ -95,6 +98,7 @@
    /**
    * è®¾ç½® æŒ‰é’®çš„主键
    */
    @Override
    public void setClassifybuttonoid (String classifybuttonoid){
        this.classifybuttonoid = classifybuttonoid;
    }
@@ -114,6 +118,7 @@
    /**
     * èŽ·å– æŒ‰é’®ç”¨é€”
     */
    @Override
    public String getButtonuse (){
        return buttonuse;
    }
@@ -121,6 +126,7 @@
    /**
    * è®¾ç½® æŒ‰é’®ç”¨é€”
    */
    @Override
    public void setButtonuse (String buttonuse){
        this.buttonuse = buttonuse;
    }
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeClassifyValueVO.java
@@ -18,7 +18,7 @@
    /**
    * åˆ†ç±»ç æ®µä¸»é”®
    */
    private String codeclassifysecoid;
    private String codeClassifySecOid;
    /**
    * åˆ†ç±»ç æ®µä¸»é”®æ˜¾ç¤ºæ–‡æœ¬
@@ -28,12 +28,12 @@
    /**
    * ç å€¼åºå·
    */
    private Integer ordernum;
    private Integer orderNum;
    /**
    * ä¸Šçº§åˆ†ç±»ç å€¼ä¸»é”®
    */
    private String parentclassifyvalueoid;
    private String parentClassifyValueOid;
    /**
     * åˆ†ç±»ç å€¼ä¸­çš„编号
@@ -48,15 +48,15 @@
    /**
     * èŽ·å– åˆ†ç±»ç æ®µä¸»é”®
     */
    public String getCodeclassifysecoid (){
        return codeclassifysecoid;
    public String getCodeClassifySecOid (){
        return codeClassifySecOid;
    }
    /**
    * è®¾ç½® åˆ†ç±»ç æ®µä¸»é”®
    */
    public void setCodeclassifysecoid (String codeclassifysecoid){
        this.codeclassifysecoid = codeclassifysecoid;
    public void setCodeClassifySecOid (String codeclassifysecoid){
        this.codeClassifySecOid = codeclassifysecoid;
    }
    /**
     * èŽ·å–åˆ†ç±»ç æ®µä¸»é”®æ˜¾ç¤ºæ–‡æœ¬
@@ -74,28 +74,28 @@
    /**
     * èŽ·å– ç å€¼åºå·
     */
    public Integer getOrdernum (){
        return ordernum;
    public Integer getOrderNum (){
        return orderNum;
    }
    /**
    * è®¾ç½® ç å€¼åºå·
    */
    public void setOrdernum (Integer ordernum){
        this.ordernum = ordernum;
    public void setOrderNum (Integer ordernum){
        this.orderNum = ordernum;
    }
    /**
     * èŽ·å– ä¸Šçº§åˆ†ç±»ç å€¼ä¸»é”®
     */
    public String getParentclassifyvalueoid (){
        return parentclassifyvalueoid;
    public String getParentClassifyValueOid (){
        return parentClassifyValueOid;
    }
    /**
    * è®¾ç½® ä¸Šçº§åˆ†ç±»ç å€¼ä¸»é”®
    */
    public void setParentclassifyvalueoid (String parentclassifyvalueoid){
        this.parentclassifyvalueoid = parentclassifyvalueoid;
    public void setParentClassifyValueOid (String parentClassifyValueOid){
        this.parentClassifyValueOid = parentClassifyValueOid;
    }
    @Override
@@ -122,10 +122,10 @@
    @Override
    public String toString() {
        return "CodeClassifyValueVO{" +
                "codeclassifysecoid='" + codeclassifysecoid + '\'' +
                "codeClassifySecOid='" + codeClassifySecOid + '\'' +
                ", codeclassifysecoidName='" + codeclassifysecoidName + '\'' +
                ", ordernum=" + ordernum +
                ", parentclassifyvalueoid='" + parentclassifyvalueoid + '\'' +
                ", orderNum=" + orderNum +
                ", parentClassifyValueOid='" + parentClassifyValueOid + '\'' +
                ", id='" + id + '\'' +
                ", name='" + name + '\'' +
                "} " + super.toString();
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeFixedValueVO.java
@@ -18,7 +18,7 @@
    /**
    * å›ºå®šç æ®µä¸»é”®
    */
    private String codefixedsecoid;
    private String codeFixedSecOid;
    /**
    * å›ºå®šç æ®µä¸»é”®æ˜¾ç¤ºæ–‡æœ¬
@@ -28,22 +28,22 @@
    /**
    * ç å€¼åºå·
    */
    private Integer ordernum;
    private Integer orderNum;
    /**
     * èŽ·å– å›ºå®šç æ®µä¸»é”®
     */
    public String getCodefixedsecoid (){
        return codefixedsecoid;
    public String getCodeFixedSecOid (){
        return codeFixedSecOid;
    }
    /**
    * è®¾ç½® å›ºå®šç æ®µä¸»é”®
    */
    public void setCodefixedsecoid (String codefixedsecoid){
        this.codefixedsecoid = codefixedsecoid;
    public void setCodeFixedSecOid (String codefixedsecoid){
        this.codeFixedSecOid = codefixedsecoid;
    }
    /**
     * èŽ·å–å›ºå®šç æ®µä¸»é”®æ˜¾ç¤ºæ–‡æœ¬
@@ -61,23 +61,23 @@
    /**
     * èŽ·å– ç å€¼åºå·
     */
    public Integer getOrdernum (){
        return ordernum;
    public Integer getOrderNum (){
        return orderNum;
    }
    /**
    * è®¾ç½® ç å€¼åºå·
    */
    public void setOrdernum (Integer ordernum){
        this.ordernum = ordernum;
    public void setOrderNum (Integer orderNum){
        this.orderNum = orderNum;
    }
    @Override
    public String toString() {
        return "CodeFixedValueVO{" +
        "codefixedsecoid='" + codefixedsecoid +"'," +
        "codeFixedSecOid='" + codeFixedSecOid +"'," +
        "codefixedsecoidName='" + codefixedsecoidName +"'," +
        "ordernum='" + ordernum +"'," +
        "orderNum='" + orderNum +"'," +
        "}" + super.toString();
    }
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeTemplatePhaseVO.java
@@ -1,5 +1,6 @@
package com.vci.ubcs.code.vo.pagemodel;
import com.vci.ubcs.code.entity.CodeTemplatePhase;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
@@ -8,7 +9,7 @@
 * @author weidy
 * @date 2022-01-24
 */
public class CodeTemplatePhaseVO extends BaseModelVO {
public class CodeTemplatePhaseVO extends CodeTemplatePhase {
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/DockingDataVO.java
@@ -1,6 +1,7 @@
package com.vci.ubcs.code.vo.pagemodel;
import com.vci.ubcs.code.entity.BaseModel;
import com.vci.ubcs.starter.revision.model.BaseModel;
/**
 * è¦æŽ¨é€å¾—数据
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/TreeQueryObject.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/annotation/Transient.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/annotation/VciEnum.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/bo/WriteExcelData.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/exception/VciBaseException.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/poi/annotation/ExcelColumn.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/poi/annotation/ExcelTitle.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/poi/bo/AppendDataExcelOption.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/poi/bo/DownloadTempOption.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/poi/bo/ExcelColumnMap.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/poi/bo/ReadExcelOption.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/poi/bo/SheetDataSet.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/poi/bo/SheetRowData.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/poi/bo/WriteExcelOption.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/poi/constant/ExcelLangCodeConstant.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/poi/util/ExcelUtil.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/poi/util/PoiImportProcesser.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/poi/util/PoiTemplateProcesser.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/revision/model/ReleasedObjDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/revision/model/RevisionInfo.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/revision/service/RevisionModelUtil.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/revision/service/VciRevisionServiceI.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/util/LocalFileUtil.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/util/VciBaseUtil.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/annotation/VciFieldType.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/annotation/VciUseEnum.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/constant/EnumIdConstant.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/constant/MdmEnumIdConstant.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/constant/QueryOptionConstant.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/enumpck/BaseEnum.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/enumpck/BaseEnumInt.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/enumpck/OsCodeFillTypeEnum.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/enumpck/UserSecretEnum.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/enumpck/VciFieldTypeEnum.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/pagemodel/BaseQueryObject.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/pagemodel/DataGrid.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/pagemodel/KeyValue.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/pagemodel/PageHelper.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/pagemodel/SessionInfo.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/pagemodel/Tree.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/pagemodel/UIFieldSortVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/pagemodel/UIFormReferVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/pagemodel/UITableCustomDefineVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/pagemodel/UITableFieldVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/pagemodel/UITablePageVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/service/VciSecretServiceI.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/toolmodel/DateConverter.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/util/BeanUtilForVCI.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/util/ControllerUtil.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/util/LangBaseUtil.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/util/Lunar.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/util/MessageUtils.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/util/VciBaseUtil.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/util/VciDateUtil.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/util/WebThreadLocalUtil.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/util/WebUtil.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-ddl-api/pom.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>ubcs-service-api</artifactId>
        <groupId>com.vci.ubcs</groupId>
        <version>3.0.1.RELEASE</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>ubcs-ddl-api</artifactId>
    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
</project>
Source/UBCS/ubcs-service-api/ubcs-ddl-api/src/main/java/com/vci/ubcs/ddl/bo/DdlFieldMappingAttrBO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,75 @@
package com.vci.ubcs.ddl.bo;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import org.springblade.core.tool.utils.StringPool;
import org.springblade.core.tool.utils.StringUtil;
/**
 * Description:
 *
 * @author LiHang
 * @date 2023/4/28
 */
@Getter
public class DdlFieldMappingAttrBO {
    /**
     * ç±»åž‹
     */
    private final String dataType;
    /**
     * é•¿åº¦
     */
    @Setter
    private Integer dataLength;
    /**
     * ç²¾åº¦
     */
    @Setter
    private Integer dataPrecision;
    /**
     * å…è®¸ä¸ºç©º
     */
    @Setter
    private Boolean nullable;
    /**
     * é»˜è®¤å€¼
     */
    @Setter
    private String defaultValue;
    public DdlFieldMappingAttrBO(String dataType, Integer dataLength, Integer dataPrecision, Boolean nullable, String defaultValue) {
        this.dataType = dataType;
        this.dataLength = dataLength;
        this.dataPrecision = dataPrecision;
        this.nullable = nullable;
        this.defaultValue = defaultValue;
    }
    @Override
    public String toString() {
        StringBuilder stringBuilder = new StringBuilder().append(dataType);
        if (dataLength != null){
            stringBuilder.append(StringPool.SPACE).append(StringPool.LEFT_BRACKET).append(dataLength).append(StringPool.RIGHT_BRACKET).append(StringPool.SPACE);
        }
        if (dataPrecision != null){
            stringBuilder.append(StringPool.SPACE).append(StringPool.LEFT_BRACKET).append(dataLength == null ? 22 : dataLength).append(StringPool.COMMA).append(dataPrecision).append(StringPool.RIGHT_BRACKET).append(StringPool.SPACE);
        }
        if (!nullable){
            stringBuilder.append(StringPool.SPACE).append("not null").append(StringPool.SPACE);
        }
        if (StringUtil.isNotBlank(defaultValue)){
            stringBuilder.append(StringPool.SPACE).append("default").append(StringPool.SPACE).append(defaultValue).append(StringPool.SPACE);
        }
        return stringBuilder.toString();
    }
}
Source/UBCS/ubcs-service-api/ubcs-ddl-api/src/main/java/com/vci/ubcs/ddl/bo/DdlTableBO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
package com.vci.ubcs.ddl.bo;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
 * Description:
 *
 * @author LiHang
 * @date 2023/4/24
 */
@Data
public class DdlTableBO implements Serializable {
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = -5850730702502494744L;
    /**
     * è¡¨æ ¼åç§°
     */
    private String tableName;
    /**
     * è¡¨æ ¼çš„æè¿°
     */
    private String tableDesc;
    /**
     * åŒ…含的字段信息
     */
    private List<DdlTableInDataBaseBO> columns;
}
Source/UBCS/ubcs-service-api/ubcs-ddl-api/src/main/java/com/vci/ubcs/ddl/bo/DdlTableInDataBaseBO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,54 @@
package com.vci.ubcs.ddl.bo;
import lombok.Data;
import java.io.Serializable;
/**
 * Description:
 *
 * @author LiHang
 * @date 2023/4/24
 */
@Data
public class DdlTableInDataBaseBO implements Serializable {
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = -4749100343717030972L;
    /**
     * å­—段名称
     */
    private String id;
    /**
     * å­—段描述
     */
    private String name;
    /**
     * æ•°æ®ç±»åž‹
     */
    private String attrDataType;
    /**
     * å±žæ€§çš„长度
     */
    private Integer attributeLength;
    /**
     * æ˜¯å¦å¯ä»¥ä¸ºç©º
     */
    private String nullableFlag;
    /**
     * å°æ•°ç²¾åº¦ä½æ•°
     */
    private Integer precisionLength;
    /**
     * å°æ•°åˆ»åº¦ä½æ•°
     */
    private Integer scaleLength;
}
Source/UBCS/ubcs-service-api/ubcs-ddl-api/src/main/java/com/vci/ubcs/ddl/enums/BusinessTypeEnum.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
package com.vci.ubcs.ddl.enums;
/**
 * Description:对象建模类型
 *
 * @author LiHang
 * @date 2023/4/30
 */
public enum BusinessTypeEnum {
    /**
     * ä¸šåŠ¡ç±»åž‹
     */
    BTM("bussiness_type_model","业务类型"),
    /**
     * é“¾æŽ¥ç±»åž‹
     */
    LINK("link_type_model","链接类型")
    ;
    private String value;
    private String name;
    BusinessTypeEnum(String value, String name) {
        this.value = value;
        this.name = name;
    }
    public String getValue() {
        return value;
    }
    public String getName() {
        return name;
    }
}
Source/UBCS/ubcs-service-api/ubcs-ddl-api/src/main/java/com/vci/ubcs/ddl/enums/DataBaseEnum.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,106 @@
package com.vci.ubcs.ddl.enums;
/**
 * Description:
 *
 * @author LiHang
 * @date 2023/4/24
 */
public enum DataBaseEnum {
    /**
     * mysql
     */
    MYSQL("mysql", "MYSQL"),
    /**
     * oracle
     */
    ORACLE("oracle", "ORACLE"),
    /**
     * postgresql
     */
    POSTGRESQL("postgresql", "POSTGRESQL"),
    /**
     * db2
     */
    DB2("db2", "DB2"),
    /**
     * sql_server
     */
    SQL_SERVER("mssql", "SQL_SERVER"),
    /**
     * dm
     */
    DM("dm", "达梦"),
    /**
     * oceanbase
     */
    OCEAN_BASE("oceanbase", "阿里巴巴OceanBase"),
    /**
     * sqllite
     */
    SQLITE("sqlite", "SQLITE");
    private String value;
    private String text;
    private DataBaseEnum (String value,String text){
        this.value = value;
        this.text = text;
    }
    public String getValue() {
        return value;
    }
    public void setValue(String value) {
        this.value = value;
    }
    public String getText() {
        return text;
    }
    public void setText(String text) {
        this.text = text;
    }
    public static String getValueByText(String text) {
        DataBaseEnum[] var1 = values();
        int var2 = var1.length;
        for(int var3 = 0; var3 < var2; ++var3) {
            DataBaseEnum wenum = var1[var3];
            if (wenum.getText().equalsIgnoreCase(text)) {
                return wenum.getValue();
            }
        }
        return "";
    }
    public static String getTextByValue(String value) {
        DataBaseEnum[] var1 = values();
        int var2 = var1.length;
        for(int var3 = 0; var3 < var2; ++var3) {
            DataBaseEnum wenum = var1[var3];
            if (wenum.getValue().equalsIgnoreCase(value)) {
                return wenum.getText();
            }
        }
        return "";
    }
    public static DataBaseEnum forValue(String value) {
        DataBaseEnum[] var1 = values();
        int var2 = var1.length;
        for(int var3 = 0; var3 < var2; ++var3) {
            DataBaseEnum wenum = var1[var3];
            if (wenum.getValue().equalsIgnoreCase(value)) {
                return wenum;
            }
        }
        return ORACLE;
    }
}
Source/UBCS/ubcs-service-api/ubcs-ddl-api/src/main/java/com/vci/ubcs/ddl/enums/ModifyTableTaskEnum.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
package com.vci.ubcs.ddl.enums;
/**
 * Description: DDL操作任务类型
 *
 * @author LiHang
 * @date 2023/4/30
 */
public enum ModifyTableTaskEnum {
    /**
     * æ–°å»º
     */
    CREATE("create","新建"),
    /**
     * ä¿®æ”¹
     */
    EDIT("edit","修改"),
    /**
     * ä¸€è‡´æ€§æ£€æŸ¥
     */
    CONSISTENCY_CHECK("consistency_check","一致性检查")
    ;
    private String value;
    private String name;
    ModifyTableTaskEnum(String value, String name) {
        this.value = value;
        this.name = name;
    }
    public String getValue() {
        return value;
    }
    public String getName() {
        return name;
    }
}
Source/UBCS/ubcs-service-api/ubcs-ddl-api/src/main/java/com/vci/ubcs/ddl/properties/DdlExportWordFieldProperties.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,66 @@
package com.vci.ubcs.ddl.properties;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
/**
 * Description:
 *
 * @author LiHang
 * @date 2023/4/24
 */
@Data
@Configuration
@ConfigurationProperties(prefix = "vci.ubcs.ddl.exportword")
public class DdlExportWordFieldProperties {
    /**
     * è¡¨æ ¼çš„名称
     */
    private String tableName = "tableInfo";
    /**
     * è¡¨æ ¼çš„名称
     */
    private String title = "tableTitle";
    /**
     * è¡¨æ ¼çš„æžšä¸¾å‚照生命周期等描述
     */
    private String areaDesc = "tableAreaDesc";
    /**
     * å­—段表格的名称,需要对应模板中的域字段
     */
    private String columnTableName = "columnInfo";
    /**
     * å­—段表格的序号
     */
    private String columnIndex = "tableColumnIndex";
    /**
     * å­—段的英文名称
     */
    private String columnId = "columnId";
    /**
     *字段的显示名称
     */
    private String columnName = "columnName";
    /**
     * å­—段的类型
     */
    private String columnType = "columnType";
    /**
     * å­—段的约束
     */
    private String columnArea = "columnArea";
    /**
     * å­—段的特殊描述
     */
    private String columnDesc = "columnDesc";
}
Source/UBCS/ubcs-service-api/ubcs-ddl-api/src/main/java/com/vci/ubcs/ddl/properties/DdlPropertise.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
package com.vci.ubcs.ddl.properties;
import com.vci.ubcs.ddl.enums.DataBaseEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
/**
 * Description: æ•°æ®åº“操作相关的配置
 *
 * @author LiHang
 * @date 2023/4/24
 */
@Configuration
@ConfigurationProperties(prefix = "vci.ubcs.ddl")
@Data
public class DdlPropertise {
    /**
     * æ•°æ®åº“的平台,默认为oracle
     */
    @ApiModelProperty(value = "数据库的类型")
    private String databasePlatform = DataBaseEnum.ORACLE.getValue();
    /**
     * æ˜¯å¦æ£€æŸ¥æ•°æ®è¡¨æ˜¯å¦ç¼ºå°‘
     */
    private String checkTableExist;
    /**
     * ä¸´æ—¶æ–‡ä»¶å¤¹
     */
    @ApiModelProperty(value = "临时文件夹")
    private String tempFolder;
    /**
     * é»˜è®¤zip的字符集
     */
    private String zipCharset = "GBK";
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/cache/AttributeCache.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,63 @@
package com.vci.ubcs.omd.cache;
import com.vci.ubcs.omd.entity.Attribute;
import com.vci.ubcs.omd.feign.IAttributeClient;
import org.springblade.core.cache.utils.CacheUtil;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.SpringUtil;
import org.springblade.core.tool.utils.StringPool;
import java.util.List;
import static org.springblade.core.cache.constant.CacheConstant.DICT_CACHE;
/**
 * å…ƒæ•°æ®(属性)缓存工具类
 *
 * @author Chill
 */
public class AttributeCache {
    private static final String ATTR_ID = "attr:id";
    private static final String ATTR_LIST = "attr:list";
    private static final String ATTR_CACHE = "ubcs:attr";
    private static IAttributeClient attrClient;
    private static IAttributeClient getAttributeClient() {
        if (attrClient == null) {
            attrClient = SpringUtil.getBean(IAttributeClient.class);
        }
        return attrClient;
    }
    /**
     * èŽ·å–å…ƒæ•°æ®å®žä½“
     *
     * @param id ä¸»é”®
     * @return å…ƒæ•°æ®å®žä½“对象
     */
    public static Attribute getById(Long id) {
        String keyPrefix = ATTR_ID.concat(StringPool.DASH).concat(AuthUtil.getTenantId()).concat(StringPool.COLON);
        return CacheUtil.get(ATTR_CACHE, keyPrefix, id, () -> {
            R<Attribute> result = getAttributeClient().getById(id);
            return result.getData();
        });
    }
    /**
     * èŽ·å–å…ƒæ•°æ®é›†åˆ
     *
     * @param key å±žæ€§åç§°
     */
    public static List<Attribute> getList(String key) {
        String keyPrefix = ATTR_LIST.concat(StringPool.DASH).concat(AuthUtil.getTenantId()).concat(StringPool.COLON);
        return CacheUtil.get(DICT_CACHE, keyPrefix, key, () -> {
            R<List<Attribute>> result = getAttributeClient().getList(key);
            return result.getData();
        });
    }
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/cache/BtmTypeCache.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,78 @@
package com.vci.ubcs.omd.cache;
import com.vci.ubcs.omd.feign.IBtmTypeClient;
import com.vci.ubcs.omd.vo.BtmTypeVO;
import org.springblade.core.cache.utils.CacheUtil;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.SpringUtil;
import org.springblade.core.tool.utils.StringPool;
import java.util.Collection;
import java.util.List;
/**
 * Description:
 *
 * @author LiHang
 * @date 2023/4/24
 */
public class BtmTypeCache {
    private static final String BTM_DETAIL = "btm:id";
    private static final String BTM_TYPE_CACHE = "ubcs:btm";
    private static final String BTM_IDS = "btm:ids";
    private static IBtmTypeClient btmTypeClient;
    private static IBtmTypeClient getBtmTypeClient() {
        if (btmTypeClient == null) {
            btmTypeClient = SpringUtil.getBean(IBtmTypeClient.class);
        }
        return btmTypeClient;
    }
    /**
     * èŽ·å–ä¸šåŠ¡ç±»åž‹è¯¦æƒ…ä¿¡æ¯
     *
     * @param oid ä¸»é”®
     * @return ä¸šåŠ¡ç±»åž‹è¯¦æƒ…ä¿¡æ¯
     */
    public static BtmTypeVO getDetail(String oid){
        String keyPrefix = BTM_DETAIL.concat(StringPool.DASH).concat(AuthUtil.getTenantId()).concat(StringPool.COLON);
        return CacheUtil.get(BTM_TYPE_CACHE, keyPrefix, oid, () -> {
            R<BtmTypeVO> result = getBtmTypeClient().getDetail(oid);
            return result.getData();
        });
    }
    /**
     * æ ¹æ®è‹±æ–‡åç§°æ‰¹é‡æŸ¥è¯¢å¯¹è±¡
     * @param ids å¯¹è±¡è‹±æ–‡åç§° ä½†æ˜¯ä¸èƒ½è¶…过1000
     * @return ä¸šåŠ¡å¯¹è±¡
     */
    public static List<BtmTypeVO> selectByIdCollection(List<String> ids) {
        String  keyPrefix = BTM_IDS.concat(StringPool.DASH).concat(AuthUtil.getTenantId()).concat(StringPool.COLON);
        return CacheUtil.get(BTM_TYPE_CACHE,keyPrefix,Func.toStr(ids), () -> {
            R<List<BtmTypeVO>> result = getBtmTypeClient().selectByIdCollection(ids);
            return result.getData();
        });
    }
    /**
     * æ‰¹é‡æ ¹æ®ä¸»é”®èŽ·å–ä¸šåŠ¡ç±»åž‹
     * @param pkBtmTypeCollection ä¸šåŠ¡ç±»åž‹ä¸»é”®é›†åˆ
     * @return ä¸šåŠ¡ç±»åž‹åˆ—è¡¨ï¼Œå¦‚æžœæœ‰ä¸å­˜åœ¨çš„ä¸ä¼šè¿”å›žï¼Œå…¨éƒ¨ä¸å­˜åœ¨çš„åˆ™è¿”å›žç©ºåˆ—è¡¨
     */
    public static List<BtmTypeVO> listBtmTypeByOidCollection(Collection<String> pkBtmTypeCollection) {
        String  keyPrefix = BTM_IDS.concat(StringPool.DASH).concat(AuthUtil.getTenantId()).concat(StringPool.COLON);
        return CacheUtil.get(BTM_TYPE_CACHE,keyPrefix,Func.toStr(pkBtmTypeCollection.stream().map(s -> s.substring(0,5))),() ->{
            R<List<BtmTypeVO>> result = getBtmTypeClient().listBtmTypeByOidCollection(pkBtmTypeCollection);
            return result.getData();
        });
    }
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/cache/OmdAttributeCache.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/constant/BtmTypeConstant.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,140 @@
package com.vci.ubcs.omd.constant;
/**
 * Description:
 *
 * @author LiHang
 * @date 2023/4/23
 */
public class BtmTypeConstant {
    /**
     * å±žæ€§çš„业务类型名称
     */
    public static final String OMD_ATTRIBUTE_BTM_TYPE = "attribute";
    /**
     * ä¸šåŠ¡ç±»åž‹å¯¹è±¡çš„ ä¸šåŠ¡ç±»åž‹åç§°
     */
    public static final String OMD_BTMTYPE = "btmtype";
    /**
     * ä¸šåŠ¡ç±»åž‹åŒ…å«çš„å±žæ€§çš„   ä¸šåŠ¡ç±»åž‹åç§°
     */
    public static final String OMD_BTNTYPE_ATTRIBUTE_BTM_TYPE = "btmtypeAttribute";
    /**
     * æžšä¸¾çš„业务类型名称
     */
    public static final String OMD_ENUM_BTM_TYPE = "enum";
    /**
     * æžšä¸¾é¡¹çš„业务类型名称
     */
    public static final String OMD_ENUM_ITEM_BTM_TYPE = "enumitem";
    /**
     * ç±»æ³¨é‡Šçš„业务类型名称
     */
    public static final String OMD_CLASS_ANNOTATION_BTM_TYPE = "classannotation";
    /**
     * å±žæ€§æ³¨é‡Šçš„业务类型名称
     */
    public static final String OMD_FIELD_ANNOTATION_BTM_TYPE = "fieldannotation";
    /**
     * ç”Ÿå‘½å‘¨æœŸçš„业务类型名称
     */
    public static final String OMD_LIFE_CYCLE_BTM_TYPE = "lifecycle";
    /**
     * ç”Ÿå‘½å‘¨æœŸäº‹ä»¶çš„业务类型名称
     */
    public static final String OMD_LIFE_CYCLE_EVENT_BTM_TYPE = "lifecycleevent";
    /**
     * ç”Ÿå‘½å‘¨æœŸè¿žæŽ¥çº¿çš„业务类型名称
     */
    public static final String OMD_LIFE_CYCLE_LINE_BTM_TYPE = "lifecycleline";
    /**
     * ç”Ÿå‘½å‘¨æœŸè¿žæŽ¥çº¿çš„事件  çš„业务类型名称
     */
    public static final String OMD_LIFE_CYCLE_LINE_EVENT_BTM_TYPE = "lifecyclelineevent";
    /**
     * é“¾æŽ¥ç±»åž‹çš„属性 çš„业务类型名称
     */
    public static final String OMD_LINK_TYPE_ATTRIBUTE_BTM_TYPE = "linktypeattribute";
    /**
     * é“¾æŽ¥ç±»åž‹ çš„业务类型名称
     */
    public static final String OMD_LINK_TYPE_BTM_TYPE = "linktype";
    /**
     * æ–¹æ³•注释 çš„业务类型名称
     */
    public static final String OMD_METHOD_ANNOTATION_BTM_TYPE = "methodannotation";
    /**
     * ä¿®æ”¹å±žæ€§çš„ ä¸šåŠ¡ç±»åž‹åç§°
     */
    public static final String OMD_MODIFY_ATTRIBUTE_BTM_TYPE = "modifyattribute";
    /**
     * å‚数注释 çš„业务类型名称
     */
    public static final String OMD_PARAM_ANNOTATION_BTM_TYPE = "paramannotation";
    /**
     * ç‰ˆæœ¬è§„则 çš„业务类型名称
     */
    public static final String OMD_REVISION_RULE_BTM_TYPE = "revisionrule";
    /**
     * çŠ¶æ€ çš„业务类型名称
     */
    public static final String OMD_STATUS_BTM_TYPE = "status";
    /**
     * ç¼–码规则 çš„业务类型名称
     */
    public static final String OMD_CODE_RULE_BTM_TYPE = "codeRule";
    /**
     * ç¼–码规则元素的业务类型名称
     */
    public static final String OMD_CODE_RULE_ELEMENT_BTM_TYPE = "codeRuleElement";
    /**
     * ç¼–码规则中的枚举值映射
     */
    public static final String OMD_CODE_ENUM_BTM_TYPE = "codeEnum";
    /**
     * ç¼–码元素中的特殊映射
     */
    public static final String OMD_CODE_ELEMENT_MAP_BTM_TYPE = "codeElementMap";
    /**
     * ç¼–码的断号
     */
    public static final String OMD_CODE_BREAK_CODE_BTM_TYPE = "codeBreakCode";
    /**
     * ç¼–码的流水号
     */
    public static final String OMD_CODE_SERIAL_NUMBER_BTM_TYPE = "codeSerialNumber";
    /**
     * ä»£ç ç”Ÿæˆæ–¹æ¡ˆ
     */
    public static final String OMD_CODE_GEN_SCHEMA_BTM_TYPE =  "codeGenSchema";
    /**
     * ä»£ç ç”Ÿæˆæ–¹æ¡ˆjs配置
     */
    public static final String OMD_CODE_GEN_SCHEMA_JS ="codeGenSchemaJs" ;
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/constant/BtmTypeFieldConstant.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,112 @@
package com.vci.ubcs.omd.constant;
import java.util.HashMap;
import java.util.Map;
/**
 * Description:
 *
 * @author LiHang
 * @date 2023/4/27
 */
public class BtmTypeFieldConstant {
    public static Map<String, String> USER_TABLE_COMPATIBILITY_BTM_MAP;
    public static Map<String, String> USER_TABLE_COMPATIBILITY_FIELD_MAP;
    public static final Boolean DEFAULT_QUERY_SECRET;
    public static final Boolean DEFAULT_QUERY_DATA_RIGHT;
    public static final Map<String, String> REVISION_MANAGE_FIELD_MAP;
    public static final Map<String, String> BASIC_FIELD_MAP;
    public static final Map<String, String> BASE_MODEL_COMPATIBILITY_MAP;
    public static final Map<String, String> LIFECYCLE_MANAGE_FIELD_MAP;
    public static final Map<String, String> SECRET_MANAGE_FIELD_MAP;
    public static final Map<String, String> LINK_TYPE_FIELD_MAP;
    static {
        USER_TABLE_COMPATIBILITY_BTM_MAP = new HashMap();
        USER_TABLE_COMPATIBILITY_FIELD_MAP = new HashMap();
        DEFAULT_QUERY_SECRET = true;
        DEFAULT_QUERY_DATA_RIGHT = false;
        REVISION_MANAGE_FIELD_MAP = new HashMap() {
            {
                this.put("nameoid", "对象主键");
                this.put("revisionoid", "版本主键");
                this.put("lastr", "是否最新版本");
                this.put("firstr", "是否最老版本");
                this.put("lastv", "是否最新版次");
                this.put("firstv", "是否最老版次");
                this.put("revisionrule", "版本规则");
                this.put("revisionseq", "版本排序号");
                this.put("revisionvalue", "版本值");
                this.put("versionrule", "版次规则");
                this.put("versionseq", "版次排序号");
                this.put("versionvalue", "版次值");
                this.put("checkinby", "签入人");
                this.put("checkintime", "签入时间");
                this.put("checkoutby", "签出人");
                this.put("checkouttime", "签出时间");
                this.put("copyfromversion", "拷贝版本来源");
            }
        };
        BASIC_FIELD_MAP = new HashMap() {
            {
                this.put("oid", "主键");
                this.put("btmname", "业务类型的名称");
                this.put("id", "编号");
                this.put("name", "名称");
                this.put("description", "描述");
                this.put("creator", "创建人");
                this.put("createtime", "创建时间");
                this.put("lastmodifier", "最后时间人");
                this.put("lastmodifytime", "最后修改时间");
                this.put("ts", "时间戳");
                this.put("owner", "拥有者");
            }
        };
        BASE_MODEL_COMPATIBILITY_MAP = new HashMap() {
            {
                this.put("lastr", "islastr");
                this.put("firstr", "isfirstr");
                this.put("lastv", "islastv");
                this.put("firstv", "isfirstv");
            }
        };
        LIFECYCLE_MANAGE_FIELD_MAP = new HashMap() {
            {
                this.put("lcstatus", "生命周期值");
            }
        };
        SECRET_MANAGE_FIELD_MAP = new HashMap() {
            {
                this.put("secretgrade", "密级值");
            }
        };
        LINK_TYPE_FIELD_MAP = new HashMap() {
            {
                this.put("oid", "主键");
                this.put("creator", "创建人");
                this.put("createtime", "创建时间");
                this.put("lastmodifier", "最后时间人");
                this.put("lastmodifytime", "最后修改时间");
                this.put("f_oid", "from端主键");
                this.put("f_revisionoid", "from端版本主键");
                this.put("f_nameoid", "from端对象主键");
                this.put("f_btmname", "from端业务类型");
                this.put("t_oid", "to端主键");
                this.put("t_revisionoid", "to端版本主键");
                this.put("t_nameoid", "to端对象主键");
                this.put("t_btmname", "to端业务类型");
                this.put("ts", "时间戳");
            }
        };
    }
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/constant/BtmTypeLcStatusConstant.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.vci.ubcs.omd.constant;
/**
 * Description:
 *
 * @author LiHang
 * @date 2023/4/27
 */
public class BtmTypeLcStatusConstant {
    public static final String FRAME_WORK_LIFE_CYCLE_NAME = "frameworkDataLc";
    public static final String EMTYPE_LIFE_CYCLE = "defaultLC";
    public static final String RELEASE_LIFE_CYCLE = "releaseDataLc";
    public BtmTypeLcStatusConstant() {
    }
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/constant/OmdCacheConstant.java
@@ -11,4 +11,12 @@
     * å…ƒæ•°æ®
     */
    public static final String ATTR_CACHE = "ubcs:attr";
    /**
     * ä¸šåŠ¡ç±»åž‹
     */
    public static final String BTM_CACHE = "ubcs:btmtype";
    /**
     * é“¾æŽ¥ç±»åž‹
     */
    public static final String LINK_CACHE = "ubcs:linktype";
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/dto/AttributeDTO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package com.vci.ubcs.omd.dto;
import com.vci.ubcs.omd.entity.Attribute;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
 * Description: å…ƒæ•°æ®é¡µé¢ä¼ è¾“对象
 *
 * @author LiHang
 * @date 2023/4/4
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class AttributeDTO extends Attribute {
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = 5515095331865594996L;
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/dto/BtmAndLinkTypeDdlDTO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
package com.vci.ubcs.omd.dto;
import com.vci.ubcs.omd.vo.BtmTypeVO;
import com.vci.ubcs.omd.vo.LinkTypeVO;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
 * Description:
 *
 * @author LiHang
 * @date 2023/4/27
 */
@Data
public class BtmAndLinkTypeDdlDTO implements Serializable {
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = 1199602927699648522L;
    List<BtmTypeVO> btmTypeList;
    List<LinkTypeVO> linkTypeList;
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/dto/BtmTypeDTO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,151 @@
package com.vci.ubcs.omd.dto;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
 * ä¸šåŠ¡ç±»åž‹æ·»åŠ æˆ–è€…ä¿®æ”¹æ—¶çš„æ•°æ®ä¼ è¾“å¯¹è±¡
 * @author weidy
 * @date 2019/10/14 16:43
 */
@Data
public class BtmTypeDTO implements java.io.Serializable{
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = 2009350578651813260L;
    /**
     * ä¸»é”®
     */
    private String oid;
    /**
     * ä¸šåŠ¡ç±»åž‹è‹±æ–‡åç§°
     */
    private String id;
    /**
     * ä¸šåŠ¡ç±»åž‹ä¸­æ–‡åç§°
     */
    private String name;
    /**
     * æ•°æ®åº“表的名称
     */
    private String tableName;
    /**
     * æè¿°
     */
    private String description;
    /**
     * ç‰ˆæœ¬è§„则的编号
     */
    private String revisionRuleId;
    /**
     * ç‰ˆæœ¬è§„则的名称
     */
    private String revisionRuleName;
    /**
     * åˆ†éš”符
     */
    private String revisionSep;
    /**
     * æ˜¯å¦æ‰‹åŠ¨è¾“å…¥ç‰ˆæœ¬
     */
    private boolean inputRevisionFlag;
    /**
     * æ˜¯å¦æŠ½è±¡åŒ–
     */
    private boolean abstractFlag;
    /**
     * æ˜¯å¦æŽ§åˆ¶ç‰ˆæœ¬
     */
    private boolean revisionFlag;
    /**
     * æ˜¯å¦æŽ§åˆ¶ç”Ÿå‘½å‘¨æœŸ
     */
    private boolean lifeCycleFlag;
    /**
     * æ˜¯å¦æŽ§åˆ¶å¯†çº§
     */
    private boolean secretFlag;
    /**
     * å®žä¾‹åŒ–ç±»
     */
    private String implClass;
    /**
     * C#
     */
    private String shape;
    /**
     * ç”Ÿå‘½å‘¨æœŸçš„英文名称
     */
    private String lifeCycleId;
    /**
     * ç”Ÿå‘½å‘¨æœŸçš„中文名称
     */
    private String lifeCycleName;
    /**
     * ç‰ˆæ¬¡è§„则
     */
    private String versionRule;
    /**
     * å¤‡ç”¨ç”Ÿå‘½å‘¨æœŸè‹±æ–‡åç§°
     */
    private String subLifeCycleId;
    /**
     * å¤‡ç”¨ç”Ÿå‘½å‘¨æœŸä¸­æ–‡åç§°
     */
    private String subLifeCycleName;
    /**
     * æ˜¯å¦ä¸ºè§†å›¾
     */
    private boolean viewFlag;
    /**
     * è§†å›¾åˆ›å»ºçš„sql语句
     */
    private String viewCreateSql;
    /**
     * ç±»çš„全路径
     */
    private String classFullName;
    /**
     * æ·»åŠ æˆ–è€…ç§»é™¤çš„å±žæ€§ä¿¡æ¯
     */
    private List<BtmTypeLinkAttributesDTO> attributes;
    /**
     * æ—¶é—´æˆ³ï¼Œç”¨äºŽæ ¡éªŒæ˜¯å¦æœ€æ–°æ•°æ®
     */
    private Date ts;
    /**
     * ä¸šåŠ¡ç±»åž‹æ‰€å±žé¢†åŸŸ
     */
    private String domain;
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/dto/BtmTypeExportDTO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,55 @@
package com.vci.ubcs.omd.dto;
import lombok.Data;
import java.util.List;
/**
 * å¯¼å…¥å¯¼å‡ºçš„æ•°æ®ä¼ è¾“对象
 * åŒ…括枚举,状态,生命周期,版本规则,属性,业务类型,链接类型等
 * @author weidy
 * @date 2019/10/14 17:09
 */
@Data
public class BtmTypeExportDTO implements java.io.Serializable{
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = -5279288274756092398L;
    /**
     * çŠ¶æ€æ•°æ®ä¼ è¾“å¯¹è±¡
     */
    private List<StatusDTO> statusDTOList;
    /**
     * ç‰ˆæœ¬è§„则数据传输对象
     */
    private List<RevisionRuleDTO> revisionRuleDTOList;
    /**
     * æžšä¸¾æ•°æ®ä¼ è¾“对象
     */
    private List<EnumDTO> enumDTOList;
    /**
     * ç”Ÿå‘½å‘¨æœŸæ•°æ®ä¼ è¾“对象
     */
    private List<LifeCycleDTO> lifeCycleDTOList;
    /**
     * å±žæ€§æ•°æ®ä¼ è¾“对象
     */
    private List<AttributeDTO> attributeDTOList;
    /**
     * ä¸šåŠ¡ç±»åž‹æ•°æ®ä¼ è¾“å¯¹è±¡
     */
    private List<BtmTypeDTO> btmTypeDTOList;
    /**
     * é“¾æŽ¥ç±»åž‹æ•°æ®ä¼ è¾“对象
     */
    private List<LinkTypeDTO> linkTypeDTOList;
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/dto/BtmTypeLinkAttributesDTO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,98 @@
package com.vci.ubcs.omd.dto;
import lombok.Data;
/**
 * å¾€ä¸šåŠ¡ç±»åž‹ä¸­æ·»åŠ /移除属性的数据传输对象
 * @author weidy
 * @date 2019/10/14 16:17
 */
@Data
public class BtmTypeLinkAttributesDTO implements java.io.Serializable{
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = 7635248565930948807L;
    /**
     * ä¸»é”®
     */
    private String oid;
    /**
     * å±žæ€§çš„字段名称
     */
    private String id;
    /**
     * å±žæ€§çš„中文名称
     */
    private String name;
    /**
     * å±žæ€§çš„长度
     */
    private Integer attributeLength;
    /**
     * æ˜¯å¦å¯ä»¥ä¸ºç©º
     */
    private boolean nullableFlag;
    /**
     * é»˜è®¤å€¼
     */
    private String defaultValue;
    /**
     * å°æ•°ç²¾åº¦ä½æ•°
     */
    private Integer precisionLength;
    /**
     * åˆ»åº¦
     */
    private Integer scaleLength;
    /**
     * å–值范围
     */
    private String range;
    /**
     * å±žæ€§åœ¨æœ¬ä¸šåŠ¡ç±»åž‹ä¸­çš„æè¿°
     */
    private String description;
    /**
     * æ•°æ®ç±»åž‹
     */
    private String attrDataType;
    /**
     * å‚照业务类型
     */
    private String referBtmTypeId;
    /**
     * å‚照业务类型名称
     */
    private String referBtmTypeName;
    /**
     * æžšä¸¾ç¼–号
     */
    private String enumId;
    /**
     * æžšä¸¾åç§°
     */
    private String enumName;
    /**
     * æ˜¯å¦ä¸ºåˆ é™¤å±žæ€§
     */
    private boolean removeAttribute;
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/dto/EnumDTO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,163 @@
package com.vci.ubcs.omd.dto;
import java.util.Date;
import java.util.Map;
/**
 * æžšä¸¾æ•°æ®ä¼ è¾“对象
 * @author weidy
 * @date 2019/10/14 17:25
 */
public class EnumDTO implements java.io.Serializable{
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = 814342725285373312L;
    /**
     * ä¸»é”®
     */
    private String oid;
    /**
     * å±žæ€§è‹±æ–‡åç§°
     */
    private String id;
    /**
     * å±žæ€§ä¸­æ–‡åç§°
     */
    private String name;
    /**
     * æè¿°
     */
    private String description;
    /**
     * æžšä¸¾å€¼ç±»åž‹
     */
    private String enumValueDataType;
    /**
     * é•¿åº¦
     */
    private Integer length;
    /**
     * æ—¶é—´æˆ³ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss.SSS
     */
    private Date ts;
    /**
     * ç±»çš„全路径
     */
    private String classFullName;
    /**
     * æžšä¸¾é¡¹æ˜ å°„值
     */
    private Map<String,String> itemMaps;
    /**
     * æžšä¸¾é¡¹çš„主键映射,key是主键,value是枚举项的英文名称
     */
    private Map<String,String> itemOidMaps;
    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 getEnumValueDataType() {
        return enumValueDataType;
    }
    public void setEnumValueDataType(String enumValueDataType) {
        this.enumValueDataType = enumValueDataType;
    }
    public Integer getLength() {
        return length;
    }
    public void setLength(Integer length) {
        this.length = length;
    }
    public Date getTs() {
        return ts;
    }
    public void setTs(Date ts) {
        this.ts = ts;
    }
    public Map<String, String> getItemMaps() {
        return itemMaps;
    }
    public void setItemMaps(Map<String, String> itemMaps) {
        this.itemMaps = itemMaps;
    }
    public Map<String, String> getItemOidMaps() {
        return itemOidMaps;
    }
    public void setItemOidMaps(Map<String, String> itemOidMaps) {
        this.itemOidMaps = itemOidMaps;
    }
    public String getClassFullName() {
        return classFullName;
    }
    public void setClassFullName(String classFullName) {
        this.classFullName = classFullName;
    }
    @Override
    public String toString() {
        return "OsEnumDTO{" +
                "oid='" + oid + '\'' +
                ", id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", description='" + description + '\'' +
                ", enumValueDataType='" + enumValueDataType + '\'' +
                ", length=" + length +
                ", ts=" + ts +
                ", classFullName='" + classFullName + '\'' +
                ", itemMaps=" + itemMaps +
                ", itemOidMaps=" + itemOidMaps +
                '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/dto/LifeCycleDTO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,66 @@
package com.vci.ubcs.omd.dto;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
 * ç”Ÿå‘½å‘¨æœŸæ•°æ®ä¼ è¾“对象
 * @author weidy
 * @date 2019/10/14 17:28
 */
@Data
public class LifeCycleDTO implements java.io.Serializable {
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = -2896532706167604421L;
    /**
     * ä¸»é”®
     */
    private String oid;
    /**
     * ç”Ÿå‘½å‘¨æœŸç¼–号
     */
    private String id;
    /**
     * ç”Ÿå‘½å‘¨æœŸåç§°
     */
    private String name;
    /**
     * æè¿°
     */
    private String description;
    /**
     * èµ·å§‹çŠ¶æ€
     */
    private String startStatus;
    /**
     * èµ·å§‹çŠ¶æ€åç§°
     */
    private String startStatusName;
    /**
     * åœ¨æ‰«æçš„æ—¶å€™è®°å½•这个生命周期对应的类全路径
     */
    private String classFullName;
    /**
     * æ—¶é—´æˆ³ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss.SSS
     */
    private Date ts;
    /**
     * åŒ…含的连接线
     */
    private List<LifeCycleLineDTO> lineDTOList;
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/dto/LifeCycleLineDTO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,82 @@
package com.vci.ubcs.omd.dto;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
 * ç”Ÿå‘½å‘¨æœŸè¿žæŽ¥çº¿æ•°æ®ä¼ è¾“对象
 * @author weidy
 * @date 2019/10/14 17:31
 */
@Data
public class LifeCycleLineDTO implements java.io.Serializable{
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = -7556637895235122903L;
    /**
     * æ‰€å±žç”Ÿå‘½å‘¨æœŸ
     */
    private String pkLifeCycle;
    /**
     * æºçŠ¶æ€ä¸»é”®
     */
    private String sourceLifeStatusOid;
    /**
     * æºçŠ¶æ€ä»£å·
     */
    private String sourceLifeStatus;
    /**
     * æºçŠ¶æ€åç§°
     */
    private String sourceLifeStatusName;
    /**
     * ç›®æ ‡çŠ¶æ€ä¸»é”®
     */
    private String targetLifeStatusOid;
    /**
     * ç›®æ ‡çŠ¶æ€ä»£å·
     */
    private String targetLifeStatus;
    /**
     * ç›®æ ‡çŠ¶æ€åç§°
     */
    private String targetLifeStatusName;
    /**
     * è¿žæŽ¥çº¿åç§°
     */
    private String name;
    /**
     * è¿žæŽ¥çº¿ä½ç½®ä¿¡æ¯
     */
    private String transLineSiteInfo;
    /**
     * ä¸»é”®
     */
    private String oid;
    /**
     * æ—¶é—´æˆ³ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss.SSS
     */
    private Date ts;
    /**
     * åŒ…含的事件
     */
    private List<LifeCycleLineEventDTO> eventDTOList;
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/dto/LifeCycleLineEventDTO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
package com.vci.ubcs.omd.dto;
import lombok.Data;
import java.util.Date;
/**
 * ç”Ÿå‘½å‘¨æœŸäº‹ä»¶æ•°æ®ä¼ è¾“对象
 * @author weidy
 * @date 2019/10/14 17:47
 */
@Data
public class LifeCycleLineEventDTO implements java.io.Serializable {
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = 6860210157516359420L;
    /**
     * ä¸»é”®
     */
    private String oid;
    /**
     * æ‰€å±žç”Ÿå‘½å‘¨æœŸè¿žæŽ¥çº¿ä¸»é”®
     */
    private String pkLifeCycleLine;
    /**
     * äº‹ä»¶çš„全路径
     */
    private String eventFullName;
    /**
     * äº‹ä»¶çš„名称
     */
    private String eventShowName;
    /**
     * æ—¶é—´æˆ³ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss.SSS
     */
    private Date ts;
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/dto/LinkTypeDTO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,86 @@
package com.vci.ubcs.omd.dto;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
 * é“¾æŽ¥ç±»åž‹çš„æ•°æ®ä¼ è¾“对象
 * @author weidy
 * @date 2019/10/14 17:53
 */
@Data
public class LinkTypeDTO implements java.io.Serializable {
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = 7723683851305095408L;
    /**
     * ä¸»é”®
     */
    private String oid;
    /**
     * é“¾æŽ¥ç±»åž‹è‹±æ–‡åç§°
     */
    private String id;
    /**
     * é“¾æŽ¥ç±»åž‹ä¸­æ–‡åç§°
     */
    private String name;
    /**
     * æè¿°
     */
    private String description;
    /**
     *
     */
    private String shape;
    /**
     * å®žçŽ°ç±»
     */
    private String implClass;
    /**
     * from端业务类型
     */
    private String fromBtmType;
    /**
     * from端业务类型名称
     */
    private String fromBtmTypeName;
    /**
     * to端业务类型
     */
    private String toBtmType;
    /**
     * to端业务类型名称
     */
    private String toBtmTypeName;
    /**
     * æ—¶é—´æˆ³ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss.SSS
     */
    private Date ts;
    /**
     * ç±»æ‰€å±žçš„全路径
     */
    private String classFullName;
    /**
     * åŒ…含的属性显示对象
     */
    private List<BtmTypeLinkAttributesDTO> attributesDTOList;
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/dto/OmdAttributeDTO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/dto/RevisionRuleDTO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,69 @@
package com.vci.ubcs.omd.dto;
import lombok.Data;
import java.util.Date;
/**
 * ç‰ˆæœ¬è§„则的数据传输对象
 * @author weidy
 * @date 2019/10/14 17:22
 */
@Data
public class RevisionRuleDTO implements java.io.Serializable{
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = -75866403471953492L;
    /**
     * ä¸»é”®
     */
    private String oid;
    /**
     * è‹±æ–‡åç§°
     */
    private String id;
    /**
     * ä¸­æ–‡åç§°
     */
    private String name;
    /**
     * è·³è·ƒå­—符
     */
    private String skipCode;
    /**
     * åˆå§‹å€¼
     */
    private String startCode;
    /**
     * æ­¥é•¿
     */
    private Integer serialStep;
    /**
     * å‰ç¼€
     */
    private String prefixCode;
    /**
     * åŽç¼€
     */
    private String suffixCode;
    /**
     * æè¿°
     */
    private String description;
    /**
     * æ—¶é—´æˆ³ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss.SSS
     */
    private Date ts;
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/dto/StatusDTO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
package com.vci.ubcs.omd.dto;
import lombok.Data;
import java.util.Date;
/**
 * çŠ¶æ€æ•°æ®ä¼ è¾“å¯¹è±¡
 * @author weidy
 * @date 2019/10/14 17:15
 */
@Data
public class StatusDTO implements java.io.Serializable{
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = 6832696922597736395L;
    /**
     * ä¸»é”®
     */
    private String oid;
    /**
     * çŠ¶æ€è‹±æ–‡åç§°
     */
    private String id;
    /**
     * çŠ¶æ€ä¸­æ–‡åç§°
     */
    private String name;
    /**
     * æè¿°
     */
    private String description;
    /**
     * æ—¶é—´æˆ³ï¼Œç”¨äºŽæ ¡éªŒæ˜¯å¦æœ€æ–°æ•°æ®
     */
    private Date ts;
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/entity/Attribute.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,187 @@
package com.vci.ubcs.omd.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springblade.core.mp.base.BaseEntity;
import org.springframework.data.annotation.Transient;
import javax.validation.constraints.NotNull;
import java.util.Date;
/**
 * Description: å…ƒæ•°æ®(属性池)
 *
 * @author LiHang
 * @date 2023/4/3
 */
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@TableName("pl_omd_attribute")
@ApiModel(value = "属性对象", description = "属性对象")
public class Attribute extends BaseEntity {
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = -6792640675358002410L;
    /**
     * ç§Ÿæˆ·ID
     */
    @ApiModelProperty(value = "租户ID")
    private String tenantId;
    /**
     * å­—段编号
     */
    @ApiModelProperty(value = "字段编号")
    @NotNull
    private String key;
    /**
     * å­—段名称
     */
    @ApiModelProperty(value = "字段名称")
    private String label;
    /**
     * å±žæ€§ç±»åž‹å­—典码
     */
    @ApiModelProperty(value = "属性类型字典码")
    private String typeCode;
    /**
     * å±žæ€§ç±»åž‹å­—典值
     */
    @ApiModelProperty(value = "属性类型字典值")
    private String typeKey;
    /**
     * å±žæ€§ç±»åž‹å­—典显示名称
     */
    @Transient
    @TableField(exist = false)
    private String typeValue;
    /**
     * æ ‡ç­¾
     */
    @ApiModelProperty(value = "标签")
    private String hashtag;
    /**
     * æè¿°
     */
    @ApiModelProperty(value = "描述")
    private String description;
    /**
     * æ˜¯å¦ä¸ºç©º
     */
    @ApiModelProperty("是否为空")
    private String nullable;
    /**
     * æœ€å¤§é•¿åº¦
     */
    @ApiModelProperty("最大长度")
    private Integer maxLength;
    /**
     * ç²¾åº¦
     */
    @ApiModelProperty("精度")
    private Integer precision;
    /**
     * å‚照的类型
     */
    @ApiModelProperty("参照类型字典码")
    private String referTypeCode;
    /**
     * å‚照类型字典值
     */
    @ApiModelProperty("参照类型字典值")
    private String referTypeKey;
    /**
     * å‚照类型字典显示名称
     */
    @Transient
    @TableField(exist = false)
    private String referTypeValue;
    /**
     * å‚照对象
     */
    @ApiModelProperty("参照的主键")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long referToId;
    /**
     * å‚照对象的名称
     */
    @ApiModelProperty("参照对象名称")
    private String referToName;
    /**
     * ä½¿ç”¨å­—å…¸
     */
    @ApiModelProperty("使用字典")
    private String usingDict;
    /**
     * å­—典码
     */
    @ApiModelProperty("字典码")
    private String dictCode;
    /**
     * å­—典键值
     */
    @ApiModelProperty("字典键值")
    private String dictKey;
    /**
     * å­—典显示值
     */
    @Transient
    @TableField(exist = false)
    private String dictValue;
    /**
     * é»˜è®¤å€¼
     */
    @ApiModelProperty("默认值")
    private String defaultValue;
    /**
     * æ—¶é—´æˆ³
     */
    @ApiModelProperty(value = "时间戳")
    private Date ts;
    /**
     * æ¯”较方式
     */
    @Transient
    @TableField(exist = false)
    private String calculateType;
    /**
     * æ¯”较值
     */
    @Transient
    @TableField(exist = false)
    private String calculateValue;
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/entity/BtmType.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,179 @@
package com.vci.ubcs.omd.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.util.Date;
/**
 *
 * ä¸šåŠ¡ç±»åž‹
 * @author weidy
 * @date 2019/10/11 3:12 PM
 */
@Data
@TableName("pl_omd_btm_type")
@ApiModel(value = "业务类型", description = "业务类型")
public class BtmType implements java.io.Serializable{
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = 3004863827430218501L;
    /**
     * ä¸»é”®
     */
    private String oid;
    /**
     * ä¸šåŠ¡ç±»åž‹è‹±æ–‡åç§°
     */
    private String id;
    /**
     * ä¸šåŠ¡ç±»åž‹ä¸­æ–‡åç§°
     */
    private String name;
    /**
     * æ•°æ®åº“表的名称
     */
    private String tableName;
    /**
     * æè¿°
     */
    private String description;
    /**
     * æ˜¯å¦æŽ§åˆ¶ç‰ˆæœ¬
     */
    private String revisionFlag;
    /**
     * ç‰ˆæœ¬è§„则的编号
     */
    private String revisionRuleId;
    /**
     * ç‰ˆæœ¬è§„则的名称
     */
    private String revisionRuleName;
    /**
     * åˆ†éš”符
     */
    private String revisionSep;
    /**
     * æ˜¯å¦æ‰‹åŠ¨è¾“å…¥ç‰ˆæœ¬
     */
    private String inputRevisionFlag;
    /**
     * æ˜¯å¦æŽ§åˆ¶å¯†çº§
     */
    private String secretFlag;
    /**
     * æ˜¯å¦æŠ½è±¡åŒ–
     */
    private String abstractFlag;
    /**
     * å®žä¾‹åŒ–ç±»
     */
    private String implClass;
    /**
     * C#
     */
    private String shape;
    /**
     * æ˜¯å¦æŽ§åˆ¶ç”Ÿå‘½å‘¨æœŸ
     */
    private String lifeCycleFlag;
    /**
     * ç”Ÿå‘½å‘¨æœŸçš„英文名称
     */
    private String lifeCycleId;
    /**
     * ç”Ÿå‘½å‘¨æœŸçš„中文名称
     */
    private String lifeCycleName;
    /**
     * ç‰ˆæ¬¡è§„则
     */
    private String versionRule;
    /**
     * å¤‡ç”¨ç”Ÿå‘½å‘¨æœŸè‹±æ–‡åç§°
     */
    private String subLifeCycleId;
    /**
     * å¤‡ç”¨ç”Ÿå‘½å‘¨æœŸä¸­æ–‡åç§°
     */
    private String subLifeCycleName;
    /**
     * æ˜¯å¦ä¸ºè§†å›¾
     */
    private String viewFlag;
    /**
     * è§†å›¾åˆ›å»ºçš„sql语句
     */
    private String viewCreateSql;
    /**
     * ä¸šåŠ¡ç±»åž‹åç§°
     */
    private String btmname;
    /**
     * æ‹¥æœ‰è€…
     */
    private String owner;
    /**
     * åˆ›å»ºäºº
     */
    private String creator;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    private Date createTime;
    /**
     * æœ€åŽä¿®æ”¹äºº
     */
    private String lastModifier;
    /**
     * æœ€åŽä¿®æ”¹æ—¶é—´ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss
     */
    private Date lastModifyTime;
    /**
     * æ—¶é—´æˆ³ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss.SSS
     */
    private Date ts;
    /**
     * ä¸šåŠ¡ç±»åž‹æ‰€å±žé¢†åŸŸ
     */
    private String domain;
    /**
     * ä¸€è‡´æ€§æ ‡è¯†
     */
    private String consistence;
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/entity/BtmTypeAttribute.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,140 @@
package com.vci.ubcs.omd.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.util.Date;
/**
 *
 * ä¸šåŠ¡ç±»åž‹åŒ…å«çš„å±žæ€§
 * @author weidy
 * @date 2019/10/11 3:21 PM
 */
@Data
@TableName("pl_omd_btm_type_attr")
@ApiModel(value = "业务类型包含的属性", description = "业务类型包含的属性")
public class BtmTypeAttribute implements java.io.Serializable{
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = -4431848943790920077L;
    /**
     * ä¸»é”®
     */
    private String oid;
    /**
     * æ‰€å±žä¸šåŠ¡ç±»åž‹
     */
    private String pkBtmType;
    /**
     * å±žæ€§çš„字段名称
     */
    private String id;
    /**
     * å±žæ€§çš„中文名称
     */
    private String name;
    /**
     * å±žæ€§çš„长度
     */
    private Integer attributeLength;
    /**
     * å±žæ€§åœ¨æœ¬ä¸šåŠ¡ç±»åž‹ä¸­çš„æè¿°
     */
    private String description;
    /**
     * æ•°æ®ç±»åž‹
     */
    private String attrDataType;
    /**
     * æ˜¯å¦å¯ä»¥ä¸ºç©º
     */
    private String nullableFlag;
    /**
     * é»˜è®¤å€¼
     */
    private String defaultValue;
    /**
     * å°æ•°ç²¾åº¦ä½æ•°
     */
    private Integer precisionLength;
    /**
     * åˆ»åº¦
     */
    private Integer scaleLength;
    /**
     * å–值范围
     */
    private String range;
    /**
     * å‚照业务类型
     */
    private String referBtmTypeId;
    /**
     * å‚照业务类型名称
     */
    private String referBtmTypeName;
    /**
     * æžšä¸¾ç¼–号
     */
    private String enumId;
    /**
     * æžšä¸¾åç§°
     */
    private String enumName;
    /**
     * ä¸šåŠ¡ç±»åž‹åç§°
     */
    private String btmname;
    /**
     * æ‹¥æœ‰è€…
     */
    private String owner;
    /**
     * åˆ›å»ºäºº
     */
    private String creator;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    private Date createTime;
    /**
     * æœ€åŽä¿®æ”¹äºº
     */
    private String lastModifier;
    /**
     * æœ€åŽä¿®æ”¹æ—¶é—´ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss
     */
    private Date lastModifyTime;
    /**
     * æ—¶é—´æˆ³ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss.SSS
     */
    private Date ts;
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/entity/FieldRange.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,39 @@
package com.vci.ubcs.omd.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springblade.core.mp.base.BaseEntity;
/**
 * Description: å­—段范围
 *
 * @author LiHang
 * @date 2023/4/3
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@TableName("pl_omd_field_range")
@ApiModel(value = "字段范围",description = "字段范围")
public class FieldRange extends BaseEntity {
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = 7849276277821126507L;
    /**
     * æ¯”较方式
     */
    @ApiModelProperty("比较方式")
    private String calculateType;
    /**
     * æ¯”较值
     */
    @ApiModelProperty("比较值")
    private String calculateValue;
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/entity/LifeCycleEvent.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,82 @@
package com.vci.ubcs.omd.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.util.Date;
/**
 * ç”Ÿå‘½å‘¨æœŸäº‹ä»¶é›†åˆ
 * ä¸æ˜¯æŸä¸ªæŒ‡å®šçš„生命周期中,是所有的事件集合,方便在配置的时候选择
 * @author weidy
 * @date 2019/10/17 9:32
 */
@Data
@TableName("pl_omd_lift_cycle_event")
@ApiModel(value = "生命周期事件集合", description = "生命周期事件集合")
public class LifeCycleEvent implements java.io.Serializable{
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = 6950469551222671511L;
    /**
     * ä¸»é”®
     */
    private String oid;
    /**
     * äº‹ä»¶çš„全路径
     */
    private String eventFullName;
    /**
     * äº‹ä»¶çš„名称
     */
    private String eventShowName;
    /**
     * äº‹ä»¶æè¿°
     */
    private String description;
    /**
     * ä¸šåŠ¡ç±»åž‹åç§°
     */
    private String btmname;
    /**
     * æ‹¥æœ‰è€…
     */
    private String owner;
    /**
     * åˆ›å»ºäºº
     */
    private String creator;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    private Date createTime;
    /**
     * æœ€åŽä¿®æ”¹äºº
     */
    private String lastModifier;
    /**
     * æœ€åŽä¿®æ”¹æ—¶é—´ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss
     */
    private Date lastModifyTime;
    /**
     * æ—¶é—´æˆ³ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss.SSS
     */
    private Date ts;
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/entity/LifeCycleLine.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,101 @@
package com.vci.ubcs.omd.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.util.Date;
/**
 *
 * ç”Ÿå‘½å‘¨æœŸçŠ¶æ€è¿žæŽ¥çº¿
 * @author weidy
 * @date 2019/10/10 6:56 PM
 */
@Data
@TableName("pl_omd_lift_cycle_line")
@ApiModel(value = "生命周期状态连接线", description = "生命周期状态连接线")
public class LifeCycleLine implements java.io.Serializable {
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = 1220998076767353574L;
    /**
     * æ‰€å±žç”Ÿå‘½å‘¨æœŸ
     */
    private String pkLifeCycle;
    /**
     * æºçŠ¶æ€ä»£å·
     */
    private String sourceLifeStatus;
    /**
     * æºçŠ¶æ€åç§°
     */
    private String sourceLifeStatusName;
    /**
     * ç›®æ ‡çŠ¶æ€ä»£å·
     */
    private String targetLifeStatus;
    /**
     * ç›®æ ‡çŠ¶æ€åç§°
     */
    private String targetLifeStatusName;
    /**
     * è¿žæŽ¥çº¿åç§°
     */
    private String name;
    /**
     * è¿žæŽ¥çº¿ä½ç½®ä¿¡æ¯
     */
    private String transLineSiteInfo;
    /**
     * ä¸»é”®
     */
    private String oid;
    /**
     * ä¸šåŠ¡ç±»åž‹åç§°
     */
    private String btmname;
    /**
     * æ‹¥æœ‰è€…
     */
    private String owner;
    /**
     * åˆ›å»ºäºº
     */
    private String creator;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    private Date createTime;
    /**
     * æœ€åŽä¿®æ”¹äºº
     */
    private String lastModifier;
    /**
     * æœ€åŽä¿®æ”¹æ—¶é—´ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss
     */
    private Date lastModifyTime;
    /**
     * æ—¶é—´æˆ³ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss.SSS
     */
    private Date ts;
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/entity/LifeCycleLineEvent.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,86 @@
package com.vci.ubcs.omd.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.util.Date;
/**
 *
 * ç”Ÿå‘½å‘¨æœŸè¿žæŽ¥çº¿äº‹ä»¶
 * @author weidy
 * @date 2019/10/11 2:49 PM
 */
@Data
@TableName("pl_omd_lift_cycle_line_event")
@ApiModel(value = "生命周期状态连接线", description = "生命周期状态连接线")
public class LifeCycleLineEvent implements java.io.Serializable{
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = -842247029575668650L;
    /**
     * ä¸»é”®
     */
    private String oid;
    /**
     * æ‰€å±žç”Ÿå‘½å‘¨æœŸè¿žæŽ¥çº¿ä¸»é”®
     */
    private String pkLifeCycleLine;
    /**
     * äº‹ä»¶çš„全路径
     */
    private String eventFullName;
    /**
     * äº‹ä»¶çš„名称
     */
    private String eventShowName;
    /**
     * æŽ’序号
     */
    private Integer orderNum;
    /**
     * ä¸šåŠ¡ç±»åž‹åç§°
     */
    private String btmname;
    /**
     * æ‹¥æœ‰è€…
     */
    private String owner;
    /**
     * åˆ›å»ºäºº
     */
    private String creator;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    private Date createTime;
    /**
     * æœ€åŽä¿®æ”¹äºº
     */
    private String lastModifier;
    /**
     * æœ€åŽä¿®æ”¹æ—¶é—´ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss
     */
    private Date lastModifyTime;
    /**
     * æ—¶é—´æˆ³ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss.SSS
     */
    private Date ts;
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/entity/LifeCycleRule.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,95 @@
package com.vci.ubcs.omd.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.util.Date;
/**
 *
 * ç”Ÿå‘½å‘¨æœŸè§„则
 * @author weidy
 * @date 2019/10/10 5:59 PM
 */
@Data
@TableName("pl_omd_lift_cycle_rule")
@ApiModel(value = "生命周期规则", description = "生命周期规则")
public class LifeCycleRule implements java.io.Serializable {
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = 1476717511843047292L;
    /**
     * ä¸»é”®
     */
    private String oid;
    /**
     * ç”Ÿå‘½å‘¨æœŸç¼–号
     */
    private String id;
    /**
     * ç”Ÿå‘½å‘¨æœŸåç§°
     */
    private String name;
    /**
     * æè¿°
     */
    private String description;
    /**
     * èµ·å§‹çŠ¶æ€
     */
    private String startStatus;
    /**
     * èµ·å§‹çŠ¶æ€åç§°
     */
    private String startStatusName;
    /**
     * ç±»çš„全路径
     */
    private String classFullName;
    /**
     * ä¸šåŠ¡ç±»åž‹åç§°
     */
    private String btmname;
    /**
     * æ‹¥æœ‰è€…
     */
    private String owner;
    /**
     * åˆ›å»ºäºº
     */
    private String creator;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    private Date createTime;
    /**
     * æœ€åŽä¿®æ”¹äºº
     */
    private String lastModifier;
    /**
     * æœ€åŽä¿®æ”¹æ—¶é—´ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss
     */
    private Date lastModifyTime;
    /**
     * æ—¶é—´æˆ³ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss.SSS
     */
    private Date ts;
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/entity/LinkTypeAttribute.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,141 @@
package com.vci.ubcs.omd.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.util.Date;
/**
 *
 * é“¾æŽ¥ç±»åž‹åŒ…含的属性
 * @author weidy
 * @date 2019/10/11 3:21 PM
 */
@Data
@TableName("pl_omd_link_type_attr")
@ApiModel(value = "链接类型包含的属性", description = "链接类型包含的属性")
public class LinkTypeAttribute implements java.io.Serializable{
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = -2590096528345891496L;
    /**
     * ä¸»é”®
     */
    private String oid;
    /**
     * æ‰€å±žä¸šåŠ¡ç±»åž‹
     */
    private String pkLinkType;
    /**
     * å±žæ€§çš„字段名称
     */
    private String id;
    /**
     * å±žæ€§çš„中文名称
     */
    private String name;
    /**
     * å±žæ€§çš„长度
     */
    private Integer attributeLength;
    /**
     * å±žæ€§åœ¨æœ¬ä¸šåŠ¡ç±»åž‹ä¸­çš„æè¿°
     */
    private String description;
    /**
     * æ•°æ®ç±»åž‹
     */
    private String attrDataType;
    /**
     * æ˜¯å¦å¯ä»¥ä¸ºç©º
     */
    private String nullableFlag;
    /**
     * é»˜è®¤å€¼
     */
    private String defaultValue;
    /**
     * å°æ•°ç²¾åº¦ä½æ•°
     */
    private Integer precisionLength;
    /**
     * åˆ»åº¦
     */
    private Integer scaleLength;
    /**
     * å–值范围
     */
    private String range;
    /**
     * å‚照业务类型
     */
    private String referBtmTypeId;
    /**
     * å‚照业务类型名称
     */
    private String referBtmTypeName;
    /**
     * æžšä¸¾ç¼–号
     */
    private String enumId;
    /**
     * æžšä¸¾åç§°
     */
    private String enumName;
    /**
     * ä¸šåŠ¡ç±»åž‹åç§°
     */
    private String btmname;
    /**
     * æ‹¥æœ‰è€…
     */
    private String owner;
    /**
     * åˆ›å»ºäºº
     */
    private String creator;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    private Date createTime;
    /**
     * æœ€åŽä¿®æ”¹äºº
     */
    private String lastModifier;
    /**
     * æœ€åŽä¿®æ”¹æ—¶é—´ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss
     */
    private Date lastModifyTime;
    /**
     * æ—¶é—´æˆ³ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss.SSS
     */
    private Date ts;
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/entity/LinkTypeDO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,111 @@
package com.vci.ubcs.omd.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.util.Date;
/**
 * é“¾æŽ¥ç±»åž‹
 * @author weidy
 * @date 2019/10/11 3:41 PM
 */
@Data
@TableName("pl_omd_link_type")
@ApiModel(value = "链接类型", description = "链接类型")
public class LinkTypeDO implements java.io.Serializable{
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = -2973361863656603224L;
    /**
     * ä¸»é”®
     */
    private String oid;
    /**
     * é“¾æŽ¥ç±»åž‹è‹±æ–‡åç§°
     */
    private String id;
    /**
     * é“¾æŽ¥ç±»åž‹ä¸­æ–‡åç§°
     */
    private String name;
    /**
     * æè¿°
     */
    private String description;
    /**
     * .net
     */
    private String shape;
    /**
     * å®žçŽ°ç±»
     */
    private String implClass;
    /**
     * from端业务类型
     */
    private String fromBtmType;
    /**
     * from端业务类型名称
     */
    private String fromBtmTypeName;
    /**
     * to端业务类型
     */
    private String toBtmType;
    /**
     * to端业务类型名称
     */
    private String toBtmTypeName;
    /**
     * ä¸šåŠ¡ç±»åž‹åç§°
     */
    private String btmname;
    /**
     * æ‹¥æœ‰è€…
     */
    private String owner;
    /**
     * åˆ›å»ºäºº
     */
    private String creator;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    private Date createTime;
    /**
     * æœ€åŽä¿®æ”¹äºº
     */
    private String lastModifier;
    /**
     * æœ€åŽä¿®æ”¹æ—¶é—´ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss
     */
    private Date lastModifyTime;
    /**
     * æ—¶é—´æˆ³ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss.SSS
     */
    private Date ts;
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/entity/ModifyAttributeInfo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,128 @@
package com.vci.ubcs.omd.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
 * éœ€è¦ä¿®æ”¹æ•°æ®åº“表中字段的信息
 *
 * @author weidy
 * @date 2019/10/18 11:48
 */
@Data
@TableName("pl_omd_modify_attr_info")
@ApiModel(value = "需要修改数据库表中字段的信息", description = "需要修改数据库表中字段的信息")
public class ModifyAttributeInfo implements Serializable {
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = 2996604298980606103L;
    /**
     * è‹±æ–‡åç§°
     */
    private String id;
    /**
     * ä¸­æ–‡åç§°
     */
    private String name;
    /**
     * å¯¹è±¡ç±»åž‹
     */
    private String businessType;
    /**
     * æ•°æ®åº“表名
     */
    private String tableName;
    /**
     * ä»»åŠ¡æ‰§è¡ŒFlag
     */
    private String taskName;
    /**
     * æ·»åŠ çš„å±žæ€§
     */
    private String addAttributes;
    /**
     * ä¿®æ”¹çš„属性
     */
    private String modifyAttributes;
    /**
     * åˆ é™¤çš„属性
     */
    private String deleteAttributes;
    /**
     * å±žæ€§ä¿®æ”¹å‰çš„内容
     */
    private String beforeModifyAttributes;
    /**
     * è°ƒæ•´åŽŸå› 
     */
    private String modifyColumnReason;
    /**
     * ç”³è¯·è°ƒæ•´ç”¨æˆ·
     */
    private String orderModifyUserName;
    /**
     * ç”³è¯·è°ƒæ•´æ—¶é—´
     */
    private Date orderModifyDate;
    /**
     * æ˜¯å¦æ‰§è¡Œå®Œæˆ
     */
    private String handleFinishFlag;
    /**
     * æ‰§è¡Œäºº
     */
    private String handleUserName;
    /**
     * æ‰§è¡Œæ—¶é—´
     */
    private Date handleDate;
    /**
     * æ‰§è¡Œç»“æžœ
     */
    private String handleResult;
    /**
     * ä¸»é”®
     */
    private String oid;
    /**
     * æè¿°
     */
    private String description;
    /**
     * ä¸šåŠ¡ç±»åž‹åç§°
     */
    private String btmname;
    /**
     * åˆ›å»ºäºº
     */
    private String creator;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    private Date createTime;
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/entity/OmdAttribute.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/entity/OmdFieldRange.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IAttributeClient.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,60 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill åº„骞 (smallchill@163.com)
 */
package com.vci.ubcs.omd.feign;
import com.vci.ubcs.omd.entity.Attribute;
import org.springblade.core.launch.constant.AppConstant;
import org.springblade.core.tool.api.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
 * Feign接口类
 *
 * @author Chill
 */
@FeignClient(
    value = AppConstant.APPLICATION_NAME_OMD,
    fallback = IAttributeFallback.class
)
public interface IAttributeClient {
    String API_PREFIX = "/client";
    String GET_BY_ID = API_PREFIX + "/attribute/get-by-id";
    String GET_LIST = API_PREFIX + "/attribute/get-list";
    /**
     * èŽ·å–å…ƒæ•°æ®å¯¹è±¡
     * @param id ä¸»é”®
     * @return å…ƒæ•°æ®å¯¹è±¡
     */
    @GetMapping(GET_BY_ID)
    R<Attribute> getById(@RequestParam("id") Long id);
    /**
     * èŽ·å–å…ƒæ•°æ®åˆ—è¡¨
     * @param key æŸ¥è¯¢å±žæ€§å
     * @return å…ƒæ•°æ®åˆ—表
     */
    @GetMapping(GET_LIST)
    R<List<Attribute>> getList(@RequestParam("key") String key);
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IAttributeFallback.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill åº„骞 (smallchill@163.com)
 */
package com.vci.ubcs.omd.feign;
import com.vci.ubcs.omd.entity.Attribute;
import org.springblade.core.tool.api.R;
import org.springframework.stereotype.Component;
import java.util.List;
/**
 * Feign失败配置
 *
 * @author Chill
 */
@Component
public class IAttributeFallback implements IAttributeClient {
    @Override
    public R<Attribute> getById(Long id) {
        return R.fail("获取数据失败");
    }
    @Override
    public R<List<Attribute>> getList(String code) {
        return R.fail("获取数据失败");
    }
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IBtmTypeClient.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,96 @@
package com.vci.ubcs.omd.feign;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.vci.ubcs.omd.vo.BtmTypeVO;
import org.springblade.core.launch.constant.AppConstant;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
 * Description: ä¸šåŠ¡ç±»åž‹Feign接口类
 *
 * @author LiHang
 * @date 2023/4/24
 */
@FeignClient(
    value = AppConstant.APPLICATION_NAME_OMD,
    fallback = IBtmTypeFallback.class
)
public interface IBtmTypeClient {
    /**
     * å‰ç¼€
     */
    String API_PREFIX = "/client";
    /**
     * å‚照列表查询
     */
    String GET_REF_PAGE = API_PREFIX + "/btm-type/get-ref-page";
    /**
     * å‚照列表查询无分页
     */
    String GET_REF = API_PREFIX + "/btm-type/get-ref";
    /**
     * å‚照明细
     */
    String GET_DETAIL = API_PREFIX + "/btm-type/get-detail";
    /**
     * è‹±æ–‡åç§°æ‰¹é‡æŸ¥è¯¢
     */
    String GET_BY_IDS = API_PREFIX + "/btm-type/get-by-ids";
    /**
     * ä¸»é”®æ‰¹é‡æŸ¥è¯¢
     */
    String GET_BY_OIDS = API_PREFIX + "/btm-type/get-by-oids";
    /**
     * èŽ·å–ä¸šåŠ¡ç±»åž‹è¯¦æƒ…ä¿¡æ¯
     *
     * @param oid ä¸»é”®
     * @return ä¸šåŠ¡ç±»åž‹è¯¦æƒ…ä¿¡æ¯
     */
    @GetMapping(GET_DETAIL)
    R<BtmTypeVO> getDetail(@RequestParam("oid") String oid);
    /**
     * å‚照列表查询
     * @param condition æŸ¥è¯¢æ¡ä»¶
     * @param query åˆ†é¡µæ¡ä»¶
     * @param domain é¢†åŸŸå€¼
     * @return æŸ¥è¯¢ç»“æžœ
     */
    @GetMapping(GET_REF_PAGE)
    R<IPage<BtmTypeVO>> getRefPage(@RequestParam("condition")Map<String,Object> condition, @RequestParam("query")Query query, @RequestParam("domain") String domain);
    /**
     * å‚照列表查询
     * @param condition æŸ¥è¯¢æ¡ä»¶
     * @param domain é¢†åŸŸå€¼
     * @return æŸ¥è¯¢ç»“æžœ
     */
    @GetMapping(GET_REF)
    R<List<BtmTypeVO>> getRef(@RequestParam("condition")Map<String,Object> condition, @RequestParam("domain") String domain);
    /**
     * æ ¹æ®è‹±æ–‡åç§°æ‰¹é‡æŸ¥è¯¢å¯¹è±¡
     * @param ids å¯¹è±¡è‹±æ–‡åç§° ä½†æ˜¯ä¸èƒ½è¶…过1000
     * @return ä¸šåŠ¡å¯¹è±¡
     */
    @GetMapping(GET_BY_IDS)
    R<List<BtmTypeVO>> selectByIdCollection(List<String> ids);
    /**
     * æ‰¹é‡æ ¹æ®ä¸»é”®èŽ·å–ä¸šåŠ¡ç±»åž‹
     * @param pkBtmTypeCollection ä¸šåŠ¡ç±»åž‹ä¸»é”®é›†åˆ
     * @return ä¸šåŠ¡ç±»åž‹åˆ—è¡¨ï¼Œå¦‚æžœæœ‰ä¸å­˜åœ¨çš„ä¸ä¼šè¿”å›žï¼Œå…¨éƒ¨ä¸å­˜åœ¨çš„åˆ™è¿”å›žç©ºåˆ—è¡¨
     */
    @GetMapping(GET_BY_OIDS)
    R<List<BtmTypeVO>> listBtmTypeByOidCollection(Collection<String> pkBtmTypeCollection);
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IBtmTypeFallback.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,94 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill åº„骞 (smallchill@163.com)
 */
package com.vci.ubcs.omd.feign;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.vci.ubcs.omd.entity.Attribute;
import com.vci.ubcs.omd.vo.BtmTypeVO;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springframework.stereotype.Component;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
 * Feign失败配置
 *
 * @author Chill
 */
@Component
public class IBtmTypeFallback implements IBtmTypeClient {
    /**
     * èŽ·å–ä¸šåŠ¡ç±»åž‹è¯¦æƒ…ä¿¡æ¯
     *
     * @param oid ä¸»é”®
     * @return ä¸šåŠ¡ç±»åž‹è¯¦æƒ…ä¿¡æ¯
     */
    @Override
    public R<BtmTypeVO> getDetail(String oid) {
        return R.fail("获取数据失败");
    }
    /**
     * å‚照列表查询
     *
     * @param condition æŸ¥è¯¢æ¡ä»¶
     * @param query     åˆ†é¡µæ¡ä»¶
     * @param domain    é¢†åŸŸå€¼
     * @return æŸ¥è¯¢ç»“æžœ
     */
    @Override
    public R<IPage<BtmTypeVO>> getRefPage(Map<String, Object> condition, Query query, String domain) {
        return R.fail("获取数据失败");
    }
    /**
     * å‚照列表查询
     *
     * @param condition æŸ¥è¯¢æ¡ä»¶
     * @param domain    é¢†åŸŸå€¼
     * @return æŸ¥è¯¢ç»“æžœ
     */
    @Override
    public R<List<BtmTypeVO>> getRef(Map<String, Object> condition, String domain) {
        return R.fail("获取数据失败");
    }
    /**
     * æ ¹æ®è‹±æ–‡åç§°æ‰¹é‡æŸ¥è¯¢å¯¹è±¡
     *
     * @param ids å¯¹è±¡è‹±æ–‡åç§° ä½†æ˜¯ä¸èƒ½è¶…过1000
     * @return ä¸šåŠ¡å¯¹è±¡
     */
    @Override
    public R<List<BtmTypeVO>> selectByIdCollection(List<String> ids) {
        return R.fail("获取数据失败");
    }
    /**
     * æ‰¹é‡æ ¹æ®ä¸»é”®èŽ·å–ä¸šåŠ¡ç±»åž‹
     *
     * @param pkBtmTypeCollection ä¸šåŠ¡ç±»åž‹ä¸»é”®é›†åˆ
     * @return ä¸šåŠ¡ç±»åž‹åˆ—è¡¨ï¼Œå¦‚æžœæœ‰ä¸å­˜åœ¨çš„ä¸ä¼šè¿”å›žï¼Œå…¨éƒ¨ä¸å­˜åœ¨çš„åˆ™è¿”å›žç©ºåˆ—è¡¨
     */
    @Override
    public R<List<BtmTypeVO>> listBtmTypeByOidCollection(Collection<String> pkBtmTypeCollection) {
        return R.fail("获取数据失败");
    }
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IDictClientFallback.java
@@ -27,7 +27,7 @@
 *
 * @author Chill
 */
@Component
@Component("Dictclient2")
public class IDictClientFallback implements IDictClient {
    @Override
    public R<Dict> getById(Long id) {
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IOmdAttributeClient.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IOmdAttributeFallback.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/AttributeVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
package com.vci.ubcs.omd.vo;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.vci.ubcs.omd.entity.Attribute;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
 * Description: å…ƒæ•°æ®æ˜¾ç¤ºå¯¹è±¡
 *
 * @author LiHang
 * @date 2023/4/3
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "元数据显示对象", description = "元数据显示对象")
public class AttributeVO extends Attribute {
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = 279638479374768539L;
    /**
     * ä¸»é”®ID
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;
    @ApiModelProperty("字段范围")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    List<FieldRangeVO> fieldRanges;
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/BtmTypeAttributeVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,161 @@
package com.vci.ubcs.omd.vo;
import com.vci.ubcs.omd.entity.BtmTypeAttribute;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import java.util.Map;
/**
 * ä¸šåŠ¡ç±»åž‹åŒ…å«çš„å±žæ€§å¯¹è±¡
 * @author weidy
 * @date 2019/10/11 5:33 PM
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "业务类型包含的属性对象", description = "业务类型包含的属性对象")
public class BtmTypeAttributeVO extends BtmTypeAttribute {
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = 114224750717125698L;
    /**
     * ä¸»é”®
     */
    private String oid;
    /**
     * æ‰€å±žä¸šåŠ¡ç±»åž‹
     */
    private String pkBtmType;
    /**
     * ä¸šåŠ¡ç±»åž‹çš„ç¼–å·
     */
    private String btmTypeId;
    /**
     * å±žæ€§çš„字段名称
     */
    private String id;
    /**
     * å±žæ€§çš„中文名称
     */
    private String name;
    /**
     * å±žæ€§çš„长度
     */
    private Integer attributeLength;
    /**
     * å±žæ€§åœ¨æœ¬ä¸šåŠ¡ç±»åž‹ä¸­çš„æè¿°
     */
    private String description;
    /**
     * æ•°æ®ç±»åž‹
     */
    private String attrDataType;
    /**
     * æ˜¯å¦å¯ä»¥ä¸ºç©º
     */
    private boolean nullableFlag;
    /**
     * é»˜è®¤å€¼
     */
    private String defaultValue;
    /**
     * å°æ•°ç²¾åº¦ä½æ•°
     */
    private Integer precisionLength;
    /**
     * å°æ•°åˆ»åº¦ä½æ•°
     */
    private Integer scaleLength;
    /**
     * å–值范围
     */
    private String range;
    /**
     * æ˜¯å¦å‚ç…§
     */
    private boolean referFlag;
    /**
     * å‚照业务类型
     */
    private String referBtmTypeId;
    /**
     * å‚照业务类型名称
     */
    private String referBtmTypeName;
    /**
     * æžšä¸¾ç¼–号
     */
    private String enumId;
    /**
     * æžšä¸¾åç§°
     */
    private String enumName;
    /**
     * æ˜¯å¦æžšä¸¾
     */
    private boolean enumFlag;
    /**
z     * åŒ…含枚举的值
     */
    private Map<String,String> enumItemMap;
    /**
     * ä¸šåŠ¡ç±»åž‹åç§°
     */
    private String btmname;
    /**
     * æ‹¥æœ‰è€…
     */
    private String owner;
    /**
     * åˆ›å»ºäºº
     */
    private String creator;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    private Date createTime;
    /**
     * æœ€åŽä¿®æ”¹äºº
     */
    private String lastModifier;
    /**
     * æœ€åŽä¿®æ”¹æ—¶é—´ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss
     */
    private Date lastModifyTime;
    /**
     * æ—¶é—´æˆ³ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss.SSS
     */
    private Date ts;
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/BtmTypeVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,185 @@
package com.vci.ubcs.omd.vo;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
 * ä¸šåŠ¡ç±»åž‹æ˜¾ç¤ºå¯¹è±¡
 * @author weidy
 * @date 2019/10/11 5:24 PM
 */
@Data
public class BtmTypeVO implements java.io.Serializable{
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = 7683836259151573532L;
    /**
     * ä¸»é”®
     */
    private String oid;
    /**
     * ä¸šåŠ¡ç±»åž‹è‹±æ–‡åç§°
     */
    private String id;
    /**
     * ä¸šåŠ¡ç±»åž‹ä¸­æ–‡åç§°
     */
    private String name;
    /**
     * æ•°æ®åº“表的名称
     */
    private String tableName;
    /**
     * æè¿°
     */
    private String description;
    /**
     * ç‰ˆæœ¬è§„则的编号
     */
    private String revisionRuleId;
    /**
     * ç‰ˆæœ¬è§„则的名称
     */
    private String revisionRuleName;
    /**
     * åˆ†éš”符
     */
    private String revisionSep;
    /**
     * æ˜¯å¦æ‰‹åŠ¨è¾“å…¥ç‰ˆæœ¬
     */
    private boolean inputRevisionFlag;
    /**
     * ç‰ˆæœ¬è§„则显示对象
     */
    private RevisionRuleVO revisionRuleVO;
    /**
     * æ˜¯å¦æŠ½è±¡åŒ–
     */
    private boolean abstractFlag;
    /**
     * æ˜¯å¦æŽ§åˆ¶ç‰ˆæœ¬
     */
    private boolean revisionFlag;
    /**
     * æ˜¯å¦æŽ§åˆ¶ç”Ÿå‘½å‘¨æœŸ
     */
    private boolean lifeCycleFlag;
    /**
     * æ˜¯å¦æŽ§åˆ¶å¯†çº§
     */
    private boolean secretFlag;
    /**
     * å®žä¾‹åŒ–ç±»
     */
    private String implClass;
    /**
     * C#
     */
    private String shape;
    /**
     * ç”Ÿå‘½å‘¨æœŸçš„英文名称
     */
    private String lifeCycleId;
    /**
     * ç”Ÿå‘½å‘¨æœŸçš„中文名称
     */
    private String lifeCycleName;
    /**
     * ç‰ˆæ¬¡è§„则
     */
    private String versionRule;
    /**
     * å¤‡ç”¨ç”Ÿå‘½å‘¨æœŸè‹±æ–‡åç§°
     */
    private String subLifeCycleId;
    /**
     * å¤‡ç”¨ç”Ÿå‘½å‘¨æœŸä¸­æ–‡åç§°
     */
    private String subLifeCycleName;
    /**
     * æ˜¯å¦ä¸ºè§†å›¾
     */
    private boolean viewFlag;
    /**
     * è§†å›¾åˆ›å»ºçš„sql语句
     */
    private String viewCreateSql;
    /**
     * ä¸šåŠ¡ç±»åž‹åç§°
     */
    private String btmname;
    /**
     * æ‹¥æœ‰è€…
     */
    private String owner;
    /**
     * åˆ›å»ºäºº
     */
    private String creator;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    private Date createTime;
    /**
     * æœ€åŽä¿®æ”¹äºº
     */
    private String lastModifier;
    /**
     * æœ€åŽä¿®æ”¹æ—¶é—´ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss
     */
    private Date lastModifyTime;
    /**
     * æ—¶é—´æˆ³ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss.SSS
     */
    private Date ts;
    /**
     * ä¸šåŠ¡ç±»åž‹æ‰€å±žé¢†åŸŸ
     */
    private String domain;
    /**
     * åŒ…含属性
     */
    private List<BtmTypeAttributeVO> attributes;
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/FieldRangeVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package com.vci.ubcs.omd.vo;
import com.vci.ubcs.omd.entity.FieldRange;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
 * Description: å­—段范围显示对象
 *
 * @author LiHang
 * @date 2023/4/3
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "字段范围显示对象", description = "字段范围显示对象")
public class FieldRangeVO extends FieldRange {
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = 1770817945737478318L;
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/LifeCycleEventVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,177 @@
package com.vci.ubcs.omd.vo;
import java.util.Date;
/**
 * ç”Ÿå‘½å‘¨æœŸäº‹ä»¶æ˜¾ç¤ºå¯¹è±¡
 * @author weidy
 * @date 2019/10/17 9:46
 */
public class LifeCycleEventVO implements java.io.Serializable{
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = 8503381504954264216L;
    /**
     * ä¸»é”®
     */
    private String oid;
    /**
     * äº‹ä»¶çš„全路径
     */
    private String eventFullName;
    /**
     * äº‹ä»¶çš„名称
     */
    private String eventShowName;
    /**
     * äº‹ä»¶æè¿°
     */
    private String description;
    /**
     * ä¸šåŠ¡ç±»åž‹åç§°
     */
    private String btmname;
    /**
     * æ‹¥æœ‰è€…
     */
    private String owner;
    /**
     * åˆ›å»ºäºº
     */
    private String creator;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    private Date createTime;
    /**
     * æœ€åŽä¿®æ”¹äºº
     */
    private String lastModifier;
    /**
     * æœ€åŽä¿®æ”¹æ—¶é—´ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss
     */
    private Date lastModifyTime;
    /**
     * æ—¶é—´æˆ³ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss.SSS
     */
    private Date ts;
    public String getEventFullName() {
        return eventFullName;
    }
    public void setEventFullName(String eventFullName) {
        this.eventFullName = eventFullName;
    }
    public String getEventShowName() {
        return eventShowName;
    }
    public void setEventShowName(String eventShowName) {
        this.eventShowName = eventShowName;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
    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 Date getTs() {
        return ts;
    }
    public void setTs(Date ts) {
        this.ts = ts;
    }
    public String getOid() {
        return oid;
    }
    public void setOid(String oid) {
        this.oid = oid;
    }
    public String getBtmname() {
        return btmname;
    }
    public void setBtmname(String btmname) {
        this.btmname = btmname;
    }
    public String getOwner() {
        return owner;
    }
    public void setOwner(String owner) {
        this.owner = owner;
    }
    @Override
    public String toString() {
        return "OsLifeCycleEventVO{" +
                "oid='" + oid + '\'' +
                ", eventFullName='" + eventFullName + '\'' +
                ", eventShowName='" + eventShowName + '\'' +
                ", description='" + description + '\'' +
                ", btmname='" + btmname + '\'' +
                ", owner='" + owner + '\'' +
                ", creator='" + creator + '\'' +
                ", createTime=" + createTime +
                ", lastModifier='" + lastModifier + '\'' +
                ", lastModifyTime=" + lastModifyTime +
                ", ts=" + ts +
                '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/LifeCycleLineEventVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,192 @@
package com.vci.ubcs.omd.vo;
import java.util.Date;
/**
 * ç”Ÿå‘½å‘¨æœŸè¿žæŽ¥çº¿äº‹ä»¶
 * @author weidy
 * @date 2019/10/11 4:54 PM
 */
public class LifeCycleLineEventVO implements java.io.Serializable{
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = 216430078444875215L;
    /**
     * ä¸»é”®
     */
    private String oid;
    /**
     * æ‰€å±žç”Ÿå‘½å‘¨æœŸè¿žæŽ¥çº¿ä¸»é”®
     */
    private String pkLifeCycleLine;
    /**
     * äº‹ä»¶çš„全路径
     */
    private String eventFullName;
    /**
     * äº‹ä»¶çš„名称
     */
    private String eventShowName;
    /**
     * æŽ’序号
     */
    private Integer orderNum;
    /**
     * ä¸šåŠ¡ç±»åž‹åç§°
     */
    private String btmname;
    /**
     * æ‹¥æœ‰è€…
     */
    private String owner;
    /**
     * åˆ›å»ºäºº
     */
    private String creator;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    private Date createTime;
    /**
     * æœ€åŽä¿®æ”¹äºº
     */
    private String lastModifier;
    /**
     * æœ€åŽä¿®æ”¹æ—¶é—´ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss
     */
    private Date lastModifyTime;
    /**
     * æ—¶é—´æˆ³ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss.SSS
     */
    private Date ts;
    public String getOid() {
        return oid;
    }
    public void setOid(String oid) {
        this.oid = oid;
    }
    public String getPkLifeCycleLine() {
        return pkLifeCycleLine;
    }
    public void setPkLifeCycleLine(String pkLifeCycleLine) {
        this.pkLifeCycleLine = pkLifeCycleLine;
    }
    public String getEventFullName() {
        return eventFullName;
    }
    public void setEventFullName(String eventFullName) {
        this.eventFullName = eventFullName;
    }
    public String getEventShowName() {
        return eventShowName;
    }
    public void setEventShowName(String eventShowName) {
        this.eventShowName = eventShowName;
    }
    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 Date getTs() {
        return ts;
    }
    public void setTs(Date ts) {
        this.ts = ts;
    }
    public Integer getOrderNum() {
        return orderNum;
    }
    public void setOrderNum(Integer orderNum) {
        this.orderNum = orderNum;
    }
    public String getBtmname() {
        return btmname;
    }
    public void setBtmname(String btmname) {
        this.btmname = btmname;
    }
    public String getOwner() {
        return owner;
    }
    public void setOwner(String owner) {
        this.owner = owner;
    }
    @Override
    public String toString() {
        return "OsLifeCycleLineEventVO{" +
                "oid='" + oid + '\'' +
                ", pkLifeCycleLine='" + pkLifeCycleLine + '\'' +
                ", eventFullName='" + eventFullName + '\'' +
                ", eventShowName='" + eventShowName + '\'' +
                ", orderNum=" + orderNum +
                ", btmname='" + btmname + '\'' +
                ", owner='" + owner + '\'' +
                ", creator='" + creator + '\'' +
                ", createTime=" + createTime +
                ", lastModifier='" + lastModifier + '\'' +
                ", lastModifyTime=" + lastModifyTime +
                ", ts=" + ts +
                '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/LifeCycleLineVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,248 @@
package com.vci.ubcs.omd.vo;
import java.util.Date;
import java.util.List;
/**
 * ç”Ÿå‘½å‘¨æœŸè¿žæŽ¥çº¿
 * @author weidy
 * @date 2019/10/11 4:48 PM
 */
public class LifeCycleLineVO implements java.io.Serializable {
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = 1429889911601940640L;
    /**
     * æ‰€å±žç”Ÿå‘½å‘¨æœŸ
     */
    private String pkLifeCycle;
    /**
     * æºçŠ¶æ€ä»£å·
     */
    private String sourceLifeStatus;
    /**
     * æºçŠ¶æ€åç§°
     */
    private String sourceLifeStatusName;
    /**
     * ç›®æ ‡çŠ¶æ€ä»£å·
     */
    private String targetLifeStatus;
    /**
     * ç›®æ ‡çŠ¶æ€åç§°
     */
    private String targetLifeStatusName;
    /**
     * è¿žæŽ¥çº¿åç§°
     */
    private String name;
    /**
     * è¿žæŽ¥çº¿ä½ç½®ä¿¡æ¯
     */
    private String transLineSiteInfo;
    /**
     * ä¸»é”®
     */
    private String oid;
    /**
     * ä¸šåŠ¡ç±»åž‹åç§°
     */
    private String btmname;
    /**
     * æ‹¥æœ‰è€…
     */
    private String owner;
    /**
     * åˆ›å»ºäºº
     */
    private String creator;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    private Date createTime;
    /**
     * æœ€åŽä¿®æ”¹äºº
     */
    private String lastModifier;
    /**
     * æœ€åŽä¿®æ”¹æ—¶é—´ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss
     */
    private Date lastModifyTime;
    /**
     * æ—¶é—´æˆ³ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss.SSS
     */
    private Date ts;
    /**
     * åŒ…含事件
     */
    private List<LifeCycleLineEventVO> events;
    public String getPkLifeCycle() {
        return pkLifeCycle;
    }
    public void setPkLifeCycle(String pkLifeCycle) {
        this.pkLifeCycle = pkLifeCycle;
    }
    public String getSourceLifeStatus() {
        return sourceLifeStatus;
    }
    public void setSourceLifeStatus(String sourceLifeStatus) {
        this.sourceLifeStatus = sourceLifeStatus;
    }
    public String getSourceLifeStatusName() {
        return sourceLifeStatusName;
    }
    public void setSourceLifeStatusName(String sourceLifeStatusName) {
        this.sourceLifeStatusName = sourceLifeStatusName;
    }
    public String getTargetLifeStatus() {
        return targetLifeStatus;
    }
    public void setTargetLifeStatus(String targetLifeStatus) {
        this.targetLifeStatus = targetLifeStatus;
    }
    public String getTargetLifeStatusName() {
        return targetLifeStatusName;
    }
    public void setTargetLifeStatusName(String targetLifeStatusName) {
        this.targetLifeStatusName = targetLifeStatusName;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getTransLineSiteInfo() {
        return transLineSiteInfo;
    }
    public void setTransLineSiteInfo(String transLineSiteInfo) {
        this.transLineSiteInfo = transLineSiteInfo;
    }
    public String getOid() {
        return oid;
    }
    public void setOid(String oid) {
        this.oid = oid;
    }
    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 Date getTs() {
        return ts;
    }
    public void setTs(Date ts) {
        this.ts = ts;
    }
    public List<LifeCycleLineEventVO> getEvents() {
        return events;
    }
    public void setEvents(List<LifeCycleLineEventVO> events) {
        this.events = events;
    }
    public String getBtmname() {
        return btmname;
    }
    public void setBtmname(String btmname) {
        this.btmname = btmname;
    }
    public String getOwner() {
        return owner;
    }
    public void setOwner(String owner) {
        this.owner = owner;
    }
    @Override
    public String toString() {
        return "OsLifeCycleLineVO{" +
                "pkLifeCycle='" + pkLifeCycle + '\'' +
                ", sourceLifeStatus='" + sourceLifeStatus + '\'' +
                ", sourceLifeStatusName='" + sourceLifeStatusName + '\'' +
                ", targetLifeStatus='" + targetLifeStatus + '\'' +
                ", targetLifeStatusName='" + targetLifeStatusName + '\'' +
                ", name='" + name + '\'' +
                ", transLineSiteInfo='" + transLineSiteInfo + '\'' +
                ", oid='" + oid + '\'' +
                ", btmname='" + btmname + '\'' +
                ", owner='" + owner + '\'' +
                ", creator='" + creator + '\'' +
                ", createTime=" + createTime +
                ", lastModifier='" + lastModifier + '\'' +
                ", lastModifyTime=" + lastModifyTime +
                ", ts=" + ts +
                ", events=" + events +
                '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/LifeCycleVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,233 @@
package com.vci.ubcs.omd.vo;
import java.util.Date;
import java.util.List;
/**
 * ç”Ÿå‘½å‘¨æœŸæ˜¾ç¤ºå¯¹è±¡
 * @author weidy
 * @date 2019/10/11 4:45 PM
 */
public class LifeCycleVO implements java.io.Serializable{
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = 5567711696707791107L;
    /**
     * ä¸»é”®
     */
    private String oid;
    /**
     * ç”Ÿå‘½å‘¨æœŸç¼–号
     */
    private String id;
    /**
     * ç”Ÿå‘½å‘¨æœŸåç§°
     */
    private String name;
    /**
     * æè¿°
     */
    private String description;
    /**
     * ç±»çš„全路径
     */
    private String classFullName;
    /**
     * èµ·å§‹çŠ¶æ€
     */
    private String startStatus;
    /**
     * èµ·å§‹çŠ¶æ€åç§°
     */
    private String startStatusName;
    /**
     * ä¸šåŠ¡ç±»åž‹åç§°
     */
    private String btmname;
    /**
     * æ‹¥æœ‰è€…
     */
    private String owner;
    /**
     * åˆ›å»ºäºº
     */
    private String creator;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    private Date createTime;
    /**
     * æœ€åŽä¿®æ”¹äºº
     */
    private String lastModifier;
    /**
     * æœ€åŽä¿®æ”¹æ—¶é—´ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss
     */
    private Date lastModifyTime;
    /**
     * æ—¶é—´æˆ³ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss.SSS
     */
    private Date ts;
    /**
     * åŒ…含连接线
     */
    private List<LifeCycleLineVO> lines ;
    public String getClassFullName() {
        return classFullName;
    }
    public void setClassFullName(String classFullName) {
        this.classFullName = classFullName;
    }
    public String getBtmname() {
        return btmname;
    }
    public void setBtmname(String btmname) {
        this.btmname = btmname;
    }
    public String getOwner() {
        return owner;
    }
    public void setOwner(String owner) {
        this.owner = owner;
    }
    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 getStartStatus() {
        return startStatus;
    }
    public void setStartStatus(String startStatus) {
        this.startStatus = startStatus;
    }
    public String getStartStatusName() {
        return startStatusName;
    }
    public void setStartStatusName(String startStatusName) {
        this.startStatusName = startStatusName;
    }
    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 Date getTs() {
        return ts;
    }
    public void setTs(Date ts) {
        this.ts = ts;
    }
    public List<LifeCycleLineVO> getLines() {
        return lines;
    }
    public void setLines(List<LifeCycleLineVO> lines) {
        this.lines = lines;
    }
    @Override
    public String toString() {
        return "OsLifeCycleVO{" +
                "oid='" + oid + '\'' +
                ", id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", description='" + description + '\'' +
                ", classFullName='" + classFullName + '\'' +
                ", startStatus='" + startStatus + '\'' +
                ", startStatusName='" + startStatusName + '\'' +
                ", btmname='" + btmname + '\'' +
                ", owner='" + owner + '\'' +
                ", creator='" + creator + '\'' +
                ", createTime=" + createTime +
                ", lastModifier='" + lastModifier + '\'' +
                ", lastModifyTime=" + lastModifyTime +
                ", ts=" + ts +
                ", lines=" + lines +
                '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/LinkTypeAttributeVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,390 @@
package com.vci.ubcs.omd.vo;
import java.util.Date;
import java.util.Map;
/**
 * é“¾æŽ¥ç±»åž‹åŒ…含的属性
 * @author weidy
 * @date 2019/10/11 6:16 PM
 */
public class LinkTypeAttributeVO implements java.io.Serializable{
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = 7591988478074135448L;
    /**
     * ä¸»é”®
     */
    private String oid;
    /**
     * æ‰€å±žä¸šåŠ¡ç±»åž‹
     */
    private String pkLinkType;
    /**
     * å±žæ€§çš„字段名称
     */
    private String id;
    /**
     * å±žæ€§çš„中文名称
     */
    private String name;
    /**
     * å±žæ€§åœ¨æœ¬ä¸šåŠ¡ç±»åž‹ä¸­çš„æè¿°
     */
    private String description;
    /**
     * å±žæ€§çš„长度
     */
    private Integer attributeLength;
    /**
     * æ•°æ®ç±»åž‹
     */
    private String attrDataType;
    /**
     * æ˜¯å¦å¯ä»¥ä¸ºç©º
     */
    private boolean nullableFlag;
    /**
     * é»˜è®¤å€¼
     */
    private String defaultValue;
    /**
     * å°æ•°ç²¾åº¦ä½æ•°
     */
    private Integer precisionLength;
    /**
     * åˆ»åº¦
     */
    private Integer scaleLength;
    /**
     * å–值范围
     */
    private String range;
    /**
     * å‚照业务类型
     */
    private String referBtmTypeId;
    /**
     * å‚照业务类型名称
     */
    private String referBtmTypeName;
    /**
     * æ˜¯å¦å‚ç…§
     */
    private boolean referFlag;
    /**
     * æžšä¸¾ç¼–号
     */
    private String enumId;
    /**
     * æžšä¸¾åç§°
     */
    private String enumName;
    /**
     * æ˜¯å¦æžšä¸¾
     */
    private boolean enumFlag;
    /**
     * åŒ…含枚举的值
     */
    private Map<String,String> enumItemMap;
    /**
     * ä¸šåŠ¡ç±»åž‹åç§°
     */
    private String btmname;
    /**
     * æ‹¥æœ‰è€…
     */
    private String owner;
    /**
     * åˆ›å»ºäºº
     */
    private String creator;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    private Date createTime;
    /**
     * æœ€åŽä¿®æ”¹äºº
     */
    private String lastModifier;
    /**
     * æœ€åŽä¿®æ”¹æ—¶é—´ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss
     */
    private Date lastModifyTime;
    /**
     * æ—¶é—´æˆ³ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss.SSS
     */
    private Date ts;
    public String getBtmname() {
        return btmname;
    }
    public void setBtmname(String btmname) {
        this.btmname = btmname;
    }
    public String getOwner() {
        return owner;
    }
    public void setOwner(String owner) {
        this.owner = owner;
    }
    public void setOid(String oid) {
        this.oid = oid;
    }
    public void setPkLinkType(String pkLinkType) {
        this.pkLinkType = pkLinkType;
    }
    public void setDescription(String description) {
        this.description = description;
    }
    public void setAttrDataType(String attrDataType) {
        this.attrDataType = attrDataType;
    }
    public void setReferBtmTypeId(String referBtmTypeId) {
        this.referBtmTypeId = referBtmTypeId;
    }
    public void setReferBtmTypeName(String referBtmTypeName) {
        this.referBtmTypeName = referBtmTypeName;
    }
    public void setReferFlag(boolean referFlag) {
        this.referFlag = referFlag;
    }
    public void setEnumId(String enumId) {
        this.enumId = enumId;
    }
    public void setEnumName(String enumName) {
        this.enumName = enumName;
    }
    public void setEnumFlag(boolean enumFlag) {
        this.enumFlag = enumFlag;
    }
    public void setEnumItemMap(Map<String, String> enumItemMap) {
        this.enumItemMap = enumItemMap;
    }
    public void setCreator(String creator) {
        this.creator = creator;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public void setLastModifier(String lastModifier) {
        this.lastModifier = lastModifier;
    }
    public void setLastModifyTime(Date lastModifyTime) {
        this.lastModifyTime = lastModifyTime;
    }
    public void setTs(Date ts) {
        this.ts = ts;
    }
    public void setNullableFlag(boolean nullableFlag) {
        this.nullableFlag = nullableFlag;
    }
    public void setDefaultValue(String defaultValue) {
        this.defaultValue = defaultValue;
    }
    public void setPrecisionLength(Integer precisionLength) {
        this.precisionLength = precisionLength;
    }
    public String getOid() {
        return oid;
    }
    public String getPkLinkType() {
        return pkLinkType;
    }
    public String getDescription() {
        return description;
    }
    public String getAttrDataType() {
        return attrDataType;
    }
    public String getReferBtmTypeId() {
        return referBtmTypeId;
    }
    public String getReferBtmTypeName() {
        return referBtmTypeName;
    }
    public boolean isReferFlag() {
        return referFlag;
    }
    public String getEnumId() {
        return enumId;
    }
    public String getEnumName() {
        return enumName;
    }
    public boolean isEnumFlag() {
        return enumFlag;
    }
    public Map<String, String> getEnumItemMap() {
        return enumItemMap;
    }
    public String getCreator() {
        return creator;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public String getLastModifier() {
        return lastModifier;
    }
    public Date getLastModifyTime() {
        return lastModifyTime;
    }
    public Date getTs() {
        return ts;
    }
    public boolean isNullableFlag() {
        return nullableFlag;
    }
    public String getDefaultValue() {
        return defaultValue;
    }
    public Integer getPrecisionLength() {
        return precisionLength;
    }
    public String getRange() {
        return range;
    }
    public void setRange(String range) {
        this.range = range;
    }
    public Integer getAttributeLength() {
        return attributeLength;
    }
    public void setAttributeLength(Integer attributeLength) {
        this.attributeLength = attributeLength;
    }
    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 Integer getScaleLength() {
        return scaleLength;
    }
    public void setScaleLength(Integer scaleLength) {
        this.scaleLength = scaleLength;
    }
    @Override
    public String toString() {
        return "OsLinkTypeAttributeVO{" +
                "oid='" + oid + '\'' +
                ", pkLinkType='" + pkLinkType + '\'' +
                ", id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", description='" + description + '\'' +
                ", attributeLength=" + attributeLength +
                ", attrDataType='" + attrDataType + '\'' +
                ", nullableFlag=" + nullableFlag +
                ", defaultValue='" + defaultValue + '\'' +
                ", precisionLength=" + precisionLength +
                ", scaleLength=" + scaleLength +
                ", range='" + range + '\'' +
                ", referBtmTypeId='" + referBtmTypeId + '\'' +
                ", referBtmTypeName='" + referBtmTypeName + '\'' +
                ", referFlag=" + referFlag +
                ", enumId='" + enumId + '\'' +
                ", enumName='" + enumName + '\'' +
                ", enumFlag=" + enumFlag +
                ", enumItemMap=" + enumItemMap +
                ", btmname='" + btmname + '\'' +
                ", owner='" + owner + '\'' +
                ", creator='" + creator + '\'' +
                ", createTime=" + createTime +
                ", lastModifier='" + lastModifier + '\'' +
                ", lastModifyTime=" + lastModifyTime +
                ", ts=" + ts +
                '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/LinkTypeVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,126 @@
package com.vci.ubcs.omd.vo;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
 *
 * é“¾æŽ¥ç±»åž‹æ˜¾ç¤ºå¯¹è±¡
 * @author weidy
 * @date 2019/10/11 6:04 PM
 */
@Data
public class LinkTypeVO implements java.io.Serializable {
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = 2289872385854194102L;
    /**
     * ä¸»é”®
     */
    private String oid;
    /**
     * é“¾æŽ¥ç±»åž‹è‹±æ–‡åç§°
     */
    private String id;
    /**
     * é“¾æŽ¥ç±»åž‹ä¸­æ–‡åç§°
     */
    private String name;
    /**
     * æ•°æ®åº“表
     */
    private String tableName;
    /**
     * æè¿°
     */
    private String description;
    /**
     * c#
     */
    private String shape;
    /**
     * å®žçŽ°ç±»
     */
    private String implClass;
    /**
     * from端业务类型
     */
    private String fromBtmType;
    /**
     * from端业务类型显示对象
     */
    private List<BtmTypeVO> fromBtmTypes;
    /**
     * from端业务类型名称
     */
    private String fromBtmTypeName;
    /**
     * to端业务类型
     */
    private String toBtmType;
    /**
     * to端业务类型名称
     */
    private String toBtmTypeName;
    /**
     * to端业务类型显示对象
     */
    private List<BtmTypeVO> toBtmTypes;
    /**
     * ä¸šåŠ¡ç±»åž‹åç§°
     */
    private String btmName;
    /**
     * æ‹¥æœ‰è€…
     */
    private String owner;
    /**
     * åˆ›å»ºäºº
     */
    private String creator;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    private Date createTime;
    /**
     * æœ€åŽä¿®æ”¹äºº
     */
    private String lastModifier;
    /**
     * æœ€åŽä¿®æ”¹æ—¶é—´ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss
     */
    private Date lastModifyTime;
    /**
     * æ—¶é—´æˆ³ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss.SSS
     */
    private Date ts;
    /**
     * åŒ…含属性
     */
    private List<LinkTypeAttributeVO> attributes;
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/ModifyAttributeInfoVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,373 @@
package com.vci.ubcs.omd.vo;
import java.util.Date;
/**
 * éœ€è¦ä¿®æ”¹æ•°æ®åº“表中字段的信息
 * @author weidy
 * @date 2019/10/18 11:48
 */
public class ModifyAttributeInfoVO implements java.io.Serializable{
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = 5948961912171046275L;
    /**
     * ä¸šåŠ¡ç±»åž‹ç¼–å·
     */
    private String btmTypeId;
    /**
     * ä¸šåŠ¡ç±»åž‹åç§°
     */
    private String btmTypeName;
    /**
     * æ˜¯å¦ä¸ºé“¾æŽ¥ç±»åž‹
     */
    private String linkTypeFlag;
    /**
     * è¡¨æ ¼åç§°
     */
    private String tableName;
    /**
     * ä¿®æ”¹å±žæ€§ç±»åž‹
     */
    private String modifyAttributeType;
    /**
     * ä¿®æ”¹å±žæ€§ç±»åž‹æ˜¾ç¤ºæ–‡æœ¬
     */
    private String modifyAttributeTypeText;
    /**
     * å±žæ€§åå­—
     */
    private String columnName;
    /**
     * è°ƒæ•´åŽŸå› 
     */
    private String modifyColumnReason;
    /**
     * ç”³è¯·è°ƒæ•´ç”¨æˆ·
     */
    private String orderModifyUserName;
    /**
     * ç”³è¯·è°ƒæ•´æ—¶é—´
     */
    private Date orderModifyDate;
    /**
     * ä¿®æ”¹å‰çš„类型
     */
    private String attributeDataTypeBefore;
    /**
     * ä¿®æ”¹åŽçš„类型
     */
    private String attributeDataTypeAfter;
    /**
     * æ˜¯å¦åˆ é™¤å±žæ€§
     */
    private String deleteColumnFlag;
    /**
     * æ˜¯å¦æ‰§è¡Œå®Œæˆ
     */
    private boolean handleFinishFlag;
    /**
     *执行人
     */
    private String handleUserName;
    /**
     * æ‰§è¡Œæ—¶é—´
     */
    private Date handleDate;
    /**
     * æ‰§è¡Œç»“æžœ
     */
    private String handleResult;
    /**
     * ä¸»é”®
     */
    private String oid;
    /**
     * ä¸šåŠ¡ç±»åž‹åç§°
     */
    private String btmname;
    /**
     * æ‹¥æœ‰è€…
     */
    private String owner;
    /**
     * åˆ›å»ºäºº
     */
    private String creator;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    private Date createTime;
    /**
     * æœ€åŽä¿®æ”¹äºº
     */
    private String lastModifier;
    /**
     * æœ€åŽä¿®æ”¹æ—¶é—´ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss
     */
    private Date lastModifyTime;
    /**
     * æ—¶é—´æˆ³ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss.SSS
     */
    private Date ts;
    public String getBtmTypeId() {
        return btmTypeId;
    }
    public void setBtmTypeId(String btmTypeId) {
        this.btmTypeId = btmTypeId;
    }
    public String getBtmTypeName() {
        return btmTypeName;
    }
    public void setBtmTypeName(String btmTypeName) {
        this.btmTypeName = btmTypeName;
    }
    public String getLinkTypeFlag() {
        return linkTypeFlag;
    }
    public void setLinkTypeFlag(String linkTypeFlag) {
        this.linkTypeFlag = linkTypeFlag;
    }
    public String getTableName() {
        return tableName;
    }
    public void setTableName(String tableName) {
        this.tableName = tableName;
    }
    public String getModifyAttributeType() {
        return modifyAttributeType;
    }
    public void setModifyAttributeType(String modifyAttributeType) {
        this.modifyAttributeType = modifyAttributeType;
    }
    public String getModifyAttributeTypeText() {
        return modifyAttributeTypeText;
    }
    public void setModifyAttributeTypeText(String modifyAttributeTypeText) {
        this.modifyAttributeTypeText = modifyAttributeTypeText;
    }
    public String getColumnName() {
        return columnName;
    }
    public void setColumnName(String columnName) {
        this.columnName = columnName;
    }
    public String getModifyColumnReason() {
        return modifyColumnReason;
    }
    public void setModifyColumnReason(String modifyColumnReason) {
        this.modifyColumnReason = modifyColumnReason;
    }
    public String getOrderModifyUserName() {
        return orderModifyUserName;
    }
    public void setOrderModifyUserName(String orderModifyUserName) {
        this.orderModifyUserName = orderModifyUserName;
    }
    public Date getOrderModifyDate() {
        return orderModifyDate;
    }
    public void setOrderModifyDate(Date orderModifyDate) {
        this.orderModifyDate = orderModifyDate;
    }
    public String getAttributeDataTypeBefore() {
        return attributeDataTypeBefore;
    }
    public void setAttributeDataTypeBefore(String attributeDataTypeBefore) {
        this.attributeDataTypeBefore = attributeDataTypeBefore;
    }
    public String getAttributeDataTypeAfter() {
        return attributeDataTypeAfter;
    }
    public void setAttributeDataTypeAfter(String attributeDataTypeAfter) {
        this.attributeDataTypeAfter = attributeDataTypeAfter;
    }
    public String getDeleteColumnFlag() {
        return deleteColumnFlag;
    }
    public void setDeleteColumnFlag(String deleteColumnFlag) {
        this.deleteColumnFlag = deleteColumnFlag;
    }
    public boolean isHandleFinishFlag() {
        return handleFinishFlag;
    }
    public void setHandleFinishFlag(boolean handleFinishFlag) {
        this.handleFinishFlag = handleFinishFlag;
    }
    public String getHandleUserName() {
        return handleUserName;
    }
    public void setHandleUserName(String handleUserName) {
        this.handleUserName = handleUserName;
    }
    public Date getHandleDate() {
        return handleDate;
    }
    public void setHandleDate(Date handleDate) {
        this.handleDate = handleDate;
    }
    public String getHandleResult() {
        return handleResult;
    }
    public void setHandleResult(String handleResult) {
        this.handleResult = handleResult;
    }
    public String getOid() {
        return oid;
    }
    public void setOid(String oid) {
        this.oid = oid;
    }
    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 Date getTs() {
        return ts;
    }
    public void setTs(Date ts) {
        this.ts = ts;
    }
    public String getBtmname() {
        return btmname;
    }
    public void setBtmname(String btmname) {
        this.btmname = btmname;
    }
    public String getOwner() {
        return owner;
    }
    public void setOwner(String owner) {
        this.owner = owner;
    }
    @Override
    public String toString() {
        return "OsModifyAttributeInfoVO{" +
                "btmTypeId='" + btmTypeId + '\'' +
                ", btmTypeName='" + btmTypeName + '\'' +
                ", linkTypeFlag='" + linkTypeFlag + '\'' +
                ", tableName='" + tableName + '\'' +
                ", modifyAttributeType='" + modifyAttributeType + '\'' +
                ", modifyAttributeTypeText='" + modifyAttributeTypeText + '\'' +
                ", columnName='" + columnName + '\'' +
                ", modifyColumnReason='" + modifyColumnReason + '\'' +
                ", orderModifyUserName='" + orderModifyUserName + '\'' +
                ", orderModifyDate=" + orderModifyDate +
                ", attributeDataTypeBefore='" + attributeDataTypeBefore + '\'' +
                ", attributeDataTypeAfter='" + attributeDataTypeAfter + '\'' +
                ", deleteColumnFlag='" + deleteColumnFlag + '\'' +
                ", handleFinishFlag=" + handleFinishFlag +
                ", handleUserName='" + handleUserName + '\'' +
                ", handleDate=" + handleDate +
                ", handleResult='" + handleResult + '\'' +
                ", oid='" + oid + '\'' +
                ", btmname='" + btmname + '\'' +
                ", owner='" + owner + '\'' +
                ", creator='" + creator + '\'' +
                ", createTime=" + createTime +
                ", lastModifier='" + lastModifier + '\'' +
                ", lastModifyTime=" + lastModifyTime +
                ", ts=" + ts +
                '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/OmdAttributeVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/OmdFieldRangeVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/RevisionRuleVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,247 @@
package com.vci.ubcs.omd.vo;
import java.util.Date;
/**
 * ç‰ˆæœ¬è§„则显示对象
 * @author weidy
 * @date 2019/10/11 5:19 PM
 */
public class RevisionRuleVO implements java.io.Serializable{
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = 3660658005636583687L;
    /**
     * ä¸»é”®
     */
    private String oid;
    /**
     * è‹±æ–‡åç§°
     */
    private String id;
    /**
     * ä¸­æ–‡åç§°
     */
    private String name;
    /**
     * è·³è·ƒå­—符
     */
    private String skipCode;
    /**
     * åˆå§‹å€¼
     */
    private String startCode;
    /**
     * æ­¥é•¿
     */
    private Integer serialStep;
    /**
     * å‰ç¼€
     */
    private String prefixCode;
    /**
     * åŽç¼€
     */
    private String suffixCode;
    /**
     * æè¿°
     */
    private String description;
    /**
     * ä¸šåŠ¡ç±»åž‹åç§°
     */
    private String btmname;
    /**
     * æ‹¥æœ‰è€…
     */
    private String owner;
    /**
     * åˆ›å»ºäºº
     */
    private String creator;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    private Date createTime;
    /**
     * æœ€åŽä¿®æ”¹äºº
     */
    private String lastModifier;
    /**
     * æœ€åŽä¿®æ”¹æ—¶é—´ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss
     */
    private Date lastModifyTime;
    /**
     * æ—¶é—´æˆ³ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss.SSS
     */
    private Date ts;
    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 getSkipCode() {
        return skipCode;
    }
    public void setSkipCode(String skipCode) {
        this.skipCode = skipCode;
    }
    public String getStartCode() {
        return startCode;
    }
    public void setStartCode(String startCode) {
        this.startCode = startCode;
    }
    public Integer getSerialStep() {
        return serialStep;
    }
    public void setSerialStep(Integer serialStep) {
        this.serialStep = serialStep;
    }
    public String getPrefixCode() {
        return prefixCode;
    }
    public void setPrefixCode(String prefixCode) {
        this.prefixCode = prefixCode;
    }
    public String getSuffixCode() {
        return suffixCode;
    }
    public void setSuffixCode(String suffixCode) {
        this.suffixCode = suffixCode;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
    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 Date getTs() {
        return ts;
    }
    public void setTs(Date ts) {
        this.ts = ts;
    }
    public String getBtmname() {
        return btmname;
    }
    public void setBtmname(String btmname) {
        this.btmname = btmname;
    }
    public String getOwner() {
        return owner;
    }
    public void setOwner(String owner) {
        this.owner = owner;
    }
    @Override
    public String toString() {
        return "OsRevisionRuleVO{" +
                "oid='" + oid + '\'' +
                ", id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", skipCode='" + skipCode + '\'' +
                ", startCode='" + startCode + '\'' +
                ", serialStep=" + serialStep +
                ", prefixCode='" + prefixCode + '\'' +
                ", suffixCode='" + suffixCode + '\'' +
                ", description='" + description + '\'' +
                ", btmname='" + btmname + '\'' +
                ", owner='" + owner + '\'' +
                ", creator='" + creator + '\'' +
                ", createTime=" + createTime +
                ", lastModifier='" + lastModifier + '\'' +
                ", lastModifyTime=" + lastModifyTime +
                ", ts=" + ts +
                '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/StatusVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,178 @@
package com.vci.ubcs.omd.vo;
import java.util.Date;
/**
 * çŠ¶æ€
 * @author weidy
 * @date 2019/10/11 4:40 PM
 */
public class StatusVO implements java.io.Serializable {
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = 6084862289020441069L;
    /**
     * ä¸»é”®
     */
    private String oid;
    /**
     * çŠ¶æ€è‹±æ–‡åç§°
     */
    private String id;
    /**
     * çŠ¶æ€ä¸­æ–‡åç§°
     */
    private String name;
    /**
     * æè¿°
     */
    private String description;
    /**
     * ä¸šåŠ¡ç±»åž‹åç§°
     */
    private String btmname;
    /**
     * æ‹¥æœ‰è€…
     */
    private String owner;
    /**
     * åˆ›å»ºäºº
     */
    private String creator;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    private Date createTime;
    /**
     * æœ€åŽä¿®æ”¹äºº
     */
    private String lastModifier;
    /**
     * æœ€åŽä¿®æ”¹æ—¶é—´ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss
     */
    private Date lastModifyTime;
    /**
     * æ—¶é—´æˆ³ï¼Œæ ¼å¼æ˜¯yyyy-MM-dd HH:mm:ss.SSS
     */
    private Date ts;
    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 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 Date getTs() {
        return ts;
    }
    public void setTs(Date ts) {
        this.ts = ts;
    }
    public String getBtmname() {
        return btmname;
    }
    public void setBtmname(String btmname) {
        this.btmname = btmname;
    }
    public String getOwner() {
        return owner;
    }
    public void setOwner(String owner) {
        this.owner = owner;
    }
    @Override
    public String toString() {
        return "OsStatusVO{" +
                "oid='" + oid + '\'' +
                ", id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", description='" + description + '\'' +
                ", btmname='" + btmname + '\'' +
                ", owner='" + owner + '\'' +
                ", creator='" + creator + '\'' +
                ", createTime=" + createTime +
                ", lastModifier='" + lastModifier + '\'' +
                ", lastModifyTime=" + lastModifyTime +
                ", ts=" + ts +
                '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/pom.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>ubcs-service-api</artifactId>
        <groupId>com.vci.ubcs</groupId>
        <version>3.0.1.RELEASE</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>ubcs-util-api</artifactId>
    <name>${project.artifactId}</name>
    <version>${bladex.project.version}</version>
    <packaging>jar</packaging>
    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <dependencies>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>4.1.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.1.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml-schemas</artifactId>
            <version>4.1.2</version>
        </dependency>
    </dependencies>
</project>
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/annotation/Transient.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.vci.ubcs.starter.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface Transient {
    boolean value() default true;
    String referColumn() default "";
    String valueField() default "oid";
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/annotation/VciEnum.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
package com.vci.ubcs.starter.annotation;
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
//package com.vci.starter.web.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface VciEnum {
    String name() default "";
    Class valueType() default String.class;
    String text() default "";
    String description() default "";
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/bo/WriteExcelData.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,244 @@
package com.vci.ubcs.starter.bo;
import java.util.List;
public class WriteExcelData {
    private int row;
    private int col;
    private Object obj;
    private boolean merged = false;
    private int rowTo;
    private int colTo;
    private boolean copyStyle = false;
    private int copyStyleRow;
    private int copyStyleCol;
    private boolean center;
    private boolean formula = false;
    private boolean nameRefer = false;
    private boolean validation = false;
    private List<String> validationDataList;
    private String validationErrorMsg;
    private String fontColor;
    private String align;
    private String dateFormat;
    private boolean readOnly;
    private Integer width;
    public String getFontColor() {
        return this.fontColor;
    }
    public void setFontColor(String fontColor) {
        this.fontColor = fontColor;
    }
    public String getAlign() {
        return this.align;
    }
    public void setAlign(String align) {
        this.align = align;
    }
    public List<String> getValidationDataList() {
        return this.validationDataList;
    }
    public void setValidationDataList(List<String> validationDataList) {
        this.validationDataList = validationDataList;
    }
    public WriteExcelData() {
    }
    public WriteExcelData(int row, int col, Object obj) {
        this.row = row;
        this.col = col;
        this.obj = obj;
    }
    public void writeFormula(int row, int col, String foumula) {
        this.row = row;
        this.col = col;
        this.obj = foumula;
        this.formula = true;
    }
    public void writeNameRefer(int row, int col, int rowTo, int colTo, String name) {
        this.row = row;
        this.col = col;
        this.obj = name;
        this.nameRefer = true;
        this.rowTo = rowTo;
        this.colTo = colTo;
    }
    public void writeComboBox(List<String> comboBoxData, int row, int col, int rowTo, int colTo) {
        this.writeComboBox(comboBoxData, (String)null, row, col, rowTo, colTo);
    }
    public void writeComboBox(List<String> comboBoxData, String errorMsg, int row, int col, int rowTo, int colTo) {
        this.validationDataList = comboBoxData;
        this.validation = true;
        this.validationErrorMsg = errorMsg;
        this.row = row;
        this.col = col;
        this.rowTo = rowTo;
        this.colTo = colTo;
    }
    public void writeUseRefer(String referFormula, int row, int col, int rowTo, int colTo) {
        this.writeUseRefer(referFormula, (String)null, row, col, rowTo, colTo);
    }
    public void writeUseRefer(String referFormula, String errorMsg, int row, int col, int rowTo, int colTo) {
        this.validation = true;
        this.obj = referFormula;
        this.validationErrorMsg = errorMsg;
        this.row = row;
        this.col = col;
        this.rowTo = rowTo;
        this.colTo = colTo;
    }
    public boolean isReadOnly() {
        return this.readOnly;
    }
    public void setReadOnly(boolean readOnly) {
        this.readOnly = readOnly;
    }
    public int getRow() {
        return this.row;
    }
    public void setRow(int row) {
        this.row = row;
    }
    public int getCol() {
        return this.col;
    }
    public void setCol(int col) {
        this.col = col;
    }
    public Object getObj() {
        return this.obj;
    }
    public void setObj(Object obj) {
        this.obj = obj;
    }
    public boolean isMerged() {
        return this.merged;
    }
    public void setMerged(boolean merged) {
        this.merged = merged;
    }
    public int getRowTo() {
        return this.rowTo;
    }
    public void setRowTo(int rowTo) {
        this.rowTo = rowTo;
    }
    public int getColTo() {
        return this.colTo;
    }
    public void setColTo(int colTo) {
        this.colTo = colTo;
    }
    public boolean isCopyStyle() {
        return this.copyStyle;
    }
    public void setCopyStyle(boolean copyStyle) {
        this.copyStyle = copyStyle;
    }
    public int getCopyStyleRow() {
        return this.copyStyleRow;
    }
    public void setCopyStyleRow(int copyStyleRow) {
        this.copyStyleRow = copyStyleRow;
    }
    public int getCopyStyleCol() {
        return this.copyStyleCol;
    }
    public void setCopyStyleCol(int copyStyleCol) {
        this.copyStyleCol = copyStyleCol;
    }
    public boolean isCenter() {
        return this.center;
    }
    public void setCenter(boolean center) {
        this.center = center;
    }
    public boolean isFormula() {
        return this.formula;
    }
    public void setFormula(boolean formula) {
        this.formula = formula;
    }
    public boolean isNameRefer() {
        return this.nameRefer;
    }
    public void setNameRefer(boolean nameRefer) {
        this.nameRefer = nameRefer;
    }
    public boolean isValidation() {
        return this.validation;
    }
    public void setValidation(boolean validation) {
        this.validation = validation;
    }
    public String getValidationErrorMsg() {
        return this.validationErrorMsg;
    }
    public void setValidationErrorMsg(String validationErrorMsg) {
        this.validationErrorMsg = validationErrorMsg;
    }
    public String getDateFormat() {
        return this.dateFormat;
    }
    public void setDateFormat(String dateFormat) {
        this.dateFormat = dateFormat;
    }
    public Integer getWidth() {
        return this.width;
    }
    public void setWidth(Integer width) {
        this.width = width;
    }
    public String toString() {
        return "WriteExcelData{row=" + this.row + ", col=" + this.col + ", obj=" + this.obj + ", merged=" + this.merged + ", rowTo=" + this.rowTo + ", colTo=" + this.colTo + ", copyStyle=" + this.copyStyle + ", copyStyleRow=" + this.copyStyleRow + ", copyStyleCol=" + this.copyStyleCol + ", center=" + this.center + ", formula=" + this.formula + ", nameRefer=" + this.nameRefer + ", validation=" + this.validation + ", validationDataList=" + this.validationDataList + ", validationErrorMsg='" + this.validationErrorMsg + '\'' + ", fontColor='" + this.fontColor + '\'' + ", align='" + this.align + '\'' + ", dateFormat='" + this.dateFormat + '\'' + ", readOnly=" + this.readOnly + '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/exception/VciBaseException.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,80 @@
package com.vci.ubcs.starter.exception;
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.vci.ubcs.starter.web.util.MessageUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.text.MessageFormat;
public class VciBaseException extends RuntimeException {
    private Logger log = LoggerFactory.getLogger(this.getClass());
    public static final String paramNull = "com.vci.base.paramNull";
    public static final String fieldValueRepeat = "com.vci.base.fieldValueRepeat";
    public static final String objectNotFoundInDb = "com.vci.base.objectNotFoundInDb";
    public static final String tsNotEqual = "com.vci.base.tsNotEqual";
    public static final String dateValueFormatError = "com.vci.base.dateValueForamtError";
    public static final String notLogin = "com.vci.base.notLogin";
    public static final String notRight = "com.vci.base.notRight";
    public static final String notDataRight = "com.vci.base.notDataRight";
    public static final String notUIRight = "com.vci.base.notUIRight";
    public static final String connectCorbaFail = "com.vci.base.connectCorbaFail";
    public static final String corbaNotConfig = "com.vci.base.corbaNotConfig ";
    private String code;
    private Object[] objs = new Object[0];
    public VciBaseException(String code) {
        this.code = code;
    }
    public VciBaseException(String code, Object[] objs) {
        this.code = code;
        this.objs = objs;
    }
    public VciBaseException(String code, Object[] objs, Throwable e) {
        super(e);
        this.code = code;
        this.objs = objs;
    }
    public String getCode() {
        return this.code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public Object[] getObjs() {
        return this.objs;
    }
    public void setObjs(Object[] objs) {
        this.objs = objs;
    }
    public String getErrorMsg() {
        if (!(this instanceof VciBaseException) && !this.getClass().getSuperclass().equals(VciBaseException.class)) {
            return this instanceof Exception ? this.getMessage() : this.code;
        } else {
            if (StringUtils.isNotBlank(this.code)) {
                this.code = MessageUtils.get(this.code, this.objs);
            }
            this.code = MessageFormat.format(this.code, this.objs);
            return this.code;
        }
    }
    @Override
    public String getMessage() {
        return this.getCode() + "," + this.getErrorMsg();
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/poi/annotation/ExcelColumn.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
package com.vci.ubcs.starter.poi.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface ExcelColumn {
    String value();
    boolean nullable() default true;
    String enumId() default "";
    String regExg() default "";
    String regExgTitle() default "";
    String group() default "";
    boolean rowIndexColumn() default false;
    boolean readOnly() default false;
    int width() default 0;
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/poi/annotation/ExcelTitle.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
package com.vci.ubcs.starter.poi.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface ExcelTitle {
    int rowIndexForTitle() default 1;
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/poi/bo/AppendDataExcelOption.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,60 @@
package com.vci.ubcs.starter.poi.bo;
import java.io.Serializable;
import java.util.List;
public class AppendDataExcelOption implements Serializable {
    private int titleRowIndex = 0;
    private String sheetName;
    private List<String> writeFields;
    private List<String> readOnlyFields;
    private boolean readOnlyFromField = false;
    public AppendDataExcelOption() {
    }
    public int getTitleRowIndex() {
        return this.titleRowIndex;
    }
    public void setTitleRowIndex(int titleRowIndex) {
        this.titleRowIndex = titleRowIndex;
    }
    public String getSheetName() {
        return this.sheetName;
    }
    public void setSheetName(String sheetName) {
        this.sheetName = sheetName;
    }
    public List<String> getWriteFields() {
        return this.writeFields;
    }
    public void setWriteFields(List<String> writeFields) {
        this.writeFields = writeFields;
    }
    public List<String> getReadOnlyFields() {
        return this.readOnlyFields;
    }
    public void setReadOnlyFields(List<String> readOnlyFields) {
        this.readOnlyFields = readOnlyFields;
    }
    public boolean isReadOnlyFromField() {
        return this.readOnlyFromField;
    }
    public void setReadOnlyFromField(boolean readOnlyFromField) {
        this.readOnlyFromField = readOnlyFromField;
    }
    public String toString() {
        return "AppendDataExcelOption{titleRowIndex=" + this.titleRowIndex + ", sheetName='" + this.sheetName + '\'' + ", writeFields=" + this.writeFields + ", readOnlyFields=" + this.readOnlyFields + ", readOnlyFromField=" + this.readOnlyFromField + '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/poi/bo/DownloadTempOption.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,42 @@
package com.vci.ubcs.starter.poi.bo;
import java.io.Serializable;
public class DownloadTempOption implements Serializable {
    private Integer defaultRowSize = 1000;
    private String excelName;
    private String sheetName;
    public DownloadTempOption(String excelName) {
        this.excelName = excelName;
    }
    public String getExcelName() {
        return this.excelName;
    }
    public void setExcelName(String excelName) {
        this.excelName = excelName;
    }
    public Integer getDefaultRowSize() {
        return this.defaultRowSize;
    }
    public void setDefaultRowSize(Integer defaultRowSize) {
        this.defaultRowSize = defaultRowSize;
    }
    public String getSheetName() {
        return this.sheetName;
    }
    public void setSheetName(String sheetName) {
        this.sheetName = sheetName;
    }
    public String toString() {
        return "DownloadTempOption{defaultRowSize=" + this.defaultRowSize + '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/poi/bo/ExcelColumnMap.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,71 @@
package com.vci.ubcs.starter.poi.bo;
public class ExcelColumnMap {
    private String title;
    private String columnName;
    private boolean nullable = true;
    private String regExg;
    private String regExgTitle;
    private String group;
    public ExcelColumnMap() {
    }
    public ExcelColumnMap(String title, String columnName) {
        this.title = title;
        this.columnName = columnName;
    }
    public String getTitle() {
        return this.title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getColumnName() {
        return this.columnName;
    }
    public void setColumnName(String columnName) {
        this.columnName = columnName;
    }
    public boolean isNullable() {
        return this.nullable;
    }
    public void setNullable(boolean nullable) {
        this.nullable = nullable;
    }
    public String getRegExg() {
        return this.regExg;
    }
    public void setRegExg(String regExg) {
        this.regExg = regExg;
    }
    public String getRegExgTitle() {
        return this.regExgTitle;
    }
    public void setRegExgTitle(String regExgTitle) {
        this.regExgTitle = regExgTitle;
    }
    public String getGroup() {
        return this.group;
    }
    public void setGroup(String group) {
        this.group = group;
    }
    public String toString() {
        return "ExcelColumnMap{title='" + this.title + '\'' + ", columnName='" + this.columnName + '\'' + ", nullable=" + this.nullable + ", regExg='" + this.regExg + '\'' + ", regExgTitle='" + this.regExgTitle + '\'' + ", group='" + this.group + '\'' + '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/poi/bo/ReadExcelOption.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,69 @@
package com.vci.ubcs.starter.poi.bo;
import java.util.List;
import java.util.Map;
public class ReadExcelOption {
    private int fristRow = 1;
    private int sheetIndex = 0;
    private String sheetName;
    private boolean readAllSheet = false;
    private Map<String, List<ExcelColumnMap>> extendAttrMap;
    public String getSheetName() {
        return this.sheetName;
    }
    public void setSheetName(String sheetName) {
        this.sheetName = sheetName;
    }
    public ReadExcelOption() {
    }
    public ReadExcelOption(int fristRow) {
        this.fristRow = fristRow;
    }
    public ReadExcelOption(int fristRow, boolean readAllSheet) {
        this.fristRow = fristRow;
        this.readAllSheet = readAllSheet;
    }
    public int getFristRow() {
        return this.fristRow;
    }
    public void setFristRow(int fristRow) {
        this.fristRow = fristRow;
    }
    public int getSheetIndex() {
        return this.sheetIndex;
    }
    public void setSheetIndex(int sheetIndex) {
        this.sheetIndex = sheetIndex;
    }
    public boolean isReadAllSheet() {
        return this.readAllSheet;
    }
    public void setReadAllSheet(boolean readAllSheet) {
        this.readAllSheet = readAllSheet;
    }
    public Map<String, List<ExcelColumnMap>> getExtendAttrMap() {
        return this.extendAttrMap;
    }
    public void setExtendAttrMap(Map<String, List<ExcelColumnMap>> extendAttrMap) {
        this.extendAttrMap = extendAttrMap;
    }
    public String toString() {
        return "ReadExcelOption{fristRow=" + this.fristRow + ", sheetIndex=" + this.sheetIndex + ", sheetName='" + this.sheetName + '\'' + ", readAllSheet=" + this.readAllSheet + ", extendAttrMap=" + this.extendAttrMap + '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/poi/bo/SheetDataSet.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
package com.vci.ubcs.starter.poi.bo;
import java.util.ArrayList;
import java.util.List;
public class SheetDataSet {
    private String sheetName;
    private List<String> colName = new ArrayList();
    private List<SheetRowData> rowData = new ArrayList();
    public SheetDataSet() {
    }
    public String getSheetName() {
        return this.sheetName;
    }
    public void setSheetName(String sheetName) {
        this.sheetName = sheetName;
    }
    public List<SheetRowData> getRowData() {
        return this.rowData;
    }
    public void setRowData(List<SheetRowData> rowData) {
        this.rowData = rowData;
    }
    public List<String> getColName() {
        return this.colName;
    }
    public void setColName(List<String> colName) {
        this.colName = colName;
    }
    public String toString() {
        return "SheetDataSet{sheetName='" + this.sheetName + '\'' + ", colName=" + this.colName + ", rowData=" + this.rowData + '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/poi/bo/SheetRowData.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
package com.vci.ubcs.starter.poi.bo;
import java.util.HashMap;
import java.util.Map;
public class SheetRowData {
    private String rowIndex;
    private Map<Integer, String> data = new HashMap();
    public SheetRowData() {
    }
    public String getRowIndex() {
        return this.rowIndex;
    }
    public void setRowIndex(String rowIndex) {
        this.rowIndex = rowIndex;
    }
    public Map<Integer, String> getData() {
        return this.data;
    }
    public void setData(Map<Integer, String> data) {
        this.data = data;
    }
    public String toString() {
        return "SheetRowData{rowIndex='" + this.rowIndex + '\'' + ", data=" + this.data + '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/poi/bo/WriteExcelOption.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,85 @@
package com.vci.ubcs.starter.poi.bo;
import com.vci.ubcs.starter.bo.WriteExcelData;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class WriteExcelOption {
    private Map<String, List<WriteExcelData>> writeDataMap;
    private List<String> hideSheetList;
    private boolean append = false;
    private boolean revision07 = false;
    private Map<String, List<ExcelColumnMap>> extendAttrMap;
    public WriteExcelOption() {
    }
    public WriteExcelOption(List<WriteExcelData> excelDataList) {
        this.writeDataMap = new HashMap();
        this.writeDataMap.put("Sheet1", excelDataList);
    }
    public void addSheetDataList(String sheetName, List<WriteExcelData> excelDataList) {
        if (this.writeDataMap == null) {
            this.writeDataMap = new HashMap();
        }
        this.writeDataMap.put(sheetName, excelDataList);
    }
    public void addHideSheet(String sheetName) {
        if (this.hideSheetList == null) {
            this.hideSheetList = new ArrayList();
        }
        this.hideSheetList.add(sheetName);
    }
    public Map<String, List<WriteExcelData>> getWriteDataMap() {
        return this.writeDataMap;
    }
    public void setWriteDataMap(Map<String, List<WriteExcelData>> writeDataMap) {
        this.writeDataMap = writeDataMap;
    }
    public List<String> getHideSheetList() {
        return this.hideSheetList;
    }
    public void setHideSheetList(List<String> hideSheetList) {
        this.hideSheetList = hideSheetList;
    }
    public boolean isAppend() {
        return this.append;
    }
    public void setAppend(boolean append) {
        this.append = append;
    }
    public boolean isRevision07() {
        return this.revision07;
    }
    public void setRevision07(boolean revision07) {
        this.revision07 = revision07;
    }
    public Map<String, List<ExcelColumnMap>> getExtendAttrMap() {
        return this.extendAttrMap;
    }
    public void setExtendAttrMap(Map<String, List<ExcelColumnMap>> extendAttrMap) {
        this.extendAttrMap = extendAttrMap;
    }
    public String toString() {
        return "WriteExcelOption{writeDataMap=" + this.writeDataMap + ", hideSheetList=" + this.hideSheetList + ", append=" + this.append + ", revision07=" + this.revision07 + ", extendAttrMap=" + this.extendAttrMap + '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/poi/constant/ExcelLangCodeConstant.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package com.vci.ubcs.starter.poi.constant;
public class ExcelLangCodeConstant {
    public static final String READ_IMPORT_FILE_FAIL = "readImportFileFail";
    public static final String IMPORT_CONTENT_NULL = "importContentNull";
    public static final String FILE_NOT_FOUND = "fileNotFound";
    public static final String FILE_IO_EXCEPTION = "fileIoException";
    public static final String FILE_CREATE_EXCEPTION = "fileCreateException";
    public static final String INPUT_STREAM_IS_NULL = "inputStreamIsNull";
    public static final String OUTPUT_STREAM_IS_NULL = "outputStreamIsNull";
    public static final String WORKBOOK_INIT_FAIL = "workBookInitFail";
    public static final String CELL_VALUE_CAN_NOT_NULL = "cellValueCanNotNull";
    public static final String CELL_VALUE_CAN_NOT_NULL_FOR_REG = "cellValueCanNotNullForReg";
    public static final String CELL_VALUE_NOT_EQUAL_REG = "cellValueNotEqualReg";
    public static final String CELL_NOT_DATE_FORMATE = "cellNotDateFormate";
    public ExcelLangCodeConstant() {
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/poi/util/ExcelUtil.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,1517 @@
package com.vci.ubcs.starter.poi.util;
import com.vci.ubcs.starter.bo.WriteExcelData;
import com.vci.ubcs.starter.exception.VciBaseException;
import com.vci.ubcs.starter.poi.annotation.ExcelColumn;
import com.vci.ubcs.starter.poi.annotation.ExcelTitle;
import com.vci.ubcs.starter.poi.bo.*;
import com.vci.ubcs.starter.util.LocalFileUtil;
import com.vci.ubcs.starter.web.annotation.VciFieldType;
import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum;
import com.vci.ubcs.starter.web.util.LangBaseUtil;
import com.vci.ubcs.starter.web.util.VciBaseUtil;
import org.apache.commons.io.IOUtils;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFDataFormat;
import org.apache.poi.hssf.usermodel.HSSFDataValidation;
import org.apache.poi.hssf.usermodel.HSSFDataValidationHelper;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.hssf.util.HSSFColor.HSSFColorPredefined;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.CellValue;
import org.apache.poi.ss.usermodel.DataValidation;
import org.apache.poi.ss.usermodel.DataValidationConstraint;
import org.apache.poi.ss.usermodel.DateUtil;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.FormulaEvaluator;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.Name;
import org.apache.poi.ss.usermodel.RichTextString;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.ss.util.CellRangeAddressList;
import org.apache.poi.xssf.usermodel.XSSFDataValidation;
import org.apache.poi.xssf.usermodel.XSSFDataValidationConstraint;
import org.apache.poi.xssf.usermodel.XSSFDataValidationHelper;
import org.apache.poi.xssf.usermodel.XSSFRichTextString;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.util.CollectionUtils;
import java.io.*;
import java.lang.reflect.Field;
import java.math.BigDecimal;
import java.nio.channels.FileChannel;
import java.util.*;
import java.util.stream.Collectors;
public class ExcelUtil {
    private static Logger logger = LoggerFactory.getLogger(ExcelUtil.class);
    public static final String KEY_ATTR_CHAR = "☆";
    public static final String REQUIRED_CHAR = "*";
    public ExcelUtil() {
    }
    public static void copyFile(File source, File target) throws VciBaseException {
        VciBaseUtil.alertNotNull(new Object[]{source, "来源文件", target, "目标文件"});
        if (!source.exists()) {
            throw new VciBaseException("fileNotFound", new String[]{source.getName()});
        } else {
            File is;
            if (!target.exists()) {
                is = target.getParentFile();
                is.mkdirs();
                try {
                    target.createNewFile();
                } catch (IOException var17) {
                    throw new VciBaseException("fileIoException", new String[]{target.getName()});
                }
            }
            is = null;
            FileOutputStream os = null;
            FileInputStream isF;
            try {
                isF = new FileInputStream(source);
            } catch (FileNotFoundException var16) {
                throw new VciBaseException("fileNotFound", new String[]{source.getName()});
            }
            try {
                os = new FileOutputStream(target);
            } catch (FileNotFoundException var15) {
                IOUtils.closeQuietly(isF);
                throw new VciBaseException("fileNotFound", new String[]{target.getName()});
            }
            try {
                copyFile(isF, os);
            } catch (VciBaseException var12) {
                throw var12;
            } catch (Throwable var13) {
                throw new VciBaseException(LangBaseUtil.getErrorMsg(var13), new String[]{source.getName(), target.getName()}, var13);
            } finally {
                IOUtils.closeQuietly(isF);
                IOUtils.closeQuietly(os);
            }
        }
    }
    public static void copyFile(FileInputStream in, FileOutputStream os) throws VciBaseException {
        try {
            FileChannel sourceChannel = in.getChannel();
            FileChannel targetChannel = os.getChannel();
            int i = 0;
            int length = 2097152;
            while(true) {
                if (sourceChannel.position() == sourceChannel.size()) {
                    sourceChannel.close();
                    targetChannel.close();
                }
                if (sourceChannel.size() - sourceChannel.position() < 20971520L) {
                    length = (int)(sourceChannel.size() - sourceChannel.position());
                } else {
                    length = 20971520;
                }
                sourceChannel.transferTo(sourceChannel.position(), (long)length, targetChannel);
                sourceChannel.position(sourceChannel.position() + (long)length);
                ++i;
            }
        } catch (IOException var10) {
            if (logger.isErrorEnabled()) {
                logger.error("拷贝源文件到目标文件出现了错误", var10);
            }
            throw new VciBaseException(LangBaseUtil.getErrorMsg(var10), new String[0], var10);
        } catch (Throwable var11) {
            if (logger.isErrorEnabled()) {
                logger.error("拷贝源文件到目标文件出现了错误", var11);
            }
            throw new VciBaseException(LangBaseUtil.getErrorMsg(var11), new String[0], var11);
        } finally {
            IOUtils.closeQuietly(in);
            IOUtils.closeQuietly(os);
        }
    }
    public static void copyFileFromJar(String filePathInJar, File targetFile) throws VciBaseException {
        VciBaseUtil.alertNotNull(new Object[]{filePathInJar, "来源文件", targetFile, "目标文件"});
        File os;
        if (!targetFile.exists()) {
            os = targetFile.getParentFile();
            os.mkdirs();
            try {
                targetFile.createNewFile();
            } catch (IOException var12) {
                throw new VciBaseException("fileIoException", new String[]{targetFile.getName()});
            }
        }
        os = null;
        InputStream ins = null;
        FileOutputStream osF;
        try {
            osF = new FileOutputStream(targetFile);
        } catch (FileNotFoundException var11) {
            throw new VciBaseException("fileNotFound", new String[]{targetFile.getName()});
        }
        try {
            ins = ExcelUtil.class.getResourceAsStream(filePathInJar);
            IOUtils.copy(ins, osF);
        } catch (IOException var13) {
            if (logger.isErrorEnabled()) {
                logger.error("拷贝源文件到目标文件出现了错误", var13);
            }
            throw new VciBaseException(LangBaseUtil.getErrorMsg(var13), new String[0], var13);
        } catch (Throwable var14) {
            if (logger.isErrorEnabled()) {
                logger.error("拷贝源文件到目标文件出现了错误", var14);
            }
            throw new VciBaseException(LangBaseUtil.getErrorMsg(var14), new String[0], var14);
        } finally {
            IOUtils.closeQuietly(ins);
            IOUtils.closeQuietly(osF);
        }
    }
    public static void writeDataToFile(String fileName, WriteExcelOption writeExcelOption) throws VciBaseException {
        writeDataToFile(new File(fileName), writeExcelOption);
    }
    public static void writeDataToFile(File file, WriteExcelOption writeExcelOption) throws VciBaseException {
        if (file == null) {
            throw new VciBaseException("文件为空,无法找到文件");
        } else {
            if (!file.exists()) {
                File folder = file.getParentFile();
                if (!folder.exists()) {
                    folder.mkdirs();
                }
                try {
                    file.createNewFile();
                } catch (IOException var14) {
                    throw new VciBaseException("fileNotFound", new String[]{file.getName()});
                }
            }
            Workbook workbook = null;
            if (writeExcelOption != null && writeExcelOption.isAppend()) {
                try {
                    if (file.length() == 0L) {
                        workbook = createWorkbook(false);
                    } else {
                        workbook = getWorkbookByInputStream(new FileInputStream(file));
                    }
                } catch (FileNotFoundException var13) {
                    throw new VciBaseException("fileNotExist", new String[]{file.getName()}, var13);
                }
            }
            OutputStream os = null;
            try {
                os = new FileOutputStream(file);
            } catch (FileNotFoundException var12) {
                throw new VciBaseException("fileNotFound", new String[]{var12.getMessage()}, var12);
            }
            try {
                writeDataToFile(os, writeExcelOption, workbook);
            } catch (VciBaseException var15) {
                if (logger.isErrorEnabled()) {
                    logger.error("写入数据到excel出错", var15);
                }
                throw var15;
            } catch (Throwable var16) {
                if (logger.isErrorEnabled()) {
                    logger.error("写入数据到excel出错", var16);
                }
                throw new VciBaseException(LangBaseUtil.getErrorMsg(var16), new String[0], var16);
            } finally {
                IOUtils.closeQuietly(os);
            }
        }
    }
    public static void writeDataToFile(OutputStream os, WriteExcelOption writeExcelOption) throws VciBaseException {
        writeDataToFile(os, writeExcelOption, (Workbook)null);
    }
    public static void writeDataToFile(OutputStream os, WriteExcelOption writeExcelOption, Workbook workbook) throws VciBaseException {
        if (os == null) {
            throw new VciBaseException("outputStreamIsNull");
        } else {
            if (writeExcelOption == null) {
                IOUtils.closeQuietly(os);
            } else {
                Workbook wb = null;
                if (writeExcelOption.isAppend() && workbook != null) {
                    wb = workbook;
                } else {
                    wb = createWorkbook(writeExcelOption.isRevision07());
                }
                Workbook finalWb = wb;
                writeExcelOption.getWriteDataMap().forEach((sheetName, excelDataList) -> {
                    Sheet sheet = getSheetByWorkbook(finalWb, sheetName);
                    try {
                        writeDataToCell(sheet, excelDataList);
                    } catch (VciBaseException var6) {
                        IOUtils.closeQuietly(os);
                        throw var6;
                    } catch (Throwable var7) {
                        if (logger.isErrorEnabled()) {
                            logger.error("写入数据到工作簿出错", var7);
                        }
                        IOUtils.closeQuietly(os);
                        throw new VciBaseException(LangBaseUtil.getErrorMsg(var7), new String[0], var7);
                    }
                });
                if (!CollectionUtils.isEmpty(writeExcelOption.getHideSheetList())) {
                    Workbook finalWb1 = wb;
                    writeExcelOption.getHideSheetList().stream().forEach((sheetName) -> {
                        Sheet sheet = getSheetByWorkbook(finalWb1, sheetName);
                        finalWb1.setSheetHidden(finalWb1.getSheetIndex(sheet), true);
                    });
                }
                try {
                    wb.write(os);
                } catch (IOException var13) {
                    if (logger.isErrorEnabled()) {
                        logger.error("把工作簿上的数据写入到文件出错", var13);
                    }
                    throw new VciBaseException(LangBaseUtil.getErrorMsg(var13), new String[0], var13);
                } finally {
                    IOUtils.closeQuietly(os);
                    try {
                        wb.close();
                    } catch (Throwable var12) {
                        if (logger.isErrorEnabled()) {
                            logger.error("关闭工作簿", var12);
                        }
                    }
                }
            }
        }
    }
    public static int getCellIndexForPoField(String excelFileName, String sheetName, Class<?> poClass, String poFieldName) throws VciBaseException {
        return getCellIndexForPoField(new File(excelFileName), sheetName, poClass, poFieldName);
    }
    public static int getCellIndexForPoField(File excelFile, String sheetName, Class<?> poClass, String poFieldName) throws VciBaseException {
        VciBaseUtil.alertNotNull(new Object[]{excelFile, "excel的文件", poClass, "poi导入导出对象所属的类", poFieldName, "属性的名称"});
        if (!excelFile.exists()) {
            throw new VciBaseException("fileNotExist", new String[]{excelFile.getAbsolutePath()});
        } else {
            if (StringUtil.isBlank(sheetName)) {
                sheetName = "Sheet1";
            }
            Field field = VciBaseUtil.getFieldForObject(poFieldName, poClass);
            if (field == null) {
                throw new VciBaseException("对象中不存在此属性,{0},{1}", new String[]{poFieldName, poClass.getName()});
            } else {
                if (field.isAnnotationPresent(ExcelColumn.class)) {
                    ExcelColumn ec = getExcelColumnAnnotation(field);
                    String columnName = ec.value();
                    Workbook workbook = null;
                    try {
                        workbook = getWorkbookByInputStream(new FileInputStream(excelFile));
                    } catch (FileNotFoundException var15) {
                        throw new VciBaseException("fileNotExist", new String[]{excelFile.getAbsolutePath()});
                    }
                    if (workbook != null) {
                        Sheet sheet = workbook.getSheet(sheetName);
                        if (sheet != null) {
                            Row row = sheet.getRow(getRowIndexForTitle(poClass));
                            if (row != null) {
                                short lastCellNum = row.getLastCellNum();
                                for(short i = 0; i < lastCellNum; ++i) {
                                    Cell cell = row.getCell(i);
                                    if (columnName.equals(cell.getStringCellValue())) {
                                        try {
                                            workbook.close();
                                        } catch (IOException var14) {
                                            logger.error("关闭工作表出现错误", var14);
                                        }
                                        return i;
                                    }
                                }
                            }
                        }
                    }
                }
                return -1;
            }
        }
    }
    public static Map<String, Integer> listCellIndexForPO(File excelFile, String sheetName, Class<?> poClass) throws VciBaseException {
        VciBaseUtil.alertNotNull(new Object[]{excelFile, "excel的文件", poClass, "poi导入导出对象所属的类"});
        if (!excelFile.exists()) {
            throw new VciBaseException("fileNotExist", new String[]{excelFile.getAbsolutePath()});
        } else {
            if (StringUtil.isBlank(sheetName)) {
                sheetName = "Sheet1";
            }
            List<Field> fields = VciBaseUtil.getAllFieldForObj(poClass);
            Map<String, Integer> cellIndexMap = new HashMap();
            if (!CollectionUtils.isEmpty(fields)) {
                Workbook workbook = null;
                try {
                    workbook = getWorkbookByInputStream(new FileInputStream(excelFile));
                } catch (FileNotFoundException var14) {
                    throw new VciBaseException("fileNotExist", new String[]{excelFile.getAbsolutePath()});
                }
                if (workbook != null) {
                    Sheet sheet = workbook.getSheet(sheetName);
                    if (sheet != null) {
                        Row row = sheet.getRow(getRowIndexForTitle(poClass));
                        if (row != null) {
                            Map<String, String> columnNamesMap = new HashMap();
                            fields.stream().forEach((field) -> {
                                if (field.isAnnotationPresent(ExcelColumn.class)) {
                                    ExcelColumn ec = getExcelColumnAnnotation(field);
                                    String columnName = ec.value();
                                    columnNamesMap.put(columnName, field.getName());
                                }
                            });
                            short lastCellNum = row.getLastCellNum();
                            for(short i = 0; i < lastCellNum; ++i) {
                                Cell cell = row.getCell(i);
                                String cellName = cell.getStringCellValue();
                                if (columnNamesMap.containsKey(cellName)) {
                                    cellIndexMap.put(columnNamesMap.get(cellName), Integer.valueOf(i));
                                }
                            }
                        }
                    }
                    try {
                        workbook.close();
                    } catch (IOException var13) {
                        logger.error("关闭工作表出现错误", var13);
                    }
                }
            }
            return cellIndexMap;
        }
    }
    public static int getRowIndexForTitle(Class<?> poClass) {
        if (poClass.isAnnotationPresent(ExcelTitle.class)) {
            ExcelTitle ec = (ExcelTitle)poClass.getAnnotation(ExcelTitle.class);
            if (ec == null) {
                ec = (ExcelTitle)poClass.getDeclaredAnnotation(ExcelTitle.class);
            }
            if (ec != null) {
                return ec.rowIndexForTitle();
            }
        }
        return 0;
    }
    public static String getCellNameByIndex(int colIndex) {
        if (colIndex < 26) {
            return String.valueOf((char)(65 + colIndex));
        } else {
            int balance = colIndex % 26;
            int multiple = (colIndex - balance) / 26;
            String prefix = String.valueOf((char)(65 + (multiple - 1)));
            String suffix = String.valueOf((char)(65 + balance));
            return prefix + suffix;
        }
    }
    public static Workbook createWorkbook(boolean is07) {
        Workbook wb = null;
        if (is07) {
            wb = new XSSFWorkbook();
        } else {
            wb = new HSSFWorkbook();
        }
        return (Workbook)wb;
    }
    public static Workbook getWorkbookByInputStream(InputStream ins) throws VciBaseException {
        Workbook wb = null;
        try {
            wb = WorkbookFactory.create(ins);
            return wb;
        } catch (IOException var3) {
            IOUtils.closeQuietly(ins);
            throw new VciBaseException("workBookInitFail", new String[]{LangBaseUtil.getErrorMsg(var3)});
        }
    }
    private static Sheet getSheetByWorkbook(Workbook wb, String sheetName) {
        if (StringUtil.isBlank(sheetName)) {
            sheetName = "Sheet1";
        }
        Sheet sheet = wb.getSheet(sheetName);
        if (sheet == null) {
            sheet = wb.createSheet(sheetName);
        }
        return sheet;
    }
    private static Row getRowBySheet(Sheet sheet, int rowIndex) {
        Row row = sheet.getRow(rowIndex);
        if (row == null) {
            row = sheet.createRow(rowIndex);
        }
        return row;
    }
    private static Cell getCellByRow(Row row, int cellIndex) {
        Cell cell = row.getCell(cellIndex);
        if (cell == null) {
            cell = row.createCell(cellIndex);
        }
        return cell;
    }
    private static void writeDataToCell(Sheet sheet, List<WriteExcelData> excelDataList) throws VciBaseException {
        if (sheet != null && !CollectionUtils.isEmpty(excelDataList)) {
            List<WriteExcelData> mergedDataList = new ArrayList();
            excelDataList.stream().forEach((ed) -> {
                Row row = getRowBySheet(sheet, ed.getRow());
                Cell cell = getCellByRow(row, ed.getCol());
                if (ed.isMerged() && (ed.getRowTo() > ed.getRow() || ed.getColTo() > ed.getCol())) {
                    mergedDataList.add(ed);
                }
                copyStyle(sheet, cell, ed);
                if (ed.isReadOnly() && ed.getObj() != null && !(ed.getObj() instanceof RichTextString) && CollectionUtils.isEmpty(ed.getValidationDataList())) {
                    List<String> list = new ArrayList();
                    list.add(ed.getObj().toString());
                    ed.setValidationDataList(list);
                    setValidation(sheet, ed);
                }
                centerCell(cell, ed);
                Object value = ed.getObj();
                if (StringUtil.isNotBlank(ed.getFontColor())) {
                    String rtsValue = value == null ? "" : value.toString();
                    RichTextString ts = cell instanceof HSSFCell ? new HSSFRichTextString(rtsValue) : new XSSFRichTextString(rtsValue);
                    Font font = sheet.getWorkbook().createFont();
                    font.setColor(VciBaseUtil.getShort(ed.getFontColor()));
                    ((RichTextString)ts).applyFont(font);
                    value = ts;
                }
                if (ed.isFormula()) {
                    setFormula(cell, ed);
                } else if (ed.isNameRefer()) {
                    setNameRefer(sheet, ed);
                } else if (ed.isValidation()) {
                    setValidation(sheet, ed);
                } else {
                    setCellValue(cell, value);
                }
                if (ed.getWidth() != null && ed.getWidth() > 0) {
                    sheet.setColumnWidth(cell.getColumnIndex(), (int)((double)ed.getWidth() + 0.72) * 256);
                }
            });
            mergedRegion(sheet, mergedDataList);
        }
    }
    private static void setFormula(Cell cell, WriteExcelData ed) {
        if (ed.getObj() != null) {
            cell.setCellFormula(ed.getObj().toString());
        }
    }
    private static void setNameRefer(Sheet sheet, WriteExcelData ed) {
        if (ed.getObj() != null) {
            Name name = sheet.getWorkbook().createName();
            name.setNameName(ed.getObj().toString());
            name.setRefersToFormula(sheet.getSheetName() + "!" + getRange(ed));
        }
    }
    private static void setValidation(Sheet sheet, WriteExcelData ed) {
        if (ed.getRowTo() < ed.getRow()) {
            ed.setRowTo(ed.getRow());
        }
        if (ed.getColTo() < ed.getCol()) {
            ed.setColTo(ed.getCol());
        }
        CellRangeAddressList regions = new CellRangeAddressList(ed.getRow(), ed.getRowTo(), ed.getCol(), ed.getColTo());
        DataValidation validation = null;
        XSSFDataValidationConstraint dvConstraint;
        if (sheet instanceof XSSFSheet) {
            XSSFDataValidationHelper dvHelper = new XSSFDataValidationHelper((XSSFSheet)sheet);
            dvConstraint = null;
            if (!CollectionUtils.isEmpty(ed.getValidationDataList())) {
                dvConstraint = (XSSFDataValidationConstraint)dvHelper.createExplicitListConstraint((String[])ed.getValidationDataList().toArray(new String[0]));
            } else {
                VciBaseUtil.alertNotNull(new Object[]{ed.getObj(), "写入有效性的时候,没有设置有效性的公式表达式"});
                dvConstraint = (XSSFDataValidationConstraint)dvHelper.createFormulaListConstraint(ed.getObj().toString());
            }
            validation = (XSSFDataValidation)dvHelper.createValidation(dvConstraint, regions);
        } else {
            HSSFDataValidationHelper dvHelper = new HSSFDataValidationHelper((HSSFSheet)sheet);
            dvConstraint = null;
            DataValidationConstraint dvConstraintF;
            if (!CollectionUtils.isEmpty(ed.getValidationDataList())) {
                dvConstraintF = dvHelper.createExplicitListConstraint((String[])ed.getValidationDataList().toArray(new String[0]));
            } else {
                VciBaseUtil.alertNotNull(new Object[]{ed.getObj(), "写入有效性的时候,没有设置有效性的公式表达式"});
                dvConstraintF = dvHelper.createFormulaListConstraint(ed.getObj().toString());
            }
            validation = new HSSFDataValidation(regions, dvConstraintF);
        }
        if (validation instanceof XSSFDataValidation) {
            ((DataValidation)validation).setSuppressDropDownArrow(true);
            ((DataValidation)validation).setShowErrorBox(true);
        } else {
            ((DataValidation)validation).setSuppressDropDownArrow(false);
        }
        if (StringUtil.isNotBlank(ed.getValidationErrorMsg())) {
            ((DataValidation)validation).createErrorBox("error", ed.getValidationErrorMsg());
        }
        sheet.addValidationData((DataValidation)validation);
    }
    private static String getRange(WriteExcelData excelData) {
        char start = (char)(65 + excelData.getCol());
        int rowId = excelData.getRow() + 1;
        int endRowId = excelData.getRowTo() + 1;
        char endPrefix;
        if (excelData.getColTo() <= 25) {
            endPrefix = (char)(65 + excelData.getColTo());
            return "$" + start + "$" + rowId + ":$" + endPrefix + "$" + endRowId;
        } else {
            endPrefix = 'A';
//            boolean endSuffix = true;
            char endSuffix;
            if ((excelData.getColTo() - 25) / 26 != 0 && excelData.getColTo() != 51) {
                if ((excelData.getColTo() - 25) % 26 == 0) {
                    endSuffix = 'Z';
                    endPrefix = (char)(endPrefix + (excelData.getColTo() - 25) / 26 - 1);
                } else {
                    endSuffix = (char)(65 + (excelData.getColTo() - 25) % 26 - 1);
                    endPrefix = (char)(endPrefix + (excelData.getColTo() - 25) / 26);
                }
            } else if ((excelData.getColTo() - 25) % 26 == 0) {
                endSuffix = 'Z';
            } else {
                endSuffix = (char)(65 + (excelData.getColTo() - 25) % 26 - 1);
            }
            return "$" + start + "$" + rowId + ":$" + endPrefix + endSuffix + "$" + endRowId;
        }
    }
    private static void setCellValue(Cell cell, Object value) {
        if (value != null) {
            if (value instanceof Date) {
                cell.setCellValue((Date)value);
            } else if (value instanceof String) {
                cell.setCellValue(value.toString());
            } else if (value instanceof Boolean) {
                cell.setCellValue((Boolean)value);
            } else if (value instanceof Integer) {
                cell.setCellValue((double)(Integer)value);
            } else if (value instanceof Long) {
                cell.setCellValue((double)(Long)value);
            } else if (value instanceof BigDecimal) {
                cell.setCellValue(((BigDecimal)value).doubleValue());
            } else if (value instanceof Double) {
                cell.setCellValue((Double)value);
            } else if (value instanceof RichTextString) {
                cell.setCellValue((RichTextString)value);
            } else {
                cell.setCellValue(value.toString());
            }
        }
    }
    private static void copyStyle(Sheet sheet, Cell cell, WriteExcelData excelData) {
        if (excelData.isCopyStyle()) {
            Row copyStyleRow = sheet.getRow(excelData.getCopyStyleRow());
            if (copyStyleRow != null) {
                Cell copyStyleCell = copyStyleRow.getCell(excelData.getCopyStyleCol());
                copyStyleForCell(copyStyleCell, cell);
                if (StringUtil.isNotBlank(excelData.getDateFormat())) {
                    HSSFDataFormat format = (HSSFDataFormat)sheet.getWorkbook().createDataFormat();
                    cell.getCellStyle().setDataFormat(format.getFormat(excelData.getDateFormat()));
                }
            }
        }
    }
    private static void copyStyleForCell(Cell fromCell, Cell toCell) {
        CellStyle cellStyle = toCell.getCellStyle();
        CellStyle fromStyle = fromCell.getCellStyle();
        cellStyle.cloneStyleFrom(fromStyle);
        cellStyle.setAlignment(fromStyle.getAlignment());
        cellStyle.setBorderBottom(fromStyle.getBorderBottom());
        cellStyle.setBorderLeft(fromStyle.getBorderLeft());
        cellStyle.setBorderRight(fromStyle.getBorderRight());
        cellStyle.setBorderTop(fromStyle.getBorderTop());
        cellStyle.setDataFormat(fromStyle.getDataFormat());
        cellStyle.setFillBackgroundColor(fromStyle.getFillBackgroundColor());
        cellStyle.setFillForegroundColor(fromStyle.getFillForegroundColor());
        cellStyle.setFillPattern(fromStyle.getFillPattern());
        cellStyle.setVerticalAlignment(fromStyle.getVerticalAlignment());
        cellStyle.setWrapText(fromStyle.getWrapText());
        cellStyle.setLocked(fromStyle.getLocked());
        cellStyle.setBottomBorderColor(fromStyle.getBottomBorderColor());
        cellStyle.setLeftBorderColor(fromStyle.getLeftBorderColor());
        cellStyle.setTopBorderColor(fromStyle.getTopBorderColor());
        cellStyle.setRightBorderColor(fromStyle.getRightBorderColor());
    }
    private static void centerCell(Cell cell, WriteExcelData excelData) {
        if (excelData.isCenter()) {
            CellStyle cellStyle = cell.getCellStyle();
            cellStyle.setAlignment(HorizontalAlignment.CENTER);
            cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
        }
    }
    private static void mergedRegion(Sheet sheet, Collection<WriteExcelData> mergedDataList) {
        if (!CollectionUtils.isEmpty(mergedDataList)) {
            mergedDataList.stream().forEach((ed) -> {
                if (ed.getRowTo() < ed.getRow()) {
                    ed.setRowTo(ed.getRow());
                }
                if (ed.getColTo() < ed.getCol()) {
                    ed.setColTo(ed.getCol());
                }
                sheet.addMergedRegion(new CellRangeAddress(ed.getRow(), ed.getRowTo(), ed.getCol(), ed.getColTo()));
            });
        }
    }
    public static List<SheetDataSet> readDataObjectFromExcel(File file) throws VciBaseException {
        return readDataObjectFromExcel(file, SheetDataSet.class);
    }
    public static <T> List<T> readDataObjectFromExcel(File file, Class<T> doClass) throws VciBaseException {
        return readDataObjectFromExcel(file, doClass, (ReadExcelOption)null);
    }
    public static <T> List<T> readDataObjectFromExcel(File file, Class<T> doClass, ReadExcelOption excelOption) throws VciBaseException {
        return readDataObjectFromExcel((File)file, doClass, excelOption, (PoiImportProcesser)null);
    }
    public static <T> List<T> readDataObjectFromExcel(File file, Class<T> doClass, ReadExcelOption excelOption, PoiImportProcesser<T> processer) throws VciBaseException {
        InputStream ins = null;
        try {
            ins = new FileInputStream(file);
        } catch (Throwable var15) {
            String msg = "readImportFileFail";
            if (logger.isErrorEnabled()) {
                logger.error(msg, var15);
            }
            throw new VciBaseException(msg + LangBaseUtil.getErrorMsg(var15), new String[0], var15);
        }
        List var5;
        try {
            var5 = readDataObjectFromExcel((InputStream)ins, doClass, excelOption, processer);
        } catch (VciBaseException var12) {
            throw var12;
        } catch (Throwable var13) {
            throw new VciBaseException(LangBaseUtil.getErrorMsg(var13), new String[0], var13);
        } finally {
            IOUtils.closeQuietly(ins);
        }
        return var5;
    }
    public static <T> List<T> readDataObjectFromExcel(InputStream ins, Class<T> doClass, ReadExcelOption excelOption, PoiImportProcesser<T> processer) throws VciBaseException {
        if (ins == null) {
            throw new VciBaseException("inputStreamIsNull");
        } else {
            if (doClass == null) {
                doClass = (Class<T>) SheetDataSet.class;
            }
            boolean isDataSet = false;
            if (doClass.equals(SheetDataSet.class)) {
                isDataSet = true;
            }
            Map<Field, ExcelColumn> excelColumnSet = getExcelColumnAnnotations(doClass);
            Map<String, ExcelColumn> excelTitleMap = (Map)((Map)Optional.of(excelColumnSet).get()).values().stream().collect(Collectors.toMap((s) -> {
//                return s.value();
//                ExcelColumn s1 = (ExcelColumn) s;
//                s1.value();
//                ((InvocationHandler) ((Proxy) s).).memberValues.get("value");
                return ((ExcelColumn) s).value();
//                return ((AnnotationInvocationHandler) ((Proxy) s).h).memberValues.get("value");
            }, (t) -> {
                return t;
            }));
            Map<String, Field> excelTitleFieldMap = new HashMap();
            Map<String, ExcelColumnMap> extendAttrTitleMap = new HashMap();
            Field[] rowIndexFields = new Field[]{null};
            ReadExcelOption finalExcelOption = excelOption;
            excelColumnSet.forEach((field, excelColumnx) -> {
                excelTitleFieldMap.put(excelColumnx.value(), field);
                if (excelColumnx.rowIndexColumn()) {
                    rowIndexFields[0] = field;
                }
                field.setAccessible(true);
                if ((field.getType().equals(Map.class) || field.getType().getSuperclass().equals(Map.class)) && !CollectionUtils.isEmpty(finalExcelOption.getExtendAttrMap()) && finalExcelOption.getExtendAttrMap().containsKey(excelColumnx.value())) {
                    List<ExcelColumnMap> excelColumnMaps = (List) finalExcelOption.getExtendAttrMap().get(excelColumnx.value());
                    if (!CollectionUtils.isEmpty(excelColumnMaps)) {
                        excelColumnMaps.stream().forEach((ss) -> {
                            excelTitleFieldMap.put(ss.getTitle(), field);
                            extendAttrTitleMap.put(ss.getTitle(), ss);
                        });
                    }
                }
            });
            Field rowIndexField = null;
            if (rowIndexFields[0] != null) {
                rowIndexField = rowIndexFields[0];
            }
            Workbook workbook = getWorkbookByInputStream(ins);
            if (excelOption == null) {
                excelOption = new ReadExcelOption();
            }
            FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator();
            List<T> dataSet = new ArrayList();
            try {
                for(int sheetIndex = 0; sheetIndex < workbook.getNumberOfSheets(); ++sheetIndex) {
                    Sheet sheet = workbook.getSheetAt(sheetIndex);
                    if (StringUtil.isNotBlank(excelOption.getSheetName())) {
                        if (!sheet.getSheetName().equalsIgnoreCase(excelOption.getSheetName())) {
                            continue;
                        }
                    } else if (!excelOption.isReadAllSheet() && sheetIndex != excelOption.getSheetIndex()) {
                        continue;
                    }
                    SheetDataSet sheetDataSet = new SheetDataSet();
                    sheetDataSet.setSheetName(sheet.getSheetName());
                    if (isDataSet) {
                        dataSet.add((T) sheetDataSet);
                    }
                    Map<Integer, String> colsNameIndexMap = new HashMap();
                    int rowIndex;
                    if (excelOption.getFristRow() > 0) {
                        try {
                            Row titleRow = sheet.getRow(excelOption.getFristRow() - 1);
                            rowIndex = titleRow.getLastCellNum();
                            List<String> titleList = new LinkedList();
                            for(int i = 0; i < rowIndex; ++i) {
                                String title = VciBaseUtil.getStringValueFromObject(getCellValue(titleRow.getCell(i), evaluator));
                                if (StringUtil.isNotBlank(title)) {
                                    title = title.replace("*", "").replace("☆", "");
                                    colsNameIndexMap.put(i, title);
                                    titleList.add(title);
                                }
                            }
                            if (isDataSet) {
                                sheetDataSet.setColName(titleList);
                            }
                        } catch (Exception var52) {
                            if (logger.isErrorEnabled()) {
                                logger.error("读取excel文件中的标题信息出现了错误", var52);
                            }
                            throw var52;
                        }
                    }
                    List<SheetRowData> rowDataList = new LinkedList();
                    if (sheet.getLastRowNum() > 0) {
                        for(rowIndex = excelOption.getFristRow(); rowIndex <= sheet.getLastRowNum(); ++rowIndex) {
                            Row rowDataSet = sheet.getRow(rowIndex);
                            if (rowDataSet != null) {
                                boolean notValue = false;
                                for(int i = 0; i < rowDataSet.getLastCellNum(); ++i) {
                                    Cell cellTemp = rowDataSet.getCell(i);
                                    Object valueTemp = getCellValue(cellTemp, evaluator);
                                    if (valueTemp != null && !(valueTemp instanceof String) || valueTemp instanceof String && valueTemp != null && StringUtil.isNotBlank(valueTemp.toString())) {
                                        notValue = true;
                                        break;
                                    }
                                }
                                if (notValue) {
                                    SheetRowData rd = isDataSet ? new SheetRowData() : null;
                                    T obj = null;
                                    if (!isDataSet) {
                                        try {
                                            obj = doClass.newInstance();
                                        } catch (Throwable var49) {
                                            if (logger.isErrorEnabled()) {
                                                logger.error("实例化数据对象", var49);
                                            }
                                            throw new VciBaseException("实例化数据对象," + LangBaseUtil.getErrorMsg(var49));
                                        }
                                    }
                                    if (isDataSet) {
                                        rd.setRowIndex(String.valueOf(rowIndex));
                                    }
                                    if (!isDataSet && rowIndexField != null) {
                                        VciBaseUtil.setValueForField(rowIndexField, obj, String.valueOf(rowIndex));
                                    }
                                    Map<Integer, String> rowDataMap = new HashMap();
                                    for(int columnIndex = 0; columnIndex < rowDataSet.getLastCellNum(); ++columnIndex) {
                                        Cell cell = rowDataSet.getCell(columnIndex);
                                        Object value = getCellValue(cell, evaluator);
                                        String title = colsNameIndexMap.containsKey(columnIndex) ? (String)colsNameIndexMap.get(columnIndex) : "";
                                        boolean isMapField = false;
                                        Field thisField = null;
                                        if (StringUtil.isNotBlank(title) && excelTitleFieldMap.containsKey(title)) {
                                            thisField = (Field)excelTitleFieldMap.get(title);
                                        }
                                        if (thisField != null) {
                                            thisField.setAccessible(true);
                                            if (thisField.getType().equals(Map.class) || thisField.getType().getSuperclass().equals(Map.class)) {
                                                isMapField = true;
                                            }
                                        }
                                        ExcelColumn excelColumn = null;
                                        if (StringUtil.isNotBlank(title) && excelTitleMap.containsKey(title)) {
                                            excelColumn = (ExcelColumn)excelTitleMap.get(title);
                                        }
                                        ExcelColumnMap columnMap = null;
                                        if (isMapField) {
                                            columnMap = (ExcelColumnMap)extendAttrTitleMap.get(title);
                                        }
                                        boolean isNull = false;
                                        if (value == null || value instanceof String && StringUtil.isBlank(value.toString())) {
                                            isNull = true;
                                        }
                                        if (!isNull) {
                                            if (!isDataSet) {
                                                if (thisField != null && (excelColumn != null || columnMap != null)) {
                                                    if (isMapField) {
                                                        Object fieldValue = thisField.get(obj);
                                                        Object data;
                                                        if (fieldValue == null) {
                                                            data = new HashMap();
                                                        } else {
                                                            data = (Map)fieldValue;
                                                        }
                                                        ((Map)data).put(columnMap.getColumnName(), value == null ? "" : value.toString());
                                                        try {
                                                            thisField.set(obj, data);
                                                        } catch (IllegalAccessException var50) {
                                                            if (logger.isErrorEnabled()) {
                                                                logger.error("设置map类型的数据时候出现了错误", var50);
                                                            }
                                                        }
                                                    } else {
                                                        if (value.getClass().equals(thisField.getType())) {
                                                            try {
                                                                thisField.set(obj, value);
                                                            } catch (IllegalAccessException var51) {
                                                                if (logger.isErrorEnabled()) {
                                                                    logger.error("读取excel的单元格的值后,为对象赋值出现了错误", var51);
                                                                }
                                                            }
                                                        } else {
                                                            VciBaseUtil.setValueForField(thisField, obj, VciBaseUtil.getStringValueFromObject(value));
                                                        }
                                                        if (thisField.getType().equals(Date.class) && thisField.get(obj) == null) {
                                                            throw new VciBaseException("cellNotDateFormate", new String[]{title, rowIndex + 1 + ""});
                                                        }
                                                        if (StringUtil.isNotBlank(excelColumn.regExg()) && !VciBaseUtil.getStringValueFromObject(value).matches(excelColumn.regExg())) {
                                                            throw new VciBaseException("cellValueNotEqualReg", new String[]{title, rowIndex + 1 + "", excelColumn.regExgTitle()});
                                                        }
                                                    }
                                                }
                                                if (processer != null && thisField != null) {
                                                    processer.process(value, obj, thisField);
                                                }
                                            } else {
                                                rowDataMap.put(columnIndex, VciBaseUtil.getStringValueFromObject(value));
                                            }
                                        } else if (!isDataSet && thisField != null && excelColumn != null) {
                                            if (!excelColumn.nullable()) {
                                                throw new VciBaseException("cellValueCanNotNull", new String[]{title, rowIndex + 1 + ""});
                                            }
                                            if (StringUtil.isNotBlank(excelColumn.regExg())) {
                                                throw new VciBaseException("cellValueCanNotNullForReg", new String[]{title, rowIndex + 1 + ""});
                                            }
                                        }
                                    }
                                    if (isDataSet) {
                                        rd.setData(rowDataMap);
                                        rowDataList.add(rd);
                                    } else {
                                        dataSet.add(obj);
                                    }
                                }
                            }
                        }
                    }
                    if (isDataSet) {
                        sheetDataSet.setRowData(rowDataList);
                    }
                }
            } catch (Throwable var53) {
                throw new VciBaseException(LangBaseUtil.getErrorMsg(var53), new String[0], var53);
            } finally {
                IOUtils.closeQuietly(ins);
                try {
                    workbook.close();
                } catch (IOException var48) {
                    if (logger.isErrorEnabled()) {
                        logger.error("关闭工作簿出现了错误", var48);
                    }
                }
            }
            return dataSet;
        }
    }
    private static Object getCellValue(Cell cell, FormulaEvaluator evaluator) {
        if (cell != null) {
            Object cellValue = null;
            CellType cellTypeEnum = cell.getCellTypeEnum();
            switch (cellTypeEnum) {
                case STRING:
                    String thisCellValue = cell.getStringCellValue();
                    cellValue = StringUtil.isEmpty(thisCellValue) ? "" : thisCellValue.trim();
                    break;
                case BOOLEAN:
                    boolean boolValue = cell.getBooleanCellValue();
                    cellValue = boolValue;
                    break;
                case FORMULA:
                    cellValue = getCellValue(evaluator.evaluate(cell));
                    break;
                case NUMERIC:
                    if (DateUtil.isCellDateFormatted(cell)) {
                        cellValue = cell.getDateCellValue();
                    } else {
                        cellValue = cell.getNumericCellValue();
                    }
                    break;
                default:
                    cellValue = "";
            }
            return cellValue;
        } else {
            return null;
        }
    }
    private static Object getCellValue(CellValue cell) {
        Object cellValue = null;
        switch (cell.getCellTypeEnum()) {
            case STRING:
                String thisCellValue = cell.getStringValue();
                cellValue = StringUtil.isEmpty(thisCellValue) ? "" : thisCellValue.trim();
                break;
            case NUMERIC:
                cellValue = cell.getNumberValue();
        }
        return cellValue;
    }
    public static <T> Map<Field, ExcelColumn> getExcelColumnAnnotations(Class<T> doClass) {
        Map<Field, ExcelColumn> excelColumnMap = new HashMap();
        if (!doClass.equals(SheetDataSet.class)) {
            List<Field> allFields = VciBaseUtil.getAllFieldForObj(doClass);
            List<Field> hasExcelColumnFields = (List)allFields.stream().filter((field) -> {
                return field.isAnnotationPresent(ExcelColumn.class);
            }).collect(Collectors.toList());
            if (!CollectionUtils.isEmpty(hasExcelColumnFields)) {
                hasExcelColumnFields.stream().forEach((field) -> {
                    ExcelColumn ec = getExcelColumnAnnotation(field);
                    excelColumnMap.put(field, ec);
                });
            }
        }
        return excelColumnMap;
    }
    public static ExcelColumn getExcelColumnAnnotation(Field field) {
        ExcelColumn ec = (ExcelColumn)field.getAnnotation(ExcelColumn.class);
        if (ec == null) {
            ec = (ExcelColumn)field.getDeclaredAnnotation(ExcelColumn.class);
        }
        return ec;
    }
    public static <T> String downloadImportTempByClass(Class<T> doClass, DownloadTempOption downloadTempOption, PoiTemplateProcesser<T> processer) {
        if (downloadTempOption == null) {
            downloadTempOption = new DownloadTempOption("");
        }
        String excelName = LocalFileUtil.getDefaultTempFolder() + File.separator + (StringUtil.isNotBlank(downloadTempOption.getExcelName()) ? downloadTempOption.getExcelName() : "导入模板.xls");
        try {
            (new File(excelName)).createNewFile();
        } catch (Throwable var22) {
            throw new VciBaseException(LangBaseUtil.getErrorMsg(var22), new String[]{excelName}, var22);
        }
        List<WriteExcelData> excelDataList = new ArrayList();
        Map<Field, ExcelColumn> fieldExcelColumnMap = getExcelColumnAnnotations(doClass);
        Map<String, ExcelColumn> fieldNameExcelColumnMap = new HashMap();
        fieldExcelColumnMap.forEach((fieldx, ec) -> {
            fieldx.setAccessible(true);
            fieldNameExcelColumnMap.put(fieldx.getName(), ec);
        });
        Field[] fields = doClass.getDeclaredFields();
        Set<String> finedFields = new HashSet();
        new HSSFWorkbook();
        int index = 0;
        for(int i = 0; i < fields.length; ++i) {
            Field field = fields[i];
            field.setAccessible(true);
            String fieldName = field.getName();
            if (fieldNameExcelColumnMap.containsKey(fieldName)) {
                finedFields.add(fieldName);
                ExcelColumn column = (ExcelColumn)fieldNameExcelColumnMap.get(fieldName);
                if (!column.rowIndexColumn()) {
                    WriteExcelData excelData = new WriteExcelData(0, index, StringUtil.isNotBlank(column.value()) ? column.value() : fieldName);
                    if (!column.nullable()) {
                        excelData.setFontColor(String.valueOf(HSSFColor.HSSFColorPredefined.RED.getIndex()));
                        excelData.setObj(excelData.getObj() + "*");
                    }
                    excelData.setReadOnly(true);
                    excelData.setCenter(true);
                    if (column.width() > 0) {
                        excelData.setWidth(column.width());
                    }
                    List<WriteExcelData> thisRowNextDatas = new ArrayList();
                    if (downloadTempOption.getDefaultRowSize() == null || downloadTempOption.getDefaultRowSize() < 0) {
                        downloadTempOption.setDefaultRowSize(1);
                    }
                    Integer defaultRowSize = downloadTempOption.getDefaultRowSize();
                    for(int j = 0; j < defaultRowSize; ++j) {
                        thisRowNextDatas.add(new WriteExcelData(1 + j, index, ""));
                    }
                    if (StringUtil.isNotBlank(column.enumId()) && processer != null) {
                        Map<String, String> enumMap = processer.wrapperEnumMap(column.enumId(), doClass, field);
                        if (!CollectionUtils.isEmpty(enumMap)) {
                            WriteExcelData thisRowNext = (WriteExcelData)thisRowNextDatas.get(0);
                            thisRowNext.setValidation(true);
                            thisRowNext.setRowTo(defaultRowSize);
                            thisRowNext.setColTo(thisRowNext.getCol());
                            thisRowNext.setValidationDataList((List)enumMap.values().stream().collect(Collectors.toList()));
                        }
                    }
                    if (field.isAnnotationPresent(VciFieldType.class)) {
                        VciFieldType fieldType = (VciFieldType)field.getDeclaredAnnotation(VciFieldType.class);
                        if (fieldType == null) {
                            fieldType = (VciFieldType)field.getAnnotation(VciFieldType.class);
                        }
                        if (fieldType != null) {
                            String dateFormat;
                            if (VciFieldTypeEnum.VTDateTime.equals(fieldType.value())) {
                                dateFormat = "yyyy-MM-dd HH:mm:ss";
                            } else if (VciFieldTypeEnum.VTDate.equals(fieldType.value())) {
                                dateFormat = "yyyy-MM-dd";
                            } else if (VciFieldTypeEnum.VTTime.equals(fieldType.value())) {
                                dateFormat = "HH:mm:ss";
                            } else {
                                dateFormat = "";
                            }
                            if (StringUtil.isNotBlank(dateFormat)) {
                                thisRowNextDatas.stream().forEach((thisRowNextx) -> {
                                    thisRowNextx.setDateFormat(dateFormat);
                                });
                            }
                            if (VciFieldTypeEnum.VTBoolean.equals(fieldType.value())) {
                                List<String> trueFlase = new ArrayList();
                                trueFlase.add("是");
                                trueFlase.add("否");
                                WriteExcelData thisRowNext = (WriteExcelData)thisRowNextDatas.get(0);
                                thisRowNext.setValidation(true);
                                thisRowNext.setRowTo(defaultRowSize);
                                thisRowNext.setColTo(thisRowNext.getCol());
                                thisRowNext.setValidationDataList(trueFlase);
                            }
                        }
                    }
                    excelDataList.addAll(thisRowNextDatas);
                    excelDataList.add(excelData);
                    ++index;
                }
            }
        }
        WriteExcelOption excelOption = new WriteExcelOption();
        excelOption.addSheetDataList(StringUtil.isNotBlank(downloadTempOption.getSheetName()) ? downloadTempOption.getSheetName() : "Sheet1", excelDataList);
        writeDataToFile(excelName, excelOption);
        return excelName;
    }
    public static void mergeExcel(List<String> files, String excelName) {
        Workbook newExcelCreat = excelName.toLowerCase(Locale.ROOT).endsWith(".xlsx") ? new XSSFWorkbook() : new HSSFWorkbook();
        for(int i = 0; i < files.size(); ++i) {
            String fromExcelName = (String)files.get(i);
            try {
                InputStream in = new FileInputStream(fromExcelName);
                Throwable var6 = null;
                try {
                    Workbook fromExcel = null;
                    if (fromExcelName.toLowerCase(Locale.ROOT).endsWith(".xlsx")) {
                        fromExcel = new XSSFWorkbook(in);
                    } else {
                        fromExcel = new HSSFWorkbook(in);
                    }
                    int length = ((Workbook)fromExcel).getNumberOfSheets();
                    Sheet oldSheet;
                    if (length <= 1) {
                        oldSheet = ((Workbook)fromExcel).getSheetAt(0);
                        oldSheet = ((Workbook)newExcelCreat).getSheet(oldSheet.getSheetName());
                        String newSheetName = oldSheet.getSheetName();
                        if (oldSheet != null) {
                            newSheetName = newSheetName + "_" + i;
                        }
                        Sheet newSheet = ((Workbook)newExcelCreat).createSheet(newSheetName);
                        copySheet((Workbook)newExcelCreat, oldSheet, newSheet);
                    } else {
                        for(int j = 0; j < length; ++j) {
                            oldSheet = ((Workbook)fromExcel).getSheetAt(j);
                            Sheet existSheet = ((Workbook)newExcelCreat).getSheet(oldSheet.getSheetName());
                            String newSheetName = oldSheet.getSheetName();
                            if (existSheet != null) {
                                newSheetName = newSheetName + "_" + i + "_" + j;
                            }
                            Sheet newSheet = ((Workbook)newExcelCreat).createSheet(newSheetName);
                            copySheet((Workbook)newExcelCreat, oldSheet, newSheet);
                        }
                    }
                    List<? extends Name> allNames = ((Workbook)fromExcel).getAllNames();
                    if (!CollectionUtils.isEmpty(allNames)) {
                        allNames.stream().forEach((name) -> {
                            Name name1 = newExcelCreat.createName();
                            name1.setNameName(name.getNameName());
                            name1.setRefersToFormula(name.getRefersToFormula());
                        });
                    }
                } catch (Throwable var64) {
                    var6 = var64;
                    throw var64;
                } finally {
                    if (in != null) {
                        if (var6 != null) {
                            try {
                                in.close();
                            } catch (Throwable var58) {
                                var6.addSuppressed(var58);
                            }
                        } else {
                            in.close();
                        }
                    }
                }
            } catch (IOException var66) {
                throw new VciBaseException("合并excel出错的了", new String[0], var66);
            }
        }
        String allFileName = excelName;
        try {
            FileOutputStream fileOut = new FileOutputStream(allFileName);
            Throwable var69 = null;
            try {
                ((Workbook)newExcelCreat).write(fileOut);
                fileOut.flush();
            } catch (Throwable var60) {
                var69 = var60;
                throw var60;
            } finally {
                if (fileOut != null) {
                    if (var69 != null) {
                        try {
                            fileOut.close();
                        } catch (Throwable var59) {
                            var69.addSuppressed(var59);
                        }
                    } else {
                        fileOut.close();
                    }
                }
            }
        } catch (IOException var62) {
            var62.printStackTrace();
        } finally {
            try {
                ((Workbook)newExcelCreat).close();
            } catch (IOException var57) {
                var57.printStackTrace();
            }
        }
    }
    private static void mergeSheetAllRegion(Sheet fromSheet, Sheet toSheet) {
        int num = fromSheet.getNumMergedRegions();
        CellRangeAddress cellR = null;
        for(int i = 0; i < num; ++i) {
            cellR = fromSheet.getMergedRegion(i);
            toSheet.addMergedRegion(cellR);
        }
    }
    private static void copyCell(Cell fromCell, Cell toCell) {
        copyStyleForCell(fromCell, toCell);
        if (fromCell.getCellComment() != null) {
            toCell.setCellComment(fromCell.getCellComment());
        }
        CellType fromCellType = fromCell.getCellType();
        toCell.setCellType(fromCellType);
        if (fromCellType == CellType.NUMERIC) {
            if (DateUtil.isCellDateFormatted(fromCell)) {
                toCell.setCellValue(fromCell.getDateCellValue());
            } else {
                toCell.setCellValue(fromCell.getNumericCellValue());
            }
        } else if (fromCellType == CellType.STRING) {
            RichTextString value = fromCell.getRichStringCellValue();
            if (value != null && StringUtil.isNotBlank(value.toString())) {
                Font fontAt = fromCell.getSheet().getWorkbook().getFontAt(fromCell.getCellStyle().getFontIndexAsInt());
                value.applyFont(fontAt);
            }
            toCell.setCellValue(value);
        } else if (fromCellType != CellType.BLANK) {
            if (fromCellType == CellType.BOOLEAN) {
                toCell.setCellValue(fromCell.getBooleanCellValue());
            } else if (fromCellType == CellType.ERROR) {
                toCell.setCellErrorValue(fromCell.getErrorCellValue());
            } else if (fromCellType == CellType.FORMULA) {
                toCell.setCellFormula(fromCell.getCellFormula());
            }
        }
    }
    private static void copyRow(Workbook wb, Row oldRow, Row toRow) {
        toRow.setHeight(oldRow.getHeight());
        Iterator cellIt = oldRow.cellIterator();
        while(cellIt.hasNext()) {
            Cell tmpCell = (Cell)cellIt.next();
            Cell newCell = toRow.createCell(tmpCell.getColumnIndex());
            copyCell(tmpCell, newCell);
        }
    }
    private static void copySheet(Workbook wb, Sheet fromSheet, Sheet toSheet) {
        mergeSheetAllRegion(fromSheet, toSheet);
        int length = fromSheet.getRow(fromSheet.getFirstRowNum()).getLastCellNum();
        for(int i = 0; i <= length; ++i) {
            toSheet.setColumnWidth(i, fromSheet.getColumnWidth(i));
        }
        Iterator rowIt = fromSheet.rowIterator();
        while(rowIt.hasNext()) {
            Row oldRow = (Row)rowIt.next();
            Row newRow = toSheet.createRow(oldRow.getRowNum());
            copyRow(wb, oldRow, newRow);
        }
        List<? extends DataValidation> dataValidations = fromSheet.getDataValidations();
        if (!CollectionUtils.isEmpty(dataValidations)) {
            dataValidations.stream().forEach((dv) -> {
                toSheet.addValidationData(dv);
            });
        }
    }
    public static <T> void appendDataToExcel(Collection<T> data, String excelName, AppendDataExcelOption excelOption) {
        if (!CollectionUtils.isEmpty(data)) {
            T t1 = data.stream().findFirst().get();
            Map<Field, ExcelColumn> excelColumnSet = getExcelColumnAnnotations(t1.getClass());
            Map<String, String> excelTitleFieldNameMap = new HashMap();
            Set<String> readOnlyFields = new HashSet();
            excelColumnSet.forEach((field, excelColumn) -> {
                excelTitleFieldNameMap.put(excelColumn.value(), field.getName());
                if (excelColumn.readOnly()) {
                    readOnlyFields.add(field.getName());
                }
            });
            ReadExcelOption readExcelOption = new ReadExcelOption();
            readExcelOption.setSheetName(excelOption.getSheetName());
            readExcelOption.setFristRow(excelOption.getTitleRowIndex() + 1);
            List<SheetDataSet> sheetDataSets = readDataObjectFromExcel(new File(excelName), SheetDataSet.class, readExcelOption);
            if (!CollectionUtils.isEmpty(sheetDataSets)) {
                SheetDataSet sheetDataSet = (SheetDataSet)sheetDataSets.get(0);
                Map<String, Integer> fieldColumnMap = new HashMap();
                List<String> colName = sheetDataSet.getColName();
                if (!CollectionUtils.isEmpty(colName)) {
                    for(int i = 0; i < colName.size(); ++i) {
                        String col = ((String)colName.get(i)).replace("*", "").replace("☆", "");
                        if (excelTitleFieldNameMap.containsKey(col)) {
                            fieldColumnMap.put(excelTitleFieldNameMap.get(col), i);
                        }
                    }
                    List<WriteExcelData> writeExcelDataList = new ArrayList();
                    Integer[] index = new Integer[]{excelOption.getTitleRowIndex() + 1};
                    data.stream().forEach((d) -> {
                        Map<String, String> dataMap = VciBaseUtil.objectToMapString(d);
                        fieldColumnMap.forEach((field, col) -> {
                            if (CollectionUtils.isEmpty(excelOption.getWriteFields()) || excelOption.getWriteFields().contains(field)) {
                                WriteExcelData excelData = new WriteExcelData(index[0], col, dataMap.getOrDefault(field, ""));
                                excelData.setReadOnly(excelOption.isReadOnlyFromField() && readOnlyFields.contains(field) || !CollectionUtils.isEmpty(excelOption.getReadOnlyFields()) && excelOption.getReadOnlyFields().contains(field));
                                writeExcelDataList.add(excelData);
                            }
                        });
                        Integer var7 = index[0];
                        Integer var8 = index[0] = index[0] + 1;
                    });
                    WriteExcelOption writeExcelOption = new WriteExcelOption();
                    writeExcelOption.addSheetDataList(excelOption.getSheetName(), writeExcelDataList);
                    writeExcelOption.setAppend(true);
                    writeDataToFile(excelName, writeExcelOption);
                }
            }
        }
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/poi/util/PoiImportProcesser.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
package com.vci.ubcs.starter.poi.util;
import java.lang.reflect.Field;
@FunctionalInterface
public interface PoiImportProcesser<T> {
    void process(Object var1, T var2, Field var3);
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/poi/util/PoiTemplateProcesser.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
package com.vci.ubcs.starter.poi.util;
import java.lang.reflect.Field;
import java.util.Map;
@FunctionalInterface
public interface PoiTemplateProcesser<T> {
    Map<String, String> wrapperEnumMap(String var1, Class<T> var2, Field var3);
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/model/BaseModel.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,355 @@
package com.vci.ubcs.starter.revision.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.data.annotation.Transient;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
import java.util.Map;
public class BaseModel implements Serializable {
    @JsonSerialize(
        using = ToStringSerializer.class
    )
    @ApiModelProperty("主键id")
    @TableId(value = "OID",type = IdType.ASSIGN_UUID)
    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;
    @DateTimeFormat(
        pattern = "yyyy-MM-dd HH:mm:ss"
    )
    @JsonFormat(
        pattern = "yyyy-MM-dd HH:mm:ss"
    )
    private Date createTime;
    private String lastModifier;
    @DateTimeFormat(
        pattern = "yyyy-MM-dd HH:mm:ss"
    )
    @JsonFormat(
        pattern = "yyyy-MM-dd HH:mm:ss"
    )
    private Date lastModifyTime;
    private String revisionRule;
    private Integer revisionSeq;
    private String revisionValue;
    private String versionRule;
    private Integer versionSeq;
    private String versionValue;
    @Transient
    private String lctid;
    private String lcStatus;
    @TableField(exist = false)
    private String lcStatusText;
    @JsonFormat(
        pattern = "yyyy-MM-dd HH:mm:ss.SSS"
    )
    private Date ts;
    private String owner;
    private String copyFromVersion;
    //    @VciUseEnum(
//        value = "Enumsecretgrade",
//        showTextField = "secretGradeText"
//    )
    @TableField(exist = false)
    private Integer secretGrade;
    @Transient
    @TableField(exist = false)
    private String secretGradeText;
    @Transient
    @TableField(exist = false)
    private Map<String, String> data;
    public BaseModel() {
    }
    public String getOid() {
        return this.oid;
    }
    public void setOid(String oid) {
        this.oid = oid;
    }
    public String getId() {
        return this.id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return this.name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getDescription() {
        return this.description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
    public String getRevisionOid() {
        return this.revisionOid;
    }
    public void setRevisionOid(String revisionOid) {
        this.revisionOid = revisionOid;
    }
    public String getNameOid() {
        return this.nameOid;
    }
    public void setNameOid(String nameOid) {
        this.nameOid = nameOid;
    }
    public String getBtmname() {
        return this.btmname;
    }
    public void setBtmname(String btmname) {
        this.btmname = btmname;
    }
    public String getLastR() {
        return this.lastR;
    }
    public void setLastR(String lastR) {
        this.lastR = lastR;
    }
    public String getFirstR() {
        return this.firstR;
    }
    public void setFirstR(String firstR) {
        this.firstR = firstR;
    }
    public String getLastV() {
        return this.lastV;
    }
    public void setLastV(String lastV) {
        this.lastV = lastV;
    }
    public String getFirstV() {
        return this.firstV;
    }
    public void setFirstV(String firstV) {
        this.firstV = firstV;
    }
    public String getCreator() {
        return this.creator;
    }
    public void setCreator(String creator) {
        this.creator = creator;
    }
    public String getLastModifier() {
        return this.lastModifier;
    }
    public void setLastModifier(String lastModifier) {
        this.lastModifier = lastModifier;
    }
    public Date getLastModifyTime() {
        return this.lastModifyTime;
    }
    public void setLastModifyTime(Date lastModifyTime) {
        this.lastModifyTime = lastModifyTime;
    }
    public String getRevisionRule() {
        return this.revisionRule;
    }
    public void setRevisionRule(String revisionRule) {
        this.revisionRule = revisionRule;
    }
    public String getVersionRule() {
        return this.versionRule;
    }
    public void setVersionRule(String versionRule) {
        this.versionRule = versionRule;
    }
    public Integer getRevisionSeq() {
        return this.revisionSeq;
    }
    public void setRevisionSeq(Integer revisionSeq) {
        this.revisionSeq = revisionSeq;
    }
    public String getRevisionValue() {
        return this.revisionValue;
    }
    public void setRevisionValue(String revisionValue) {
        this.revisionValue = revisionValue;
    }
    public Integer getVersionSeq() {
        return this.versionSeq;
    }
    public void setVersionSeq(Integer versionSeq) {
        this.versionSeq = versionSeq;
    }
    public String getVersionValue() {
        return this.versionValue;
    }
    public void setVersionValue(String versionValue) {
        this.versionValue = versionValue;
    }
    public String getLcStatus() {
        return this.lcStatus;
    }
    public void setLcStatus(String lcStatus) {
        this.lcStatus = lcStatus;
    }
    public Date getTs() {
        return this.ts;
    }
    public void setTs(Date ts) {
        this.ts = ts;
    }
    public String getOwner() {
        return this.owner;
    }
    public void setOwner(String owner) {
        this.owner = owner;
    }
    public String getCopyFromVersion() {
        return this.copyFromVersion;
    }
    public void setCopyFromVersion(String copyFromVersion) {
        this.copyFromVersion = copyFromVersion;
    }
    public String getLcStatusText() {
        return this.lcStatusText;
    }
    public void setLcStatusText(String lcStatusText) {
        this.lcStatusText = lcStatusText;
    }
    public Date getCreateTime() {
        return this.createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public Integer getSecretGrade() {
        return this.secretGrade;
    }
    public void setSecretGrade(Integer secretGrade) {
        this.secretGrade = secretGrade;
    }
    public String getSecretGradeText() {
        return this.secretGradeText;
    }
    public void setSecretGradeText(String secretGradeText) {
        this.secretGradeText = secretGradeText;
    }
    public String getLctid() {
        return this.lctid;
    }
    public void setLctid(String lctid) {
        this.lctid = lctid;
    }
    public Map<String, String> getData() {
        return this.data;
    }
    public void setData(Map<String, String> data) {
        this.data = data;
    }
    @Override
    public String toString() {
        return "BaseModel{oid='" + this.oid + '\'' + ", id='" + this.id + '\'' + ", name='" + this.name + '\'' + ", description='" + this.description + '\'' + ", revisionOid='" + this.revisionOid + '\'' + ", nameOid='" + this.nameOid + '\'' + ", btmname='" + this.btmname + '\'' + ", lastR='" + this.lastR + '\'' + ", firstR='" + this.firstR + '\'' + ", lastV='" + this.lastV + '\'' + ", firstV='" + this.firstV + '\'' + ", creator='" + this.creator + '\'' + ", createTime=" + this.createTime + ", lastModifier='" + this.lastModifier + '\'' + ", lastModifyTime=" + this.lastModifyTime + ", revisionRule='" + this.revisionRule + '\'' + ", revisionSeq=" + this.revisionSeq + ", revisionValue='" + this.revisionValue + '\'' + ", versionRule='" + this.versionRule + '\'' + ", versionSeq=" + this.versionSeq + ", versionValue='" + this.versionValue + '\'' + ", lctid='" + this.lctid + '\'' + ", lcStatus='" + this.lcStatus + '\'' + ", lcStatusText='" + this.lcStatusText + '\'' + ", ts=" + this.ts + ", owner='" + this.owner + '\''  + ", copyFromVersion='" + this.copyFromVersion + '\'' + ", secretGrade=" + this.secretGrade + ", secretGradeText='" + this.secretGradeText + '\'' + ", data=" + this.data + '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/model/ReleasedObjDO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,58 @@
package com.vci.ubcs.starter.revision.model;
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
//package com.vci.starter.revision.model;
import java.io.Serializable;
public class ReleasedObjDO implements Serializable {
    private static final long serialVersionUID = -7258896338253286905L;
    private String oid;
    private String revisionOid;
    private String nameOid;
    private String btmName;
    public ReleasedObjDO() {
    }
    public String getOid() {
        return this.oid;
    }
    public void setOid(String oid) {
        this.oid = oid;
    }
    public String getRevisionOid() {
        return this.revisionOid;
    }
    public void setRevisionOid(String revisionOid) {
        this.revisionOid = revisionOid;
    }
    public String getNameOid() {
        return this.nameOid;
    }
    public void setNameOid(String nameOid) {
        this.nameOid = nameOid;
    }
    public String getBtmName() {
        return this.btmName;
    }
    public void setBtmName(String btmName) {
        this.btmName = btmName;
    }
    @Override
    public String toString() {
        return "ReleasedObjDO{oid='" + this.oid + '\'' + ", revisionOid='" + this.revisionOid + '\'' + ", nameOid='" + this.nameOid + '\'' + ", btmName='" + this.btmName + '\'' + '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/model/RevisionInfo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,147 @@
package com.vci.ubcs.starter.revision.model;
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
//package com.vci.starter.revision.model;
import java.io.Serializable;
public class RevisionInfo implements Serializable {
    private static final long serialVersionUID = 7167255550437885283L;
    private String oid;
    private String nameOid;
    private String revisionOid;
    private String lastR;
    private String firstR;
    private String lastV;
    private String firstV;
    private String revisionRule;
    private Integer revisionSeq;
    private String revisionValue;
    private String versionRule;
    private Integer versionSeq;
    private String versionValue;
    private String btmname;
    public RevisionInfo() {
    }
    public String getBtmname() {
        return this.btmname;
    }
    public void setBtmname(String btmname) {
        this.btmname = btmname;
    }
    public String getOid() {
        return this.oid;
    }
    public void setOid(String oid) {
        this.oid = oid;
    }
    public String getNameOid() {
        return this.nameOid;
    }
    public void setNameOid(String nameOid) {
        this.nameOid = nameOid;
    }
    public String getRevisionOid() {
        return this.revisionOid;
    }
    public void setRevisionOid(String revisionOid) {
        this.revisionOid = revisionOid;
    }
    public String getLastR() {
        return this.lastR;
    }
    public void setLastR(String lastR) {
        this.lastR = lastR;
    }
    public String getFirstR() {
        return this.firstR;
    }
    public void setFirstR(String firstR) {
        this.firstR = firstR;
    }
    public String getLastV() {
        return this.lastV;
    }
    public void setLastV(String lastV) {
        this.lastV = lastV;
    }
    public String getFirstV() {
        return this.firstV;
    }
    public void setFirstV(String firstV) {
        this.firstV = firstV;
    }
    public String getRevisionRule() {
        return this.revisionRule;
    }
    public void setRevisionRule(String revisionRule) {
        this.revisionRule = revisionRule;
    }
    public int getRevisionSeq() {
        return this.revisionSeq;
    }
    public void setRevisionSeq(Integer revisionSeq) {
        this.revisionSeq = revisionSeq;
    }
    public String getRevisionValue() {
        return this.revisionValue;
    }
    public void setRevisionValue(String revisionValue) {
        this.revisionValue = revisionValue;
    }
    public String getVersionRule() {
        return this.versionRule;
    }
    public void setVersionRule(String versionRule) {
        this.versionRule = versionRule;
    }
    public int getVersionSeq() {
        return this.versionSeq;
    }
    public void setVersionSeq(Integer versionSeq) {
        this.versionSeq = versionSeq;
    }
    public String getVersionValue() {
        return this.versionValue;
    }
    public void setVersionValue(String versionValue) {
        this.versionValue = versionValue;
    }
    @Override
    public String toString() {
        return "RevisionInfo{oid='" + this.oid + '\'' + ", nameOid='" + this.nameOid + '\'' + ", revisionOid='" + this.revisionOid + '\'' + ", lastR='" + this.lastR + '\'' + ", firstR='" + this.firstR + '\'' + ", lastV='" + this.lastV + '\'' + ", firstV='" + this.firstV + '\'' + ", revisionRule='" + this.revisionRule + '\'' + ", revisionSeq=" + this.revisionSeq + ", revisionValue='" + this.revisionValue + '\'' + ", versionRule='" + this.versionRule + '\'' + ", versionSeq=" + this.versionSeq + ", versionValue='" + this.versionValue + '\'' + ", btmname='" + this.btmname + '\'' + '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/model/TreeQueryObject.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,137 @@
package com.vci.ubcs.starter.revision.model;
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
import java.io.Serializable;
import java.util.Map;
public class TreeQueryObject implements Serializable {
    private static final long serialVersionUID = -7570704940199743059L;
    private Map<String, String> conditionMap;
    private boolean multipleSelect;
    private boolean showCheckBox;
    private boolean queryAllLevel;
    private String parentOid;
    private String parentBtmName;
    private String valueField = "oid";
    private String textField = "name";
    private String parentFieldName;
    private Map<String, String> extandParamsMap;
    private boolean queryAllRev;
    private String sort;
    private String order;
    public TreeQueryObject() {
    }
    public String getValueField() {
        return this.valueField;
    }
    public void setValueField(String valueField) {
        this.valueField = valueField;
    }
    public String getTextField() {
        return this.textField;
    }
    public void setTextField(String textField) {
        this.textField = textField;
    }
    public String getParentFieldName() {
        return this.parentFieldName;
    }
    public void setParentFieldName(String parentFieldName) {
        this.parentFieldName = parentFieldName;
    }
    public Map<String, String> getConditionMap() {
        return this.conditionMap;
    }
    public void setConditionMap(Map<String, String> conditionMap) {
        this.conditionMap = conditionMap;
    }
    public boolean isMultipleSelect() {
        return this.multipleSelect;
    }
    public void setMultipleSelect(boolean multipleSelect) {
        this.multipleSelect = multipleSelect;
    }
    public boolean isShowCheckBox() {
        return this.showCheckBox;
    }
    public void setShowCheckBox(boolean showCheckBox) {
        this.showCheckBox = showCheckBox;
    }
    public String getParentOid() {
        return this.parentOid;
    }
    public void setParentOid(String parentOid) {
        this.parentOid = parentOid;
    }
    public String getParentBtmName() {
        return this.parentBtmName;
    }
    public void setParentBtmName(String parentBtmName) {
        this.parentBtmName = parentBtmName;
    }
    public Map<String, String> getExtandParamsMap() {
        return this.extandParamsMap;
    }
    public void setExtandParamsMap(Map<String, String> extandParamsMap) {
        this.extandParamsMap = extandParamsMap;
    }
    public boolean isQueryAllLevel() {
        return this.queryAllLevel;
    }
    public void setQueryAllLevel(boolean queryAllLevel) {
        this.queryAllLevel = queryAllLevel;
    }
    public boolean isQueryAllRev() {
        return this.queryAllRev;
    }
    public void setQueryAllRev(boolean queryAllRev) {
        this.queryAllRev = queryAllRev;
    }
    public String getSort() {
        return this.sort;
    }
    public void setSort(String sort) {
        this.sort = sort;
    }
    public String getOrder() {
        return this.order;
    }
    public void setOrder(String order) {
        this.order = order;
    }
    public String toString() {
        return "TreeQueryObject{conditionMap=" + this.conditionMap + ", multipleSelect=" + this.multipleSelect + ", showCheckBox=" + this.showCheckBox + ", queryAllLevel=" + this.queryAllLevel + ", parentOid='" + this.parentOid + '\'' + ", parentBtmName='" + this.parentBtmName + '\'' + ", valueField='" + this.valueField + '\'' + ", textField='" + this.textField + '\'' + ", parentFieldName='" + this.parentFieldName + '\'' + ", extandParamsMap=" + this.extandParamsMap + ", queryAllRev=" + this.queryAllRev + ", sort='" + this.sort + '\'' + ", order='" + this.order + '\'' + '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/model/TreeWrapperOptions.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,122 @@
package com.vci.ubcs.starter.revision.model;
import java.io.Serializable;
public class TreeWrapperOptions implements Serializable {
    private static final long serialVersionUID = 3183500138266494574L;
    private String textFieldName = "name";
    private String textValueSep = " ";
    private String parentFieldName;
    private String oidFieldName = "oid";
    private String oidValueSep = ",";
    private boolean allAttributes = true;
    private String parentOid;
    private boolean multipleSelect = false;
    private boolean showCheckBox = false;
    public TreeWrapperOptions() {
    }
    public TreeWrapperOptions(String parentFieldName) {
        this.parentFieldName = parentFieldName;
    }
    public TreeWrapperOptions(String textFieldName, String parentFieldName) {
        this.textFieldName = textFieldName;
        this.parentFieldName = parentFieldName;
    }
    public TreeWrapperOptions(String textFieldName, String parentFieldName, String parentOid) {
        this.textFieldName = textFieldName;
        this.parentFieldName = parentFieldName;
        this.parentOid = parentOid;
    }
    public void copyFromTreeQuery(TreeQueryObject treeQueryObject) {
        if (treeQueryObject != null) {
            this.parentOid = treeQueryObject.getParentOid();
            this.multipleSelect = treeQueryObject.isMultipleSelect();
            this.showCheckBox = treeQueryObject.isShowCheckBox();
        }
    }
    public String getTextFieldName() {
        return this.textFieldName;
    }
    public void setTextFieldName(String textFieldName) {
        this.textFieldName = textFieldName;
    }
    public String getParentFieldName() {
        return this.parentFieldName;
    }
    public void setParentFieldName(String parentFieldName) {
        this.parentFieldName = parentFieldName;
    }
    public String getOidFieldName() {
        return this.oidFieldName;
    }
    public void setOidFieldName(String oidFieldName) {
        this.oidFieldName = oidFieldName;
    }
    public boolean isAllAttributes() {
        return this.allAttributes;
    }
    public void setAllAttributes(boolean allAttributes) {
        this.allAttributes = allAttributes;
    }
    public String getParentOid() {
        return this.parentOid;
    }
    public void setParentOid(String parentOid) {
        this.parentOid = parentOid;
    }
    public boolean isMultipleSelect() {
        return this.multipleSelect;
    }
    public void setMultipleSelect(boolean multipleSelect) {
        this.multipleSelect = multipleSelect;
    }
    public boolean isShowCheckBox() {
        return this.showCheckBox;
    }
    public void setShowCheckBox(boolean showCheckBox) {
        this.showCheckBox = showCheckBox;
    }
    public String getTextValueSep() {
        return this.textValueSep;
    }
    public void setTextValueSep(String textValueSep) {
        this.textValueSep = textValueSep;
    }
    public String getOidValueSep() {
        return this.oidValueSep;
    }
    public void setOidValueSep(String oidValueSep) {
        this.oidValueSep = oidValueSep;
    }
    @Override
    public String toString() {
        return "TreeWrapperOptions{textFieldName='" + this.textFieldName + '\'' + ", textValueSep='" + this.textValueSep + '\'' + ", parentFieldName='" + this.parentFieldName + '\'' + ", oidFieldName='" + this.oidFieldName + '\'' + ", oidValueSep='" + this.oidValueSep + '\'' + ", allAttributes=" + this.allAttributes + ", parentOid='" + this.parentOid + '\'' + ", multipleSelect=" + this.multipleSelect + ", showCheckBox=" + this.showCheckBox + '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/service/RevisionModelUtil.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,108 @@
package com.vci.ubcs.starter.revision.service;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.vci.ubcs.starter.revision.model.BaseModel;
import com.vci.ubcs.starter.revision.model.TreeWrapperOptions;
import com.vci.ubcs.starter.web.pagemodel.Tree;
import com.vci.ubcs.starter.web.service.VciSecretServiceI;
import com.vci.ubcs.starter.web.util.BeanUtilForVCI;
import com.vci.ubcs.starter.web.util.VciBaseUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function;
import java.util.stream.Collectors;
@Component
public class RevisionModelUtil implements VciSecretServiceI {
    private Logger logger = LoggerFactory.getLogger(this.getClass());
    public static volatile Map<String, Map<String, String>> modelColumnAnnotationMap = new ConcurrentHashMap();
//    public static volatile Map<String, VciBtmType> modelAnnotationMap = new ConcurrentHashMap();
    public static boolean CHECK_IDEMPOTENCE = false;
    public void copyFromDTOIgnore(Object dto, BaseModel baseModel) {
        VciBaseUtil.alertNotNull(new Object[]{dto, "数据传输对象", baseModel, "数据库中的数据对象"});
        BaseModel tempModel = new BaseModel();
        BeanUtilForVCI.copyPropertiesIgnoreCase(baseModel, tempModel);
        BeanUtilForVCI.copyPropertiesIgnoreCase(dto, baseModel);
        BeanUtilForVCI.copyPropertiesIgnoreCase(tempModel, baseModel);
        baseModel.setId(VciBaseUtil.getStringValueFromObject(VciBaseUtil.getValueFromField("id", dto)));
        baseModel.setName(VciBaseUtil.getStringValueFromObject(VciBaseUtil.getValueFromField("name", dto)));
        baseModel.setDescription(VciBaseUtil.getStringValueFromObject(VciBaseUtil.getValueFromField("description", dto)));
        tempModel = null;
    }
    public <T, R> List<Tree> doList2Trees(List<T> doList, TreeWrapperOptions wrapperOptions, Function<T, R> f) {
        if (CollectionUtils.isEmpty(doList)) {
            return new ArrayList();
        } else {
            List<Tree> allTree = new ArrayList();
            List<Tree> children = new ArrayList();
            Iterator var6 = doList.iterator();
            while(true) {
                while(var6.hasNext()) {
                    T doObject = (T) var6.next();
                    Tree tree = new Tree();
                    List<String> oidFieldNames = VciBaseUtil.str2List(wrapperOptions.getOidFieldName());
                    List<String> oidValues = new LinkedList();
                    oidFieldNames.stream().forEach((s) -> {
                        oidValues.add(VciBaseUtil.getStringValueFromObject(VciBaseUtil.getValueFromField(s, doObject)));
                    });
                    tree.setOid((String)oidValues.stream().collect(Collectors.joining(wrapperOptions.getOidValueSep())));
                    if (f != null) {
                        tree.setText((String)f.apply(doObject));
                    } else {
                        List<String> textFieldNames = VciBaseUtil.str2List(wrapperOptions.getTextFieldName());
                        List<String> textValues = new LinkedList();
                        textFieldNames.stream().forEach((s) -> {
                            textValues.add(VciBaseUtil.getStringValueFromObject(VciBaseUtil.getValueFromField(s, doObject)));
                        });
                        tree.setText((String)textValues.stream().collect(Collectors.joining(wrapperOptions.getTextValueSep())));
                    }
                    if (StringUtils.isNotBlank(wrapperOptions.getParentFieldName())) {
                        tree.setParentId(VciBaseUtil.getStringValueFromObject(VciBaseUtil.getValueFromField(wrapperOptions.getParentFieldName(), doObject)));
                    }
                    if (wrapperOptions.isAllAttributes()) {
                        try {
                            tree.setAttributes(VciBaseUtil.objectToMapString(doObject));
                        } catch (Exception var13) {
                            if (this.logger.isErrorEnabled()) {
                                this.logger.error("把对象转换为map时出现了错误,但是不影响树的展示,对业务可能有影响");
                            }
                        }
                    }
                    if (wrapperOptions.isMultipleSelect() || wrapperOptions.isShowCheckBox()) {
                        tree.setShowCheckbox(true);
                    }
                    if (wrapperOptions.getParentOid() == null) {
                        wrapperOptions.setParentOid("");
                    }
                    if (!StringUtils.isBlank(tree.getParentId()) && (!StringUtils.isNotBlank(wrapperOptions.getParentOid()) || !wrapperOptions.getParentOid().equalsIgnoreCase(tree.getParentId()))) {
                        children.add(tree);
                    } else {
                        allTree.add(tree);
                    }
                }
                (new Tree()).findChild(allTree, children);
                if (allTree.size() <= 0) {
                    allTree.addAll(children);
                }
                return allTree;
            }
        }
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/service/VciRevisionServiceI.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,36 @@
package com.vci.ubcs.starter.revision.service;
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
//package com.vci.starter.revision.service;
import com.vci.ubcs.starter.revision.model.ReleasedObjDO;
import com.vci.ubcs.starter.revision.model.RevisionInfo;
public interface VciRevisionServiceI {
    RevisionInfo selectLastRevision(String var1, String var2);
    RevisionInfo selectLastVersion(String var1, String var2, String var3);
    RevisionInfo selectRelease(String var1, String var2, String var3);
    int saveReleased(ReleasedObjDO var1);
    int resetLastRevision(String var1, String var2);
    int resetOldRevision(String var1, String var2);
    RevisionInfo selectByOid(String var1, String var2);
    int resetLastVersion(String var1, String var2, String var3);
    int resetOldVersion(String var1, String var2);
    int countByProperties(String var1, Object var2, String var3);
    int countByPropertiesNotIncludeSelf(String var1, Object var2, String var3, String var4);
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/LocalFileUtil.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,318 @@
package com.vci.ubcs.starter.util;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.channels.FileChannel;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.UUID;
import com.vci.ubcs.starter.exception.VciBaseException;
import com.vci.ubcs.starter.web.util.VciBaseUtil;
import org.apache.commons.io.IOUtils;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.boot.system.ApplicationHome;
public class LocalFileUtil {
    public static Class mainClass = null;
    public LocalFileUtil() {
    }
    public static void deleteFile(File file) {
        if (file != null && file.exists()) {
            if (file.isDirectory()) {
                File[] files = file.listFiles();
                for(int i = 0; i < files.length; ++i) {
                    deleteFile(files[i]);
                }
            }
            file.delete();
        }
    }
    public static void copyFile(File source, File target) {
        FileInputStream is = null;
        FileOutputStream os = null;
        try {
            is = new FileInputStream(source);
            os = new FileOutputStream(target);
            FileChannel sourceChannel = is.getChannel();
            FileChannel targetChannel = os.getChannel();
            int i = 0;
            for(int length = 2097152; sourceChannel.position() != sourceChannel.size(); ++i) {
                if (sourceChannel.size() - sourceChannel.position() < 20971520L) {
                    length = (int)(sourceChannel.size() - sourceChannel.position());
                } else {
                    length = 20971520;
                }
                sourceChannel.transferTo(sourceChannel.position(), (long)length, targetChannel);
                sourceChannel.position(sourceChannel.position() + (long)length);
            }
            sourceChannel.close();
            targetChannel.close();
        } catch (Throwable var11) {
            throw new VciBaseException("拷贝文件出错", new String[0], var11);
        } finally {
            IOUtils.closeQuietly(is);
            IOUtils.closeQuietly(os);
        }
    }
    public static String getDefaultTempFolder()  {
        String path = getProjectFolder();
        path = path + File.separator + "tempFolder" + File.separator + UUID.randomUUID().toString();
        File folder = new File(path);
        if (!folder.exists()) {
            folder.mkdirs();
        }
        return path;
    }
    public static String getProjectFolder()  {
        return getProjectFolder(LocalFileUtil.class);
    }
    public static String getProjectFolder(Class classObj) {
        String path = "";
        try {
            ApplicationHome h = new ApplicationHome(classObj == null ? (mainClass == null ? LocalFileUtil.class : mainClass) : classObj);
            File jarF = h.getSource();
            if (jarF == null) {
                jarF = h.getDir();
            }
            path = jarF.getParentFile().toString();
            if (path.contains("!")) {
                path = (new File(path)).getParentFile().getParent();
            }
        } catch (Throwable var4) {
            var4.printStackTrace();
            throw new VciBaseException("获取当前服务所在的文件夹出现了错误", new String[0], var4);
        }
        if (path.startsWith("file:\\")) {
            path = path.substring(6);
        }
        if (System.getProperty("os.name").toLowerCase().startsWith("win") && path.startsWith("/")) {
            path = path.substring(path.indexOf("/") + 1);
        }
        System.out.println("项目的路径是:" + path);
        return path;
    }
    public static void deleteTempFile(File tempFile, boolean deleteRandomFolder) {
        if (tempFile != null) {
            tempFile.delete();
            if (deleteRandomFolder) {
                tempFile.getParentFile().delete();
            }
        }
    }
    public static void alertNotNull(Object... s)  {
        if (s != null && s.length > 0) {
            for(int i = 0; i < s.length; ++i) {
                Object obj = s[i];
                if (obj == null || StringUtil.isBlank(obj.toString())) {
                    String param = "";
                    try {
                        ++i;
                        param = s[i].toString();
                    } catch (Exception var5) {
                    }
                    throw new VciBaseException("参数[" + param + "]不能为空");
                }
            }
        }
    }
    public static String getFileExtension(File file) {
        return file != null ? getFileExtensionByName(file.getName()) : "";
    }
    public static String getFileExtensionByName(String name) {
        return StringUtil.isNotBlank(name) && name.contains(".") ? name.substring(name.lastIndexOf(".") + 1) : "";
    }
    public static String getFileNameForIE(String name) {
        if (StringUtil.isBlank(name)) {
            return name;
        } else if (name.contains(File.separator)) {
            return name.substring(name.lastIndexOf(File.separator) + 1);
        } else {
            return name.contains("\\") ? name.substring(name.lastIndexOf("\\") + 1) : name;
        }
    }
    public static String readContentForFileInJar(String fileName)  {
        if (StringUtil.isBlank(fileName)) {
            throw new VciBaseException("文件名为空");
        } else {
            if (!fileName.startsWith("/")) {
                fileName = "/" + fileName;
            }
            InputStream in = null;
            ByteArrayOutputStream os = null;
            String var3;
            try {
                in = LocalFileUtil.class.getResourceAsStream(fileName);
                if (in == null) {
                    in = Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName);
                }
                os = new ByteArrayOutputStream();
                IOUtils.copy(in, os);
                var3 = new String(os.toByteArray(), "UTF-8");
            } catch (Throwable var7) {
                throw new VciBaseException("读取文件的内容出现了错误", new String[0], var7);
            } finally {
                IOUtils.closeQuietly(in);
                IOUtils.closeQuietly(os);
            }
            return var3;
        }
    }
    public static String readContentForFile(String fileName)  {
        File file = new File(fileName);
        if (!file.exists()) {
            throw new VciBaseException("文件未找到,{0}", new String[]{fileName});
        } else {
            InputStream in = null;
            ByteArrayOutputStream os = null;
            String var4;
            try {
                in = new FileInputStream(file);
                os = new ByteArrayOutputStream();
                IOUtils.copy(in, os);
                var4 = new String(os.toByteArray(), "UTF-8");
            } catch (Throwable var8) {
                throw new VciBaseException("读取文件的内容出现了错误", new String[0], var8);
            } finally {
                IOUtils.closeQuietly(in);
                IOUtils.closeQuietly(os);
            }
            return var4;
        }
    }
    public static void writeContentToFile(String content, String fileName)  {
        File file = new File(fileName);
        if (!file.exists()) {
            File parentFile = file.getParentFile();
            if (!parentFile.exists()) {
                parentFile.mkdirs();
            }
            try {
                file.createNewFile();
            } catch (IOException var11) {
                throw new VciBaseException("写入文件的内容时候出现了创建文件失败的问题,{}", new String[]{fileName}, var11);
            }
        }
        if (content == null) {
            content = "";
        }
        OutputStream os = null;
        try {
            os = new FileOutputStream(file);
            os.write(content.getBytes(StandardCharsets.UTF_8));
            os.flush();
        } catch (Throwable var9) {
            throw new VciBaseException("写入文件的内容时候出现了创错误,{}", new String[]{fileName}, var9);
        } finally {
            IOUtils.closeQuietly(os);
        }
    }
    public static void copyFileInJar(String fileInJar, String target)  {
        VciBaseUtil.alertNotNull(new Object[]{fileInJar, "源文件", target, "目标文件"});
        File targetFile = new File(target);
        File folder = targetFile.getParentFile();
        if (!folder.exists()) {
            folder.mkdirs();
        }
        if (!targetFile.exists()) {
            try {
                targetFile.createNewFile();
            } catch (IOException var11) {
                throw new VciBaseException("创建目标文件的出现了错误", new String[0], var11);
            }
        }
        if (!fileInJar.startsWith("/")) {
            fileInJar = "/" + fileInJar;
        }
        InputStream in = null;
        FileOutputStream os = null;
        try {
            in = LocalFileUtil.class.getResourceAsStream(fileInJar);
            if (in == null) {
                in = Thread.currentThread().getContextClassLoader().getResourceAsStream(fileInJar);
            }
            os = new FileOutputStream(target);
            IOUtils.copy(in, os);
        } catch (Throwable var12) {
            throw new VciBaseException("拷贝文件的内容出现了错误.{0},{1}", new String[]{fileInJar, target}, var12);
        } finally {
            IOUtils.closeQuietly(in);
            IOUtils.closeQuietly(os);
        }
    }
    public static List<String> fileToPatch(Collection<File> fileList) {
        VciBaseUtil.alertNotNull(new Object[]{"文件列表", fileList});
        List<String> filePath = new ArrayList();
        Iterator var2 = fileList.iterator();
        while(var2.hasNext()) {
            File file = (File)var2.next();
            if (!file.exists()) {
                throw new VciBaseException(file.getAbsolutePath() + "文件没有找到" + new String[0]);
            }
            filePath.add(file.getAbsolutePath());
        }
        return filePath;
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/MybatisParameterUtils.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,72 @@
package com.vci.ubcs.starter.util;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
import com.vci.ubcs.starter.exception.VciBaseException;
import org.springframework.util.ObjectUtils;
import java.util.ArrayList;
import java.util.List;
/**
 * in å‚数截取,返回wrapper
 *
 * @author ludc
 * @date 2023/5/5
 */
public class MybatisParameterUtils {
    public static <T, F> LambdaQueryWrapper<T> cutInParameter(LambdaQueryWrapper<T> wrapper, SFunction<T, ?> column, List<F> coll) throws VciBaseException {
        List<List<F>> newList = splitList(coll, 900);
        if (ObjectUtils.isEmpty(newList)) {
            throw new VciBaseException("参数错误");
        } else if (newList.size() == 1) {
            wrapper.in(column, newList.get(0));
            return wrapper;
        }
        wrapper.and(i -> {
            i.in(column, newList.get(0));
            newList.remove(0);
            for (List<F> objects : newList) {
                i.or().in(column, objects);
            }
        });
        return wrapper;
    }
    public static <T, F> LambdaQueryWrapper<T> cutNotInParameter(LambdaQueryWrapper<T> wrapper, SFunction<T, ?> column, List<F> coll) throws VciBaseException {
        List<List<F>> newList = splitList(coll, 900);
        if (ObjectUtils.isEmpty(newList)) {
            throw new VciBaseException("参数错误");
        } else if (newList.size() == 1) {
            wrapper.notIn(column, newList.get(0));
            return wrapper;
        }
        wrapper.and(i -> {
            i.in(column, newList.get(0));
            newList.remove(0);
            for (List<F> objects : newList) {
                i.or().notIn(column, objects);
            }
        });
        return wrapper;
    }
    public static <F> List<List<F>> splitList(List<F> list, int groupSize) {
        int length = list.size();
        // è®¡ç®—可以分成多少组
        int num = (length + groupSize - 1) / groupSize;
        List<List<F>> newList = new ArrayList<>(num);
        for (int i = 0; i < num; i++) {
            // å¼€å§‹ä½ç½®
            int fromIndex = i * groupSize;
            // ç»“束位置
            int toIndex = Math.min((i + 1) * groupSize, length);
            newList.add(list.subList(fromIndex, toIndex));
        }
        return newList;
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/VciSpringUtil.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,42 @@
package com.vci.ubcs.starter.util;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
/**
 * Description:
 *
 * @author LiHang
 * @date 2023/4/26
 */
@Component
public class VciSpringUtil implements ApplicationContextAware {
    private static ApplicationContext applicationContext;
    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        if (VciSpringUtil.applicationContext == null){
            VciSpringUtil.applicationContext = applicationContext;
        }
    }
    public static ApplicationContext getApplicationContext(){
        return applicationContext;
    }
    public static Object getBean(String name){
        return getApplicationContext().getBean(name);
    }
    public static <T> T getBean(Class<T> clazz){
        return getApplicationContext().getBean(clazz);
    }
    public static <T> T getBean(String name,Class<T> clazz){
        return getApplicationContext().getBean(name,clazz);
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/annotation/VciFieldType.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
package com.vci.ubcs.starter.web.annotation;
import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface VciFieldType {
    VciFieldTypeEnum value() default VciFieldTypeEnum.VTString;
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/annotation/VciUseEnum.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package com.vci.ubcs.starter.web.annotation;
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface VciUseEnum {
    String value();
    String defaultValue() default "";
    String showTextField();
    boolean multiple() default false;
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/constant/EnumIdConstant.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,60 @@
package com.vci.ubcs.starter.web.constant;
/**
 * æžšä¸¾çš„业务类型
 * @author weidy
 * @dat2 2021-2-15
 */
public class EnumIdConstant {
    /**
     * ç”¨æˆ·æžšä¸¾
     */
    public static final String USERSECRET_ENUMNAME = "usersecurityenum";
    /**
     * æ•°æ®æžšä¸¾
     */
    public static final String DATASECRET_ENUMNAME="Enumsecretgrade";
    /**
     * IP密级
     */
    public static final String IPSECRET_ENUMNAME = "ipsecurityenum";
    /**
     * ip枚举的业务类型
     */
    public static final String IPSECRET_BTMNAME = "ipsecurity";
    /**
     * ç”Ÿå‘½å‘¨æœŸä½œä¸ºæžšä¸¾çš„后缀
     */
    public static final String LC_STATUS_SUBFIX = "${lcstatus}";
    /**
     * ä»£ç ç”Ÿæˆçš„UI面板类型
     */
    public static final String OS_CODE_GEN_PANEL_TYPE = "codeGenPanelType" ;
    /**
     * ç¼–码生成方式
     */
    public static final String CODE_PRODUCT_TYPE = "codeProductType";
    /**
     * ç¼–码的元素类型
     */
    public static final String CODE_ELEMENT_TYPE = "codeElementType";
    /**
     * ç¼–码补位方式
     */
    public static final String CODE_FILL_TYPE = "codeFillType";
    /**
     * ç¼–码的时间取值类型
     */
    public static final String CODE_DATE_VALUE_TYPE = "codeDateValueType";
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/constant/MdmEnumIdConstant.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,79 @@
package com.vci.ubcs.starter.web.constant;
/**
 * ä¸»æ•°æ®çš„æžšä¸¾åç§°
 */
public class MdmEnumIdConstant {
    /**
     * æŒ‰é’®çš„使用位置
     */
    public static final String CODE_BUTTON_POSITION = "codeButtonPosition" ;
    /**
     * ç æ®µé•¿åº¦ç±»åž‹
     */
    public static final String CODE_SEC_LENGTH = "codeSecLength";
    /**
     * æ—¥æœŸæ ¼å¼
     */
    public static final String CODE_DATA_FORMAT = "codeDateFormatEnum";
    /**
     * å±‚级码段的层级类型
     */
    public static final String CODE_LEVEL_TYPE = "codeLevelType";
    /**
     * å­—符截取类型
     */
    public static final String CODE_CUT_TYPE = "codeCutType";
    /**
     * ç¼–码取值类型
     */
    public static final String CODE_GET_VALUE_TYPE = "codeGetValueType";
    /**
     * ä¸»é¢˜åº“分类的流程用途
     */
    public static final String CODE_CLASSIFY_PROCESS_USE = "codeClassifyProcessUse";
    /**
     * ç¼–码映射规则类型
     */
    public static final String CODE_MAP_RULE_TYPE = "codeMapRuleType";
    /**
     * ç æ®µç±»åž‹
     */
    public static final String CODE_SEC_TYPE = "codeSecType";
    /**
     * æŒ‰é’®çš„用途
     */
    public static final String CODE_TEMPLATE_BUTTON_USE = "codeTemplateButtonUse";
    /**
     * ç³»ç»Ÿé›†æˆæŽ¥å£ç±»åž‹
     */
    public static final String SYS_INTEGRATION_REQUEST_TYPE = "sysIntegrationRequestType";
    /**
     * ç³»ç»Ÿé›†æˆæŽ¥å£è¯·æ±‚方式类型
     */
    public static final String SYS_INTEGRATION_REQUEST_METHOD_TYPE = "sysIntegrationRequestMethodType";
    /**
     * ç³»ç»Ÿé›†æˆæŽ¥å£è¯·æ±‚方式类型
     */
    public static final String SYS_INTEGRATION_PARAM_AND_RETURN_TYPE = "sysIntegrationParamAndReturnType";
    /**
     * ç³»ç»Ÿé›†æˆéªŒè¯æ–¹å¼
     */
    public static final String SYS_INTEGRATION_AUTHORITY_TYPE = "sysIntegrationAuthorityType";
    /**
     * æ•°æ®æµå‘方式
     */
    public static final String SYS_INTEGRATION_DATA_FLOW_TYPE = "sysIntegrationDataFlowType";
    /***
     * ç³»ç»ŸæŽ¥å£æŽ¨é€æ–¹å¼
     */
    public static  final  String SYS_INTEGRATION_PUSH_TYPE="sysIntegrationPushType";
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/constant/OmdRegExpConstant.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
package com.vci.ubcs.starter.web.constant;
/**
 * Description:
 *
 * @author LiHang
 * @date 2023/4/23
 */
public class OmdRegExpConstant {
    public static final String INCLUDE_CHINESE = "[Α-ï¿¥]";
    public static final String NUMBER = "^[0-9]*$";
    public static final String INT = "/^-?[1-9]+[0-9]*$/";
    public static final String LONG = "/^-?[1-9]+[0-9]*$/";
    public static final String DOUBLE = "[0-9]*(\\.[0-9]*|[eE][+-][0-9]*)$";
    public static final String LETTER = "^[A-Za-z]+$";
    public static final String LETTER_AND_NUMBER = "^[A-Za-z0-9]+$";
    public static final String UP_LETTER = "^[A-Z]+$";
    public static final String LOW_LETTER = "^[a-z]+$";
    public static final String SPECIAL_CHARACTER = "^[` ~!@#$%^&*()_\\-+=<>?:\"{}|,.\\/;'\\[\\]·~!@#ï¿¥%……&*()——\\-+={}|《》?:“”【】、;‘’,。、]+$";
    public static final String HAS_LETTER = ".*[a-z][A-Z]{1,}.*";
    public static final String HAS_UP_LETTER = ".*[A-Z]{1,}.*";
    public static final String HAS_LOW_LETTER = ".*[a-z]{1,}.*";
    public static final String HAS_NUMBER = ".*[0-9]{1,}.*";
    public static final String HAS_SPECIAL_CHARACTER = ".*[` ~!@#$%^&*()_\\-+=<>?:\"{}|,.\\/;'\\[\\]·~!@#ï¿¥%……&*()——\\-+={}|《》?:“”【】、;‘’,。、]{1,}.*";
    private OmdRegExpConstant() {
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/constant/QueryOptionConstant.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
package com.vci.ubcs.starter.web.constant;
public class QueryOptionConstant {
    public static final String IN = "\\IN";
    public static final String NOTIN = "\\NOTIN";
    public static final String NOTEQUAL = "!=";
    public static final String MORE = ">";
    public static final String MORETHAN = ">=";
    public static final String LESS = "<";
    public static final String LESSTHAN = "<=";
    public static final String OR = "\\OR";
    public static final String ISNULL = "=null";
    public static final String ISNOTNULL = "!=null";
    public static final String EQUAL = "=";
    public static final String AND = "and";
    public static final String NO_OR_AND = "${no_or_and}";
    public QueryOptionConstant() {
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/enumpck/BaseEnum.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
package com.vci.ubcs.starter.web.enumpck;
public interface BaseEnum {
    String getValue();
    String getText();
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/enumpck/BaseEnumInt.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
package com.vci.ubcs.starter.web.enumpck;
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
//package com.vci.starter.web.enumpck;
public interface BaseEnumInt {
    int getValue();
    String getText();
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/enumpck/BooleanEnum.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
package com.vci.ubcs.starter.web.enumpck;
/**
 * Description:
 *
 * @author LiHang
 * @date 2023/4/27
 */
public enum BooleanEnum {
    /**
     * true
     */
    TRUE("true"),
    /**
     * false
     */
    FASLE("false");
    private final String value;
    private BooleanEnum(String value) {
        this.value = value;
    }
    public String getValue() {
        return this.value;
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/enumpck/OsCodeFillTypeEnum.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,133 @@
package com.vci.ubcs.starter.web.enumpck;
//package com.vci.web.enumpck;
/**
 * ç¼–码的补位方式
 * @author weidy
 * @date 2020/3/28
 */
//@VciEnum(name = EnumIdConstant.CODE_FILL_TYPE,text = "编码补位方式",description = "不补位,,右补位")
public enum OsCodeFillTypeEnum implements BaseEnum {
    /**
     * ä¸è¡¥ä½
     */
    NONE("code_fill_none","不补位"),
    /**
     * å·¦è¡¥ä½
     */
    LEFT("code_fill_left","左补位"),
    /**
     * å³è¡¥ä½
     */
    RIGHT("code_fill_right","右补位");
    /**
     * æžšä¸¾çš„值
     */
    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 OsCodeFillTypeEnum(String value, String text) {
        this.value = value;
        this.text = text;
    }
    /**
     * æ ¹æ®åç§°èŽ·å–å¯¹åº”çš„æžšä¸¾å€¼
     *
     * @param text åç§°
     * @return æžšä¸¾å€¼
     */
    public static String getValueByText(String text) {
        for (OsCodeFillTypeEnum wenum : OsCodeFillTypeEnum.values()) {
            if (wenum.getText().equalsIgnoreCase(text)) {
                return wenum.getValue();
            }
        }
        return "";
    }
    /**
     * æ ¹æ®æžšä¸¾å€¼èŽ·å–åç§°
     *
     * @param value æžšä¸¾å€¼
     * @return åç§°
     */
    public static String getTextByValue(String value) {
        for (OsCodeFillTypeEnum wenum : OsCodeFillTypeEnum.values()) {
            if (wenum.getValue().equalsIgnoreCase(value)) {
                return wenum.getText();
            }
        }
        return "";
    }
    /**
     * æ ¹æ®æžšä¸¾å€¼èŽ·å–æžšä¸¾å¯¹è±¡
     *
     * @param value æžšä¸¾å€¼
     * @return æžšä¸¾å¯¹è±¡ï¼Œä¸å­˜åœ¨æ—¶å€™è¿”回null
     */
    public static OsCodeFillTypeEnum forValue(String value) {
        for (OsCodeFillTypeEnum wenum : OsCodeFillTypeEnum.values()) {
            if (wenum.getValue().equalsIgnoreCase(value)) {
                return wenum;
            }
        }
        return null;
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/enumpck/UserSecretEnum.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,91 @@
package com.vci.ubcs.starter.web.enumpck;
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
//package com.vci.starter.web.enumpck;
//import com.vci.starter.web.annotation.VciEnum;
import com.vci.ubcs.starter.annotation.VciEnum;
@VciEnum(
    name = "usersecurityenum",
    text = "人员密级",
    description = "用户,人员的密级"
)
public enum UserSecretEnum implements BaseEnumInt {
    NONE(10, "内部"),
    SECRET(20, "一般"),
    PRIVACY(30, "重要");
    private int value;
    private String text;
    @Override
    public int getValue() {
        return this.value;
    }
    public void setValue(int value) {
        this.value = value;
    }
    @Override
    public String getText() {
        return this.text;
    }
    public void setText(String text) {
        this.text = text;
    }
    private UserSecretEnum(int secret, String secretText) {
        this.value = secret;
        this.text = secretText;
    }
    public static String getSecretText(int secret) {
        UserSecretEnum[] var1 = values();
        int var2 = var1.length;
        for(int var3 = 0; var3 < var2; ++var3) {
            UserSecretEnum eu = var1[var3];
            if (eu.value == secret) {
                return eu.text;
            }
        }
        return NONE.text;
    }
    public static boolean isValid(int secret) {
        UserSecretEnum[] var1 = values();
        int var2 = var1.length;
        for(int var3 = 0; var3 < var2; ++var3) {
            UserSecretEnum eu = var1[var3];
            if (eu.value == secret) {
                return true;
            }
        }
        return false;
    }
    public static int getSecretValueByText(String text) {
        UserSecretEnum[] var1 = values();
        int var2 = var1.length;
        for(int var3 = 0; var3 < var2; ++var3) {
            UserSecretEnum eu = var1[var3];
            if (eu.text.equalsIgnoreCase(text)) {
                return eu.value;
            }
        }
        return NONE.value;
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/enumpck/VciFieldTypeEnum.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,95 @@
package com.vci.ubcs.starter.web.enumpck;
import com.vci.ubcs.starter.annotation.VciEnum;
@VciEnum(
    name = "VciFieldType",
    text = "属性类型"
)
public enum VciFieldTypeEnum {
    VTString,
    VTInteger,
    VTLong,
    VTDouble,
    VTBoolean,
    VTDate,
    VTDateTime,
    VTTime,
    VTFilePath,
    VTClob;
    private VciFieldTypeEnum() {
    }
    public static String getValueByText(String text) {
        if (text != null && text.trim().length() != 0) {
            if ("布尔型".equalsIgnoreCase(text)) {
                return VTBoolean.name();
            } else if ("长文本".equalsIgnoreCase(text)) {
                return VTClob.name();
            } else if ("日期".equalsIgnoreCase(text)) {
                return VTDate.name();
            } else if ("日期时间".equalsIgnoreCase(text)) {
                return VTDateTime.name();
            } else if ("时间".equalsIgnoreCase(text)) {
                return VTTime.name();
            } else if ("长整型".equalsIgnoreCase(text)) {
                return VTLong.name();
            } else if ("金额/双精度".equalsIgnoreCase(text)) {
                return VTDouble.name();
            } else if ("整形".equalsIgnoreCase(text)) {
                return VTInteger.name();
            } else {
                return "文件".equalsIgnoreCase(text) ? VTFilePath.name() : VTString.name();
            }
        } else {
            return "";
        }
    }
    public static String getTextByValue(String value) {
        VciFieldTypeEnum wenum = forValue(value);
        if (wenum == null) {
            return "";
        } else {
            switch (wenum) {
                case VTBoolean:
                    return "布尔型";
                case VTClob:
                    return "长文本";
                case VTDate:
                    return "日期";
                case VTDateTime:
                    return "日期时间";
                case VTTime:
                    return "时间";
                case VTLong:
                    return "长整型";
                case VTDouble:
                    return "金额/双精度";
                case VTInteger:
                    return "整形";
                case VTFilePath:
                    return "文件";
                default:
                    return "字符串";
            }
        }
    }
    public static VciFieldTypeEnum forValue(String value) {
        VciFieldTypeEnum[] var1 = values();
        int var2 = var1.length;
        for(int var3 = 0; var3 < var2; ++var3) {
            VciFieldTypeEnum wenum = var1[var3];
            if (wenum.name().equalsIgnoreCase(value)) {
                return wenum;
            }
        }
        return null;
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/pagemodel/BaseQueryObject.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,165 @@
package com.vci.ubcs.starter.web.pagemodel;
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
//package com.vci.starter.web.pagemodel;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
public class BaseQueryObject implements Serializable {
    @JSONField(
        serialize = false,
        deserialize = false
    )
    private static final long serialVersionUID = 5608634730007623041L;
    @JSONField
    private Map<String, String> conditionMap = new HashMap();
    @JSONField
    private int page = 1;
    @JSONField
    private String sort;
    @JSONField
    private String order;
    @JSONField
    private int limit = 25;
    public BaseQueryObject() {
    }
    public BaseQueryObject(Map<String, String> conditionMap) {
        this.setConditionMap(conditionMap);
    }
    public BaseQueryObject(int limit) {
        this.setLimit(limit);
    }
    public BaseQueryObject(Map<String, String> conditionMap, int limit) {
        this.setConditionMap(conditionMap);
        this.setLimit(limit);
    }
    public Map<String, String> getConditionMap() {
        return this.conditionMap;
    }
    public Map<String, String> getConditionMapByNick(String nick) {
        if (this.conditionMap != null) {
            Map<String, String> conditionMapHasNick = new HashMap();
            this.conditionMap.forEach((k, v) -> {
                if (!k.contains(".")) {
                    conditionMapHasNick.put(nick + "." + k, v);
                } else {
                    conditionMapHasNick.put(k, v);
                }
            });
            return conditionMapHasNick;
        } else {
            return null;
        }
    }
    public void setConditionMap(Map<String, String> conditionMap) {
        this.conditionMap = conditionMap;
    }
    public int getPage() {
        return this.page;
    }
    public void setPage(int page) {
        this.page = page;
    }
    public String getSort() {
        return this.sort;
    }
    public void setSort(String sort) {
        this.sort = sort;
    }
    public String getOrder() {
        return this.order;
    }
    public void setOrder(String order) {
        this.order = order;
    }
    public int getLimit() {
        return this.limit;
    }
    public void setLimit(int limit) {
        this.limit = limit;
    }
    @JSONField(
        serialize = false,
        deserialize = false
    )
    public PageHelper getPageHelper() {
        PageHelper pageHelper = new PageHelper(this.limit);
        pageHelper.setPage(this.getPage());
        pageHelper.setSort(this.getSort());
        pageHelper.setOrder(this.getOrder());
        return pageHelper;
    }
    public BaseQueryObject addSort(String sort, String order) {
        this.setSort(StringUtils.isBlank(this.getSort()) ? sort : this.getSort() + "," + sort);
        this.setOrder(StringUtils.isBlank(this.getOrder()) ? order : this.getOrder() + "," + order);
        return this;
    }
    public BaseQueryObject addCondition(String key, String value) {
        if (this.getConditionMap() == null) {
            this.conditionMap = new HashMap();
        }
        this.conditionMap.put(key, value);
        return this;
    }
    public BaseQueryObject page(PageHelper pageHelper) {
        this.setSort(pageHelper.getSort());
        this.setOrder(pageHelper.getOrder());
        this.setPage(pageHelper.getPage());
        this.setLimit(pageHelper.getLimit());
        return this;
    }
    @JSONField(
        serialize = false,
        deserialize = false
    )
    public Map<String, String> getFeignRequestMap() {
        Map<String, String> feignRequestMap = new HashMap();
        if (this.conditionMap != null) {
            this.getConditionMap().forEach((k, v) -> {
                feignRequestMap.put("conditionMap[\"" + k + "\"]", v);
            });
        }
        feignRequestMap.put("page", this.getPage() + "");
        feignRequestMap.put("limit", this.getLimit() + "");
        feignRequestMap.put("sort", this.getSort());
        feignRequestMap.put("order", this.getOrder());
        return feignRequestMap;
    }
    @Override
    public String toString() {
        return "BaseQueryObject{conditionMap=" + this.conditionMap + ", page=" + this.page + ", sort='" + this.sort + '\'' + ", order='" + this.order + '\'' + ", limit=" + this.limit + '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/pagemodel/DataGrid.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,112 @@
package com.vci.ubcs.starter.web.pagemodel;
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 DataGrid() {
    }
    public DataGrid(String msg) {
        this.msg = msg;
        this.code = 1;
    }
    public long getTotal() {
        return this.total;
    }
    public void setTotal(long total) {
        this.total = total;
    }
    public List<T> getData() {
        return this.data;
    }
    public void setData(List<T> data) {
        this.data = data;
    }
    public int getStart() {
        return this.start;
    }
    public void setStart(int start) {
        this.start = start;
    }
    public int getLimit() {
        return this.limit;
    }
    public void setLimit(int limit) {
        this.limit = limit;
    }
    public int getPage() {
        return this.page;
    }
    public void setPage(int page) {
        this.page = page;
    }
    public String getSort() {
        return this.sort;
    }
    public void setSort(String sort) {
        this.sort = sort;
    }
    public String getOrder() {
        return this.order;
    }
    public void setOrder(String order) {
        this.order = order;
    }
    public String getMsg() {
        return this.msg;
    }
    public void setMsg(String msg) {
        this.msg = msg;
    }
    public int getCode() {
        return this.code;
    }
    public void setCode(int code) {
        this.code = code;
    }
    public String getTraceId() {
        return this.traceId;
    }
    public void setTraceId(String traceId) {
        this.traceId = traceId;
    }
    public String toString() {
        return "DataGrid{total=" + this.total + ", data=" + this.data + ", start=" + this.start + ", limit=" + this.limit + ", page=" + this.page + ", sort='" + this.sort + '\'' + ", order='" + this.order + '\'' + ", msg='" + this.msg + '\'' + ", code=" + this.code + ", traceId='" + this.traceId + '\'' + '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/pagemodel/KeyValue.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,52 @@
package com.vci.ubcs.starter.web.pagemodel;
//package com.vci.starter.web.pagemodel;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
public class KeyValue implements Serializable {
    private static final long serialVersionUID = 7708882804529442626L;
    private String key;
    private String value;
    private Map<String, Object> attributes = new HashMap();
    public KeyValue() {
    }
    public String getKey() {
        return this.key;
    }
    public void setKey(String key) {
        this.key = key;
    }
    public String getValue() {
        return this.value;
    }
    public void setValue(String value) {
        this.value = value;
    }
    public Map<String, Object> getAttributes() {
        return this.attributes;
    }
    public void setAttributes(Map<String, Object> attributes) {
        this.attributes = attributes;
    }
    public void addAttr(String attr, Object attrValue) {
        this.attributes.put(attr, attrValue);
    }
    @Override
    public String toString() {
        return "KeyValue{key='" + this.key + '\'' + ", value='" + this.value + '\'' + ", attributes=" + this.attributes + '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/pagemodel/PageHelper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,239 @@
package com.vci.ubcs.starter.web.pagemodel;
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
//package com.vci.starter.web.pagemodel;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;
public class PageHelper implements Serializable {
    private static final long serialVersionUID = -588765760880887850L;
    private int page;
    private String sort;
    private String order;
    private int start = 0;
    private int limit = 25;
    private boolean queryTotal = true;
    private String ordersql;
    private String nick;
    public final String asc = "asc";
    public final String desc = "desc";
    private Set<String> unNickField = new HashSet();
    public PageHelper() {
    }
    public PageHelper(int limit) {
        this.limit = limit;
        this.page = 1;
    }
    public PageHelper(int limit, boolean queryTotal) {
        this.limit = limit;
        this.queryTotal = queryTotal;
    }
    public PageHelper(String sort) {
        this.sort = sort;
        this.limit = -1;
        this.order = "asc";
    }
    public PageHelper(String sort, String order) {
        this.sort = sort;
        this.limit = -1;
        this.order = order;
    }
    public PageHelper(int limit, String sort, String order) {
        this.limit = limit;
        this.sort = sort;
        this.order = order;
    }
    public PageHelper(int limit, int page, String sort, String order) {
        this.limit = limit;
        this.page = page;
        this.sort = sort;
        this.order = order;
    }
    public int getPage() {
        return this.page;
    }
    public void setPage(int page) {
        this.page = page;
        if (page > 0 && this.limit > 0) {
            this.start = (this.page - 1) * this.limit;
        }
    }
    public void setSort(String sort) {
        this.sort = sort;
    }
    public String getOrder() {
        return this.order;
    }
    public void setOrder(String order) {
        this.order = order;
    }
    public int getStart() {
        return this.limit <= 0 ? 0 : (this.page - 1) * this.limit + 1;
    }
    public boolean isQueryTotal() {
        return this.queryTotal;
    }
    public void setQueryTotal(boolean queryTotal) {
        this.queryTotal = queryTotal;
    }
    public int getLimit() {
        return this.limit;
    }
    public void setLimit(int limit) {
        this.limit = limit;
        if (this.page > 0 && this.limit > 0) {
            this.start = (this.page - 1) * this.limit + 1;
        }
    }
    public void addSort(String sort, String order) {
        this.setSort(StringUtils.isBlank(this.getSort()) ? sort : this.getSort() + "," + sort);
        this.setOrder(StringUtils.isBlank(this.getOrder()) ? order : this.getOrder() + "," + order);
    }
    public void addAsc(String field) {
        this.addSort(field, "asc");
    }
    public void addDefaultAsc(String field) {
        if (StringUtils.isBlank(this.getSort()) && StringUtils.isBlank(this.getOrder())) {
            this.addAsc(field);
        }
    }
    public void addDefaultDesc(String field) {
        if (StringUtils.isBlank(this.getSort()) && StringUtils.isBlank(this.getOrder())) {
            this.addDesc(field);
        }
    }
    public void addDesc(String field) {
        this.addSort(field, "desc");
    }
    public String getSort() {
        return this.sort;
    }
    public void setStart(int start) {
        this.start = start;
    }
    public String getOrdersql() {
        if ((this.ordersql == null || this.ordersql.trim().length() == 0) && this.sort != null && this.sort.trim().length() > 0 && this.order != null && this.order.trim().length() > 0) {
            if (this.sort.indexOf(",") > -1) {
                String[] sortArray = this.sort.split(",");
                String[] orderArray = this.order.split(",");
                StringBuilder sb = new StringBuilder();
                for(int i = 0; i < sortArray.length; ++i) {
                    if (StringUtils.isNotBlank(sortArray[i]) && orderArray.length > i && StringUtils.isNotBlank(orderArray[i])) {
                        if (sortArray[i].indexOf(".") < 0 && !this.unNickField.contains(sortArray[i].toLowerCase())) {
                            sb.append(StringUtils.isBlank(this.getNick()) ? "" : this.getNick() + ".");
                        }
                        sb.append(sortArray[i].toLowerCase());
                        sb.append(" ");
                        sb.append(orderArray[i]);
                        sb.append(",");
                    }
                }
                this.ordersql = " order by " + sb.toString();
                if (this.ordersql.endsWith(",")) {
                    this.ordersql = this.ordersql.substring(0, this.ordersql.length() - 1);
                }
            } else {
                this.ordersql = " order by " + this.sort + " " + this.order;
            }
        }
        return this.ordersql;
    }
    public String getOrderSql(String nick) {
        if ((this.ordersql == null || this.ordersql.trim().length() == 0) && this.sort != null && this.sort.trim().length() > 0 && this.order != null && this.order.trim().length() > 0) {
            if (this.sort.indexOf(",") > -1) {
                String[] sortArray = this.sort.split(",");
                String[] orderArray = this.order.split(",");
                StringBuilder sb = new StringBuilder();
                for(int i = 0; i < sortArray.length; ++i) {
                    if (StringUtils.isNotBlank(sortArray[i]) && orderArray.length > i && StringUtils.isNotBlank(orderArray[i])) {
                        if (sortArray[i].indexOf(".") < 0) {
                            sb.append(StringUtils.isBlank(nick) ? "" : nick + ".");
                        }
                        sb.append(sortArray[i].toLowerCase());
                        sb.append(" ");
                        sb.append(orderArray[i]);
                        sb.append(",");
                    }
                }
                this.ordersql = " order by " + sb.toString();
                if (this.ordersql.endsWith(",")) {
                    this.ordersql = this.ordersql.substring(0, this.ordersql.length() - 1);
                }
            } else {
                this.ordersql = " order by " + nick + "." + this.sort + " " + this.order;
            }
        }
        return this.ordersql;
    }
    public String getNick() {
        return this.nick;
    }
    public void setNick(String nick) {
        this.nick = nick;
    }
    public void setOrdersql(String ordersql) {
        this.ordersql = ordersql;
    }
    @Override
    public String toString() {
        return "PageHelper{page=" + this.page + ", sort='" + this.sort + '\'' + ", order='" + this.order + '\'' + ", start=" + this.start + ", limit=" + this.limit + ", queryTotal=" + this.queryTotal + ", ordersql='" + this.ordersql + '\'' + ", nick='" + this.nick + '\'' + ", asc='" + "asc" + '\'' + ", desc='" + "desc" + '\'' + ", unNickField=" + this.unNickField + '}';
    }
    public Set<String> getUnNickField() {
        return this.unNickField;
    }
    public void setUnNickField(Set<String> unNickField) {
        this.unNickField = unNickField;
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/pagemodel/SessionInfo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,421 @@
package com.vci.ubcs.starter.web.pagemodel;
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
//package com.vci.starter.web.pagemodel;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class SessionInfo implements Serializable {
    private static final long serialVersionUID = 7950268190988911233L;
    private String orgsOid;
    private String orgsName;
    private String deptOid;
    private String deptName;
    private String userOid;
    private String userId;
    private String userName;
    private String personOid;
    private String personId;
    private String personName;
    private String dutyOid;
    private String dutyName;
    private String workgroupOid;
    private String workgroupName;
    private String workTypeOid;
    private String workTypeName;
    private String usertype;
    private String usertypeText;
    private String sex;
    private String sexText;
    private Map<String, String> rolesName;
    private List<String> functionOids;
    private String photoUrl;
    private String ip;
    private String language;
    private String userSecret;
    private String userSecretText;
    private String ipSecret;
    private String ipSecretText;
    private String machine;
    private String os;
    private String browser;
    private String osUser;
    private List<String> deviceInfo = new ArrayList();
    private String email;
    private String phoneNo;
    private String rtxNo;
    private String portalId;
    private String IMId;
    private boolean sso;
    private String ssoServiceName;
    private String token;
    private Map<String, String> globalAttributeMap = new HashMap();
    private String workNo;
    public SessionInfo() {
    }
    public String getDutyOid() {
        return this.dutyOid;
    }
    public void setDutyOid(String dutyOid) {
        this.dutyOid = dutyOid;
    }
    public String getDutyName() {
        return this.dutyName;
    }
    public void setDutyName(String dutyName) {
        this.dutyName = dutyName;
    }
    public String getOrgsOid() {
        return this.orgsOid;
    }
    public void setOrgsOid(String orgsOid) {
        this.orgsOid = orgsOid;
    }
    public String getOrgsName() {
        return this.orgsName;
    }
    public void setOrgsName(String orgsName) {
        this.orgsName = orgsName;
    }
    public String getDeptOid() {
        return this.deptOid;
    }
    public void setDeptOid(String deptOid) {
        this.deptOid = deptOid;
    }
    public String getDeptName() {
        return this.deptName;
    }
    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }
    public String getUserOid() {
        return this.userOid;
    }
    public void setUserOid(String userOid) {
        this.userOid = userOid;
    }
    public String getUserId() {
        return this.userId;
    }
    public void setUserId(String userId) {
        this.userId = userId;
    }
    public String getUserName() {
        return this.userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getPersonOid() {
        return this.personOid;
    }
    public void setPersonOid(String personOid) {
        this.personOid = personOid;
    }
    public String getPersonName() {
        return this.personName;
    }
    public void setPersonName(String personName) {
        this.personName = personName;
    }
    public String getWorkgroupOid() {
        return this.workgroupOid;
    }
    public void setWorkgroupOid(String workgroupOid) {
        this.workgroupOid = workgroupOid;
    }
    public String getWorkgroupName() {
        return this.workgroupName;
    }
    public void setWorkgroupName(String workgroupName) {
        this.workgroupName = workgroupName;
    }
    public String getUsertype() {
        return this.usertype;
    }
    public void setUsertype(String usertype) {
        this.usertype = usertype;
    }
    public String getUsertypeText() {
        return this.usertypeText;
    }
    public void setUsertypeText(String usertypeText) {
        this.usertypeText = usertypeText;
    }
    public String getSex() {
        return this.sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public List<String> getFunctionOids() {
        return this.functionOids;
    }
    public void setFunctionOids(List<String> functionOids) {
        this.functionOids = functionOids;
    }
    public String getPhotoUrl() {
        return this.photoUrl;
    }
    public void setPhotoUrl(String photoUrl) {
        this.photoUrl = photoUrl;
    }
    public String getIp() {
        return this.ip;
    }
    public void setIp(String ip) {
        this.ip = ip;
    }
    public String getLanguage() {
        return this.language;
    }
    public void setLanguage(String language) {
        this.language = language;
    }
    public String getUserSecret() {
        return this.userSecret;
    }
    public void setUserSecret(String userSecret) {
        this.userSecret = userSecret;
    }
    public String getUserSecretText() {
        return this.userSecretText;
    }
    public void setUserSecretText(String userSecretText) {
        this.userSecretText = userSecretText;
    }
    public String getIpSecret() {
        return this.ipSecret;
    }
    public void setIpSecret(String ipSecret) {
        this.ipSecret = ipSecret;
    }
    public String getIpSecretText() {
        return this.ipSecretText;
    }
    public void setIpSecretText(String ipSecretText) {
        this.ipSecretText = ipSecretText;
    }
    public String getMachine() {
        return this.machine;
    }
    public void setMachine(String machine) {
        this.machine = machine;
    }
    public String getOs() {
        return this.os;
    }
    public void setOs(String os) {
        this.os = os;
    }
    public String getBrowser() {
        return this.browser;
    }
    public void setBrowser(String browser) {
        this.browser = browser;
    }
    public String getOsUser() {
        return this.osUser;
    }
    public void setOsUser(String osUser) {
        this.osUser = osUser;
    }
    public List<String> getDeviceInfo() {
        return this.deviceInfo;
    }
    public void setDeviceInfo(List<String> deviceInfo) {
        this.deviceInfo = deviceInfo;
    }
    public String getEmail() {
        return this.email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public String getPhoneNo() {
        return this.phoneNo;
    }
    public void setPhoneNo(String phoneNo) {
        this.phoneNo = phoneNo;
    }
    public String getRtxNo() {
        return this.rtxNo;
    }
    public void setRtxNo(String rtxNo) {
        this.rtxNo = rtxNo;
    }
    public String getPortalId() {
        return this.portalId;
    }
    public void setPortalId(String portalId) {
        this.portalId = portalId;
    }
    public String getIMId() {
        return this.IMId;
    }
    public void setIMId(String IMId) {
        this.IMId = IMId;
    }
    public boolean isSso() {
        return this.sso;
    }
    public void setSso(boolean sso) {
        this.sso = sso;
    }
    public String getSsoServiceName() {
        return this.ssoServiceName;
    }
    public void setSsoServiceName(String ssoServiceName) {
        this.ssoServiceName = ssoServiceName;
    }
    public String getToken() {
        return this.token;
    }
    public void setToken(String token) {
        this.token = token;
    }
    public Map<String, String> getGlobalAttributeMap() {
        return this.globalAttributeMap;
    }
    public void setGlobalAttributeMap(Map<String, String> globalAttributeMap) {
        this.globalAttributeMap = globalAttributeMap;
    }
    public String getPersonId() {
        return this.personId;
    }
    public void setPersonId(String personId) {
        this.personId = personId;
    }
    public String getSexText() {
        return this.sexText;
    }
    public void setSexText(String sexText) {
        this.sexText = sexText;
    }
    public Map<String, String> getRolesName() {
        return this.rolesName;
    }
    public void setRolesName(Map<String, String> rolesName) {
        this.rolesName = rolesName;
    }
    public String getWorkNo() {
        return this.workNo;
    }
    public void setWorkNo(String workNo) {
        this.workNo = workNo;
    }
    public String getWorkTypeOid() {
        return this.workTypeOid;
    }
    public void setWorkTypeOid(String workTypeOid) {
        this.workTypeOid = workTypeOid;
    }
    public String getWorkTypeName() {
        return this.workTypeName;
    }
    public void setWorkTypeName(String workTypeName) {
        this.workTypeName = workTypeName;
    }
    public String toString() {
        return "SessionInfo{orgsOid='" + this.orgsOid + '\'' + ", orgsName='" + this.orgsName + '\'' + ", deptOid='" + this.deptOid + '\'' + ", deptName='" + this.deptName + '\'' + ", userOid='" + this.userOid + '\'' + ", userId='" + this.userId + '\'' + ", userName='" + this.userName + '\'' + ", personOid='" + this.personOid + '\'' + ", personId='" + this.personId + '\'' + ", personName='" + this.personName + '\'' + ", dutyOid='" + this.dutyOid + '\'' + ", dutyName='" + this.dutyName + '\'' + ", workgroupOid='" + this.workgroupOid + '\'' + ", workgroupName='" + this.workgroupName + '\'' + ", workTypeOid='" + this.workTypeOid + '\'' + ", workTypeName='" + this.workTypeName + '\'' + ", usertype='" + this.usertype + '\'' + ", usertypeText='" + this.usertypeText + '\'' + ", sex='" + this.sex + '\'' + ", sexText='" + this.sexText + '\'' + ", rolesName=" + this.rolesName + ", functionOids=" + this.functionOids + ", photoUrl='" + this.photoUrl + '\'' + ", ip='" + this.ip + '\'' + ", language='" + this.language + '\'' + ", userSecret='" + this.userSecret + '\'' + ", userSecretText='" + this.userSecretText + '\'' + ", ipSecret='" + this.ipSecret + '\'' + ", ipSecretText='" + this.ipSecretText + '\'' + ", machine='" + this.machine + '\'' + ", os='" + this.os + '\'' + ", browser='" + this.browser + '\'' + ", osUser='" + this.osUser + '\'' + ", deviceInfo=" + this.deviceInfo + ", email='" + this.email + '\'' + ", phoneNo='" + this.phoneNo + '\'' + ", rtxNo='" + this.rtxNo + '\'' + ", portalId='" + this.portalId + '\'' + ", IMId='" + this.IMId + '\'' + ", sso=" + this.sso + ", ssoServiceName='" + this.ssoServiceName + '\'' + ", token='" + this.token + '\'' + ", globalAttributeMap=" + this.globalAttributeMap + ", workNo='" + this.workNo + '\'' + '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/pagemodel/Tree.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,205 @@
package com.vci.ubcs.starter.web.pagemodel;
import org.springblade.core.tool.utils.StringUtil;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
public class Tree implements Serializable {
    private static final long serialVersionUID = 6886695271635257882L;
    private String oid;
    private String text;
    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 Tree() {
    }
    public Tree(String oid, String text) {
        this.setOid(oid);
        this.setText(text);
    }
    public String getOid() {
        return this.oid;
    }
    public void setOid(String oid) {
        this.oid = oid;
    }
    public String getText() {
        return this.text;
    }
    public void setText(String text) {
        this.text = text;
    }
    public boolean isLeaf() {
        return this.leaf;
    }
    public void setLeaf(boolean leaf) {
        this.leaf = leaf;
    }
    public boolean isShowCheckbox() {
        return this.showCheckbox;
    }
    public void setShowCheckbox(boolean showCheckbox) {
        this.showCheckbox = showCheckbox;
    }
    public boolean isChecked() {
        return this.checked;
    }
    public void setChecked(boolean checked) {
        this.checked = checked;
    }
    public List<Tree> getChildren() {
        return this.children;
    }
    public void setChildren(List<Tree> children) {
        this.children = children;
    }
    public String getIcon() {
        return this.icon;
    }
    public void setIcon(String icon) {
        this.icon = icon;
    }
    public String getIconCls() {
        return this.iconCls;
    }
    public void setIconCls(String iconCls) {
        this.iconCls = iconCls;
    }
    public String getParentId() {
        return this.parentId;
    }
    public void setParentId(String parentId) {
        this.parentId = parentId;
    }
    public boolean isExpanded() {
        return this.expanded;
    }
    public void setExpanded(boolean expanded) {
        this.expanded = expanded;
    }
    public String getHref() {
        return this.href;
    }
    public void setHref(String href) {
        this.href = href;
    }
    public String getIndex() {
        return this.index;
    }
    public void setIndex(String index) {
        this.index = index;
    }
    public Map<String, String> getAttributes() {
        return this.attributes;
    }
    public void setAttributes(Map<String, String> attributes) {
        this.attributes = attributes;
    }
    public String getParentName() {
        return this.parentName;
    }
    public void setParentName(String parentName) {
        this.parentName = parentName;
    }
    public String getParentBtmName() {
        return this.parentBtmName;
    }
    public void setParentBtmName(String parentBtmName) {
        this.parentBtmName = parentBtmName;
    }
    public static List<Tree> getChildList(List<Tree> rootTree, List<Tree> children) {
        if (rootTree == null || rootTree.size() == 0) {
            if (children == null || children.size() <= 0) {
                return null;
            }
            rootTree = children.subList(0, children.size());
        }
        Tree bt = new Tree();
        bt.findChild(rootTree, children);
        return rootTree;
    }
    public void findChild(List<Tree> treenode, List<Tree> children) {
        Tree node;
        for(Iterator var3 = treenode.iterator(); var3.hasNext(); this.getChildren().add(node)) {
            node = (Tree)var3.next();
            Iterator var5 = children.iterator();
            while(var5.hasNext()) {
                Tree childnode = (Tree)var5.next();
                if (node.getOid().equalsIgnoreCase(childnode.getParentId())) {
                    childnode.setParentName(node.getText());
                    if (StringUtil.isBlank(childnode.getParentBtmName())) {
                        childnode.setParentBtmName((String)node.getAttributes().getOrDefault("btmname", ""));
                    }
                    node.getChildren().add(childnode);
                }
            }
            if (node.getChildren().size() > 0) {
                this.findChild(node.getChildren(), children);
                node.setLeaf(false);
            } else {
                node.setLeaf(true);
            }
        }
    }
    public String toString() {
        return "Tree{oid='" + this.oid + '\'' + ", text='" + this.text + '\'' + ", leaf=" + this.leaf + ", showCheckbox=" + this.showCheckbox + ", checked=" + this.checked + ", children=" + this.children + ", icon='" + this.icon + '\'' + ", iconCls='" + this.iconCls + '\'' + ", parentId='" + this.parentId + '\'' + ", parentName='" + this.parentName + '\'' + ", parentBtmName='" + this.parentBtmName + '\'' + ", expanded=" + this.expanded + ", href='" + this.href + '\'' + ", index='" + this.index + '\'' + ", attributes=" + this.attributes + '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/pagemodel/UIFieldSortVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,50 @@
package com.vci.ubcs.starter.web.pagemodel;
//package com.vci.web.pageModel;
/**
 * å­—段的排序
 * @author weidy
 * @date 2022-04-21
 */
public class UIFieldSortVO implements java.io.Serializable{
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = 3364856602124197925L;
    /**
     * æŽ’序的字段
     */
    private String field;
    /**
     * æŽ’序的类型
     */
    private String type;
    public String getField() {
        return field;
    }
    public void setField(String field) {
        this.field = field;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    @Override
    public String toString() {
        return "UIFieldSortVO{" +
            "field='" + field + '\'' +
            ", type='" + type + '\'' +
            '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/pagemodel/UIFormReferVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,349 @@
package com.vci.ubcs.starter.web.pagemodel;
//package com.vci.web.pageModel;
import java.util.Map;
/**
 * å‚照的配置
 * @author weidy
 * @date 2021/2/24
 */
public class UIFormReferVO implements java.io.Serializable{
    /**
     * åºåˆ—化
     */
    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 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;
    }
    public String getParentUsedField() {
        return parentUsedField;
    }
    public void setParentUsedField(String parentUsedField) {
        this.parentUsedField = parentUsedField;
    }
    public Map<String, String> getWhere() {
        return where;
    }
    public void setWhere(Map<String, String> where) {
        this.where = where;
    }
    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 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 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 getDisplayTable() {
        return displayTable;
    }
    public void setDisplayTable(String displayTable) {
        this.displayTable = displayTable;
    }
    public UITableCustomDefineVO getTableConfig() {
        return tableConfig;
    }
    public void setTableConfig(UITableCustomDefineVO tableConfig) {
        this.tableConfig = tableConfig;
    }
    @Override
    public String toString() {
        return "UIFormReferVO{" +
            "type='" + type + '\'' +
            ", textField='" + textField + '\'' +
            ", valueField='" + valueField + '\'' +
            ", muti=" + muti +
            ", url='" + url + '\'' +
            ", backPath='" + backPath + '\'' +
            ", method='" + method + '\'' +
            ", height=" + height +
            ", referType='" + referType + '\'' +
            ", referContent='" + referContent + '\'' +
            ", parentFieldName='" + parentFieldName + '\'' +
            ", parentValue='" + parentValue + '\'' +
            ", loadType='" + loadType + '\'' +
            ", onlyLeaf=" + onlyLeaf +
            ", useFormKey='" + useFormKey + '\'' +
            ", paramForFormKey='" + paramForFormKey + '\'' +
            ", mapFields='" + mapFields + '\'' +
            ", displayTable='" + displayTable + '\'' +
            ", tableConfig=" + tableConfig +
            ", where=" + where +
            '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/pagemodel/UITableCustomDefineVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,80 @@
package com.vci.ubcs.starter.web.pagemodel;
//package com.vci.web.pageModel;
import java.util.List;
/**
 * è¡¨æ ¼çš„自定义
 * @author weidy
 * @date 2021/2/25
 */
public class UITableCustomDefineVO implements java.io.Serializable{
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = 431728683965836558L;
    /**
     * ä¸»é”®
     */
    private String oid;
    /**
     * åˆ†é¡µçš„对象
     */
    private UITablePageVO page;
    /**
     * æ˜¾ç¤ºçš„列
     */
    private List<UITableFieldVO> cols;
    /**
     * æŸ¥è¯¢çš„列
     */
    private List<UITableFieldVO> queryColumns;
    public String getOid() {
        return oid;
    }
    public void setOid(String oid) {
        this.oid = oid;
    }
    public UITablePageVO getPage() {
        return page;
    }
    public void setPage(UITablePageVO page) {
        this.page = page;
    }
    public List<UITableFieldVO> getCols() {
        return cols;
    }
    public void setCols(List<UITableFieldVO> cols) {
        this.cols = cols;
    }
    public List<UITableFieldVO> getQueryColumns() {
        return queryColumns;
    }
    public void setQueryColumns(List<UITableFieldVO> queryColumns) {
        this.queryColumns = queryColumns;
    }
    @Override
    public String toString() {
        return "UITableCustomDefineVO{" +
            "oid='" + oid + '\'' +
            ", page=" + page +
            ", cols=" + cols +
            ", queryColumns=" + queryColumns +
            '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/pagemodel/UITableFieldVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,398 @@
package com.vci.ubcs.starter.web.pagemodel;
//package com.vci.web.pageModel;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
 * åˆ—表的列的信息
 * @author weidy
 * @date 2021/2/25
 */
public class UITableFieldVO implements java.io.Serializable{
    /**
     * åˆ—名
     */
    private String field;
    /**
     * æ˜¾ç¤ºçš„名称
     */
    private String title;
    /**
     * å­—段类型
     */
    private String fieldType;
    /**
     * æ˜¯å¦æŽ’序
     */
    private boolean sort = false;
    /**
     * æŽ’序字段
     */
    private String sortField ;
    /**
     * éšè—çš„字段
     */
    private boolean hidden = false;
    /**
     * å®½åº¦
     */
    private Integer width;
    /**
     * æœ€å°çš„宽度
     */
    private Integer minWidth;
    /**
     * å›ºå®šä½ç½®ï¼Œæ”¯æŒright和left
     */
    private String fixed;
    /**
     * æ‰€å çš„列
     */
    private Integer colspan = 1;
    /**
     * æ‰€ç«™çš„行
     */
    private Integer rowspan = 1;
    /**
     * æ¨¡æ¿çš„的内容
     */
    private String templet;
    /**
     * æ—¶é—´æ ¼å¼
     */
    private String dateFormate;
    /**
     * æ˜¯å¦æ“ä½œåˆ—
     */
    private boolean optionField = false;
    /**
     * æ“ä½œåˆ—包含的按钮
     */
    private List<KeyValue> optionButtons;
    /**
     * äº‹ä»¶-执行js的映射
     */
    private Map<String,String> optionJsMap;
    /**
     * æ˜¯å¦ç¼–辑
     */
    private String edit;
    /**
     * ç¼–辑的配置
     */
    private String editConfig ;
    /**
     * å¯¹é½æ–¹å¼
     */
    private String align = "left";
    /**
     * ç‰¹æ®Šæ ·å¼
     */
    private String style;
    /**
     * å•元格点击事件
     */
    private String event;
    /**
     * ç¦ç”¨æ‹–拽列宽
     */
    private boolean unresize = false;
    /**
     * ä¸‹æ‹‰èœå•的名称
     */
    private String comboxKey;
    /**
     * ä¸‹æ‹‰èœå•的选项值
     */
    private List<KeyValue> data = new ArrayList<>();
    /**
     * å‚照显示的字段
     */
    private String showField;
    /**
     * æŸ¥è¯¢çš„字段
     */
    private String queryField;
    /**
     * å‚照的信息
     */
    private UIFormReferVO referConfig;
    public Map<String, String> getOptionJsMap() {
        return optionJsMap;
    }
    public void setOptionJsMap(Map<String, String> optionJsMap) {
        this.optionJsMap = optionJsMap;
    }
    public String getFieldType() {
        return fieldType;
    }
    public void setFieldType(String fieldType) {
        this.fieldType = fieldType;
    }
    public String getDateFormate() {
        return dateFormate;
    }
    public void setDateFormate(String dateFormate) {
        this.dateFormate = dateFormate;
    }
    public String getField() {
        return field;
    }
    public void setField(String field) {
        this.field = field;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public boolean isSort() {
        return sort;
    }
    public void setSort(boolean sort) {
        this.sort = sort;
    }
    public String getSortField() {
        return sortField;
    }
    public void setSortField(String sortField) {
        this.sortField = sortField;
    }
    public boolean isHidden() {
        return hidden;
    }
    public void setHidden(boolean hidden) {
        this.hidden = hidden;
    }
    public Integer getWidth() {
        return width;
    }
    public void setWidth(Integer width) {
        this.width = width;
    }
    public Integer getMinWidth() {
        return minWidth;
    }
    public void setMinWidth(Integer minWidth) {
        this.minWidth = minWidth;
    }
    public String getFixed() {
        return fixed;
    }
    public void setFixed(String fixed) {
        this.fixed = fixed;
    }
    public Integer getColspan() {
        return colspan;
    }
    public void setColspan(Integer colspan) {
        this.colspan = colspan;
    }
    public Integer getRowspan() {
        return rowspan;
    }
    public void setRowspan(Integer rowspan) {
        this.rowspan = rowspan;
    }
    public String getTemplet() {
        return templet;
    }
    public void setTemplet(String templet) {
        this.templet = templet;
    }
    public boolean isOptionField() {
        return optionField;
    }
    public void setOptionField(boolean optionField) {
        this.optionField = optionField;
    }
    public List<KeyValue> getOptionButtons() {
        return optionButtons;
    }
    public void setOptionButtons(List<KeyValue> optionButtons) {
        this.optionButtons = optionButtons;
    }
    public String getEdit() {
        return edit;
    }
    public void setEdit(String edit) {
        this.edit = edit;
    }
    public String getEditConfig() {
        return editConfig;
    }
    public void setEditConfig(String editConfig) {
        this.editConfig = editConfig;
    }
    public String getAlign() {
        return align;
    }
    public void setAlign(String align) {
        this.align = align;
    }
    public String getStyle() {
        return style;
    }
    public void setStyle(String style) {
        this.style = style;
    }
    public String getEvent() {
        return event;
    }
    public void setEvent(String event) {
        this.event = event;
    }
    public boolean isUnresize() {
        return unresize;
    }
    public void setUnresize(boolean unresize) {
        this.unresize = unresize;
    }
    public String getComboxKey() {
        return comboxKey;
    }
    public void setComboxKey(String comboxKey) {
        this.comboxKey = comboxKey;
    }
    public List<KeyValue> getData() {
        return data;
    }
    public void setData(List<KeyValue> data) {
        this.data = data;
    }
    public String getShowField() {
        return showField;
    }
    public void setShowField(String showField) {
        this.showField = showField;
    }
    public UIFormReferVO getReferConfig() {
        return referConfig;
    }
    public void setReferConfig(UIFormReferVO referConfig) {
        this.referConfig = referConfig;
    }
    public String getQueryField() {
        return queryField;
    }
    public void setQueryField(String queryField) {
        this.queryField = queryField;
    }
    @Override
    public String toString() {
        return "UITableFieldVO{" +
            "field='" + field + '\'' +
            ", title='" + title + '\'' +
            ", fieldType='" + fieldType + '\'' +
            ", sort=" + sort +
            ", sortField='" + sortField + '\'' +
            ", hidden=" + hidden +
            ", width=" + width +
            ", minWidth=" + minWidth +
            ", fixed='" + fixed + '\'' +
            ", colspan=" + colspan +
            ", rowspan=" + rowspan +
            ", templet='" + templet + '\'' +
            ", dateFormate='" + dateFormate + '\'' +
            ", optionField=" + optionField +
            ", optionButtons=" + optionButtons +
            ", optionJsMap=" + optionJsMap +
            ", edit='" + edit + '\'' +
            ", editConfig='" + editConfig + '\'' +
            ", align='" + align + '\'' +
            ", style='" + style + '\'' +
            ", event='" + event + '\'' +
            ", unresize=" + unresize +
            ", comboxKey='" + comboxKey + '\'' +
            ", data=" + data +
            ", showField='" + showField + '\'' +
            ", queryField='" + queryField + '\'' +
            ", referConfig=" + referConfig +
            '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/pagemodel/UITablePageVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,49 @@
package com.vci.ubcs.starter.web.pagemodel;
//package com.vci.web.pageModel;
/**
 * è¡¨æ ¼çš„分页对象
 * @author weidy
 * @date 2021/2/25
 */
public class UITablePageVO implements java.io.Serializable{
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = -6338518925812603615L;
    /**
     * æ¯é¡µæ˜¾ç¤ºæ•°é‡
     */
    private Integer limit = -1;
    /**
     * å½“前页数
     */
    private Integer page = 1;
    public Integer getLimit() {
        return limit;
    }
    public void setLimit(Integer limit) {
        this.limit = limit;
    }
    public Integer getPage() {
        return page;
    }
    public void setPage(Integer page) {
        this.page = page;
    }
    @Override
    public String toString() {
        return "UITablePageVO{" +
            "limit=" + limit +
            ", page=" + page +
            '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/service/VciSecretServiceI.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
package com.vci.ubcs.starter.web.service;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.vci.ubcs.starter.web.enumpck.UserSecretEnum;
import com.vci.ubcs.starter.web.pagemodel.SessionInfo;
import com.vci.ubcs.starter.web.util.VciBaseUtil;
public interface VciSecretServiceI {
    default String getLessThanUserSecretSql() {
        SessionInfo sessionInfo = VciBaseUtil.getCurrentUserSessionInfoNotException();
        return sessionInfo != null ? sessionInfo.getUserSecret() : "";
    }
    default boolean checkUserSecret(int dataSecret) {
        SessionInfo sessionInfo = VciBaseUtil.getCurrentUserSessionInfoNotException();
        if (sessionInfo != null) {
            if (StringUtils.isBlank(sessionInfo.getUserSecret())) {
                sessionInfo.setUserSecret(UserSecretEnum.NONE.getValue() + "");
            }
            return VciBaseUtil.getInt(sessionInfo.getUserSecret()) >= dataSecret;
        } else {
            return false;
        }
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/toolmodel/DateConverter.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,188 @@
package com.vci.ubcs.starter.web.toolmodel;
import com.vci.ubcs.starter.exception.VciBaseException;
import com.vci.ubcs.starter.web.util.VciDateUtil;
import org.springblade.core.tool.utils.StringUtil;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class DateConverter {
    private DateFormat dateFormat;
    private int exactDateLength;
    private Date value;
    public DateConverter() {
    }
    public DateFormat getDateFormat() {
        return this.dateFormat;
    }
    public void setDateFormat(DateFormat dateFormat) {
        this.dateFormat = dateFormat;
    }
    public int getExactDateLength() {
        return this.exactDateLength;
    }
    public void setExactDateLength(int exactDateLength) {
        this.exactDateLength = exactDateLength;
    }
    public Date getValue() {
        return this.value;
    }
    public void setValue(Date value) {
        this.value = value;
    }
    public void setAsText(String text) throws VciBaseException {
        if (StringUtil.isBlank(text)) {
            this.setValue((Date)null);
        } else {
            text = text.trim();
            text = text.replace("å¹´", "-").replace("月", "-").replace("日", "").replace("时", ":").replace("分", ":");
            String pattern = "\\d{2,4}([^\\d]?)\\d{1,2}\\1\\d{1,2}( \\d{1,2}([^\\d])\\d{1,2})?";
            Pattern r = Pattern.compile(pattern);
            Matcher m = r.matcher(text);
            if (!m.find()) {
                throw new VciBaseException("不是合格的时间格式字符串,{0}", new String[]{text});
            }
            String dateSplit = m.group(1);
            String timeSplit = m.group(3);
            String formateStr = String.format("yyyy%sMM%sdd", dateSplit, dateSplit);
            String yearMD;
            if (StringUtil.isNotBlank(timeSplit)) {
                yearMD = text.substring(text.indexOf(" "));
                String[] split = yearMD.split(timeSplit);
                if (split.length == 2) {
                    formateStr = formateStr + String.format(" HH%smm", timeSplit);
                }
                if (split.length > 2) {
                    formateStr = formateStr + String.format(" HH%smm%sss", timeSplit, timeSplit);
                }
                if (yearMD.contains(".")) {
                    formateStr = formateStr + ".SSS";
                }
            }
            yearMD = text.contains(" ") ? text.substring(0, text.indexOf(" ")) : text;
            if (StringUtil.isNotBlank(dateSplit)) {
                String year = text.substring(0, text.indexOf(dateSplit));
                if (StringUtil.isNotBlank(year) && year.length() == 2) {
                    formateStr = formateStr.replace("yyyy", "yy");
                }
                String[] split = yearMD.split(dateSplit);
                if (split.length == 2) {
                    formateStr = formateStr.replace("dd", "");
                }
            } else if (!text.matches("^[0-9]*$")) {
                if (text.length() == 5) {
                    formateStr = formateStr.replace("yyyyMMdd", "yy" + text.substring(2, 3) + "MM");
                }
                if (text.length() == 7) {
                    formateStr = formateStr.replace("yyyyMMdd", "yyyy" + text.substring(4, 5) + "MM");
                }
            } else if (text.length() == 2 && text.matches("^[0-9]*$")) {
                formateStr = "yy";
            } else if (text.length() == 4 && text.matches("^[0-9]*$")) {
                formateStr = "yyyy";
            } else if (text.length() == 6 && text.matches("^[0-9]*$")) {
                formateStr = "yyyyMM";
            } else if (StringUtil.isNotBlank(yearMD) && yearMD.length() < 6) {
                formateStr = formateStr.replace("yyyy", "yy");
            }
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat(formateStr);
            try {
                this.setValue(simpleDateFormat.parse(text));
            } catch (ParseException var13) {
                formateStr = formateStr.replace("yyyy", "yy");
                simpleDateFormat = new SimpleDateFormat(formateStr);
                try {
                    this.setValue(simpleDateFormat.parse(text));
                } catch (ParseException var12) {
                    if (text.length() == 2 && text.matches("^[0-9]*$")) {
                        formateStr = "yy";
                    }
                    throw new VciBaseException("不能格式化日期: {0}", new String[]{text}, var13);
                }
            }
        }
    }
    private String fillNano(String text) {
        String nano = text.substring(text.lastIndexOf(".") + 1);
        if (nano.length() < 3) {
            for(int i = 0; i < 3 - nano.length(); ++i) {
                nano = nano + "0";
            }
        }
        return text.substring(0, text.lastIndexOf(".")) + "." + nano;
    }
    public static void main(String[] args) {
        List<String> list = new ArrayList<String>() {
            {
                this.add("2020-11-12 12:12:03");
                this.add("2020-1-2 2:2:3");
                this.add("2020-11-12 12:12:03.232");
                this.add("2020/11/12 12:12:03");
                this.add("2020/1/2 2:2:3");
                this.add("2020/11/12 12:12:03.232");
                this.add("20/11/12 12:12:03");
                this.add("20/1/2 2:2:3");
                this.add("20/11/12 12:12:03.232");
                this.add("2020");
                this.add("2020-11");
                this.add("202011");
                this.add("12:02:12");
                this.add("2:2:3");
                this.add("20201112");
                this.add("202012");
                this.add("202012");
                this.add("2020å¹´11月12日 12时12分03秒");
                this.add("2020å¹´1月2日 2:2:3");
                this.add("2020å¹´11月12日 12时12分03秒232毫秒");
            }
        };
        list.stream().forEach((t) -> {
            try {
                DateConverter dateConverter = new DateConverter();
                dateConverter.setAsText(t);
                System.out.println("转换前:" + t + "; è½¬æ¢åŽ:" + VciDateUtil.date2Str(dateConverter.getValue(), "yyyy-MM-dd HH:mm:ss.SSS"));
            } catch (Throwable var2) {
                var2.printStackTrace();
            }
        });
    }
    public String getAsText(String dateFormat) {
        Date value = this.getValue();
        if (StringUtil.isEmpty(dateFormat)) {
            dateFormat = "yyyy-MM-dd HH:mm:ss.SSS";
        }
        return value != null ? (new SimpleDateFormat(dateFormat)).format(value) : "";
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/BeanUtil.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,175 @@
package com.vci.ubcs.starter.web.util;
import com.vci.ubcs.starter.web.toolmodel.DateConverter;
import org.springframework.cglib.beans.BeanCopier;
import org.springframework.cglib.core.Converter;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
public class BeanUtil {
    private static final ConcurrentMap<String, BeanCopier> beanCopierMap = new ConcurrentHashMap();
    public BeanUtil() {
    }
    public static BeanCopier getBeanCopier(Class<?> source, Class<?> target, boolean useConverter) {
        String beanCopierKey = generateBeanKey(source, target);
        if (beanCopierMap.containsKey(beanCopierKey)) {
            return (BeanCopier)beanCopierMap.get(beanCopierKey);
        } else {
            BeanCopier beanCopier = BeanCopier.create(source, target, useConverter);
            beanCopierMap.putIfAbsent(beanCopierKey, beanCopier);
            return (BeanCopier)beanCopierMap.get(beanCopierKey);
        }
    }
    public static String generateBeanKey(Class<?> source, Class<?> target) {
        return source.getName() + "@" + target.getName();
    }
    public static void convert(Object source, Object target, boolean useConvert) {
        if (source != null && target != null) {
            BeanCopier beanCopier = getBeanCopier(source.getClass(), target.getClass(), useConvert);
            beanCopier.copy(source, target, useConvert ? new DeepCopyConverter(target) : null);
        }
    }
    public static void convert(Object source, Object target) {
        convert(source, target, true);
    }
    public static class DeepCopyConverter implements Converter {
        private Object target;
        public DeepCopyConverter(Object target) {
            this.target = target;
        }
        @Override
        public Object convert(Object value, Class targetClazz, Object methodName) {
            if (value instanceof List) {
                List values = (List)value;
                List retList = new ArrayList(values.size());
                this.copyForCollection(values, retList, methodName);
                return retList;
            } else {
                if (value instanceof Set) {
                    Set values = (Set)value;
                    Set retSet = new HashSet();
                    this.copyForCollection(values, retSet, methodName);
                } else if (value instanceof Vector) {
                    Vector values = (Vector)value;
                    Vector retVector = new Vector();
                    this.copyForCollection(values, retVector, methodName);
                } else if (value instanceof Map) {
                    Map values = (Map)value;
                    Map retMap = new HashMap();
                    Iterator var6 = values.keySet().iterator();
                    while(var6.hasNext()) {
                        Object key = var6.next();
                        Object mapValue = values.get(key);
                        String tempFieldName = methodName.toString().replace("set", "");
                        String fieldName = tempFieldName.substring(0, 1).toLowerCase() + tempFieldName.substring(1);
                        Class clazz = ClassUtil.getElementType(this.target.getClass(), fieldName);
                        Object targetAttr = null;
                        try {
                            targetAttr = clazz.newInstance();
                        } catch (Throwable var15) {
                        }
                        BeanUtil.convert(mapValue, targetAttr);
                        retMap.put(key, targetAttr);
                    }
                } else if (!ClassUtil.isPrimitive(targetClazz)) {
                    Object targetAttr = null;
                    try {
                        targetAttr = targetClazz.newInstance();
                    } catch (Throwable var14) {
                    }
                    BeanUtil.convert(value, targetAttr);
                    return targetAttr;
                }
                if (value instanceof Boolean && targetClazz.equals(String.class)) {
                    return String.valueOf(value);
                } else if (!(value instanceof String) || !targetClazz.equals(Boolean.class) && !targetClazz.equals(Boolean.TYPE)) {
                    if (value instanceof Date && targetClazz.equals(String.class)) {
                        return VciDateUtil.date2Str((Date)value, "yyyy-MM-dd HH:mm:ss.SSS");
                    } else if (value instanceof String && targetClazz.equals(Date.class)) {
                        DateConverter dateConverter = new DateConverter();
                        dateConverter.setAsText((String)value);
                        return dateConverter.getValue();
                    } else {
                        return value;
                    }
                } else {
                    return "true".equalsIgnoreCase((String)value) ? true : false;
                }
            }
        }
        private void copyForCollection(Collection<?> sourceCollection, Collection targetCollection, Object methodName) {
            Iterator var4 = sourceCollection.iterator();
            while(true) {
                while(var4.hasNext()) {
                    Object source = var4.next();
                    if (source instanceof Collection) {
                        List<Object> targetValues = new ArrayList();
                        this.copyForCollection((Collection)source, targetValues, methodName);
                        targetCollection.add(targetValues);
                    } else {
                        String tempFieldName;
                        String fieldName;
                        Class clazz;
                        Object targetAttr;
                        if (!(source instanceof Map)) {
                            tempFieldName = methodName.toString().replace("set", "");
                            fieldName = tempFieldName.substring(0, 1).toLowerCase() + tempFieldName.substring(1);
                            clazz = ClassUtil.getElementType(this.target.getClass(), fieldName);
                            targetAttr = null;
                            try {
                                targetAttr = clazz.newInstance();
                            } catch (Throwable var13) {
                            }
                            BeanUtil.convert(source, targetAttr);
                            targetCollection.add(targetAttr);
                        } else {
                            tempFieldName = methodName.toString().replace("set", "");
                            fieldName = tempFieldName.substring(0, 1).toLowerCase() + tempFieldName.substring(1);
                            clazz = ClassUtil.getElementType(this.target.getClass(), fieldName);
                            targetAttr = null;
                            try {
                                targetAttr = clazz.newInstance();
                            } catch (Throwable var14) {
                            }
                            Map map = (Map)source;
                            Iterator var11 = map.keySet().iterator();
                            while(var11.hasNext()) {
                                Object key = var11.next();
                                VciBaseUtil.setValueForField(key.toString(), targetAttr, VciBaseUtil.getStringValueFromObject(map.get(key)));
                            }
                            targetCollection.add(targetAttr);
                        }
                    }
                }
                return;
            }
        }
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/BeanUtilForVCI.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,162 @@
package com.vci.ubcs.starter.web.util;
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.CollectionUtils;
import java.lang.reflect.Field;
import java.util.*;
public class BeanUtilForVCI {
    private static Logger logger = LoggerFactory.getLogger(BeanUtilForVCI.class);
    public BeanUtilForVCI() {
    }
    public static void copyPropertiesIgnoreCase(Object source, Object target) {
        copyPropertiesIgnoreCase(source, target, false);
    }
    public static void copyPropertiesIgnoreCase(Object source, Object target, Map<String, String> fieldMap) {
        copyPropertiesIgnoreCase(source, target, false, fieldMap);
    }
    public static void copyPropertiesIgnoreCase(Object source, Object target, boolean ignoreNull) {
        copyPropertiesIgnoreCase(source, target, ignoreNull, (Map)null);
    }
    public static void copyDeclaredIgnoreCase(Object source, Object target) {
        copyDeclaredIgnoreCase(source, target, false);
    }
    public static void copyDeclaredIgnoreCase(Object source, Object target, boolean ignoreNull) {
        copyDeclaredIgnoreCase(source, target, ignoreNull, (Map)null);
    }
    public static void copyDeclaredIgnoreCase(Object source, Object target, boolean ignoreNull, Map<String, String> fieldMap) {
        copyDeclaredIgnoreCase(source, target, ignoreNull, fieldMap, (Collection)null);
    }
    public static void copyDeclaredIgnoreCase(Object source, Object target, boolean ignoreNull, Map<String, String> fieldMap, Collection<String> ignoreField) {
        Map<String, Field> sourceMap = CacheFieldMap.getDeclaredFieldMap(source.getClass());
        Map<String, Field> targetMap = CacheFieldMap.getDeclaredFieldMap(target.getClass());
        copyPropertiesIgnoreCase(source, target, ignoreNull, fieldMap, ignoreField, sourceMap, targetMap);
    }
    public static void copyPropertiesIgnoreCase(Object source, Object target, boolean ignoreNull, Map<String, String> fieldMap, Collection<String> ignoreField) {
        Map<String, Field> sourceMap = CacheFieldMap.getFieldMap(source.getClass());
        Map<String, Field> targetMap = CacheFieldMap.getFieldMap(target.getClass());
        copyPropertiesIgnoreCase(source, target, ignoreNull, fieldMap, ignoreField, sourceMap, targetMap);
    }
    public static void copyPropertiesIgnoreCase(Object source, Object target, boolean ignoreNull, Map<String, String> fieldMap, Collection<String> ignoreField, Map<String, Field> sourceMap, Map<String, Field> targetMap) {
        if (fieldMap == null) {
            fieldMap = new HashMap();
        }
        Map<String, String> finalFieldMap = fieldMap;
        targetMap.values().forEach((it) -> {
            boolean not = false;
            if (ignoreField != null && ignoreField.contains(it.getName())) {
                not = true;
            }
            if (!not) {
                String itFieldName = it.getName().toLowerCase().replace("_", "");
                itFieldName = (String) finalFieldMap.getOrDefault(itFieldName, itFieldName);
                Field field = (Field)sourceMap.getOrDefault(itFieldName, (Field) null);
                if (field != null) {
                    it.setAccessible(true);
                    field.setAccessible(true);
                    try {
                        String sourceClassName = field.getClass().getName();
                        String targetClassName = it.getClass().getName();
                        if ((sourceClassName.equalsIgnoreCase(Boolean.class.getName()) || sourceClassName.equalsIgnoreCase(Boolean.TYPE.getName())) && targetClassName.equalsIgnoreCase(String.class.getName()) || (targetClassName.equalsIgnoreCase(Boolean.class.getName()) || targetClassName.equalsIgnoreCase(Boolean.TYPE.getName())) && sourceClassName.equalsIgnoreCase(String.class.getName())) {
                            if (targetClassName.equalsIgnoreCase(String.class.getName())) {
                                it.set(target, String.valueOf((Boolean)field.get(source)));
                            } else {
                                it.set(target, Boolean.valueOf((String)field.get(source)));
                            }
                        } else if (!ignoreNull) {
                            it.set(target, field.get(source));
                        } else {
                            Object sourceValue = field.get(source);
                            if (sourceValue != null && StringUtils.isNotBlank(sourceValue.toString())) {
                                it.set(target, sourceValue);
                            }
                        }
                    } catch (IllegalAccessException var13) {
                        if (logger.isErrorEnabled()) {
                            logger.error("拷贝属性出错" + var13);
                        }
                    }
                }
            }
        });
    }
    public static void copyPropertiesIgnoreCase(Object source, Object target, boolean ignoreNull, Map<String, String> fieldMap) {
        copyPropertiesIgnoreCase(source, target, ignoreNull, fieldMap, (Collection)null);
    }
    private static class CacheFieldMap {
        private static Map<String, Map<String, Field>> cacheMap = new HashMap();
        private static Map<String, Map<String, Field>> declaredCacheMap = new HashMap();
        private CacheFieldMap() {
        }
        private static Map<String, Field> getFieldMap(Class clazz) {
            Map<String, Field> result = (Map)cacheMap.get(clazz.getName());
            if (result == null) {
                Class var2 = CacheFieldMap.class;
                synchronized(CacheFieldMap.class) {
                    if (result == null) {
                        Map<String, Field> fieldMap = new HashMap();
                        List<Field> allFields = VciBaseUtil.getAllFieldForObj(clazz);
                        if (!CollectionUtils.isEmpty(allFields)) {
                            allFields.stream().forEach((field) -> {
                                fieldMap.put(field.getName().toLowerCase().replace("_", ""), field);
                            });
                        }
                        cacheMap.put(clazz.getName(), fieldMap);
                        result = (Map)cacheMap.get(clazz.getName());
                    }
                }
            }
            return result;
        }
        private static Map<String, Field> getDeclaredFieldMap(Class clazz) {
            Map<String, Field> result = (Map)declaredCacheMap.get(clazz.getName());
            if (result == null) {
                Class var2 = CacheFieldMap.class;
                synchronized(CacheFieldMap.class) {
                    if (result == null) {
                        Map<String, Field> fieldMap = new HashMap();
                        Field[] allFields = clazz.getDeclaredFields();
                        if (allFields != null && allFields.length > 0) {
                            Arrays.stream(allFields).forEach((field) -> {
                                fieldMap.put(field.getName().toLowerCase().replace("_", ""), field);
                            });
                        }
                        declaredCacheMap.put(clazz.getName(), fieldMap);
                        result = (Map)declaredCacheMap.get(clazz.getName());
                    }
                }
            }
            return result;
        }
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/ClassUtil.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,50 @@
package com.vci.ubcs.starter.web.util;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
public class ClassUtil {
    private static final Map<Class<?>, Class<?>> primitiveMap = new HashMap(9);
    public ClassUtil() {
    }
    public static boolean isPrimitive(Class<?> clazz) {
        return primitiveMap.containsKey(clazz) ? true : clazz.isPrimitive();
    }
    public static Class<?> getElementType(Class<?> tartget, String fieldName) {
        Class<?> elementTypeClass = null;
        try {
            Type type = VciBaseUtil.getFieldForObject(fieldName, tartget).getGenericType();
            ParameterizedType t = (ParameterizedType)type;
            String classStr = t.getActualTypeArguments()[0].toString().replace("class ", "");
            if (classStr.contains("<")) {
                classStr = classStr.substring(classStr.lastIndexOf("<") + 1, classStr.indexOf(">"));
            }
            elementTypeClass = Thread.currentThread().getContextClassLoader().loadClass(classStr);
            return elementTypeClass;
        } catch (SecurityException | ClassNotFoundException var6) {
            throw new RuntimeException("get fieldName[" + fieldName + "] error", var6);
        }
    }
    static {
        primitiveMap.put(String.class, String.class);
        primitiveMap.put(Boolean.class, Boolean.TYPE);
        primitiveMap.put(Byte.class, Byte.TYPE);
        primitiveMap.put(Character.class, Character.TYPE);
        primitiveMap.put(Double.class, Double.TYPE);
        primitiveMap.put(Float.class, Float.TYPE);
        primitiveMap.put(Integer.class, Integer.TYPE);
        primitiveMap.put(Long.class, Long.TYPE);
        primitiveMap.put(Short.class, Short.TYPE);
        primitiveMap.put(Date.class, Date.class);
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/ControllerUtil.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,248 @@
package com.vci.ubcs.starter.web.util;
import org.apache.commons.io.IOUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.core.tool.utils.StringUtil;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URLEncoder;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
public class ControllerUtil {
    private static Logger logger = LoggerFactory.getLogger(ControllerUtil.class);
    public static final Map<String, String> tempFileForDownloadMap = new ConcurrentHashMap();
    public ControllerUtil() {
    }
    public static void writeFileToResponse(HttpServletResponse response, String fileName) throws FileNotFoundException, IOException {
        writeFileToResponse(response, fileName, true);
    }
    public static void writeFileToResponse(HttpServletResponse response, String fileName, boolean deleteFile) throws FileNotFoundException, IOException {
        writeFileToResponse(response, (String)fileName, (String)null, deleteFile);
    }
    public static void writeFileToResponse(HttpServletResponse response, String fileName, String showName, boolean deleteFile) throws FileNotFoundException, IOException {
        File file = new File(fileName);
        if (!file.exists()) {
            throw new FileNotFoundException(fileName);
        } else {
            writeFileToResponse(response, file, showName, deleteFile);
        }
    }
    public static void writeFileToResponse(HttpServletResponse response, File file) throws FileNotFoundException, IOException {
        writeFileToResponse(response, file, true);
    }
    public static void writeFileToResponse(HttpServletResponse response, File file, boolean deleteFile) throws FileNotFoundException, IOException {
        writeFileToResponse(response, (File)file, (String)null, deleteFile);
    }
    public static void writeFileToResponse(HttpServletResponse response, File file, String showName, boolean deleteFile) throws FileNotFoundException, IOException {
        writeFileToResponse(response, file, showName, deleteFile, (String)null);
    }
    public static void writeFileToResponse(HttpServletResponse response, File file, String showName, boolean deleteFile, String contentType) throws FileNotFoundException, IOException {
        VciBaseUtil.alertNotNull(new Object[]{file, "文件对象"});
        if (!file.exists()) {
            throw new FileNotFoundException(file.getName());
        } else {
            if (StringUtil.isBlank(showName)) {
                showName = file.getName();
            }
            FileInputStream in = null;
            boolean var11 = false;
            File parentFile;
            label96: {
                try {
                    var11 = true;
                    in = new FileInputStream(file);
                    writeFileToResponse(response, in, showName, contentType);
                    var11 = false;
                    break label96;
                } catch (IOException var12) {
                    if (logger.isErrorEnabled()) {
                        logger.error("写入文件到响应流出错", var12);
                        var11 = false;
                    } else {
                        var11 = false;
                    }
                } finally {
                    if (var11) {
                        IOUtils.closeQuietly(in);
                        if (deleteFile) {
                            File parentFile1 = file.getParentFile();
                            file.delete();
                            parentFile1.delete();
                        }
                    }
                }
                IOUtils.closeQuietly(in);
                if (deleteFile) {
                    parentFile = file.getParentFile();
                    file.delete();
                    parentFile.delete();
                }
                return;
            }
            IOUtils.closeQuietly(in);
            if (deleteFile) {
                parentFile = file.getParentFile();
                file.delete();
                parentFile.delete();
            }
        }
    }
    public static void writeFileToResponse(HttpServletResponse response, InputStream ins, String showName) throws IOException {
        writeFileToResponse(response, ins, showName, (String)null);
    }
    public static void writeFileToResponse(HttpServletResponse response, InputStream ins, String showName, String contentType) throws IOException {
        if (StringUtil.isBlank(contentType)) {
            contentType = "application/force-download";
        }
        if (StringUtil.isBlank(showName)) {
            showName = "下载文件";
        }
        response.setContentType(contentType);
        try {
            String fileName = URLEncoder.encode(showName, "UTF8");
            response.addHeader("Content-Disposition", "attachment; filename=" + fileName + ";filename*=utf-8''" + fileName);
        } catch (Exception var12) {
            if (logger.isErrorEnabled()) {
                logger.error("设置文件的名称到响应流的时候出错", var12);
            }
        }
        response.setCharacterEncoding("UTF-8");
        Cookie cookie = new Cookie("fileDownload", "true");
        cookie.setPath("/");
        response.addCookie(cookie);
        try {
            IOUtils.copy(ins, response.getOutputStream());
        } catch (IOException var10) {
            if (logger.isErrorEnabled()) {
                logger.error("写入文件到响应流出错", var10);
            }
            throw var10;
        } finally {
            IOUtils.closeQuietly(ins);
        }
    }
    public static void writeDataToResponse(HttpServletResponse response, byte[] data, String contentType) throws IOException {
        if (StringUtil.isBlank(contentType)) {
            contentType = "application/force-download";
        }
        response.setContentType(contentType);
        response.setCharacterEncoding("UTF-8");
        Cookie cookie = new Cookie("fileDownload", "true");
        cookie.setPath("/");
        response.addCookie(cookie);
        try {
            response.getOutputStream().write(data);
        } catch (IOException var5) {
            if (logger.isErrorEnabled()) {
                logger.error("写入文件到响应流出错", var5);
            }
            throw var5;
        }
    }
    public static void writeClasspathFileToResponse(HttpServletResponse response, String classPathFileName) throws FileNotFoundException, IOException {
        writeClasspathFileToResponse(response, classPathFileName, (String)null);
    }
    public static void writeClasspathFileToResponse(HttpServletResponse response, String classPathFileName, String showName) throws FileNotFoundException, IOException {
        InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream(classPathFileName);
        if (StringUtil.isBlank(showName)) {
            showName = classPathFileName.contains("/") ? classPathFileName.substring(classPathFileName.lastIndexOf("/") + 1) : classPathFileName;
        }
        try {
            writeFileToResponse(response, in, showName);
        } catch (IOException var8) {
            throw var8;
        } finally {
            IOUtils.closeQuietly(in);
        }
    }
    public static String getClientInfo(HttpServletRequest request) {
        String ip = request.getHeader("X-Forwarded-For");
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("Proxy-Client-IP");
        }
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("WL-Proxy-Client-IP");
        }
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("HTTP_CLIENT_IP");
        }
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("HTTP_X_FORWARDED_FOR");
        }
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getRemoteAddr();
        }
        if (ip == null || ip.length() == 0 || ip.indexOf("0:0:0:0:0:0:0:1") > -1) {
            ip = "127.0.0.1";
        }
        return ip;
    }
    public static void setQueryTotal(HttpServletRequest request, boolean isQueryTotal) {
        WebThreadLocalUtil.getNeedQueryTotalInThread().set(isQueryTotal ? "true" : "false");
    }
    public static String putErrorFile(String errorFile) {
        String uuid = VciBaseUtil.getPk();
        tempFileForDownloadMap.put(uuid, errorFile);
        return uuid;
    }
    public static void downloadErrorFile(HttpServletResponse response, String uuid) throws IOException {
        String errorFile = (String)tempFileForDownloadMap.getOrDefault(uuid, "");
        try {
            if (StringUtil.isNotBlank(errorFile)) {
                writeFileToResponse(response, new File(errorFile), (String)null, true, "application/msexcel");
            }
        } finally {
            tempFileForDownloadMap.remove(uuid);
        }
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/LangBaseUtil.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,32 @@
package com.vci.ubcs.starter.web.util;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class LangBaseUtil {
    public LangBaseUtil() {
    }
    public static String getErrorMsg(Throwable e) {
        if (e == null) {
            return "未知错误";
        } else {
            if (e.getClass() != null && e.getClass().getSuperclass() != null && (e.getClass().getSuperclass().equals(RuntimeException.class) || e.getClass().getSuperclass().getName().endsWith(".VciBaseException") || e.getClass().getName().endsWith(".VciBaseException"))) {
                try {
                    Method errorMethod = e.getClass().getMethod("getErrorMsg");
                    if (errorMethod != null) {
                        return (String)errorMethod.invoke(e);
                    }
                } catch (NoSuchMethodException var2) {
                    return e.getMessage();
                } catch (IllegalAccessException var3) {
                    return e.getMessage();
                } catch (InvocationTargetException var4) {
                    return e.getMessage();
                }
            }
            return e.getMessage();
        }
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/Lunar.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,194 @@
package com.vci.ubcs.starter.web.util;
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
//package com.vci.starter.web.util;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Lunar {
    private int year;
    private int month;
    private int day;
    private boolean leap;
    static final String[] chineseNumber = new String[]{"一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二"};
    static SimpleDateFormat chineseDateFormat = new SimpleDateFormat("yyyyå¹´MM月dd日");
    static final long[] lunarInfo = new long[]{19416L, 19168L, 42352L, 21717L, 53856L, 55632L, 91476L, 22176L, 39632L, 21970L, 19168L, 42422L, 42192L, 53840L, 119381L, 46400L, 54944L, 44450L, 38320L, 84343L, 18800L, 42160L, 46261L, 27216L, 27968L, 109396L, 11104L, 38256L, 21234L, 18800L, 25958L, 54432L, 59984L, 28309L, 23248L, 11104L, 100067L, 37600L, 116951L, 51536L, 54432L, 120998L, 46416L, 22176L, 107956L, 9680L, 37584L, 53938L, 43344L, 46423L, 27808L, 46416L, 86869L, 19872L, 42448L, 83315L, 21200L, 43432L, 59728L, 27296L, 44710L, 43856L, 19296L, 43748L, 42352L, 21088L, 62051L, 55632L, 23383L, 22176L, 38608L, 19925L, 19152L, 42192L, 54484L, 53840L, 54616L, 46400L, 46496L, 103846L, 38320L, 18864L, 43380L, 42160L, 45690L, 27216L, 27968L, 44870L, 43872L, 38256L, 19189L, 18800L, 25776L, 29859L, 59984L, 27480L, 21952L, 43872L, 38613L, 37600L, 51552L, 55636L, 54432L, 55888L, 30034L, 22176L, 43959L, 9680L, 37584L, 51893L, 43344L, 46240L, 47780L, 44368L, 21977L, 19360L, 42416L, 86390L, 21168L, 43312L, 31060L, 27296L, 44368L, 23378L, 19296L, 42726L, 42208L, 53856L, 60005L, 54576L, 23200L, 30371L, 38608L, 19415L, 19152L, 42192L, 118966L, 53840L, 54560L, 56645L, 46496L, 22224L, 21938L, 18864L, 42359L, 42160L, 43600L, 111189L, 27936L, 44448L};
    private static final int yearDays(int y) {
        int sum = 348;
        for(int i = 32768; i > 8; i >>= 1) {
            if ((lunarInfo[y - 1900] & (long)i) != 0L) {
                ++sum;
            }
        }
        return sum + leapDays(y);
    }
    private static final int leapDays(int y) {
        if (leapMonth(y) != 0) {
            return (lunarInfo[y - 1900] & 65536L) != 0L ? 30 : 29;
        } else {
            return 0;
        }
    }
    private static final int leapMonth(int y) {
        return (int)(lunarInfo[y - 1900] & 15L);
    }
    private static final int monthDays(int y, int m) {
        return (lunarInfo[y - 1900] & (long)(65536 >> m)) == 0L ? 29 : 30;
    }
    public final String animalsYear() {
        String[] Animals = new String[]{"é¼ ", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪"};
        return Animals[(this.year - 4) % 12];
    }
    private static final String cyclicalm(int num) {
        String[] Gan = new String[]{"甲", "乙", "丙", "丁", "戊", "å·±", "庚", "辛", "壬", "癸"};
        String[] Zhi = new String[]{"子", "丑", "寅", "卯", "è¾°", "å·³", "午", "未", "申", "酉", "戌", "亥"};
        return Gan[num % 10] + Zhi[num % 12];
    }
    public final String cyclical() {
        int num = this.year - 1900 + 36;
        return cyclicalm(num);
    }
    public Lunar(Calendar cal) {
        //int leapMonth = false;
        Date baseDate = null;
        try {
            baseDate = chineseDateFormat.parse("1900å¹´1月31日");
        } catch (ParseException var12) {
            var12.printStackTrace();
        }
        int offset = (int)((cal.getTime().getTime() - baseDate.getTime()) / 86400000L);
        int dayCyl = offset + 40;
        int monCyl = 14;
        int daysOfYear = 0;
        int iYear;
        for(iYear = 1900; iYear < 2050 && offset > 0; ++iYear) {
            daysOfYear = yearDays(iYear);
            offset -= daysOfYear;
            monCyl += 12;
        }
        if (offset < 0) {
            offset += daysOfYear;
            --iYear;
            monCyl -= 12;
        }
        this.year = iYear;
        int yearCyl = iYear - 1864;
        int leapMonth = leapMonth(iYear);
        this.leap = false;
        int daysOfMonth = 0;
        int iMonth;
        for(iMonth = 1; iMonth < 13 && offset > 0; ++iMonth) {
            if (leapMonth > 0 && iMonth == leapMonth + 1 && !this.leap) {
                --iMonth;
                this.leap = true;
                daysOfMonth = leapDays(this.year);
            } else {
                daysOfMonth = monthDays(this.year, iMonth);
            }
            offset -= daysOfMonth;
            if (this.leap && iMonth == leapMonth + 1) {
                this.leap = false;
            }
            if (!this.leap) {
                ++monCyl;
            }
        }
        if (offset == 0 && leapMonth > 0 && iMonth == leapMonth + 1) {
            if (this.leap) {
                this.leap = false;
            } else {
                this.leap = true;
                --iMonth;
                --monCyl;
            }
        }
        if (offset < 0) {
            offset += daysOfMonth;
            --iMonth;
            --monCyl;
        }
        this.month = iMonth;
        this.day = offset + 1;
    }
    public static String getChinaDayString(int day) {
        String[] chineseTen = new String[]{"初", "十", "廿", "卅"};
        int n = day % 10 == 0 ? 9 : day % 10 - 1;
        if (day > 30) {
            return "";
        } else {
            return day == 10 ? "初十" : chineseTen[day / 10] + chineseNumber[n];
        }
    }
    @Override
    public String toString() {
        String m = chineseNumber[this.month - 1];
        if (m != null && m.trim().equals("一")) {
            m = "æ­£";
        }
        if (m != null && m.trim().equals("十一")) {
            m = "冬";
        }
        if (m != null && m.trim().equals("十二")) {
            m = "腊";
        }
        return this.year + this.cyclical() + this.animalsYear() + "å¹´" + (this.leap ? "闰" : "") + m + "月" + getChinaDayString(this.day);
    }
    public String getDate() {
        String m = chineseNumber[this.month - 1];
        if (m != null && m.trim().equals("一")) {
            m = "æ­£";
        }
        if (m != null && m.trim().equals("十一")) {
            m = "冬";
        }
        if (m != null && m.trim().equals("十二")) {
            m = "腊";
        }
        return this.animalsYear() + "å¹´" + (this.leap ? "闰" : "") + m + "月" + getChinaDayString(this.day);
    }
    public static void main(String[] args) throws ParseException {
        Calendar today = Calendar.getInstance();
        today.setTime(chineseDateFormat.parse("2013å¹´2月1日"));
        Lunar lunar = new Lunar(today);
        System.out.println(lunar.toString());
        System.out.println("北京时间:" + chineseDateFormat.format(today.getTime()) + " 农历" + lunar);
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/MessageUtils.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
package com.vci.ubcs.starter.web.util;
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
//package com.vci.starter.web.util;
import org.springframework.context.MessageSource;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.stereotype.Component;
@Component
public class MessageUtils {
    private static MessageSource messageSource;
    public MessageUtils(MessageSource messageSource) {
        MessageUtils.messageSource = messageSource;
    }
    public static String get(String msgKey) {
        try {
            return messageSource.getMessage(msgKey, (Object[])null, LocaleContextHolder.getLocale());
        } catch (Throwable var2) {
            return msgKey;
        }
    }
    public static String get(String msgKey, Object[] objects) {
        try {
            return messageSource.getMessage(msgKey, objects, LocaleContextHolder.getLocale());
        } catch (Throwable var3) {
            return msgKey;
        }
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciBaseUtil.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,1228 @@
package com.vci.ubcs.starter.web.util;
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.vci.ubcs.starter.exception.VciBaseException;
import com.vci.ubcs.starter.web.enumpck.BooleanEnum;
import com.vci.ubcs.starter.web.pagemodel.SessionInfo;
import com.vci.ubcs.starter.web.toolmodel.DateConverter;
import com.vci.ubcs.starter.web.wrapper.VciQueryWrapperForDO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ResourceUtils;
import java.beans.IntrospectionException;
import java.beans.PropertyDescriptor;
import java.io.File;
import java.io.IOException;
import java.lang.Character.UnicodeBlock;
import java.lang.annotation.Annotation;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
public class VciBaseUtil {
    private static Logger log = LoggerFactory.getLogger(VciBaseUtil.class);
    public static final String NOTIN = "not in";
    private static String localIp = null;
    public VciBaseUtil() {
    }
    public static String getPk() {
        return UUID.randomUUID().toString();
    }
    public static int getIntForBoolean(boolean b) {
        return b ? 1 : 0;
    }
    public static int getIntFromHibernateResult(Object obj) {
        if (obj == null) {
            return 0;
        } else if (obj instanceof BigDecimal) {
            return ((BigDecimal)obj).intValue();
        } else if (obj instanceof BigInteger) {
            return ((BigInteger)obj).intValue();
        } else if (obj instanceof Double) {
            return ((Double)obj).intValue();
        } else if (obj instanceof Long) {
            return ((Long)obj).intValue();
        } else if (obj instanceof Short) {
            return ((Short)obj).intValue();
        } else if (obj instanceof Float) {
            return ((Float)obj).intValue();
        } else if (obj instanceof String) {
            try {
                return Integer.valueOf(obj.toString());
            } catch (Exception var2) {
                return 0;
            }
        } else {
            return 0;
        }
    }
    public static long getLong(String s) {
        long l = 0L;
        if (s == null) {
            return 0L;
        } else {
            try {
                l = Long.parseLong(s);
                return l;
            } catch (Exception var4) {
                return 0L;
            }
        }
    }
    public static float getFloat(String s) {
        float f = 0.0F;
        if (s == null) {
            return 0.0F;
        } else {
            try {
                f = Float.parseFloat(s);
                return f;
            } catch (Exception var3) {
                return 0.0F;
            }
        }
    }
    public static int getInt(String string) {
        //int i = false;
        if (string != null && !"".equals(string.trim())) {
            if (string.contains(".")) {
                string = string.substring(0, string.indexOf("."));
            }
            try {
                int i = Integer.parseInt(string);
                return i;
            } catch (Exception var3) {
                return 0;
            }
        } else {
            return 0;
        }
    }
    public static double getDouble(String s) {
        double d = 0.0D;
        if (isNull(s)) {
            return 0.0D;
        } else {
            try {
                d = Double.parseDouble(s);
                return d;
            } catch (Exception var4) {
                return 0.0D;
            }
        }
    }
    public static boolean getBoolean(String s) {
        return BooleanEnum.TRUE.getValue().equals(s);
    }
    public static String removeComma(String s) {
        if (s != null && s.trim().length() != 0) {
            if (s.startsWith(",")) {
                s = s.substring(1, s.length());
            }
            if (s.endsWith(",")) {
                s = s.substring(0, s.length() - 1);
            }
            return s;
        } else {
            return s;
        }
    }
    public static String toInSql(String s) {
        s = removeComma(s);
        if (s != null && s.trim().length() != 0) {
            String[] temp = s.split(",");
            return toInSql(temp);
        } else {
            return "";
        }
    }
    public static String toInSql(String[] s) {
        if (s != null && s.length > 0) {
            StringBuilder sb = new StringBuilder();
            if (s != null && s.length > 0) {
                for(int i = 0; i < s.length; ++i) {
                    if (s[i] != null && s[i].trim().length() > 0 && !s[i].startsWith("'")) {
                        sb.append("'").append(s[i]).append("',");
                    }
                }
            }
            return removeComma(sb.toString());
        } else {
            return "";
        }
    }
    public static String toInSql(String field, String s) {
        return !StringUtils.isBlank(field) && !StringUtils.isBlank(s) ? toInSql(field, removeComma(s).split(","), "") : "";
    }
    public static String toInSql(String field, String[] s) {
        return toInSql(field, s, "in");
    }
    public static String toInSql(String field, String[] s, String operation) {
        if (!StringUtils.isBlank(field) && s != null && s.length != 0) {
            StringBuilder sb = new StringBuilder();
            if (s != null && s.length > 0) {
                String andOr = "or";
                if (operation.trim().toLowerCase().equals("not in")) {
                    andOr = "and";
                }
                for(int i = 0; i < s.length; ++i) {
                    if (s[i] != null && s[i].trim().length() > 0 && !s[i].startsWith("'")) {
                        if (i == 0) {
                            sb.append(field).append(" ").append(operation).append(" (");
                        }
                        if (i % 500 == 0 && i != 0) {
                            sb.append(" ").append(andOr).append(" ").append(field).append(" ").append(operation).append(" (");
                        }
                        sb.append("'").append(s[i]).append("'");
                        if (i % 500 != 499 && i != s.length - 1) {
                            sb.append(",");
                        }
                        if (i % 500 == 499 || i == s.length - 1) {
                            sb.append(") ");
                        }
                    }
                }
            }
            return sb.toString();
        } else {
            return "";
        }
    }
    /** @deprecated */
    @Deprecated
    public static String arrayToString(String[] array) {
        if (array != null && array.length > 0) {
            StringBuilder sb = new StringBuilder();
            for(int i = 0; i < array.length; ++i) {
                String record = array[i];
                if (StringUtils.isNotBlank(record)) {
                    sb.append(record).append(",");
                }
            }
            return removeComma(sb.toString());
        } else {
            return "";
        }
    }
    public static String collectionToString(Collection collection) {
        if (CollectionUtils.isEmpty(collection)) {
            return "";
        } else {
            StringBuilder sb = new StringBuilder();
            Iterator it = collection.iterator();
            while(true) {
                Object record;
                do {
                    do {
                        if (!it.hasNext()) {
                            return removeComma(sb.toString());
                        }
                        record = it.next();
                    } while(record == null);
                } while(record instanceof String && !StringUtils.isNotBlank((String)record));
                sb.append(record.toString()).append(",");
            }
        }
    }
    public static String toUpForFirst(String s) {
        if (s != null && s.trim().length() != 0) {
            String temp = s.substring(0, 1);
            temp = temp.toUpperCase();
            return temp + s.substring(1, s.length());
        } else {
            return "";
        }
    }
    public static String toLowForFirst(String s) {
        if (s != null && s.trim().length() != 0) {
            String temp = s.substring(0, 1);
            temp = temp.toLowerCase();
            return temp + s.substring(1, s.length());
        } else {
            return "";
        }
    }
    public static int countOfString(String s, char findC) {
        Map<String, Integer> charMap = new HashMap();
        char[] cs = s.toCharArray();
        char[] var4 = cs;
        int var5 = cs.length;
        for(int var6 = 0; var6 < var5; ++var6) {
            char c = var4[var6];
            charMap.put(String.valueOf(c), !charMap.containsKey(String.valueOf(c)) ? 1 : (Integer)charMap.get(String.valueOf(c)) + 1);
        }
        return (Integer)charMap.get(String.valueOf(findC));
    }
    public static List<String> str2List(String s) {
        if (isNull(s)) {
            return null;
        } else {
            List<String> l = new ArrayList();
            Collections.addAll(l, removeComma(s).split(","));
            return l;
        }
    }
    public static String list2String(List<String> ls) {
        return ls != null && ls.size() != 0 ? (String)ls.stream().collect(Collectors.joining(",")) : "";
    }
    public static boolean isNull(String o) {
        return StringUtils.isEmpty(o);
    }
    public static boolean isNotNull(String o) {
        return !isNull(o);
    }
    public static boolean isNullOrNullString(String o) {
        return StringUtils.isBlank(o);
    }
    public static boolean inArray(String[] arr, String s) {
        if (arr != null && s != null) {
            String[] var2 = arr;
            int var3 = arr.length;
            for(int var4 = 0; var4 < var3; ++var4) {
                String a = var2[var4];
                if (s.trim().equalsIgnoreCase(a)) {
                    return true;
                }
            }
        }
        return false;
    }
    public static boolean inArray(Object[] arr, Object o) {
        if (arr != null && o != null) {
            Object[] var2 = arr;
            int var3 = arr.length;
            for(int var4 = 0; var4 < var3; ++var4) {
                Object a = var2[var4];
                if (a.equals(o)) {
                    return true;
                }
            }
        }
        return false;
    }
    public static double round(double value, int scale, int roundingMode) {
        BigDecimal bd = new BigDecimal(value);
        bd = bd.setScale(scale, roundingMode);
        double d = bd.doubleValue();
        bd = null;
        return d;
    }
    public static double round(double value, int scale) {
        return round(value, scale, 4);
    }
    public static boolean isEmail(String string) {
        if (StringUtils.isBlank(string)) {
            return false;
        } else {
            String regEx1 = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
            Pattern p = Pattern.compile(regEx1);
            Matcher m = p.matcher(string);
            return m.matches();
        }
    }
    public static boolean isNumber(String s) {
        return StringUtils.isNotBlank(s) && s.matches("\\d+\\.?\\d*");
    }
    public static Field getFieldForObject(String fieldName, List<Field> fieldsList) {
        if (StringUtils.isBlank(fieldName)) {
            return null;
        } else {
            if (fieldsList != null && fieldsList.size() > 0) {
                Iterator var2 = fieldsList.iterator();
                while(var2.hasNext()) {
                    Field field = (Field)var2.next();
                    if (field.getName().toLowerCase().equals(fieldName.toLowerCase())) {
                        return field;
                    }
                }
            }
            return null;
        }
    }
    public static Method getSetmethod(Class c, String fieldName) {
        if (c != null && StringUtils.isNotBlank(fieldName)) {
            try {
                PropertyDescriptor pd = new PropertyDescriptor(fieldName, c);
                return pd.getWriteMethod();
            } catch (SecurityException var3) {
                if (log.isErrorEnabled()) {
                    log.error("获取getter出错", var3);
                }
            } catch (IntrospectionException var4) {
                if (log.isErrorEnabled()) {
                    log.error("获取getter出错", var4);
                }
            }
        }
        return null;
    }
    public static Method getGetmethod(Class c, String fieldName) {
        if (c != null && StringUtils.isNotBlank(fieldName)) {
            try {
                PropertyDescriptor pd = new PropertyDescriptor(fieldName, c);
                return pd.getReadMethod();
            } catch (SecurityException var3) {
                if (log.isErrorEnabled()) {
                    log.error("获取getter出错", var3);
                }
            } catch (IntrospectionException var4) {
                if (log.isErrorEnabled()) {
                    log.error("获取getter出错", var4);
                }
            }
        }
        return null;
    }
    public static String getColumnAnnotaionNameValue(Annotation[] fieldAnnotaions) {
        return getAnnotationValue("com.vci.starter.web.annotation.Column,javax.persistence.Column", "name", fieldAnnotaions);
    }
    public static String getAnnotationValue(String annotationName, String methodName, Annotation[] fieldAnnotaions) {
        String[] annotaionNameArray = annotationName.split(",");
        Annotation[] var4 = fieldAnnotaions;
        int var5 = fieldAnnotaions.length;
        for(int var6 = 0; var6 < var5; ++var6) {
            Annotation annotation = var4[var6];
            String anname = annotation.annotationType().getName();
            if (inArray(annotaionNameArray, anname)) {
                String name = null;
                try {
                    name = (String)annotation.getClass().getMethod(methodName).invoke(annotation);
                } catch (IllegalAccessException var11) {
                    var11.printStackTrace();
                } catch (InvocationTargetException var12) {
                    var12.printStackTrace();
                } catch (NoSuchMethodException var13) {
                    var13.printStackTrace();
                }
                return name;
            }
        }
        return null;
    }
    public static Object getValueFromField(String fieldName, Object sourceObject) {
        if (StringUtils.isNotBlank(fieldName)) {
            try {
                Method getMethod = getGetmethod(sourceObject.getClass(), fieldName);
                if (getMethod != null) {
                    return getMethod.invoke(sourceObject);
                }
                Field field = getFieldForObject(fieldName, sourceObject);
                if (field != null) {
                    field.setAccessible(true);
                    return field.get(sourceObject);
                }
            } catch (SecurityException var4) {
                if (log.isErrorEnabled()) {
                    log.error("从属性上获取值", var4);
                }
            } catch (IllegalAccessException var5) {
                if (log.isErrorEnabled()) {
                    log.error("从属性上获取值", var5);
                }
            } catch (IllegalArgumentException var6) {
                if (log.isErrorEnabled()) {
                    log.error("从属性上获取值", var6);
                }
            } catch (InvocationTargetException var7) {
                if (log.isErrorEnabled()) {
                    log.error("从属性上获取值", var7);
                }
            }
        }
        return null;
    }
    public static void setValueForMethod(Field field, Object obj, Object value) {
        try {
            if (field != null) {
                field.setAccessible(true);
                Method setMethod = getSetmethod(field.getDeclaringClass(), field.getName());
                setMethod.invoke(obj, value);
            }
        } catch (Exception var4) {
            log.error("反射调用方法出现了错误,", var4);
        }
    }
    public static void alertNotNull(Object... s) throws VciBaseException {
        if (s != null && s.length > 0) {
            for(int i = 0; i < s.length; ++i) {
                Object obj = s[i];
                String param = "";
                try {
                    ++i;
                    param = s[i].toString();
                } catch (Exception var5) {
                }
                if (obj == null) {
                    throw new VciBaseException("参数[{0}]不能为空", new String[]{param});
                }
                if (obj instanceof Collection) {
                    if (CollectionUtils.isEmpty((Collection)obj)) {
                        throw new VciBaseException("参数[{0}]不能为空", new String[]{param});
                    }
                } else if (StringUtils.isBlank(obj.toString())) {
                    throw new VciBaseException("参数[{0}]不能为空", new String[]{param});
                }
            }
        }
    }
    /** @deprecated */
    @Deprecated
    public static void alertCollectionNotNull(String param, Collection collections) throws VciBaseException {
        if (CollectionUtils.isEmpty(collections)) {
            throw new VciBaseException("参数{0}不能为空", new String[]{param});
        }
    }
    public static <T> Set<Set<T>> switchSetForOracleIn(Set<T> set) {
        Set<Set<T>> listHasList = new HashSet();
        if (set == null) {
            return listHasList;
        } else {
            int muti = 1;
            if (set.size() > 500) {
                int balance = set.size() % 500;
                muti = (set.size() - balance) / 500 + (balance == 0 ? 0 : 1);
            }
            List list = new ArrayList();
            Iterator it = set.iterator();
            while(it.hasNext()) {
                list.add(it.next());
            }
            for(int i = 0; i < muti; ++i) {
                int start = i * 500;
                int end = start + 500;
                if (i == muti - 1 || end > set.size()) {
                    end = set.size();
                }
                List subList = list.subList(start, end);
                Set subSet = new HashSet();
                Iterator var10 = subList.iterator();
                while(var10.hasNext()) {
                    Object obj = var10.next();
                    subSet.add(obj);
                }
                listHasList.add(subSet);
            }
            return listHasList;
        }
    }
    public static <T> Vector<Vector<T>> switchVectorForOracleIn(Vector<T> vector) {
        Vector<Vector<T>> listHasList = new Vector();
        if (vector == null) {
            return listHasList;
        } else {
            int muti = 1;
            if (vector.size() > 500) {
                int balance = vector.size() % 500;
                muti = (vector.size() - balance) / 500 + (balance == 0 ? 0 : 1);
            }
            List list = new ArrayList();
            Iterator it = vector.iterator();
            while(it.hasNext()) {
                list.add(it.next());
            }
            for(int i = 0; i < muti; ++i) {
                int start = i * 500;
                int end = start + 500;
                if (i == muti - 1 || end > vector.size()) {
                    end = vector.size();
                }
                List subList = list.subList(start, end);
                Vector subSet = new Vector();
                Iterator var10 = subList.iterator();
                while(var10.hasNext()) {
                    Object obj = var10.next();
                    subSet.add(obj);
                }
                listHasList.add(subSet);
            }
            return listHasList;
        }
    }
    public static <T> T jsonString2JavaBean(String jsonString, Class<T> beanClass) {
        return JSONObject.parseObject(jsonString, beanClass);
    }
    public static void ifNullSetDefautl(String str, String defaultValue) {
        if (isNull(str)) {
            ;
        }
    }
    public static <T> T getFristObjectFromJson(String jsonString, Class<T> beanClass) {
        return !isNull(jsonString) ? JSONObject.parseArray(jsonString, beanClass).get(0) : null;
    }
    public static String getJSONStringWithDateFormat(Object obj) {
        return JSONObject.toJSONStringWithDateFormat(obj, "yyyy-MM-dd HH:mm:ss.SSS", new SerializerFeature[]{SerializerFeature.WriteDateUseDateFormat});
    }
    public static Map<String, Object> objectToMap(Object o) {
        Map<String, Object> map = new HashMap();
        if (o != null) {
            String jsonString = JSONObject.toJSONStringWithDateFormat(o, "yyyy-MM-dd HH:mm:ss.SSS", new SerializerFeature[]{SerializerFeature.WriteDateUseDateFormat});
            if (StringUtils.isNotBlank(jsonString)) {
                JSONObject jsonObject = JSONObject.parseObject(jsonString);
                if (jsonObject != null) {
                    Iterator var4 = jsonObject.keySet().iterator();
                    while(var4.hasNext()) {
                        String key = (String)var4.next();
                        map.put(key, jsonObject.get(key));
                    }
                }
            }
        }
        return map;
    }
    public static Map<String, String> objectToMapString(Object o) {
        Map<String, String> map = new HashMap();
        if (o != null) {
            String jsonString = JSONObject.toJSONStringWithDateFormat(o, "yyyy-MM-dd HH:mm:ss.SSS", new SerializerFeature[]{SerializerFeature.WriteDateUseDateFormat});
            if (StringUtils.isNotBlank(jsonString)) {
                JSONObject jsonObject = JSONObject.parseObject(jsonString);
                if (jsonObject != null) {
                    Iterator var4 = jsonObject.keySet().iterator();
                    while(var4.hasNext()) {
                        String key = (String)var4.next();
                        map.put(key, jsonObject.getString(key));
                    }
                }
            }
        }
        return map;
    }
    public static boolean isNotNullForField(Object obj, Field f) {
        return !"serialVersionUID".equalsIgnoreCase(f.getName()) && !"DEFAULT_INITIAL_CAPACITY".equalsIgnoreCase(f.getName()) && null != obj && !isNullOrNullString(obj.toString());
    }
    public static String array2String(String[] array) {
        if (null != array && array.length != 0) {
            String ss = "";
            String[] var2 = array;
            int var3 = array.length;
            for(int var4 = 0; var4 < var3; ++var4) {
                String s = var2[var4];
                ss = ss + s + ",";
            }
            return removeComma(ss);
        } else {
            return "";
        }
    }
    public static void copyValueForMap(Map source, Map target, String[] copyField) {
        Map<String, String> copyFieldMap = new HashMap();
        String[] var4 = copyField;
        int var5 = copyField.length;
        for(int var6 = 0; var6 < var5; ++var6) {
            String field = var4[var6];
            copyFieldMap.put(field, field);
        }
        copyValueForMap(source, target, (Map)copyFieldMap);
    }
    public static void copyValueForMap(Map source, Map target, Map<String, String> copyField) {
        try {
            Iterator it = copyField.keySet().iterator();
            while(it.hasNext()) {
                String field = (String)it.next();
                target.put(field, source.get(copyField.get(field)));
            }
        } catch (Exception var5) {
        }
    }
    public static Double getDoubleFromMap(String field, Map<String, Object> record) {
        if (!isNullOrNullString(field) && record != null && record.containsKey(field)) {
            Object v = record.get(field);
            if (v instanceof BigDecimal) {
                return ((BigDecimal)v).doubleValue();
            } else {
                return v instanceof Double ? (Double)v : getDouble((String)v);
            }
        } else {
            return null;
        }
    }
    public static String getDataByKey(String key, Map<String, Object> data) {
        String value = "";
        if (data.containsKey(key)) {
            value = (String)data.get(key);
        }
        if (value == null) {
            value = "";
        }
        return value;
    }
    public static Map getNotNullMap(Map map) {
        if (map == null) {
            return new HashMap();
        } else {
            Iterator it = map.keySet().iterator();
            HashMap unNullMap = new HashMap();
            while(true) {
                while(true) {
                    String newKey;
                    Object value;
                    do {
                        if (!it.hasNext()) {
                            return unNullMap;
                        }
                        Object key = it.next();
                        newKey = key.toString().toLowerCase();
                        value = map.get(key);
                    } while(value == null);
                    if (value instanceof String && isNotNull(value.toString())) {
                        unNullMap.put(newKey, value);
                    } else if (!(value instanceof String)) {
                        unNullMap.put(newKey, value);
                    }
                }
            }
        }
    }
    public static List<Field> getAllFieldForObj(Class c) {
        List<Field> allField = new ArrayList();
        Set<String> fieldNameSet = new HashSet();
        for(Class classz = c; classz != Object.class; classz = classz.getSuperclass()) {
            Field[] thisClassField = classz.getDeclaredFields();
            Field[] var5 = thisClassField;
            int var6 = thisClassField.length;
            for(int var7 = 0; var7 < var6; ++var7) {
                Field field = var5[var7];
                if (!field.getName().equals("serialVersionUID")) {
                    String fieldLowerName = field.getName().toLowerCase();
                    if (!fieldNameSet.contains(fieldLowerName)) {
                        fieldNameSet.add(fieldLowerName);
                        allField.add(field);
                    }
                }
            }
        }
        return allField;
    }
    public static String getTableName(String btmname) {
        return (VciQueryWrapperForDO.USER_TABLE_COMPATIBILITY ? "pl_code_" : "vcibt_") + btmname.trim().toLowerCase();
    }
    public static Field getTsField(Class c) {
        List<Field> allField = getAllFieldForObj(c);
        if (allField != null && allField.size() > 0) {
            Iterator var2 = allField.iterator();
            while(var2.hasNext()) {
                Field field = (Field)var2.next();
                if (field.getName().equals("ts")) {
                    return field;
                }
            }
        }
        return null;
    }
    public static Field getFieldForObject(String fieldName, Object obj) {
        return obj == null ? null : getFieldForObject(fieldName, obj.getClass());
    }
    public static Field getFieldForObject(String fieldName, Class c) {
        List<Field> allField = getAllFieldForObj(c);
        if (allField != null && allField.size() > 0) {
            Iterator var3 = allField.iterator();
            while(var3.hasNext()) {
                Field field = (Field)var3.next();
                if (field.getName().toLowerCase().equalsIgnoreCase(fieldName.toLowerCase())) {
                    return field;
                }
            }
        }
        return null;
    }
    public static Method getSetmethod(Class c, Field field) {
        return getSetmethod(c, field.getName());
    }
    public static Method getGetmethod(Class c, Field field) {
        return getGetmethod(c, field.getName());
    }
    public static Method getMethodByName(Class<?> classObj, String methodName) {
        alertNotNull(classObj, "获取方法的对象所属的类", methodName, "方法的名字");
        Method[] methods = classObj.getMethods();
        List<Method> sameMethods = (List)Arrays.stream(methods).filter((method) -> {
            return method.getName().equalsIgnoreCase(methodName);
        }).collect(Collectors.toList());
        return !CollectionUtils.isEmpty(sameMethods) ? (Method)sameMethods.get(0) : null;
    }
    public static Map<String, String> whereSql2Map(String whereSql) {
        Map<String, String> map = new HashMap();
        if (isNotNull(whereSql)) {
            String[] selects = whereSql.split("and");
            if (selects != null && selects.length > 0) {
                String[] var3 = selects;
                int var4 = selects.length;
                for(int var5 = 0; var5 < var4; ++var5) {
                    String s = var3[var5];
                    s = s.trim();
                    map.put(s.substring(0, s.indexOf(" ")).trim(), s.substring(s.indexOf(" ") + 1).trim());
                }
            }
        }
        return map;
    }
    public static synchronized String getRoundFilename(String prefix) {
        if (prefix == null) {
            prefix = "";
        }
        return prefix + System.currentTimeMillis();
    }
    public static String getLocalIp() {
        if (localIp == null) {
            try {
                InetAddress inetAddress = getLocalHostLANAddress();
                if (inetAddress == null) {
                    localIp = "127.0.0.1";
                } else {
                    localIp = inetAddress.getHostAddress();
                }
            } catch (Exception var1) {
                localIp = "127.0.0.1";
            }
        }
        return localIp;
    }
    private static InetAddress getLocalHostLANAddress() throws Exception {
        try {
            InetAddress candidateAddress = null;
            Enumeration ifaces = NetworkInterface.getNetworkInterfaces();
            while(ifaces.hasMoreElements()) {
                NetworkInterface iface = (NetworkInterface)ifaces.nextElement();
                Enumeration inetAddrs = iface.getInetAddresses();
                while(inetAddrs.hasMoreElements()) {
                    InetAddress inetAddr = (InetAddress)inetAddrs.nextElement();
                    if (!inetAddr.isLoopbackAddress()) {
                        if (inetAddr.isSiteLocalAddress()) {
                            return inetAddr;
                        }
                        if (candidateAddress == null) {
                            candidateAddress = inetAddr;
                        }
                    }
                }
            }
            if (candidateAddress != null) {
                return candidateAddress;
            } else {
                InetAddress jdkSuppliedAddress = InetAddress.getLocalHost();
                return jdkSuppliedAddress;
            }
        } catch (Exception var5) {
            var5.printStackTrace();
            return null;
        }
    }
    public static String getProjectPath() {
        String path = "";
        try {
            String jarFilePath = ResourceUtils.getURL("classpath:").getPath();
            if (jarFilePath.contains("!")) {
                path = (new File(jarFilePath)).getParentFile().getParentFile().getParent();
            } else {
                path = (new File(jarFilePath)).getParent();
            }
        } catch (IOException var2) {
            throw new VciBaseException("获取当前服务所在的文件夹出现了错误");
        }
        if (path.startsWith("file:\\")) {
            path = path.substring(6);
        }
        return path;
    }
    public static Map<String, String> getParamsByUrl(String url) {
        if (StringUtils.isBlank(url)) {
            return new HashMap();
        } else {
            String[] array = url.split("&");
            Map<String, String> params = new HashMap();
            String[] var3 = array;
            int var4 = array.length;
            for(int var5 = 0; var5 < var4; ++var5) {
                String temp = var3[var5];
                if (temp.contains("=")) {
                    String[] keyValues = temp.split("=");
                    params.put(keyValues[0], keyValues[1]);
                } else {
                    params.put(temp, "");
                }
            }
            return params;
        }
    }
    public static boolean isChinese(char c) {
        UnicodeBlock ub = UnicodeBlock.of(c);
        return ub == UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS || ub == UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS || ub == UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A || ub == UnicodeBlock.GENERAL_PUNCTUATION || ub == UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION || ub == UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS;
    }
    public static boolean containsKeyUnCaseForMap(Map map, String key) {
        if (!CollectionUtils.isEmpty(map)) {
            boolean[] finded = new boolean[]{false};
            map.forEach((k, value) -> {
                if (k instanceof String && k.toString().toLowerCase(Locale.ROOT).equalsIgnoreCase(key)) {
                    finded[0] = true;
                }
            });
            return finded[0];
        } else {
            return false;
        }
    }
    public static boolean isChinese(String str) {
        char[] ch = str.toCharArray();
        char[] var2 = ch;
        int var3 = ch.length;
        for(int var4 = 0; var4 < var3; ++var4) {
            char c = var2[var4];
            if (isChinese(c)) {
                return true;
            }
        }
        return false;
    }
    public static String toDBC(String input) {
        if (StringUtils.isBlank(input)) {
            return input;
        } else {
            char[] c = input.toCharArray();
            for(int i = 0; i < c.length; ++i) {
                if (c[i] == 12288) {
                    c[i] = ' ';
                } else if (c[i] > '\uff00' && c[i] < '⦅') {
                    c[i] -= 'ï» ';
                }
            }
            return new String(c);
        }
    }
    public static String toSBC(String input) {
        if (StringUtils.isBlank(input)) {
            return input;
        } else {
            char[] c = input.toCharArray();
            for(int i = 0; i < c.length; ++i) {
                if (c[i] == 12288) {
                    c[i] = ' ';
                } else if (c[i] > '\uff00' && c[i] < '⦅') {
                    c[i] += 'ï» ';
                }
            }
            return new String(c);
        }
    }
    public static String getStringValueFromObject(Object obj) {
        if (obj == null) {
            return "";
        } else if (!(obj instanceof Integer) && !(obj instanceof Float) && !(obj instanceof Long) && !(obj instanceof Double)) {
            return obj instanceof Date ? VciDateUtil.date2Str((Date)obj, "yyyy-MM-dd HH:mm:ss.SSS") : obj.toString();
        } else {
            if (obj instanceof Double) {
                Double aDouble = (Double)obj;
                if (aDouble != null && aDouble % 1.0D == 0.0D) {
                    return String.valueOf(aDouble.intValue());
                }
            }
            return String.valueOf(obj);
        }
    }
    public static SessionInfo getCurrentUserSessionInfoNotException() {
        return (SessionInfo) WebThreadLocalUtil.getCurrentUserSessionInfoInThread().get();
    }
    public static <T> Collection<Collection<T>> switchCollectionForOracleIn(Collection<T> list) {
        return switchCollectionForOracleIn(list, 500);
    }
    public static <T> Collection<Collection<T>> switchCollectionForOracleIn(Collection<T> collection, int preSize) {
        Collection<Collection<T>> listHasList = new ArrayList();
        if (collection == null) {
            return listHasList;
        } else {
            List<T> newList = new ArrayList();
            Iterator var4 = collection.iterator();
            while(var4.hasNext()) {
                Object obj = var4.next();
                newList.add((T) obj);
            }
            int muti = 1;
            int i;
            if (newList.size() > preSize) {
                i = newList.size() % preSize;
                muti = (newList.size() - i) / preSize + (i == 0 ? 0 : 1);
            }
            for(i = 0; i < muti; ++i) {
                int start = i * preSize;
                int end = start + preSize;
                if (i == muti - 1 || end > newList.size()) {
                    end = newList.size();
                }
                List subList = newList.subList(start, end);
                listHasList.add(subList);
            }
            return listHasList;
        }
    }
    public static short getShort(String s) {
//        short i = false;
        if (s == null) {
            return 0;
        } else {
            try {
                short i = Short.parseShort(s);
                return i;
            } catch (Exception var3) {
                return 0;
            }
        }
    }
    public static void setValueForField(Field field, Object obj, String value) {
        try {
            if (field != null && StringUtils.isNotBlank(value)) {
                field.setAccessible(true);
                Method setMethod = getSetmethod(field.getDeclaringClass(), field.getName());
                Class type = field.getType();
                Object valueObj = null;
                if (!type.equals(Integer.TYPE) && !type.equals(Integer.class)) {
                    if (!type.equals(Float.TYPE) && !type.equals(Float.class)) {
                        if (!type.equals(Long.TYPE) && !type.equals(Long.class)) {
                            if (!type.equals(Double.class) && !type.equals(Double.TYPE)) {
                                if (type.equals(Date.class)) {
                                    DateConverter dateConverter = new DateConverter();
                                    dateConverter.setAsText(value);
                                    valueObj = dateConverter.getValue();
                                } else if (type.equals(String.class)) {
                                    valueObj = value;
                                } else {
                                    valueObj = value;
                                    if (log.isErrorEnabled()) {
                                        log.error("不支持的类型" + type.toString());
                                    }
                                }
                            } else {
                                valueObj = getDouble(value);
                            }
                        } else {
                            valueObj = getLong(value);
                        }
                    } else {
                        valueObj = getFloat(value);
                    }
                } else {
                    valueObj = getInt(value);
                }
                if (setMethod != null) {
                    setMethod.invoke(obj, valueObj);
                } else {
                    field.set(obj, valueObj);
                }
            }
        } catch (Throwable var7) {
            if (log.isErrorEnabled()) {
                log.error("设置属性的值出错了错误", var7);
            }
        }
    }
    public static void setValueForField(String fieldName, Object obj, String value) {
        try {
            Field field = getFieldForObject(fieldName, obj);
            if (field != null) {
                setValueForField(field, obj, value);
            }
        } catch (Exception var4) {
            if (log.isErrorEnabled()) {
                log.error("设置属性的值出错了错误", var4);
            }
        }
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciDateUtil.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,638 @@
package com.vci.ubcs.starter.web.util;
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
public class VciDateUtil {
    private static final String DEFAULT_FORMAT = "yyyy-MM-dd HH:mm:ss.SSS";
    public static final String DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
    public static final String DateTimeFormatStr = "yyyyMMddHHmmss";
    public static final String DateTimeMillFormatStr = "yyyyMMddHHmmssSSS";
    public static final String DateTimeMillFormat = "yyyy-MM-dd HH:mm:ss.SSS";
    public static final String DateFormat = "yyyy-MM-dd";
    public static final String TimeFormat = "HH:mm:ss";
    private VciDateUtil() {
    }
    public static Date str2Date(String str, String format) throws Exception {
        if (null != str && !"".equals(str) && !str.equals("null")) {
            if (null == format || "".equals(format) || format.equals("null")) {
                format = "yyyy-MM-dd HH:mm:ss.SSS";
            }
            SimpleDateFormat sdf = new SimpleDateFormat(format);
            Date date = null;
            try {
                date = sdf.parse(str);
                return date;
            } catch (ParseException var5) {
                throw new Exception(var5);
            }
        } else {
            return null;
        }
    }
    public static Date getCurrentMonday() {
        return getCurrentWeekDay(2);
    }
    public static Date getCurrentWeekDay(int dayOfWeek) {
        if (dayOfWeek > 7) {
            dayOfWeek = 7;
        }
        if (dayOfWeek < 1) {
            dayOfWeek = 1;
        }
        Date date = new Date();
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.set(7, dayOfWeek);
        calendar.set(11, 0);
        calendar.set(12, 0);
        calendar.set(13, 0);
        calendar.set(14, 0);
        return calendar.getTime();
    }
    public static Date getCurrentFriday() {
        return getCurrentWeekDay(6);
    }
    public static String date2Str(Date date, String format) {
        if (null == date) {
            return null;
        } else {
            if (format == null || format.trim().length() == 0) {
                format = "yyyy-MM-dd HH:mm:ss.SSS";
            }
            SimpleDateFormat sdf = new SimpleDateFormat(format);
            return sdf.format(date);
        }
    }
    public static String timestamp2Str(Timestamp time) {
        Date date = null;
        if (null == time) {
            return null;
        } else {
            if (null != time) {
                date = new Date(time.getTime());
            }
            return date2Str(date, "yyyy-MM-dd HH:mm:ss.SSS");
        }
    }
    public static Timestamp str2Timestamp(String str) throws Exception {
        if (str != null && str.trim().length() != 0) {
            Date date = str2Date(str, "yyyy-MM-dd HH:mm:ss.SSS");
            return new Timestamp(date.getTime());
        } else {
            return null;
        }
    }
    public static String compareDate(String date, String date1) throws Exception {
        if (date != null && date.trim().length() != 0 && date1 != null && date1.trim().length() != 0) {
            try {
                long time = str2Date(date, "yyyy-MM-dd").getTime();
                long time1 = str2Date(date1, "yyyy-MM-dd").getTime();
                if (time == time1) {
                    return "=";
                } else if (time < time1) {
                    return "<";
                } else {
                    return time > time1 ? ">" : "";
                }
            } catch (Exception var6) {
                throw var6;
            }
        } else {
            throw new Exception("传入compareDate的参数为空");
        }
    }
    public static String compareDate(Date date, Date date1) {
        if (date != null && date1 != null) {
            long time = date.getTime();
            long time1 = date1.getTime();
            if (time == time1) {
                return "=";
            } else if (time < time1) {
                return "<";
            } else {
                return time > time1 ? ">" : "";
            }
        } else {
            return "";
        }
    }
    public static String dateTimeAddMinutes(String date, int minute) throws Exception {
        String ret = "";
        if (date == null || date.equals("")) {
            date = date2Str(getNow(), "yyyy-MM-dd HH:mm:ss.SSS");
        }
        if (minute == 0) {
            return date;
        } else {
            Date d = str2Date(date, "yyyy-MM-dd HH:mm:ss");
            Calendar cal = Calendar.getInstance();
            cal.setTime(d);
            cal.add(12, minute);
            return date2Str(cal.getTime(), "yyyy-MM-dd HH:mm:ss");
        }
    }
    public static Date getDateAddDay(String date, int dayCount) throws Exception {
        if (date != null && !date.equals("") && !date.equals("null")) {
            if (dayCount == 0) {
                return str2Date(date, "yyyy-MM-dd");
            } else {
                Date d = str2Date(date, "yyyy-MM-dd");
                Calendar cal = Calendar.getInstance();
                cal.setTime(d);
                cal.add(5, dayCount);
                return cal.getTime();
            }
        } else {
            return getNow();
        }
    }
    public static Date getDateAddDay(Date date, int dayCount) {
        if (dayCount == 0) {
            return date;
        } else {
            Calendar cal = Calendar.getInstance();
            cal.setTime(date);
            cal.add(5, dayCount);
            return cal.getTime();
        }
    }
    public static long getDaySub(String beginDateStr, String endDateStr) {
        if (beginDateStr != null && !beginDateStr.trim().equals("") && endDateStr != null && !endDateStr.trim().equals("")) {
            long day = 0L;
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            try {
                Date beginDate = format.parse(beginDateStr);
                Date endDate = format.parse(endDateStr);
                day = (endDate.getTime() - beginDate.getTime()) / 86400000L;
            } catch (ParseException var8) {
                var8.printStackTrace();
            }
            return day;
        } else {
            return 0L;
        }
    }
    public static long getDaySub(Date date, Date date1) {
        return (date.getTime() - date1.getTime()) / 86400000L;
    }
    public static Date addOrSubDate(Date d, int addDayType, int addCount) {
        Calendar cal = Calendar.getInstance();
        cal.setTime(d);
        cal.add(addDayType, addCount);
        return cal.getTime();
    }
    public static Date getNow() {
        return new Date();
    }
    public static String getNowString() {
        return getNowString("yyyy-MM-dd HH:mm:ss.SSS");
    }
    public static String getNowString(String simpleDateFormat) {
        Date currentTime = new Date();
        SimpleDateFormat formatter = new SimpleDateFormat(simpleDateFormat);
        return formatter.format(currentTime);
    }
    public static Date getNow(String simpleDateFormat) throws Exception {
        return str2Date(getNowString(simpleDateFormat), simpleDateFormat);
    }
    public static String getCountdown(String oldtime, String newTime) {
        if (oldtime != null && !oldtime.trim().equals("") && newTime != null && !newTime.equals("")) {
            try {
                Date date1 = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).parse(oldtime);
                Date date2 = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).parse(newTime);
                long l = date1.getTime() - date2.getTime() > 0L ? date1.getTime() - date2.getTime() : date2.getTime() - date1.getTime();
                long d = 0L;
                long yushu = l;
                long h = 0L;
                long m = 0L;
                if (l > 86400000L) {
                    yushu = l % 86400000L;
                    d = (l - yushu) / 86400000L;
                }
                if (yushu > 3600000L) {
                    h = (yushu - yushu % 3600000L) / 3600000L;
                    yushu %= 3600000L;
                }
                if (yushu > 60000L) {
                    m = (yushu - yushu % 60000L) / 60000L;
                }
                return date1.getTime() - date2.getTime() < 0L ? "已经超期" + d + "天" + h + "小时" + m + "分" : "还剩下" + d + "天" + h + "小时" + m + "分";
            } catch (Exception var14) {
                return "";
            }
        } else {
            return "";
        }
    }
    public static long getDateDiffer(String oldTime, String newTime) {
        if (oldTime != null && !oldTime.trim().equals("") && newTime != null && !newTime.equals("")) {
            try {
                Date date1 = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).parse(oldTime);
                Date date2 = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).parse(newTime);
                return date1.getTime() - date2.getTime();
            } catch (Exception var4) {
                return 0L;
            }
        } else {
            return 0L;
        }
    }
    public static int getWeeks(int year) {
        if (year == 0) {
            return year;
        } else {
            //int week = false;
            int days = 365;
            if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0) {
                days = 366;
            }
            int week = days / 7;
            return week;
        }
    }
    public static int getWeekOnDate(Date date) {
        GregorianCalendar g = new GregorianCalendar();
        g.setTime(date);
        return isSunday(date) ? g.get(3) - 1 : g.get(3);
    }
    public static Calendar getCalendarFromWeek(String year, int week) throws Exception {
        Date newDate = str2Date(year + "-01-01", "yyyy-MM-dd");
        Calendar caleNew = Calendar.getInstance();
        caleNew.setTime(newDate);
        caleNew.add(3, week - 1);
        return caleNew;
    }
    public static String[] getDaysInWeek(int year, int week) {
        String[] thisWeek = new String[7];
        try {
            GregorianCalendar gc = (GregorianCalendar)getCalendarFromWeek(year + "-01-01", week);
            for(int i = 0; i < 7; ++i) {
                Calendar myCale = Calendar.getInstance();
                myCale.setTime(gc.getTime());
                myCale.set(5, gc.get(5) - gc.get(7) + i + 2);
                thisWeek[i] = date2Str(myCale.getTime(), "yyyy-MM-dd");
            }
        } catch (Exception var6) {
            System.out.println(var6.getMessage());
        }
        return thisWeek;
    }
    public static boolean isSunday() {
        return isSunday(new Date());
    }
    public static boolean isSunday(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        int week = calendar.get(7) - 1;
        return week == 0;
    }
    public static boolean isWeekend(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        int week = calendar.get(7) - 1;
        return week == 0 || week == 1;
    }
    public static boolean isFriday(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        int week = calendar.get(7) - 1;
        return week == 5;
    }
    public static boolean isMouthEnd(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        int dayOfMonth = calendar.get(5);
        int endMonth = calendar.getActualMaximum(5);
        return endMonth == dayOfMonth;
    }
    public static boolean isSeasonEnd(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        int y = calendar.get(2) + 1;
        int d = calendar.get(5);
        if (y == 3 && d == 31) {
            return true;
        } else if (y == 6 && d == 30) {
            return true;
        } else if (y == 9 && d == 30) {
            return true;
        } else {
            return y == 12 && d == 31;
        }
    }
    public static boolean isYearEnd(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        int y = calendar.get(2) + 1;
        int d = calendar.get(5);
        return y == 12 && d == 31;
    }
    public static Long getProcessedTime(Date newDate, Date startDate) {
        try {
            Long p = newDate.getTime() - startDate.getTime();
            return p;
        } catch (Exception var3) {
            return 0L;
        }
    }
    public static String getProcessedTime(Date startDate) {
        return getProcessedTime(new Date(), startDate) + "ms";
    }
    public static String getCurrentYear() {
        Calendar c = Calendar.getInstance();
        return String.valueOf(c.get(1) + 1900);
    }
    public static String getCurrentYearStart() {
        return getCurrentYear() + "-01-01 00:00:00";
    }
    public static String getCurrentYearEnd() {
        return getCurrentYear() + "-12-31 23:59:59";
    }
    public static String getCurrentQuarter() {
        String currentMouth = getCurrentMouth();
        int currentMouthInt = getInt(currentMouth);
        if (currentMouthInt > 0 && currentMouthInt <= 3) {
            return "1";
        } else if (currentMouthInt > 3 && currentMouthInt <= 6) {
            return "2";
        } else {
            return currentMouthInt > 6 && currentMouthInt <= 9 ? "3" : "4";
        }
    }
    private static int getInt(String s) {
        try {
            return Integer.valueOf(s);
        } catch (Exception var2) {
            return 0;
        }
    }
    public static String getCurrentQuarterStart() {
        String currentQuarter = getCurrentQuarter();
        if ("1".equalsIgnoreCase(currentQuarter)) {
            return getCurrentYearStart();
        } else if ("2".equalsIgnoreCase(currentQuarter)) {
            return getCurrentYear() + "-04-01 00:00:00";
        } else {
            return "3".equalsIgnoreCase(currentQuarter) ? getCurrentYear() + "-07-01 00:00:00" : getCurrentYear() + "-10-01 00:00:00";
        }
    }
    public static String getCurrentQuarterEnd() {
        String currentQuarter = getCurrentQuarter();
        if ("1".equalsIgnoreCase(currentQuarter)) {
            return getCurrentYear() + "-03-31 23:59:59";
        } else if ("2".equalsIgnoreCase(currentQuarter)) {
            return getCurrentYear() + "-06-30 23:59:59";
        } else {
            return "3".equalsIgnoreCase(currentQuarter) ? getCurrentYear() + "-09-30 23:59:59" : getCurrentYear() + "-12-31 23:59:59";
        }
    }
    public static String getCurrentMouth() {
        Calendar cal = Calendar.getInstance();
        cal.setTime(getNow());
        int m = cal.get(2);
        return m < 10 ? "0" + String.valueOf(m) : String.valueOf(m);
    }
    public static String getCurrentMouthStart() {
        String currentMouth = getCurrentMouth();
        return getCurrentYear() + "-" + currentMouth + "-01 00:00:00";
    }
    public static String getCurrentMouthEnd() {
        String currentMouth = getCurrentMouth();
        int currentMouthInt = getInt(currentMouth);
        if (currentMouthInt != 1 && currentMouthInt != 3 && currentMouthInt != 5 && currentMouthInt != 7 && currentMouthInt != 8 && currentMouthInt != 10 && currentMouthInt != 12) {
            if (currentMouthInt == 2) {
                return isLeapYear(getInt(getCurrentYear())) ? getCurrentYear() + "-" + currentMouth + "-29 23:59:59" : getCurrentYear() + "-" + currentMouth + "-28 23:59:59";
            } else {
                return getCurrentYear() + "-" + currentMouth + "-30 23:59:59";
            }
        } else {
            return getCurrentYear() + "-" + currentMouth + "-31 23:59:59";
        }
    }
    public static boolean isLeapYear(int year) {
        return year % 4 == 0 && year % 100 != 0 || year % 400 == 0;
    }
    public static String getCurrentDay() {
        Calendar cal = Calendar.getInstance();
        cal.setTime(getNow());
        int day = cal.get(5);
        return day < 10 ? "0" + String.valueOf(day) : String.valueOf(day);
    }
    public static String getCurrentDayStart() {
        return LocalDateTime.of(LocalDateTime.now().toLocalDate(), LocalTime.MIN).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
    }
    public static String getCurrentDayEnd() {
        return LocalDateTime.of(LocalDateTime.now().toLocalDate(), LocalTime.MAX).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
    }
    public static List<Date> getDateInRange(Date dBegin, Date dEnd) {
        List lDate = new ArrayList();
        lDate.add(dBegin);
        Calendar calBegin = Calendar.getInstance();
        calBegin.setTime(dBegin);
        Calendar calEnd = Calendar.getInstance();
        calEnd.setTime(dEnd);
        while(dEnd.after(calBegin.getTime())) {
            calBegin.add(5, 1);
            lDate.add(calBegin.getTime());
        }
        return lDate;
    }
    public static Date getDateFromStringForVci(String value) {
        Date d = null;
        if (StringUtils.isNotBlank(value)) {
            try {
                if (value.indexOf("-") > -1 && value.indexOf(".") > -1 && value.indexOf(" ") > -1 && value.substring(value.lastIndexOf(".") + 1).length() >= 9) {
                    String ymd = value.substring(0, value.indexOf("."));
                    value = value.substring(value.indexOf(".") + 1);
                    if (value.indexOf(".") > -1) {
                        String hms = value.substring(0, value.lastIndexOf("."));
                        String nano = value.substring(value.lastIndexOf(".") + 1).trim();
                        if (nano.length() > 3) {
                            nano = nano.substring(0, 3);
                        }
                        hms = hms.replace(".", ":").replace(" ", "");
                        Date tempDate = str2Date(ymd + " " + hms, "yyyy-M-d h:m:s");
                        if (tempDate != null) {
                            d = str2Date(date2Str(tempDate, "yyyy-MM-dd HH:mm:ss") + "." + nano, "yyyy-MM-dd HH:mm:ss.SSS");
                        }
                    }
                } else if (VciBaseUtil.isNumber(value)) {
                    d = new Date();
                    try {
                        d = str2Date(value, "yyyyMMddHHmmssSSS");
                    } catch (Exception var8) {
                        if (value.length() != 14) {
                            d.setTime(VciBaseUtil.getLong(value));
                        } else {
                            try {
                                d = str2Date(value, "yyyyMMddHHmmss");
                                Calendar cal = Calendar.getInstance();
                                cal.setTime(d);
                                if (cal.get(1) < 1900) {
                                    d.setTime(VciBaseUtil.getLong(value));
                                }
                            } catch (Exception var7) {
                                d.setTime(VciBaseUtil.getLong(value));
                            }
                        }
                    }
                } else {
                    d = str2Date(value, "yyyy-MM-dd HH:mm:ss.SSS");
                }
            } catch (Exception var9) {
                try {
                    d = str2Date(value, "yyyy-MM-dd HH:mm:ss.SSS");
                } catch (Exception var6) {
                }
            }
        }
        return d;
    }
    public static Date readText2Date(String text) {
        if (VciBaseUtil.isNullOrNullString(text)) {
            return null;
        } else {
            SimpleDateFormat dateFormat = null;
            int exactDateLength = 0;
            if (text.trim().indexOf("/") > -1 && text.trim().length() == 19) {
                exactDateLength = 19;
                dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
            } else if (text.trim().indexOf("/") > -1 && text.trim().length() == 17) {
                exactDateLength = 17;
                dateFormat = new SimpleDateFormat("yy/MM/dd HH:mm:ss");
            } else if (text.trim().indexOf("/") > -1 && text.trim().length() == 8) {
                exactDateLength = 8;
                dateFormat = new SimpleDateFormat("yy/MM/dd");
            } else if (text.trim().indexOf("-") > -1 && text.trim().length() >= 19) {
                if (text.trim().length() == 19) {
                    exactDateLength = 19;
                    dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                } else if (text.trim().length() == 23) {
                    exactDateLength = 23;
                    dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
                }
            } else if (text.trim().indexOf("-") > -1 && text.trim().length() == 17) {
                exactDateLength = 17;
                dateFormat = new SimpleDateFormat("yy-MM-dd HH:mm:ss");
            } else if (text.trim().indexOf("-") > -1 && text.trim().length() == 8) {
                exactDateLength = 8;
                dateFormat = new SimpleDateFormat("yy-MM-dd");
            } else {
                exactDateLength = 19;
                dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            }
            if (text != null && exactDateLength >= 0 && text.length() != exactDateLength) {
                throw new IllegalArgumentException("不能初始化时间,因为内容不到" + exactDateLength + "长度");
            } else {
                try {
                    return str2Date(date2Str(dateFormat.parse(text), "yyyy-MM-dd HH:mm:ss"), "yyyy-MM-dd HH:mm:ss.SSS");
                } catch (ParseException var4) {
                    throw new IllegalArgumentException("不能格式化日期: " + var4.getMessage(), var4);
                } catch (Exception var5) {
                    throw new IllegalArgumentException("不能格式化日期: " + var5.getMessage(), var5);
                }
            }
        }
    }
    public static String getChinaDate(String d) throws Exception {
        Date s = str2Date(d, "yyyy-MM-dd");
        SimpleDateFormat chineseDateFormat = new SimpleDateFormat("yyyyå¹´MM月dd日");
        Calendar today = Calendar.getInstance();
        try {
            today.setTime(chineseDateFormat.parse(date2Str(s, "yyyyå¹´MM月dd日")));
        } catch (ParseException var5) {
            throw new Exception(var5);
        }
        Lunar lunar = new Lunar(today);
        return lunar.getDate();
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/WebThreadLocalUtil.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
package com.vci.ubcs.starter.web.util;
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
//package com.vci.starter.web.util;
import com.vci.ubcs.starter.web.pagemodel.SessionInfo;
public class WebThreadLocalUtil {
    private static ThreadLocal<SessionInfo> currentUserSessionInfoInThread = new ThreadLocal();
    private static ThreadLocal<String> needQueryTotalInThread = new ThreadLocal();
    public WebThreadLocalUtil() {
    }
    public static ThreadLocal<SessionInfo> getCurrentUserSessionInfoInThread() {
        return currentUserSessionInfoInThread;
    }
    public static void setCurrentUserSessionInfoInThread(ThreadLocal<SessionInfo> currentUserSessionInfoInThread) {
        WebThreadLocalUtil.currentUserSessionInfoInThread = currentUserSessionInfoInThread;
    }
    public static ThreadLocal<String> getNeedQueryTotalInThread() {
        return needQueryTotalInThread;
    }
    public static void setNeedQueryTotalInThread(ThreadLocal<String> needQueryTotalInThread) {
        WebThreadLocalUtil.needQueryTotalInThread = needQueryTotalInThread;
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/WebUtil.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,712 @@
package com.vci.ubcs.starter.web.util;
//package com.vci.web.util;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.vci.ubcs.starter.exception.VciBaseException;
import com.vci.ubcs.starter.web.pagemodel.SessionInfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpServletRequest;
import java.beans.IntrospectionException;
import java.beans.PropertyDescriptor;
import java.lang.reflect.*;
import java.math.BigDecimal;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.util.*;
import java.util.stream.Collectors;
/**
 * é€šç”¨å·¥å…·ç±»
 * @author weidy
 * @date 2021-2-13
 */
@Component
public  class WebUtil extends VciBaseUtil {
    /**
     * å…¨éƒ¨æ ‡è®°ï¼Œå¸¸ç”¨è¯­æ ‘形展示时
     */
    public static final String ALL = "${all}";
    /**
     * æ˜¯å¦æŒä¹…化
     */
    private static ThreadLocal<String> needPersistenceInThread = new ThreadLocal<>();
    /**
     * æ—¥å¿—对象
     */
    private static Logger logger = LoggerFactory.getLogger(WebUtil.class);
    /**
     * json字符串转为对象
     * @param jsonString json的字符串
     * @param beanClass bean的类
     * @return bean
     */
    public static <T> T jsonString2JavaBean(String jsonString,Class<T> beanClass){
        return (T)JSONObject.parseObject(jsonString,  beanClass);
    }
    /**
     * ä»Žjson字符串中获取第一个对象
     * @param jsonString json的字符串
     * @param beanClass Bean的类
     * @return ä»Žåˆ—表里获取第一个对象
     */
    public static <T> T getFirstObjectFromJson(String jsonString,Class<T> beanClass){
        if(!isNull(jsonString)) {
            return JSONObject.parseArray(jsonString, beanClass).get(0);
        } else {
            return null;
        }
    }
    /**
     * èŽ·å–sessionInfo对象
     * @return èŽ·å–å½“å‰ç”¨æˆ·çš„ä¿¡æ¯
     */
    public static SessionInfo getSessionInfo(){
        try{
            return getCurrentUserSessionInfoNotException();
        }catch(Exception e){
            return null;
        }
    }
    /**
     * èŽ·å–å½“å‰çº¿ç¨‹ä¸­çš„ç”¨æˆ·å¯¹è±¡
     * @return å½“前用户信息
     * @throws VciBaseException æ²¡æœ‰ç™»å½•会抛出异常
     */
    public static SessionInfo getCurrentUserSessionInfo() throws VciBaseException {
        SessionInfo si= getCurrentUserSessionInfoNotException();
        if(si==null){
            throw new VciBaseException("noLogin",new String[]{"没有当前用户信息"});
        }
        return si;
    }
    /**
     * èŽ·å–å½“å‰çº¿ç¨‹ä¸­çš„ç”¨æˆ·å¯¹è±¡
     * @return ç”¨æˆ·å¯¹è±¡ï¼Œä½†æ˜¯ä¸æŠ›å‡ºå¼‚常
     */
    public static SessionInfo getCurrentUserSessionInfoNotException() {
        return WebThreadLocalUtil.getCurrentUserSessionInfoInThread().get();
    }
    /**
     * è®¾ç½®ç”¨æˆ·çš„会话信息对象
     * @param sessionInfo ä¼šè¯ä¿¡æ¯
     */
    public static synchronized void setSessionInfo(SessionInfo sessionInfo){
        WebThreadLocalUtil.getCurrentUserSessionInfoInThread().set(sessionInfo);
    }
    /**
     * æ˜¯å¦è®¾ç½®äº†corba需要使用的上下文信息,只针对webService的
     */
    private static volatile boolean isSetContext = false;
    /**
     * èŽ·å–IP地址,通过request
     * @param request è¯·æ±‚的对象
     * @return ip地址
     */
    public static String getClientInfo(HttpServletRequest request){
        String ip = request.getHeader("X-Forwarded-For");
        if (StringUtils.isBlank(ip) || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("Proxy-Client-IP");
        }
        if (StringUtils.isBlank(ip) || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("WL-Proxy-Client-IP");
        }
        if (StringUtils.isBlank(ip) || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("HTTP_CLIENT_IP");
        }
        if (StringUtils.isBlank(ip) || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("HTTP_X_FORWARDED_FOR");
        }
        if (StringUtils.isBlank(ip) || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getRemoteAddr();
        }
        if (StringUtils.isBlank(ip) || ip.indexOf("0:0:0:0:0:0:0:1") >-1) {//0:0:0:0:0:0:0:1是本机在访问
            ip = "127.0.0.1";
        }
        return ip;
    }
    /**
     * è®¾ç½®æ˜¯å¦æŒä¹…化
     * @param isPersistence æ˜¯å¦æŒä¹…化
     */
    public static void setPersistence(boolean isPersistence){
        if(!isPersistence){
            needPersistenceInThread.set("false");
        }else{
            needPersistenceInThread.set("");
        }
    }
    /**
     * å°†å¯¹è±¡è½¬æ¢ä¸ºå­—符串出来
     * @return json字符串
     */
    public static String getJSONStringWithDateFormat(Object obj){
        return JSONObject.toJSONStringWithDateFormat(obj, VciDateUtil.DateTimeMillFormat, SerializerFeature.WriteDateUseDateFormat);
    }
    /**
     * æœ€æ–°è½¬æ¢ä¸ºmap
     * @param o å¯¹è±¡
     * @return map
     */
    public static Map<String,Object> objectToMap(Object o){
        Map<String,Object> map = new HashMap<String,Object>();
        if(o!=null) {
            String jsonString = JSONObject.toJSONStringWithDateFormat(o, VciDateUtil.DateTimeMillFormat, SerializerFeature.WriteDateUseDateFormat);
            if(StringUtils.isNotBlank(jsonString)) {
                JSONObject jsonObject = JSONObject.parseObject(jsonString);
                if(jsonObject!=null){
                    for(String key : jsonObject.keySet()){
                        map.put(key,jsonObject.get(key));
                    }
                }
            }
        }
        return map;
    }
    /**
     * å¯¹è±¡è½¬æ¢ä¸ºmap
     * @param o å¯¹è±¡
     * @return map
     */
    public static Map<String,String> objectToMapString(Object o){
        Map<String,String> map = new HashMap<String,String>();
        if(o!=null) {
            String jsonString = JSONObject.toJSONStringWithDateFormat(o, VciDateUtil.DateTimeMillFormat, SerializerFeature.WriteDateUseDateFormat);
            if(StringUtils.isNotBlank(jsonString)) {
                JSONObject jsonObject = JSONObject.parseObject(jsonString);
                if(jsonObject!=null){
                    for(String key : jsonObject.keySet()){
                        map.put(key,jsonObject.getString(key));
                    }
                }
            }
        }
        return map;
    }
    /**
     * åˆ¤æ–­æŸä¸ªå±žæ€§æ˜¯å¦ä¸ºç©º
     * @param obj å¯¹è±¡
     * @param f å­—段
     * @return true是不空
     */
    public static boolean isNotNullForField(Object obj,Field f){
        if(!"serialVersionUID".equalsIgnoreCase(f.getName()) &&!"DEFAULT_INITIAL_CAPACITY".equalsIgnoreCase(f.getName())&&null!=obj && !WebUtil.isNullOrNullString(obj.toString())) {
            return true;
        } else {
            return false;
        }
    }
    /**
     * æ•°ç»„转换为字符串
     * @param array æ•°ç»„
     * @return å­—符串
     */
    public static String array2String(String[] array) {
        if(null == array || array.length == 0) {
            return "";
        }else{
            return Arrays.stream(array).collect(Collectors.joining(","));
        }
    }
    /**
     * å¯¹è±¡è½¬æ¢ä¸ºå­—符串
     * @param obj å¯¹è±¡
     * @return å­—符串
     */
    public static String getString(Object obj){
        if(obj == null) {
            return "";
        }
        if(obj instanceof Date) {
            return VciDateUtil.date2Str((Date) obj, VciDateUtil.DateTimeFormat);
        }
        return String.valueOf(obj);
    }
    /**
     * æ‹·è´map里的值
     * @param source æº
     * @param target ç›®æ ‡
     * @param copyField æ‹·è´çš„属性
     */
    public static void copyValueForMap(Map source,Map target,String[] copyField){
        Map<String,String> copyFieldMap = new HashMap<String,String>();
        for(String field : copyField) {
            copyFieldMap.put(field, field);
        }
        copyValueForMap(source,target,copyFieldMap);
    }
    /**
     * ä¸ºmap拷贝值
     * @param source æº
     * @param target ç›®æ ‡
     * @param copyField key为目标对象里的字段,
     */
    public static void copyValueForMap(Map source,Map target,Map<String,String> copyField){
        try{
            Iterator<String> it = copyField.keySet().iterator();
            while(it.hasNext()){
                String field = it.next();
                target.put(field, source.get(copyField.get(field)));
            }
        }catch(Exception e){
            if(logger.isErrorEnabled()){
                logger.error("拷贝值到map",e);
            }
        }
    }
    /**
     * ä»ŽMap里获取double类型
     * @param field å­—段名称
     * @param record map
     * @return å±žæ€§
     */
    public static Double getDoubleFromMap(String field,
                                          Map<String, Object> record) {
        if(WebUtil.isNullOrNullString(field) || record == null || !record.containsKey(field)) {
            return null;
        }else{
            Object v = record.get(field);
            if(v instanceof BigDecimal){
                return ((BigDecimal)v).doubleValue();
            }else if(v instanceof Double){
                return ((Double)v).doubleValue();
            }else{
                return WebUtil.getDouble((String)v);
            }
        }
    }
    /**
     * èŽ·å–ä¸æ˜¯ç©ºå€¼çš„æ˜ å°„ï¼Œä¸”key是小写
     * @param map æ˜ å°„
     * @return åŽ»é™¤ç©ºå€¼çš„
     */
    public static Map getNotNullMap(Map map){
        if(map == null){
            return new HashMap();
        }
        Iterator it = map.keySet().iterator();
        Map unNullMap = new HashMap();
        while(it.hasNext()){
            Object key = it.next();
            String newKey = key.toString().toLowerCase();
            Object value = map.get(key);
            if(value !=null){
                if(value instanceof String && WebUtil.isNotNull(value.toString())){
                    unNullMap.put(newKey, value);
                }else if(!(value instanceof String)){
                    unNullMap.put(newKey, value);
                }
            }
        }
        return unNullMap;
    }
    /**
     * èŽ·å–é›†åˆçš„å…ƒç´ ç±»åž‹
     * @param field å±žæ€§
     * @return å…ƒç´ ç±»åž‹, ä¸æ˜¯é›†åˆçš„æ—¶å€™è¿”回Null
     */
    public static Class getCollectionElementClass(Field field) throws VciBaseException{
        Class fieldClass = null;
        if(field == null){
            return null;
        }
        if(field.getType().isAssignableFrom(List.class) ||
            field.getType().isAssignableFrom(Set.class) ||
            field.getType().isAssignableFrom(Vector.class)){
            Type fc = field.getGenericType();
            if(fc instanceof ParameterizedType){
                ParameterizedType pt = (ParameterizedType)fc;
                fieldClass= (Class)pt.getActualTypeArguments()[0];
            }
        }
        return fieldClass;
    }
    /**
     * èŽ·å–å¯¹è±¡ä¸­çš„æ‰€æœ‰å±žæ€§ï¼ŒåŒ…æ‹¬å…¶ç»§æ‰¿çš„å±žæ€§
     * @param c å¯¹è±¡
     * @return æ‰€æœ‰çš„属性
     */
    public static List<Field> getAllFieldForObj(Class c){
        List<Field> allField = new ArrayList<Field>();
        for(Class<?> classz = c ; classz != Object.class ; classz = classz.getSuperclass() ){
            Field[] thisClassField = classz.getDeclaredFields();
            for(Field field : thisClassField){
                if(!field.getName().equals("serialVersionUID")){
                    if(!allField.contains(field)){
                        allField.add(field);
                    }
                }
            }
        }
        return allField;
    }
    /**
     * èŽ·å–ts的字段
     * @param c å¯¹è±¡æ‰€å±žçš„ç±»
     * @return æ—¶é—´æˆ³çš„对象
     */
    public static Field getTsField(Class c){
        List<Field> allField = getAllFieldForObj(c);
        if(allField!=null&&allField.size()>0){
            for(Field field : allField){
                if(field.getName().equals("ts")){
                    return  field;
                }
            }
        }
        return null;
    }
    /**
     * æ ¹æ®åç§°èŽ·å–å­—æ®µ
     * @param field å­—段的名称
     * @param obj å¯¹è±¡
     * @return å­—段对象
     */
    public static Field getFieldForObject(String field,Object obj){
        if(obj == null){
            return null;
        }
        return getFieldForObject(field,obj.getClass());
    }
    /**
     * æ ¹æ®åç§°èŽ·å–å­—æ®µ
     * @param fieldName å­—段的名称
     * @param c å¯¹è±¡ç±»åž‹
     * @return å­—段对象
     */
    public static Field getFieldForObject(String fieldName,Class c){
        List<Field> allField = getAllFieldForObj(c);
        if(allField!=null&&allField.size()>0){
            for(Field field : allField){
                if(field.getName().toLowerCase().equalsIgnoreCase(fieldName.toLowerCase())){
                    return  field;
                }
            }
        }
        return null;
    }
    /**
     * èŽ·å–å­—æ®µçš„setter
     * @param c å¯¹è±¡ç±»
     * @param field å­—段
     * @return æ–¹æ³•
     */
    public static Method getSetmethod(Class c,Field field){
        return getSetmethod(c,field.getName());
    }
    /**
     * èŽ·å–å­—æ®µçš„setter
     * @param c å¯¹è±¡ç±»åž‹
     * @param fieldName å­—段名称
     * @return æ–¹æ³•
     */
    public static Method getSetmethod(Class c,String fieldName){
        if(c!=null&&isNotNull(fieldName)){
            try {
                PropertyDescriptor pd = new PropertyDescriptor(fieldName, c);
                return pd.getWriteMethod();
            } catch (SecurityException e) {
            } catch (IntrospectionException e) {
            }
        }
        return null;
    }
    /**
     * èŽ·å–å­—æ®µçš„getter
     * @param c å¯¹è±¡ç±»åž‹
     * @param fieldName å­—段名称
     * @return æ–¹æ³•
     */
    public static Method getGetmethod(Class c,String fieldName){
        if(c!=null&&isNotNull(fieldName)){
            try {
                PropertyDescriptor pd = new PropertyDescriptor(fieldName, c);
                return pd.getReadMethod();
            } catch (SecurityException e) {
            } catch (IntrospectionException e) {
            }
        }
        return null;
    }
    /**
     * èŽ·å–å­—æ®µçš„getter
     * @param c å¯¹è±¡ç±»åž‹
     * @param field å­—段
     * @return æ–¹æ³•
     */
    public static Method getGetmethod(Class c,Field field){
        return getGetmethod(c,field.getName());
    }
    /**
     * èŽ·å–å¯¹è±¡è½¬æ¢å­—ç¬¦ä¸²
     * @param obj å¯¹è±¡
     * @return å­—符串
     */
    public static String getStringValueFromObject(Object obj){
        if(obj == null){
            return "";
        }else{
            if(obj instanceof Integer || obj instanceof Float || obj instanceof Long || obj instanceof Double){
                return String.valueOf(obj);
            }else if(obj instanceof Date){
                return VciDateUtil.date2Str((Date)obj, VciDateUtil.DateTimeMillFormat);
            }else{
                return obj.toString();
            }
        }
    }
    /**
     * ä¸ºå¯¹è±¡èµ‹å€¼ï¼Œä¸åˆ¤æ–­ç±»åž‹ï¼Œå±žæ€§æ˜¯ä»€ä¹ˆç±»åž‹çš„,value就必须是什么类型
     * @param fieldName å±žæ€§åç§°
     * @param targetObject å¯¹è±¡
     * @param value å±žæ€§å€¼
     */
    public static void setValueToField(String fieldName,Object targetObject,Object value){
        if(isNotNull(fieldName)){
            Method setMethod = getSetmethod(targetObject.getClass(), fieldName);
            try {
                if(setMethod != null){
                    setMethod.invoke(targetObject, value);
                }else{
                    Field field = getFieldForObject(fieldName, targetObject);
                    if(field !=null){
                        field.setAccessible(true);
                        field.set(targetObject, value);
                    }
                }
            } catch (IllegalArgumentException e) {
                if(logger.isErrorEnabled()){
                    logger.error("WebUtil.setValueToField",e);
                }
            } catch (IllegalAccessException e) {
                if(logger.isErrorEnabled()){
                    logger.error("WebUtil.setValueToField",e);
                }
            } catch (InvocationTargetException e) {
                if(logger.isErrorEnabled()){
                    logger.error("WebUtil.setValueToField",e);
                }
            }
        }
    }
    /**
     * ä»Žå¯¹è±¡ä¸ŠèŽ·å–å±žæ€§çš„å€¼
     * @param fieldName å±žæ€§å
     * @param sourceObject å¯¹è±¡
     * @return å€¼
     */
    public static Object getValueFromField(String fieldName,Object sourceObject){
        if(isNotNull(fieldName)){
            try {
                Method getMethod = getGetmethod(sourceObject.getClass(), fieldName);
                if(getMethod !=null){
                    return getMethod.invoke(sourceObject);
                }else{
                    //说明没有设置getter,比如BO和LO对象这种
                    Field field = getFieldForObject(fieldName, sourceObject);
                    if(field !=null){
                        field.setAccessible(true);
                        return field.get(sourceObject);
                    }
                }
            } catch (SecurityException e) {
                if(logger.isErrorEnabled()){
                    logger.error("WebUtil.getValueFromField",e);
                }
            } catch (IllegalAccessException e) {
                if(logger.isErrorEnabled()){
                    logger.error("WebUtil.getValueFromField",e);
                }
            } catch (IllegalArgumentException e) {
                if(logger.isErrorEnabled()){
                    logger.error("WebUtil.getValueFromField",e);
                }
            } catch (InvocationTargetException e) {
                if(logger.isErrorEnabled()){
                    logger.error("WebUtil.getValueFromField",e);
                }
            }
        }
        return null;
    }
    /**
     * æ˜¯å¦ä¸ºæ™®é€šçš„属性
     * @param attrName å±žæ€§çš„名字
     * @return true
     */
    public static boolean isNormalAttr(String attrName){
        attrName = attrName.toLowerCase();
        if(attrName.indexOf(".")<0 && attrName.indexOf("_")<0 && !attrName.equalsIgnoreCase("lcstatustext")){
            return true;
        }else{
            return false;
        }
    }
    /**
     * å°†whereSql里的内容转化到查询map里
     * @param whereSql sql转换为map
     * @return map
     */
    public static Map<String,String>  whereSql2Map(
        String whereSql) {
        Map<String,String> map = new HashMap<String, String>();
        if(isNotNull(whereSql)){
            String[] selects = whereSql.split("and");
            if(selects!=null&&selects.length>0){
                for(String s : selects){
                    s = s.trim();
                    map.put(s.substring(0,s.indexOf(" ")).trim(), s.substring(s.indexOf(" ") +1).trim());
                }
            }
        }
        return map;
    }
    /**
     * æœ¬æœºçš„ip
     */
    private static String localIp = null;
    /**
     * èŽ·å–æœ¬æœºåœ°å€ï¼Œä¸æ˜¯å®¢æˆ·ç«¯ç”µè„‘çš„ip,是当前服务所在的ip
     * @return
     */
    public static String getLocalIp(){
        if(localIp == null){
            try {
                InetAddress inetAddress = getLocalHostLANAddress();
                if (inetAddress == null) {
                    localIp = "127.0.0.1";
                } else {
                    localIp = inetAddress.getHostAddress();
                }
            }catch (Exception e){
                localIp = "127.0.0.1";
            }
        }
        return localIp;
    }
    /**
     * ä»Žç½‘络接口上获取ip地址
     * @return ip地址
     */
    private static InetAddress getLocalHostLANAddress(){
        try {
            InetAddress candidateAddress = null;
            // éåŽ†æ‰€æœ‰çš„ç½‘ç»œæŽ¥å£
            for (Enumeration ifaces = NetworkInterface.getNetworkInterfaces(); ifaces.hasMoreElements(); ) {
                NetworkInterface iface = (NetworkInterface) ifaces.nextElement();
                // åœ¨æ‰€æœ‰çš„æŽ¥å£ä¸‹å†éåކIP
                for (Enumeration inetAddrs = iface.getInetAddresses(); inetAddrs.hasMoreElements(); ) {
                    InetAddress inetAddr = (InetAddress) inetAddrs.nextElement();
                    if (!inetAddr.isLoopbackAddress()) {// æŽ’除loopback类型地址
                        if (inetAddr.isSiteLocalAddress()) {
                            // å¦‚果是site-local地址,就是它了
                            return inetAddr;
                        } else if (candidateAddress == null) {
                            // site-local类型的地址未被发现,先记录候选地址
                            candidateAddress = inetAddr;
                        }
                    }
                }
            }
            if (candidateAddress != null) {
                return candidateAddress;
            }
            // å¦‚果没有发现 non-loopback地址.只能用最次选的方案
            InetAddress jdkSuppliedAddress = InetAddress.getLocalHost();
            return jdkSuppliedAddress;
        } catch (Exception e) {
            if(logger.isErrorEnabled()){
                logger.error("获取本机ip",e);
            }
        }
        return null;
    }
    /**
     * oracle in æŸ¥è¯¢ä¸èƒ½è¶…过1000,转换一下集合
     * ç”±äºŽSQL语句1000个可能很长,超过oracle10g,所以牺牲性能分配为500个数组
     * @param list éœ€è¦è½¬æ¢çš„列表内容
     * @return åˆ†ç»„后的list
     */
    public static <T> Collection<Collection<T>> switchCollectionForOracleIn(Collection<T> list) {
        return switchCollectionForOracleIn(list,500);
    }
    /**
     * è½¬æ¢é›†åˆçš„大小,这个用在feign调用的时候,不要在sql查询的时候使用
     * @param collection éœ€è¦è½¬æ¢çš„列表内容
     * @param preSize æ¯ä¸ªåˆ†ç»„的大小
     * @return åˆ†ç»„后的list
     */
    public static <T> Collection<Collection<T>> switchCollectionForOracleIn(Collection<T> collection,int preSize) {
        Collection<Collection<T>> listHasList = new ArrayList<Collection<T>>();
        if(collection == null){
            return listHasList;
        }
        List<T> newList = new ArrayList<T>();
        for(Object obj : collection){
            //为了让list还可以添加内容,因为使用sublist后,list不能再Add了
            newList.add((T)obj);
        }
        int muti = 1;
        if(newList.size() >preSize){
            int balance = newList.size()%preSize;
            muti = (newList.size() - balance)/preSize + (balance == 0?0:1);
        }
        for(int i = 0 ; i < muti; i ++){
            int start = i*preSize;
            int end = start + preSize;
            if(i == muti-1 || end >newList.size() ){
                end = newList.size();
            }
            List subList = newList.subList(start,end);
            listHasList.add(subList);
        }
        return listHasList;
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/wrapper/VciQueryWrapperForDO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,284 @@
package com.vci.ubcs.starter.web.wrapper;
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
//package com.vci.starter.web.wrapper;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.vci.ubcs.starter.exception.VciBaseException;
import com.vci.ubcs.starter.revision.model.TreeQueryObject;
import com.vci.ubcs.starter.web.annotation.VciFieldType;
import com.vci.ubcs.starter.web.annotation.VciUseEnum;
import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum;
import com.vci.ubcs.starter.web.pagemodel.PageHelper;
import com.vci.ubcs.starter.web.service.VciSecretServiceI;
import com.vci.ubcs.starter.web.util.VciBaseUtil;
import org.springframework.util.CollectionUtils;
import javax.xml.bind.annotation.XmlType;
public class VciQueryWrapperForDO implements VciSecretServiceI {
    public static boolean USER_TABLE_COMPATIBILITY = false;
    public static String DATABASE_PLATFORM;
    public static Map<String, String> USER_TABLE_COMPATIBILITY_BTM_MAP;
    public static Map<String, String> USER_TABLE_COMPATIBILITY_FIELD_MAP;
    public static final String USER_TABLE_COMPATIBILITY_FIELD_SEP = "${vcicomplibitysep}";
    private Map<String, String> conditionMap;
    private Map<String, String> customerSqlMap;
    private String oidFieldName;
    private static final String SPACE = " ";
    public static final String QUERY_FIELD_SECRET = "${vciQuerySecret}";
    public static final String QUERY_FIELD_DATARIGHT = "${vciQueryDataRight}";
    private Class<?> doClass;
    private PageHelper pageHelper;
    private Map<String, String> allFieldNameMap;
    private List<String> xmlTypeFieldList;
    private boolean distinct;
    public static final String OID_FIELD = "oid";
    public static final String ID_FIELD = "id";
    public static final String LC_STATUS_FIELD = "lcstatus";
    public static final String LC_STATUS_FIELD_TEXT = "lcStatus_text";
    private Map<String, VciFieldTypeEnum> allFieldTypeMap;
    private Map<String, String> useReferMap;
    private Map<String, String> enumFieldMap;
    private String linkTableSql;
    private String selectFieldSql;
    private String selectPrefixForPage;
    private String whereSql;
    private String orderSql;
    private String whereSubfixForPage;
    private Map<String, String> valuesMap;
    private String tableNick;
    private Map<String, String> extendFieldMap;
    private static final String DATETIME_FORMAT = "yyyy-mm-dd hh24:mi:ss";
    private static final String DATE_FORMAT = "yyyy-mm-dd";
    public void clearPage() {
        this.pageHelper = null;
        this.selectPrefixForPage = "";
        this.whereSubfixForPage = "";
    }
    public VciQueryWrapperForDO in(String key, String value) throws VciBaseException {
        this.addQueryMap(key, value, "\\IN");
        return this;
    }
    public VciQueryWrapperForDO notIn(String key, String value) throws VciBaseException {
        this.addQueryMap(key, value, "\\NOTIN");
        return this;
    }
    public VciQueryWrapperForDO eq(String key, String value) throws VciBaseException {
        this.addQueryMap(key, value);
        return this;
    }
    public VciQueryWrapperForDO neq(String key, String value) throws VciBaseException {
        this.addQueryMap(key, value, "!=");
        return this;
    }
    public VciQueryWrapperForDO less(String key, String value) throws VciBaseException {
        this.addQueryMap(key, value, "<");
        return this;
    }
    public VciQueryWrapperForDO lessThan(String key, String value) throws VciBaseException {
        this.addQueryMap(key, value, "<=");
        return this;
    }
    public VciQueryWrapperForDO more(String key, String value) throws VciBaseException {
        this.addQueryMap(key, value, ">");
        return this;
    }
    public VciQueryWrapperForDO moreThan(String key, String value) throws VciBaseException {
        this.addQueryMap(key, value, ">=");
        return this;
    }
    public VciQueryWrapperForDO isNull(String key) throws VciBaseException {
        this.addQueryMap(key, "_n", "=null");
        return this;
    }
    public VciQueryWrapperForDO isNotNull(String key) throws VciBaseException {
        this.addQueryMap(key, "_n", "!=null");
        return this;
    }
    public VciQueryWrapperForDO secret() throws VciBaseException {
        String secretSql = this.getLessThanUserSecretSql();
        this.addQueryMap("secretGrade", secretSql, "<=");
        return this;
    }
    public void addQueryMap(String key, String value) {
        this.addQueryMap(key, value, (String)null);
    }
    public void addQueryMap(String key, String value, String operation) {
        VciBaseUtil.alertNotNull(new Object[]{key, "查询条件的名称"});
        if (StringUtils.isNotBlank(value)) {
            if (this.conditionMap == null) {
                this.conditionMap = new HashMap();
            }
            if (operation == null) {
                operation = "";
            }
            this.conditionMap.put(key, operation + value);
        }
    }
    public void addCustomSql(String key, String sql) {
        VciBaseUtil.alertNotNull(new Object[]{key, "自定义SQL的KEY", sql, "自定义的SQL语句"});
        if (StringUtils.isNotBlank(sql)) {
            if (this.customerSqlMap == null) {
                this.customerSqlMap = new HashMap();
            }
            this.customerSqlMap.put(key, sql);
        }
    }
    public void addExtendField(String fieldName) {
        this.addExtendField(fieldName, fieldName);
    }
    public void addExtendField(String fieldName, String nickName) {
        this.extendFieldMap.put(fieldName, nickName);
    }
    public Map<String, String> getConditionMap() {
        return this.conditionMap;
    }
    public void setConditionMap(Map<String, String> conditionMap) {
        this.conditionMap = conditionMap;
    }
    public Map<String, String> switchConditionMap() {
        Map<String, String> queryMap = new HashMap();
        if (!CollectionUtils.isEmpty(this.conditionMap)) {
            this.conditionMap.forEach((key, value) -> {
                queryMap.put(key, value);
            });
            this.allFieldNameMap.forEach((dbField, field) -> {
                if (this.conditionMap.containsKey(field)) {
                    queryMap.put(dbField, this.conditionMap.get(field));
                }
            });
        }
        return queryMap;
    }
    public String getLinkTableSql() {
        return this.linkTableSql;
    }
    public void setLinkTableSql(String linkTableSql) {
        this.linkTableSql = linkTableSql;
    }
    public void addLinkTableSql(String linkTableSql) {
        this.linkTableSql = this.linkTableSql + " " + linkTableSql + " ";
    }
    public void setSelectFieldSql(String selectFieldSql) {
        this.selectFieldSql = selectFieldSql;
    }
    public void appendSelectField(String sql) {
        this.selectFieldSql = this.selectFieldSql + "," + sql;
    }
    public void appendSelectPagePrefix(String sql) {
        this.selectPrefixForPage = this.selectPrefixForPage + "," + sql;
    }
    public String getWhereSql() {
        if (StringUtils.isBlank(this.whereSql)) {
            this.whereSql = " 1 = 1 ";
        }
        return this.pageHelper != null && this.pageHelper.getLimit() > 0 ? this.whereSql + (this.orderSql == null ? "" : this.orderSql) + (this.whereSubfixForPage == null ? "" : this.whereSubfixForPage) : (StringUtils.isNotBlank(this.whereSql) ? this.whereSql : " 1= 1 ") + (this.orderSql == null ? "" : this.orderSql);
    }
    public void setWhereSql(String whereSql) {
        this.whereSql = whereSql;
    }
    public Map<String, String> getValuesMap() {
        return this.valuesMap;
    }
    public void setValuesMap(Map<String, String> valuesMap) {
        this.valuesMap = valuesMap;
    }
    public String getTableNick() {
        return this.tableNick;
    }
    public void setTableNick(String tableNick) {
        this.tableNick = tableNick;
    }
    public String getOrderSql() {
        return this.orderSql;
    }
    public void setOrderSql(String orderSql) {
        this.orderSql = orderSql;
    }
    public String getOidFieldName() {
        return this.oidFieldName;
    }
    public void setOidFieldName(String oidFieldName) {
        this.oidFieldName = oidFieldName;
    }
    public boolean isDistinct() {
        return this.distinct;
    }
    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }
    public Map<String, String> getCustomerSqlMap() {
        return this.customerSqlMap;
    }
    public void setCustomerSqlMap(Map<String, String> customerSqlMap) {
        this.customerSqlMap = customerSqlMap;
    }
}
Source/UBCS/ubcs-service/pom.xml
@@ -23,6 +23,7 @@
        <module>ubcs-user</module>
        <module>ubcs-code</module>
        <module>ubcs-omd</module>
        <module>ubcs-ddl</module>
    </modules>
    <dependencies>
Source/UBCS/ubcs-service/ubcs-code/pom.xml
@@ -23,14 +23,17 @@
            <version>3.0.1.RELEASE</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>com.vci.ubcs</groupId>
            <artifactId>ubcs-omd-api</artifactId>
            <artifactId>ubcs-ddl</artifactId>
            <version>3.0.1.RELEASE</version>
            <scope>compile</scope>
        </dependency>
<!--        <dependency>-->
<!--            <groupId>com.vci.ubcs</groupId>-->
<!--            <artifactId>ubcs-omd-api</artifactId>-->
<!--            <version>3.0.1.RELEASE</version>-->
<!--            <scope>compile</scope>-->
<!--        </dependency>-->
        <dependency>
            <groupId>com.oracle.database.jdbc</groupId>
            <artifactId>ojdbc8</artifactId>
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/CodeApplication.java
@@ -16,9 +16,12 @@
 */
package com.vci.ubcs.code;
import com.vci.ubcs.starter.util.VciSpringUtil;
import org.springblade.core.cloud.client.UbcsCloudApplication;
import org.springblade.core.launch.UbcsApplication;
import org.springblade.core.launch.constant.AppConstant;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.stereotype.Component;
/**
 * Code启动器
@@ -27,6 +30,7 @@
 * ludc
 */
@UbcsCloudApplication
@ComponentScan("com.vci.ubcs.*")
public class CodeApplication {
    public static void main(String[] args) {
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/constant/FrameWorkLangCodeConstant.java
@@ -180,6 +180,11 @@
    public static final String DATA_LINKED_NOT_DELETE = "dataLinkedNotDelete";
    /**
     * ts检验未通过
     */
    public static final String TS_NOT_PROCESS = "ts test failed";
    /**
     * æ•°æ®çš„子节点也被引用,不允许删除
     */
    public static final String DATA_CASCADE_LINKED_NOT_DELETE = "dataCascadeLinkedNotDelete";
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/constant/MdmBtmTypeConstant.java
@@ -49,6 +49,10 @@
     * é˜¶æ®µçš„属性
     */
    public static final String CODE_PHASE_ATTR = "codephaseattr";
    /**
     * é˜¶æ®µçš„属性
     */
    public static final String CODE_PHASE_ATTR_TABLENAME = "code_phaseattr";
    /**
     * ä¸»æ•°æ®åˆ†ç±»ä½¿ç”¨çš„æµç¨‹æ¨¡æ¿
在上述文件截断后对比
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeAllCodeController.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeBasicSecController.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeButtonController.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyController.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyProcessTempController.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyTemplateButtonController.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyValueController.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClstemplateController.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeFixedValueController.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodePhaseattrController.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeRuleController.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeTempbuttonController.java (已删除) Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeTemplatePhaseController.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeTempphaseController.java (已删除) Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeButtonUseEnum.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeClassifyProcessUseEnum.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeCutTypeEnum.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeGetValueTypeEnum.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeLevelTypeEnum.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeMapRuleTypeEnum.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeSecLengthTypeEnum.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeSecTypeEnum.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeUseButtonPositionTypeEnum.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/NewAppConstantEnum.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationAuthorityTypeEnum.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationDataFlowTypeEnum.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationParamAndReturnTypeEnum.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationRequestMethodEnum.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationRequestTypeEnum.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/sysIntegrationPushTypeEnum.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/CodeButtonClient.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/CodePhaseattrClient.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/CodeTempbuttonClient.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/CodeTempphaseClient.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/ICodeButtonClient.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/ICodePhaseattrClient.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/ICodeTempbuttonClient.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/ICodeTempphaseClient.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/lifecycle/CodeRuleLC.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeButtonMapper.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyMapper.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyProcessTempMapper.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyTemplateAttrMapper.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyTemplateButtonMapper.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClstemplateMapper.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeFixedValueMapper.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodePhaseAttrMapper.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodePhaseattrMapper.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeTempbuttonMapper.java (已删除) Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeTemplatePhaseMapper.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeTempphaseMapper.java (已删除) Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CommonsMapper.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeBasicSecService.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeButtonService.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyProcessTempService.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyService.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyTemplateAttrService.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyValueService.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClstemplateService.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeFixedValueService.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodePhaseattrService.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeRuleService.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeTempbuttonService.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeTempphaseService.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeButtonServiceImpl.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyProcessTempServiceImpl.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyTemplateAttrServiceImpl.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyValueServiceImpl.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstempattrServiceImpl.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstemplateServiceImpl.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeFixedValueServiceImpl.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeKeyattrrepeatServiceImpl.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodePhaseattrServiceImpl.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeRuleServiceImpl.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeTempbuttonServiceImpl.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeTempphaseServiceImpl.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeBasicSecWrapper.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeButtonWrapper.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeFixedValueWrapper.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodePhaseattrWrapper.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeTempbuttonWrapper.java Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeTempphaseWrapper.java Source/UBCS/ubcs-service/ubcs-code/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeBasicSecMapper.xml Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeButtonMapper.xml Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClassifyProcessTempMapper.xml Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClassifyTemplateAttrMapper.xml Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClassifyTemplateButtonMapper.xml Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClsflowtempMapper.xml Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClstempattrMapper.xml Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClstemplateMapper.xml Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeFixedValueMapper.xml Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodePhaseAttrMapper.xml Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodePhaseattrMapper.xml Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeTempbuttonMapper.xml (已删除) Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeTemplatePhaseMapper.xml Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeTempphaseMapper.xml (已删除) Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CommonsMapper.xml Source/UBCS/ubcs-service/ubcs-ddl/pom.xml Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/controller/DdlController.java Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/mapper/DdlMSMapper.java Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/mapper/DdlMapper.java Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/mapper/DdlMySqlMapper.java Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/mapper/DdlOracleMapper.java Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/mapper/DllMapper.java Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/mapper/DllMsMapper.java Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/mapper/DllMySqlMapper.java Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/mapper/DllOracleMapper.java Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/mapper/DllSqlLiteMapper.java Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlBehavior.java Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMapperProcessStrategy.java Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMapperProcessor.java Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMsMapperProcessor.java Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMySqlMapperProcessor.java Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlOracleMapperProcessor.java Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllBehavior.java Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMapperProcessor.java Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMapperProcessorStrategy.java Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMsMapperProcessor.java Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMySqlMapperProcessor.java Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllOracleMapperProcessor.java Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllSqlLiteMapperProcessor.java Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/service/IDdlService.java Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/service/impl/DdlServiceImpl.java Source/UBCS/ubcs-service/ubcs-omd/pom.xml Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/controller/AttributeController.java Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/controller/BtmTypeController.java Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/controller/OmdAttributeController.java (已删除) Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/AttributeClient.java Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/BtmTypeClient.java Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/OmdAttributeClient.java (已删除) Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/mapper/AttributeMapper.java Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/mapper/BtmTypeAttributeMapper.java Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/mapper/BtmTypeMapper.java Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/mapper/ModifyAttributeInfoMapper.java Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/mapper/OmdAttributeMapper.java (已删除) Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/repeater/DomainRepeater.java Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/IAttributeService.java Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/IBtmTypeAttributeService.java Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/IBtmTypeService.java Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/IModifyAttributeService.java Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/IOmdAttributeService.java (已删除) Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/AttributeServiceImpl.java Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/BtmAttributeServiceImpl.java Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/BtmTypeServiceImpl.java Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/ModifyAtributeServiceImpl.java Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/OmdAttributeServiceImpl.java (已删除) Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/wrapper/AttributeWrapper.java Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/wrapper/BtmTypeAttributeWrapper.java Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/wrapper/BtmTypeWrapper.java Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/wrapper/FiledRangeWrapper.java Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/wrapper/ModifyAttributeWrapper.java Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/wrapper/OmdAttributeWrapper.java (已删除) Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/wrapper/OmdFiledRangeWrapper.java (已删除) Source/UBCS/ubcs-service/ubcs-omd/src/main/resources/mapper/AttributeMapper.xml Source/UBCS/ubcs-service/ubcs-omd/src/main/resources/mapper/OmdAttributeMapper.xml (已删除)