ludc
2024-12-04 e405b861b9521f5ea38c5402203a5b05988f9de2
Merge remote-tracking branch 'origin/master'
已修改101个文件
已删除9个文件
已重命名199个文件
已添加25个文件
8532 ■■■■■ 文件已修改
Source/plt-web/plt-web-parent/plt-starter/pom.xml 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/AuditTaskDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/OsDataAuthDTO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/enumpck/OsCodeDateValueTypeEnum.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/enumpck/OsCodeElementTypeEnum.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/enumpck/OsCodeFillTypeEnum.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/enumpck/OsCodeGenJsPanelTypeEnum.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/enumpck/OsCodeProductTypeEnum.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/enumpck/UI/ControlAttributeType.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/enumpck/UI/ItemTypeEnum.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/enumpck/UI/OrgTypeEnum.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/enumpck/UI/RoleClassifyEnum.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/enumpck/UI/RoleControlAreaEnum.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/enumpck/UI/VciFileServiceOsTypeEnum.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/enumpck/UI/VciFileTransProtocolEnum.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/enumpck/UserTypeEnum.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/lcstatuspck/FileObjectLCStatus.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/lcstatuspck/FrameworkDataLCStatus.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/lcstatuspck/ReleaseDataLCStatus.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/properties/OsConfig.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/properties/TomcatConfig.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/properties/VciFileTransProperties.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/provider/VciFileDocClassifyProvider.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/provider/VciFileDownloadProvider.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/provider/VciFileQueryProvider.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/provider/VciFileUploadProvider.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/query/FileImageViewerQuery.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/query/UIBaseQuery.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/query/UIDataGridQuery.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/query/UIFormQuery.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/query/UILinkTypeDataQuery.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/query/UITreeQuery.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/query/UITreeRootQuery.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/pom.xml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/revision/provider/CommonAnnotationProvider.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/revision/provider/CommonLifeCycleProvider.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/revision/provider/CommonRevisionRuleProvider.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/revision/service/RevisionModelUtil.java 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/annotation/BdSelectInput.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/annotation/CopyProperty.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/annotation/FlowNotifyAfter.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/annotation/FlowNotifyBefore.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/annotation/FlowNotifyWeb.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/annotation/VciTransactional.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/autoconfigure/SpringMVCConfig.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/constant/CharPool.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/constant/StringPool.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/model/BaseModel.java 146 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/pagemodel/BaseTree.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/BeanUtil.java 222 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/BeanUtilForVCI.java 204 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/ClassUtilForVCI.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/Base64Util.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/BeanUtil.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/Charsets.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/ClassUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/CollectionUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/ConcurrentDateFormat.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/ConvertUtil.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/DatatypeConverterUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/DateTimeUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/DateUtil.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/DigestUtil.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/Exceptions.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/FileUtil.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/Func.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/Holder.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/IoUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/NumberUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/ObjectUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/RandomType.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/ReflectUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/StringUtil.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/Unchecked.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/UrlUtil.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/beans/BeanProperty.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/beans/BladeBeanCopier.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/beans/BladeBeanCopierKey.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/beans/BladeBeanMap.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/beans/BladeBeanMapEmitter.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/beans/BladeBeanMapKey.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/convert/BladeConversionService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/convert/BladeConverter.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/convert/EnumToStringConverter.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/convert/StringToEnumConverter.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/function/CheckedCallable.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/function/CheckedComparator.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/function/CheckedConsumer.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/function/CheckedFunction.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/function/CheckedRunnable.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/function/CheckedSupplier.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/jackson/BladeJavaTimeModule.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/jackson/JsonUtil.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/support/StrSpliter.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/VciBaseUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/pom.xml 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/ajaxTask/SmUserUnLockTask.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/ajaxTask/SmUserUnLockTaskManager.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/config/ConfigCorbaReader.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/config/WebFilePreviewAutoConfig.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/AuditTaskController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/HomeTaskController.java 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/ImageViewerController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/OrgDepartmentQueryController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/OrgDutyQueryController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/SmRoleQueryController.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/SmUserQueryController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/Sql2TableController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/VciFileDownloadController.java 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/VciFileQueryController.java 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/VciFileUploadController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/VciOsCodeRuleController.java 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/WFWorkflowNodeFavController.java 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/WebCodeGenSchemaController.java 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/WebProcessCommandController.java 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/WebProcessDefineController.java 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/WebScanAnnotationController.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/BdSelectInputCharDaoI.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/OsCodeBreakCodeDaoI.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/OsCodeEnumDaoI.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/OsCodeGenSchemaDaoI.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/OsCodeRuleDaoI.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/OsCodeRuleElementDaoI.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/OsCodeSerialNumberDaoI.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/VciFileDocClassifyDaoI.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/VciFileObjectDaoI.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/VciFileVolumeDaoI.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/WFWorkflowNodeFavDaoI.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/WFWorkflowNodeFavItemDaoI.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/WebProcessDaoI.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/BdSelectInputCharDaoImpl.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/OsCodeBreakCodeDaoImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/OsCodeEnumDaoImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/OsCodeGenSchemaDaoImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/OsCodeRuleDaoImpl.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/OsCodeRuleElementDaoImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/OsCodeSerialNumberDaoImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/VciFileDocClassifyDaoImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/VciFileDocClassifyServiceImpl.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/VciFileDownloadServiceImpl.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/VciFileObjectDaoImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/VciFileObjectServiceImpl.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/VciFileUploadServiceImpl.java 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/VciFileVolumeDaoImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/VciFileVolumeServiceImpl.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/WFWorkflowNodeFavDaoImpl.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/WFWorkflowNodeFavItemDaoImpl.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/WebProcessDaoImpl.java 75 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/initTask/VciWebInitTaskComponent.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/interceptor/MyMVCConfig.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/maven/BatchRedeployJar2Maven.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/properties/VciFramworkCompatibilityProperties.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/properties/VciSecurityManageProperties.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/properties/WebProperties.java 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/OrgDeptQueryServiceI.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/OrgDutyQueryServiceI.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/OsCodeGenSchemaServiceI.java 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/OsCodeRuleServiceI.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/SmRoleQueryServiceI.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/SmUserQueryServiceI.java 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/VciFileDocClassifyServiceI.java 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/VciFileDownloadServiceI.java 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/VciFileObjectServiceI.java 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/VciFileQueryServiceI.java 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/VciFileUploadServiceI.java 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/VciFileVolumeServiceI.java 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/WFWorkflowNodeFavItemServiceI.java 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/WFWorkflowNodeFavServiceI.java 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/WebAttributeServiceI.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/WebBoServiceI.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/WebBtmServiceI.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/WebEnumServiceI.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/WebHomeTaskServiceI.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/WebLifeCycleServiceI.java 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/WebLinkTypeServiceI.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/WebLoServiceI.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/WebProcessCommandServiceI.java 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/WebProcessDefineServiceI.java 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/WebPwdStrategyQueryServiceI.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/WebRevisionRuleServiceI.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/WebSecretServiceI.java 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/WebStatusServiceI.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/OrgDeptQueryServiceImpl.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/OrgDutyQueryServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/OsCodeGenSchemaServiceImpl.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/OsCodeRuleServiceImpl.java 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/SmRoleQueryServiceImpl.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/SmUserQueryServiceImpl.java 157 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WFWorkflowNodeFavItemServiceImpl.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WFWorkflowNodeFavServiceImpl.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WebAttributeServiceImpl.java 257 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WebBoServiceImpl.java 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WebBtmServiceImpl.java 363 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WebEnumServiceImpl.java 280 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WebHomeTaskServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WebLifeCycleServiceImpl.java 409 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WebLinkTypeServiceImpl.java 164 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WebLoServiceImpl.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WebProcessCommandServiceImpl.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WebProcessDefineServiceImpl.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WebPwdStrategyQueryServiceImpl.java 230 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WebRevisionRuleServiceImpl.java 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WebSecretServiceImpl.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WebStatusServiceImpl.java 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/util/OsScanAnnotationTool.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/util/PinyinCommon.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/util/PlatformClientUtil.java 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/util/WebUtil.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/util/file/VciZipUtil.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/util/file/clientutil/VciFileDocClassifyClientUtil.java 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/util/file/clientutil/VciFileServerClientUtil.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/resources/application-dev.yml 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/resources/application-prod.yml 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/resources/application.yml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/resources/codeTemplate/Controller.java.vm 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/resources/codeTemplate/DO.java.vm 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/resources/codeTemplate/DTO.java.vm 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/resources/codeTemplate/Mapper.impl.java.vm 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/resources/codeTemplate/Mapper.java.vm 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/resources/codeTemplate/Mapper.xml.vm 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/resources/codeTemplate/PO.java.vm 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/resources/codeTemplate/Service.impl.java.vm 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/resources/codeTemplate/Service.java.vm 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/resources/codeTemplate/VO.java.vm 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/resources/codeTemplate/ui.js.vm 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/resources/compatibility_field_map.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/resources/log4j2-spring-dev.xml 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/resources/log4j2-spring-prod.xml 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/pom.xml 87 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/enumpck/DataObjectEnum.java 152 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/test/DataTestController.java 199 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/HMSysModConfigController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/LogBasicController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/LoginController.java 344 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsAttributeController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsDataAuthController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsLifeCycleController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsLinkTypeController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsLoginController.java 186 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsPvolumesController.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsQueryTemplateController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsRevisionRuleController.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/SmFunctionController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/SmPwdStrategyQueryController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/UIManagerController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/VciOsStatusController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebBtmTypeController.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebDataRightController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebEnumController.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebOnlineUserController.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebPortalVIController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebUIController.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebUIDataController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/enumpck/ActionEnum.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/enumpck/CombinationEnum.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/enumpck/ControlType.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/enumpck/ItemDblEnum.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/enumpck/ResourceControlTypeEnum.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/initTask/OsInitTaskComponet.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/lifeCycle/ReleaseDataLCStatus.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/other/AllActionThreadLocal.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/other/BdSelectInputCharAspect.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/other/BtmQTExportData.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/other/ExportBeans.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/other/FlowNoticeExample.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/other/LinkQTExportData.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/other/WorkFlowEndedNotice.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/BdSelectInputCharServiceI.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/ISmFunctionQueryService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsActionServiceI.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsAttributeServiceI.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsBaseServiceI.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsEnumServiceI.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsLifeCycleServiceI.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsLinkTypeServiceI.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsLoginServiceI.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsPortalVIServiceI.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsPvolumesServiceI.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsStatusServiceI.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/SmHMSysModConfigServiceI.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/SmPwdStrategyQueryServiceI.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIDataServiceI.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIEngineServiceI.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIManagerServiceI.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/WebBtmIOServiceI.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/BdSelectInputCharServiceImpl.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/LogBasicServiceImpl.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsActionServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsAttributeServiceImpl.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsBtmServiceImpl.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsDataAuthServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsEnumServiceImpl.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsLifeCycleServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsLinkTypeServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsLoginServiceImpl.java 266 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPvolumesServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsQueryTemplateImpl.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsRevisionRuleServiceImpl.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsStatusServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsTypeActionServiceImpl.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/SecretGradeServiceImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/SmFavFunctionServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/SmFunctionQueryServicePlatformImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/SmHMSysModConfigServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/SmOperationServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/SmPwdStrategyQueryServiceImpl.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/SmSessionForLoginImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIDataServiceImpl.java 56 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIEngineServiceImpl.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebBtmIOServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebInitServiceImpl.java 180 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebLogServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/BusAnnotationUtil.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/RightControlUtil.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/UITools.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/resources/application-dev.yml 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/resources/application-prod.yml 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/resources/i18n/messages.properties 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/resources/i18n/messages_zh_CN.properties 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/resources/properties/corba.properties 171 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/resources/properties/iceClient.properties 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/pom.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/api/system/user/api.js 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/store/modules/user.js 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/util/func.js 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/authority/ui/dataAuthorization/dataView.vue 140 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/authority/ui/dataAuthorization/index.vue 114 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formQueryDialog.vue 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/components/formDialog.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/index.vue 177 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/system/role/index.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/wel/index.vue 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-starter/pom.xml
@@ -15,12 +15,24 @@
    </properties>
    <dependencies>
        <!-- æ–°å¹³å°æ‰€éœ€è¦çš„包 -->
        <!--client-->
        <!--平台client包-->
        <dependency>
            <groupId>com.vci.client</groupId>
            <groupId>com.vci.plt</groupId>
            <artifactId>plt-clientbase</artifactId>
            <version>${plt.version}</version>
        </dependency>
        <!--平台common包-->
        <dependency>
            <groupId>com.vci.plt</groupId>
            <artifactId>plt-common</artifactId>
            <version>${plt.version}</version>
        </dependency>
        <dependency>
            <groupId>com.vci.plt</groupId>
            <artifactId>plt-slice</artifactId>
            <version>${plt.version}</version>
        </dependency>
        <!--client的依赖-->
        <dependency>
            <groupId>com.formdev</groupId>
@@ -101,18 +113,6 @@
            <groupId>com.uitheme</groupId>
            <artifactId>uitheme</artifactId>
            <version>1.3.1</version>
        </dependency>
        <!--common-->
        <dependency>
            <groupId>com.vci.common</groupId>
            <artifactId>plt-common</artifactId>
            <version>${plt.version}</version>
        </dependency>
        <dependency>
            <groupId>com.vci.corba</groupId>
            <artifactId>plt-slice</artifactId>
            <version>${plt.version}</version>
        </dependency>
        <!--common的依赖-->
        <dependency>
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/AuditTaskDTO.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/plugins/dto/AuditTaskDTO.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.plugins.dto;
package com.vci.dto;
import com.vci.dto.BaseModelDTO;
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/OsDataAuthDTO.java
@@ -1,10 +1,7 @@
package com.vci.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.vci.starter.web.util.VciDateUtil;
import lombok.Data;
import java.util.Date;
import java.util.List;
import java.util.Map;
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/enumpck/OsCodeDateValueTypeEnum.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/enumpck/OsCodeDateValueTypeEnum.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.web.enumpck;
package com.vci.enumpck;
import com.vci.starter.web.annotation.VciEnum;
import com.vci.starter.web.enumpck.BaseEnum;
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/enumpck/OsCodeElementTypeEnum.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/enumpck/OsCodeElementTypeEnum.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.web.enumpck;
package com.vci.enumpck;
import com.vci.starter.web.annotation.VciEnum;
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/enumpck/OsCodeFillTypeEnum.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/enumpck/OsCodeFillTypeEnum.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.web.enumpck;
package com.vci.enumpck;
import com.vci.starter.web.annotation.VciEnum;
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/enumpck/OsCodeGenJsPanelTypeEnum.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/enumpck/OsCodeGenJsPanelTypeEnum.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.web.enumpck;
package com.vci.enumpck;
import com.vci.starter.web.annotation.VciEnum;
import com.vci.starter.web.enumpck.BaseEnum;
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/enumpck/OsCodeProductTypeEnum.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/enumpck/OsCodeProductTypeEnum.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.web.enumpck;
package com.vci.enumpck;
import com.vci.starter.web.annotation.VciEnum;
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/enumpck/UI/ControlAttributeType.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/enumpck/ControlAttributeType.java ÐÞ¸Ä
@@ -1,7 +1,11 @@
package com.vci.web.enumpck;
package com.vci.enumpck.UI;
import com.vci.common.portal.enums.ControlType;
/**
 * å±žæ€§ç±»åž‹æžšä¸¾
 */
public enum ControlAttributeType {
    VTString,
    VTInteger,
    VTLong,
@@ -14,7 +18,7 @@
    VTNote,
    VTFilePath,
    VTClob,
    canzhao;
    VTRefer;
    public static ControlType Parse(String value) {
        for (ControlType ct : ControlType.values()) {
            if (ct.name().equalsIgnoreCase(value)) {
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/enumpck/UI/ItemTypeEnum.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/enumpck/ItemTypeEnum.java ÐÞ¸Ä
@@ -1,12 +1,14 @@
package com.vci.web.enumpck;
package com.vci.enumpck.UI;
import com.vci.pagemodel.KeyValue;
import com.vci.starter.web.enumpck.BaseEnum;
import com.vci.starter.web.enumpck.VciFieldTypeEnum;
import java.util.ArrayList;
import java.util.List;
/**
 * è¾“入框类型枚举
 */
public enum ItemTypeEnum implements BaseEnum {
    TEXT("text","单行文本框"),
    TEXTBTN("textbtn","文本按钮框"),
@@ -166,7 +168,7 @@
        }else  if( ControlAttributeType.VTTime.equals(key)){//时间
            value = ItemTypeEnum.TIME.getValue();
        }
        else  if( ControlAttributeType.canzhao.equals(key)){//参照
        else  if( ControlAttributeType.VTRefer.equals(key)){//参照
            value = ItemTypeEnum.TEXT.getValue();
        }
        else  if( ControlAttributeType.VTBoolean.equals(key)){//boolean
@@ -211,7 +213,7 @@
        }else  if( ControlAttributeType.VTTime.equals(key)){//时间
            value = ItemTypeEnum.TIME.getValue();
        }
        else  if( ControlAttributeType.canzhao.equals(key)){//参照
        else  if( ControlAttributeType.VTRefer.equals(key)){//参照
            value = ItemTypeEnum.TEXT.getValue();
        }
        else  if( ControlAttributeType.VTBoolean.equals(key)){//boolean
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/enumpck/UI/OrgTypeEnum.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/enumpck/OrgTypeEnum.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.frameworkcore.enumpck;
package com.vci.enumpck.UI;
import com.vci.starter.web.enumpck.BaseEnum;
/**
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/enumpck/UI/RoleClassifyEnum.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/enumpck/RoleClassifyEnum.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.frameworkcore.enumpck;
package com.vci.enumpck.UI;
import com.vci.starter.web.annotation.VciEnum;
import com.vci.starter.web.enumpck.BaseEnum;
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/enumpck/UI/RoleControlAreaEnum.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/enumpck/RoleControlAreaEnum.java ÐÞ¸Ä
@@ -1,7 +1,7 @@
package com.vci.frameworkcore.enumpck;
package com.vci.enumpck.UI;
//import com.vci.frameworkcore.constant.FrameWorkEnumConstant;
import com.vci.constant.FrameWorkEnumConstant;
import com.vci.starter.web.annotation.VciEnum;
import com.vci.starter.web.enumpck.BaseEnum;
/**
@@ -9,7 +9,7 @@
 * @author weidy
 * @date 2019/9/25
 */
//@VciEnum(name = FrameWorkEnumConstant.ROLE_CONTROL_AREA,text = "角色控制区域",description = "电脑端BS,CS,移动端,集成,微服务")
@VciEnum(name = FrameWorkEnumConstant.ROLE_CONTROL_AREA,text = "角色控制区域",description = "电脑端BS,CS,移动端,集成,微服务")
public enum RoleControlAreaEnum implements BaseEnum {
    /**
     * ç”µè„‘端B/S
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/enumpck/UI/VciFileServiceOsTypeEnum.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/enumpck/VciFileServiceOsTypeEnum.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.enumpck;
package com.vci.enumpck.UI;
import com.vci.starter.web.annotation.VciEnum;
import com.vci.starter.web.enumpck.BaseEnum;
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/enumpck/UI/VciFileTransProtocolEnum.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/enumpck/VciFileTransProtocolEnum.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.enumpck;
package com.vci.enumpck.UI;
import com.vci.starter.web.annotation.VciEnum;
import com.vci.starter.web.enumpck.BaseEnum;
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/enumpck/UserTypeEnum.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/enumpck/UserTypeEnum.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.web.enumpck;
package com.vci.enumpck;
import com.vci.starter.web.annotation.VciEnum;
import com.vci.starter.web.enumpck.BaseEnum;
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/lcstatuspck/FileObjectLCStatus.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/lifeCycle/FileObjectLCStatus.java ÐÞ¸Ä
@@ -1,8 +1,7 @@
package com.vci.web.lifeCycle;
package com.vci.lcstatuspck;
import com.vci.constant.FrameWorkDefaultValueConstant;
import com.vci.constant.VciFileLifeConstant;
import com.vci.constant.FrameWorkDefaultValueConstant;
import com.vci.starter.web.annotation.Transient;
import com.vci.starter.web.annotation.VciLifeCycle;
import com.vci.starter.web.annotation.VciLifeCycleTrans;
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/lcstatuspck/FrameworkDataLCStatus.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/lcstatuspck/FrameworkDataLCStatus.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.frameworkcore.lcstatuspck;
package com.vci.lcstatuspck;
import com.vci.starter.web.annotation.VciLifeCycle;
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/lcstatuspck/ReleaseDataLCStatus.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/lcstatuspck/ReleaseDataLCStatus.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.frameworkcore.lcstatuspck;
package com.vci.lcstatuspck;
import com.vci.starter.web.annotation.VciLifeCycle;
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/properties/OsConfig.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
package com.vci.properties;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
/**
 * @Description
 * @Author dangsn
 * @Date 2024/11/28 17:40
 */
@Configuration
@ConfigurationProperties(prefix = "plt")
public class OsConfig {
    private boolean exportSecretGrade;
    public boolean isExportSecretGrade() {
        return exportSecretGrade;
    }
    public void setExportSecretGrade(boolean exportSecretGrade) {
        this.exportSecretGrade = exportSecretGrade;
    }
}
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/properties/TomcatConfig.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/config/TomcatConfig.java ÐÞ¸Ä
@@ -1,7 +1,6 @@
package com.vci.web.config;
package com.vci.properties;
import org.apache.catalina.connector.Connector;
import org.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/properties/VciFileTransProperties.java
@@ -1,6 +1,6 @@
package com.vci.properties;
import com.vci.enumpck.VciFileTransProtocolEnum;
import com.vci.enumpck.UI.VciFileTransProtocolEnum;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/provider/VciFileDocClassifyProvider.java
@@ -17,7 +17,7 @@
 */
@FeignClient(
        name = "vciFileDocClassifyProvider",
        url = "${vciPlatform.fileServiceUrl:http://localhost:19000/fileService}",
        url = "${feign.fileServiceUrl:http://localhost:19000/fileService}",
        path = "vciFileDocClassifyController"
)
public interface VciFileDocClassifyProvider {
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/provider/VciFileDownloadProvider.java
@@ -12,7 +12,7 @@
 */
@FeignClient(
        name = "VciFileDownloadProvider",
        url = "${vciPlatform.fileServiceUrl:http://localhost:19000/fileService}",
        url = "${feign.fileServiceUrl:http://localhost:19000/fileService}",
        path = "vciFileDownloadController"
)
public interface VciFileDownloadProvider {
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/provider/VciFileQueryProvider.java
@@ -13,7 +13,7 @@
 */
@FeignClient(
        name = "vciFileQueryProvider",
        url = "${vciPlatform.fileServiceUrl:http://localhost:19000/fileService}",
        url = "${feign.fileServiceUrl:http://localhost:19000/fileService}",
        path = "vciFileQueryController"
)
public interface VciFileQueryProvider {
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/provider/VciFileUploadProvider.java
@@ -20,7 +20,7 @@
 */
@FeignClient(
        name = "vciFileUploadProvider",
        url = "${vciPlatform.fileServiceUrl:http://localhost:19000/fileService}",
        url = "${feign.fileServiceUrl:http://localhost:19000/fileService}",
        path = "vciFileUploadController"
)
public interface VciFileUploadProvider {
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/query/FileImageViewerQuery.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/query/FileImageViewerQuery.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.web.query;
package com.vci.query;
/**
 * å›¾ç‰‡ç»„件的查询对象
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/query/UIBaseQuery.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/query/UIBaseQuery.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.web.query;
package com.vci.query;
import java.util.ArrayList;
import java.util.HashMap;
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/query/UIDataGridQuery.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/query/UIDataGridQuery.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.web.query;
package com.vci.query;
import com.alibaba.fastjson.JSON;
import com.vci.starter.web.pagemodel.BaseQueryObject;
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/query/UIFormQuery.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/query/UIFormQuery.java ÐÞ¸Ä
@@ -1,9 +1,4 @@
package com.vci.web.query;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
package com.vci.query;
/**
 * è¡¨å•的查询
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/query/UILinkTypeDataQuery.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/query/UILinkTypeDataQuery.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.web.query;
package com.vci.query;
import com.vci.starter.web.pagemodel.PageHelper;
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/query/UITreeQuery.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/query/UITreeQuery.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.web.query;
package com.vci.query;
import com.vci.starter.web.pagemodel.TreeQueryObject;
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/query/UITreeRootQuery.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/query/UITreeRootQuery.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.web.query;
package com.vci.query;
/**
 * æ ‘的根节点
Source/plt-web/plt-web-parent/plt-web-base/pom.xml
@@ -19,6 +19,12 @@
    </properties>
    <dependencies>
        <!--平台的包-->
        <dependency>
            <groupId>com.vci</groupId>
            <artifactId>plt-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
@@ -56,18 +62,6 @@
            <groupId>com.alibaba</groupId>
            <artifactId>transmittable-thread-local</artifactId>
            <version>2.12.6</version>
        </dependency>
        <dependency>
            <groupId>com.vci.common</groupId>
            <artifactId>plt-common</artifactId>
            <version>1.0.RELEASE</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>com.vci.corba</groupId>
            <artifactId>plt-slice</artifactId>
            <version>1.0.RELEASE</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>com.zeroc</groupId>
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/revision/provider/CommonAnnotationProvider.java
@@ -12,7 +12,7 @@
 * @author weidy
 * @date 2020/4/17
 */
@FeignClient(name="commonAnnotationProvider",url="${vciPlatform.objectServiceUrl}",path = "annotationController")
@FeignClient(name="commonAnnotationProvider",url="${feign.scanServiceUrl}",path = "annotationController")
public interface CommonAnnotationProvider {
    /**
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/revision/provider/CommonLifeCycleProvider.java
@@ -10,7 +10,7 @@
 * @author weidy
 * @date 2020/4/15
 */
@FeignClient(name="commonLifeCycleProvider",url="${vciPlatform.objectServiceUrl}",path = "lifeCycleController")
@FeignClient(name="commonLifeCycleProvider",url="${feign.pltServiceUrl}",path = "lifeCycleController")
public interface CommonLifeCycleProvider {
    /**
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/revision/provider/CommonRevisionRuleProvider.java
@@ -11,7 +11,7 @@
 * @author weidy
 * @date 2020/4/15
 */
@FeignClient(name="commonRevisionRuleProvider",url="${vciPlatform.objectServiceUrl}",path = "revisionRuleController")
@FeignClient(name="commonRevisionRuleProvider",url="${feign.pltServiceUrl}",path = "revisionRuleController")
public interface CommonRevisionRuleProvider {
    /**
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/revision/service/RevisionModelUtil.java
@@ -1,13 +1,16 @@
package com.vci.starter.revision.service;
import com.vci.starter.revision.bo.TreeWrapperOptions;
import com.vci.starter.revision.model.*;
import com.vci.starter.revision.provider.*;
import com.vci.starter.revision.model.ReleasedObjDO;
import com.vci.starter.revision.model.RevisionInfo;
import com.vci.starter.revision.provider.CommonAnnotationProvider;
import com.vci.starter.revision.provider.CommonLifeCycleProvider;
import com.vci.starter.revision.provider.CommonRevisionRuleProvider;
import com.vci.starter.web.annotation.Column;
import com.vci.starter.web.annotation.VciBtmType;
import com.vci.starter.web.annotation.VciColumnDefinition;
import com.vci.starter.web.constant.RevisionConstant;
import com.vci.starter.web.constant.RegExpConstant;
import com.vci.starter.web.constant.RevisionConstant;
import com.vci.starter.web.enumpck.DataSecretEnum;
import com.vci.starter.web.enumpck.UserSecretEnum;
import com.vci.starter.web.exception.VciBaseException;
@@ -18,7 +21,6 @@
import com.vci.starter.web.pagemodel.Tree;
import com.vci.starter.web.pagemodel.TreeQueryObject;
import com.vci.starter.web.service.VciSecretServiceI;
import com.vci.starter.web.util.BeanUtil;
import com.vci.starter.web.util.BeanUtilForVCI;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.util.VciDateUtil;
@@ -30,6 +32,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.lang.reflect.Field;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
@@ -195,8 +198,8 @@
        baseModel.setLastModifyTime(currentDate);
        //
        VciBtmType vciBtmType = getBtmTypeAnnotation(baseModel);
        if(StringUtils.isBlank(baseModel.getBtmname()) && vciBtmType!=null){
            baseModel.setBtmname(vciBtmType.name());
        if(StringUtils.isBlank(baseModel.getBtmName()) && vciBtmType!=null){
            baseModel.setBtmName(vciBtmType.name());
        }
        //获取包含了column注解的属性,因为不包含这个注解的时候是默认nullable为true,unique为false
        List<Field> hasColumnAnnoFields = filterHasColumnAnnoFields(baseModel);
@@ -284,9 +287,9 @@
        VciBaseUtil.alertNotNull(dto,"数据传输对象",baseModel,"数据库中的数据对象");
        //前端可能不会把默认的所有属性传递过来,所以先从数据库中的数据对象拷贝到临时的对象上
        BaseModel tempModel = new BaseModel();
        BeanUtil.convert(baseModel,tempModel);
        BeanUtil.convert(dto,baseModel);
        //BeanUtil.convert(tempModel,baseModel);
        BeanUtilForVCI.convert(baseModel,tempModel);
        BeanUtilForVCI.convert(dto,baseModel);
        //BeanUtilForVCI.convert(tempModel,baseModel);
        //不知道为啥,突然BeanUtil.convert(tempModel,baseModel);不好使了
        BeanUtilForVCI.copyPropertiesIgnoreCase(tempModel,baseModel);
        //为了防止前端没有传递默认的属性,所以得先拷贝到baseModel中,然后dto拷贝一次后,再把数据库中拷贝回来。
@@ -344,11 +347,11 @@
        wrapperForAddLink(linkModel);
        VciBaseUtil.alertNotNull(fromModel,"链接类型from端",toModel,"链接类型to端");
        linkModel.setFoid(fromModel.getOid());
        linkModel.setFbtmname(fromModel.getBtmname());
        linkModel.setFbtmname(fromModel.getBtmName());
        linkModel.setFnameoid(fromModel.getNameOid());
        linkModel.setToid(toModel.getOid());
        linkModel.setTbtmname(toModel.getBtmname());
        linkModel.setTbtmname(toModel.getBtmName());
        linkModel.setTnameoid(toModel.getNameOid());
        linkModel.setTrevisionoid(toModel.getRevisionOid());
    }
@@ -418,7 +421,7 @@
            //必须管理版本才会执行发布
            VciBaseUtil.alertNotNull( baseModel.getOid(), "数据对象的主键", baseModel.getNameOid(), "对象的主键",baseModel.getRevisionOid(),"版本的主键");
            ReleasedObjDO releasedObjDO = new ReleasedObjDO();
            BeanUtil.convert(baseModel,releasedObjDO);
            BeanUtilForVCI.convert(baseModel,releasedObjDO);
            if(StringUtils.isBlank(releasedObjDO.getBtmName())){
                releasedObjDO.setBtmName(btmType.name());
            }
@@ -516,7 +519,7 @@
        if(StringUtils.isBlank(baseModel.getOwner())) {
            baseModel.setOwner(baseModel.getCreator());
        }
        baseModel.setBtmname(btmName);
        baseModel.setBtmName(btmName);
    }
    /**
@@ -590,12 +593,12 @@
        setBtmName(newModel);
        VciBaseUtil.alertNotNull(newModel.getCopyFromVersion(),"引用老版本的主键");
        if (revisionMapper != null) {
            RevisionInfo oldRevision = revisionMapper.selectByOid(newModel.getCopyFromVersion(),VciBaseUtil.getTableName(newModel.getBtmname()));
            RevisionInfo oldRevision = revisionMapper.selectByOid(newModel.getCopyFromVersion(),VciBaseUtil.getTableName(newModel.getBtmName()));
            if(oldRevision == null || StringUtils.isBlank(oldRevision.getOid()) ){
                throw new VciBaseException("老版本在数据库中不存在");
            }
            BaseModel oldModel = new BaseModel();
            BeanUtil.convert(oldRevision,oldModel);
            BeanUtilForVCI.convert(oldRevision,oldModel);
            wrapperRevisionModel(oldModel,newModel);
        }else{
            throw new VciBaseException("没有初始化版本规则的数据操作层,请开发人员检查Maven是否引用");
@@ -610,12 +613,12 @@
    public void wrapperVersionModel(BaseModel newModel) throws VciBaseException{
        VciBaseUtil.alertNotNull(newModel,"新版次的数据对象",newModel.getCopyFromVersion(),"引用老版次的主键");
        if (revisionMapper != null) {
            RevisionInfo oldRevision = revisionMapper.selectByOid(newModel.getCopyFromVersion(),VciBaseUtil.getTableName(newModel.getBtmname()));
            RevisionInfo oldRevision = revisionMapper.selectByOid(newModel.getCopyFromVersion(),VciBaseUtil.getTableName(newModel.getBtmName()));
            if(oldRevision == null || StringUtils.isBlank(oldRevision.getOid()) ){
                throw new VciBaseException("老版次数据在数据库中不存在");
            }
            BaseModel oldModel = new BaseModel();
            BeanUtil.convert(oldRevision,oldModel);
            BeanUtilForVCI.convert(oldRevision,oldModel);
            wrapperVersionModel(oldModel,newModel);
        }else{
            throw new VciBaseException("没有初始化版本规则的数据操作层,请开发人员检查Maven是否引用");
@@ -984,7 +987,7 @@
                } else {
                    //没有这个,那就直接用oldModel去获取版本号
                    lastRevision = new RevisionInfo();
                    BeanUtil.convert(oldModel, lastRevision);
                    BeanUtilForVCI.convert(oldModel, lastRevision);
                }
                newModel.setRevisionRule(lastRevision.getRevisionRule());
                newModel.setVersionRule(lastRevision.getVersionRule());
@@ -1050,7 +1053,7 @@
                } else {
                    //没有这个,那就直接用oldModel去获取版本号
                    lastRevision = new RevisionInfo();
                    BeanUtil.convert(oldModel, lastRevision);
                    BeanUtilForVCI.convert(oldModel, lastRevision);
                }
                //版次号,就数字和字母两种
                if(oldModel.getVersionValue().matches(RegExpConstant.LETTER)){
@@ -1075,12 +1078,12 @@
     */
    private void setBtmName(BaseModel baseModel){
        VciBaseUtil.alertNotNull(baseModel,"数据对象");
        if(StringUtils.isBlank(baseModel.getBtmname())){
        if(StringUtils.isBlank(baseModel.getBtmName())){
            VciBtmType btmType = getBtmTypeAnnotation(baseModel);
            if(btmType == null){
                throw new VciBaseException("没有VciBtmType注解,无法判断业务类型");
            }
            baseModel.setBtmname(btmType.name());
            baseModel.setBtmName(btmType.name());
        }
    }
@@ -1091,8 +1094,8 @@
    public void saveOldModel(BaseModel oldModel){
        setBtmName(oldModel);
        if (revisionMapper != null) {
            revisionMapper.resetLastRevision(oldModel.getNameOid(),VciBaseUtil.getTableName(oldModel.getBtmname()));
            revisionMapper.resetOldRevision(oldModel.getOid(),VciBaseUtil.getTableName(oldModel.getBtmname()));
            revisionMapper.resetLastRevision(oldModel.getNameOid(),VciBaseUtil.getTableName(oldModel.getBtmName()));
            revisionMapper.resetOldRevision(oldModel.getOid(),VciBaseUtil.getTableName(oldModel.getBtmName()));
        }else{
            throw new VciBaseException("没有初始化版本规则的数据操作层,请开发人员检查maven是否引用");
        }
@@ -1105,8 +1108,8 @@
    public void saveOldModelVersion(BaseModel oldModel){
        setBtmName(oldModel);
        if (revisionMapper != null) {
            revisionMapper.resetLastVersion(oldModel.getNameOid(),oldModel.getRevisionOid(),VciBaseUtil.getTableName(oldModel.getBtmname()));
            revisionMapper.resetOldVersion(oldModel.getOid(),VciBaseUtil.getTableName(oldModel.getBtmname()));
            revisionMapper.resetLastVersion(oldModel.getNameOid(),oldModel.getRevisionOid(),VciBaseUtil.getTableName(oldModel.getBtmName()));
            revisionMapper.resetOldVersion(oldModel.getOid(),VciBaseUtil.getTableName(oldModel.getBtmName()));
        }else{
            throw new VciBaseException("没有初始化版本规则的数据操作层,请开发人员检查maven是否引用");
        }
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/annotation/BdSelectInput.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/annotation/BdSelectInput.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.web.annotation;
package com.vci.starter.web.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/annotation/CopyProperty.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/beans/CopyProperty.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.web.util.beans;
package com.vci.starter.web.annotation;
import java.lang.annotation.*;
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/annotation/FlowNotifyAfter.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/annotation/FlowNotifyAfter.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.web.annotation;
package com.vci.starter.web.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/annotation/FlowNotifyBefore.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/annotation/FlowNotifyBefore.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.web.annotation;
package com.vci.starter.web.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/annotation/FlowNotifyWeb.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/annotation/FlowNotifyWeb.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.web.annotation;
package com.vci.starter.web.annotation;
import org.springframework.core.annotation.AliasFor;
import org.springframework.stereotype.Component;
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/annotation/VciTransactional.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/annotation/VciTransactional.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.web.annotation;
package com.vci.starter.web.annotation;
/**
 * å› ä¸ºweb端的服务不让连数据库,所以涉及到事务的问题不能解决,只能基于事务的思路来处理
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/autoconfigure/SpringMVCConfig.java
@@ -52,6 +52,8 @@
     */
    private Logger log = LoggerFactory.getLogger(SpringMVCConfig.class);
    private boolean enabled;
    /**
     * å¤–部文件夹的映射地址
     */
@@ -100,10 +102,19 @@
     * é»˜è®¤æ˜¯å¦å…è®¸è¯ä¹¦
     */
    private boolean DEFAULT_ALLOW_CREDENTIALS = true;
    /**
     * é»˜è®¤çš„æœ€å¤§å€¼
     */
    private long DEFAULT_MAX_AGE = 1800;
    public boolean isEnabled() {
        return enabled;
    }
    public void setEnabled(boolean enabled) {
        this.enabled = enabled;
    }
    public Map<String, String> getResourceFolderMap() {
        return resourceFolderMap;
@@ -419,4 +430,12 @@
    public void setUnStorageRequestTimeUrls(List<String> unStorageRequestTimeUrls) {
        this.unStorageRequestTimeUrls = unStorageRequestTimeUrls;
    }
    public String[] getDEFAULT_EXPOSEDHEADERS() {
        return DEFAULT_EXPOSEDHEADERS;
    }
    public void setDEFAULT_EXPOSEDHEADERS(String[] DEFAULT_EXPOSEDHEADERS) {
        this.DEFAULT_EXPOSEDHEADERS = DEFAULT_EXPOSEDHEADERS;
    }
}
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/constant/CharPool.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/CharPool.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.web.util;
package com.vci.starter.web.constant;
/**
 * char å¸¸é‡æ± 
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/constant/StringPool.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/StringPool.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.web.util;
package com.vci.starter.web.constant;
/**
 * é™æ€ String æ± 
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/model/BaseModel.java
@@ -22,44 +22,44 @@
    /**
     * ä¸»é”®ï¼Œå¦‚果自己的对象,不是oid作为主键的话,需要用id这个注解
     */
    @Column(nullable = false,length = 50)
    @Column(nullable = false)
    private String oid;
    
    /**
     * ä»£å·ï¼›å¯ä»¥è®¾ç½®å±žæ€§çš„æ˜ å°„,name表示在平台的业务类型中的属性名称,必须为小写;
     */
    @Column(length = 50)
    @Column()
    private String id;
    
    /**
     * åç§°ï¼›ä¹Ÿå¯ä»¥ä¸è®¾ç½®å±žæ€§æ˜ å°„,默认是字段名的小写
     */
    @Column(length = 50)
    @Column()
    private String name;
    
    /**
     * æè¿°
     */
    @Column(length = 250)
    @Column()
    private String description;
    
    /**
     * ç‰ˆæœ¬çš„主键
     */
    @Column(length = 50)
    @Column()
    private String revisionOid;
    
    /**
     * å¯¹è±¡çš„主键
     */
    @Column(length = 50)
    @Column()
    private String nameOid;
    
    /**
     * ä¸šåŠ¡ç±»åž‹çš„åç§°
     */
    @Column(length = 30)
    private String btmname;
    @Column()
    private String btmName;
    
    /**
     * æ˜¯å¦æœ€åŽç‰ˆæœ¬
@@ -91,7 +91,7 @@
    /**
     * åˆ›å»ºäºº
     */
    @Column(length = 50,nullable = false)
    @Column(nullable = false)
    private String creator;
    
    /**
@@ -104,7 +104,7 @@
    /**
     * æœ€åŽä¿®æ”¹äºº
     */
    @Column(length = 50,nullable = false)
    @Column(nullable = false)
    private String lastModifier;
    
    /**
@@ -116,7 +116,7 @@
    /**
     * ç‰ˆæœ¬è§„则
     */
    @Column(length = 50)
    @Column()
    private String revisionRule;
@@ -129,14 +129,14 @@
    /**
     * ç‰ˆæœ¬å€¼
     */
    @Column(length = 50)
    @Column()
    private String revisionValue;
    /**
     * ç‰ˆæ¬¡è§„则
     */
    @Column(length = 50)
    @Column()
    private String versionRule;
    /**
@@ -148,19 +148,19 @@
    /**
     * ç‰ˆæ¬¡å€¼
     */
    @Column(length = 50)
    @Column()
    private String versionValue;
    /**
     * ç”Ÿå‘½å‘¨æœŸçš„编号
     */
    @Transient()
    private String lctid;
    private String lctId;
    /**
     * ç”Ÿå‘½å‘¨æœŸå€¼
     */
    @Column(length = 50)
    @Column()
    private String lcStatus;
    
    /**
@@ -277,14 +277,13 @@
        this.nameOid = nameOid;
    }
    public String getBtmname() {
        return btmname;
    public String getBtmName() {
        return btmName;
    }
    public void setBtmname(String btmname) {
        this.btmname = btmname;
    public void setBtmName(String btmName) {
        this.btmName = btmName;
    }
    public String getLastR() {
        return lastR;
@@ -326,6 +325,14 @@
        this.creator = creator;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public String getLastModifier() {
        return lastModifier;
    }
@@ -350,14 +357,6 @@
        this.revisionRule = revisionRule;
    }
    public String getVersionRule() {
        return versionRule;
    }
    public void setVersionRule(String versionRule) {
        this.versionRule = versionRule;
    }
    public int getRevisionSeq() {
        return revisionSeq;
    }
@@ -372,6 +371,14 @@
    public void setRevisionValue(String revisionValue) {
        this.revisionValue = revisionValue;
    }
    public String getVersionRule() {
        return versionRule;
    }
    public void setVersionRule(String versionRule) {
        this.versionRule = versionRule;
    }
    public int getVersionSeq() {
@@ -390,12 +397,28 @@
        this.versionValue = versionValue;
    }
    public String getLctId() {
        return lctId;
    }
    public void setLctId(String lctId) {
        this.lctId = lctId;
    }
    public String getLcStatus() {
        return lcStatus;
    }
    public void setLcStatus(String lcStatus) {
        this.lcStatus = lcStatus;
    }
    public String getLcStatusText() {
        return lcStatusText;
    }
    public void setLcStatusText(String lcStatusText) {
        this.lcStatusText = lcStatusText;
    }
    public Date getTs() {
@@ -454,22 +477,6 @@
        this.copyFromVersion = copyFromVersion;
    }
    public String getLcStatusText() {
        return lcStatusText;
    }
    public void setLcStatusText(String lcStatusText) {
        this.lcStatusText = lcStatusText;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public Integer getSecretGrade() {
        return secretGrade;
    }
@@ -486,60 +493,11 @@
        this.secretGradeText = secretGradeText;
    }
    public String getLctid() {
        return lctid;
    }
    public void setLctid(String lctid) {
        this.lctid = lctid;
    }
    public Map<String, String> getData() {
        return data;
    }
    public void setData(Map<String, String> data) {
        this.data = data;
    }
    @Override
    public String toString() {
        return "BaseModel{" +
                "oid='" + oid + '\'' +
                ", id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", description='" + description + '\'' +
                ", revisionOid='" + revisionOid + '\'' +
                ", nameOid='" + nameOid + '\'' +
                ", btmname='" + btmname + '\'' +
                ", lastR='" + lastR + '\'' +
                ", firstR='" + firstR + '\'' +
                ", lastV='" + lastV + '\'' +
                ", firstV='" + firstV + '\'' +
                ", creator='" + creator + '\'' +
                ", createTime=" + createTime +
                ", lastModifier='" + lastModifier + '\'' +
                ", lastModifyTime=" + lastModifyTime +
                ", revisionRule='" + revisionRule + '\'' +
                ", revisionSeq=" + revisionSeq +
                ", revisionValue='" + revisionValue + '\'' +
                ", versionRule='" + versionRule + '\'' +
                ", versionSeq=" + versionSeq +
                ", versionValue='" + versionValue + '\'' +
                ", lctid='" + lctid + '\'' +
                ", lcStatus='" + lcStatus + '\'' +
                ", lcStatusText='" + lcStatusText + '\'' +
                ", ts=" + ts +
                ", owner='" + owner + '\'' +
                ", checkInBy='" + checkInBy + '\'' +
                ", checkInTime=" + checkInTime +
                ", checkOutBy='" + checkOutBy + '\'' +
                ", checkOutTime=" + checkOutTime +
                ", copyFromVersion='" + copyFromVersion + '\'' +
                ", secretGrade=" + secretGrade +
                ", secretGradeText='" + secretGradeText + '\'' +
                ", data=" + data +
                '}';
    }
}
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/pagemodel/BaseTree.java
@@ -1,9 +1,6 @@
package com.vci.starter.web.pagemodel;
import java.util.ArrayList;
import java.util.List;
/**
 * @author ludc
 * @date 2024/11/27 16:53
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/BeanUtil.java
ÎļþÒÑɾ³ý
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/BeanUtilForVCI.java
@@ -1,12 +1,17 @@
package com.vci.starter.web.util;
import com.vci.starter.web.toolmodel.DateConverter;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cglib.beans.BeanCopier;
import org.springframework.cglib.core.Converter;
import org.springframework.util.CollectionUtils;
import java.lang.reflect.Field;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
/**
 * ä¸šåŠ¡ç±»åž‹ä¸“ç”¨çš„æ‹·è´å·¥å…·ï¼Œè¿™ä¸ªæ˜¯æµ…æ‹·è´ï¼Œ
@@ -19,6 +24,11 @@
     * æ—¥å¿—
     */
    private static Logger logger = LoggerFactory.getLogger(BeanUtilForVCI.class);
    /**
     * å­˜æ”¾æ‹·è´å¯¹è±¡çš„缓存
     */
    private static final ConcurrentMap<String, BeanCopier> beanCopierMap = new ConcurrentHashMap<>();
    /**
     * æ‹·è´æ•°æ®
@@ -255,4 +265,198 @@
        }
    }
    /**
     * èŽ·å–ç±»æ‹·è´çš„å¯¹è±¡
     * @param source æºå¯¹è±¡ç±»
     * @param target ç›®æ ‡å¯¹è±¡ç±»
     * @param useConverter æ˜¯å¦ä½¿ç”¨è½¬æ¢å™¨
     * @return æ‹·è´å¯¹è±¡
     */
    public static BeanCopier getBeanCopier(Class<?> source, Class<?> target,boolean useConverter) {
        String beanCopierKey = generateBeanKey(source, target);
        if (beanCopierMap.containsKey(beanCopierKey)) {
            return beanCopierMap.get(beanCopierKey);
        } else {
            BeanCopier beanCopier = BeanCopier.create(source, target, useConverter);
            beanCopierMap.putIfAbsent(beanCopierKey, beanCopier);
        }
        return beanCopierMap.get(beanCopierKey);
    }
    /**
     * ç”Ÿæˆä¸¤ä¸ªç±»çš„key,用于存放到缓存之中
     * @param source æºå¯¹è±¡ç±»åž‹
     * @param target ç›®æ ‡å¯¹è±¡ç±»
     * @return ä¸¤ä¸ªç±»çš„名称连接到一起后的名字
     */
    public static String generateBeanKey(Class<?> source, Class<?> target) {
        return source.getName() + "@" + target.getName();
    }
    /**
     * ä¸¤ä¸ªå¯¹è±¡ä¹‹é—´è½¬æ¢
     * @param source æºå¯¹è±¡
     * @param target ç›®æ ‡å¯¹è±¡
     * @param useConvert æ˜¯å¦ä½¿ç”¨é»˜è®¤çš„转换器,请在出现属性名称相同而类型不同,或者有对象类型,集合属性时才转换
     */
    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);
        }
    }
    /**
     * ä¸¤ä¸ªå¯¹è±¡ä¹‹é—´è½¬æ¢
     * @param source æºå¯¹è±¡
     * @param target ç›®æ ‡å¯¹è±¡
     * @return ç›®æ ‡å¯¹è±¡
     */
    public static void convert(Object source,Object target){
        convert(source,target,true);
    }
    /**
     * æ·±åº¦æ‹·è´è½¬æ¢å™¨
     */
    public static class DeepCopyConverter implements Converter {
        /**
         * ç›®æ ‡å¯¹è±¡
         */
        private Object target;
        /**
         * æž„造方法
         * @param target ç›®æ ‡å¯¹è±¡
         */
        public DeepCopyConverter(Object target) {
            this.target = target;
        }
        /**
         * æ‰§è¡Œæ‹·è´
         * @param value æºå¯¹è±¡çš„属性的值
         * @param targetClazz ç›®æ ‡å¯¹è±¡çš„属性的类
         * @param methodName set方法的名字
         * @return è½¬æ¢åŽçš„值
         */
        @Override
        public Object convert(Object value, Class targetClazz, Object methodName) {
            if (value instanceof List) {
                List values = (List) value;
                List retList = new ArrayList<>(values.size());
                copyForCollection(values,retList,methodName);
                return retList;
            } else if(value instanceof Set){
                Set values = (Set) value;
                Set retSet = new HashSet<>();
                copyForCollection(values,retSet,methodName);
            } else if(value instanceof Vector){
                Vector values = (Vector)value;
                Vector retVector = new Vector();
                copyForCollection(values,retVector,methodName);
            }else if (value instanceof Map) {
                Map values = (Map)value;
                Map retMap = new HashMap();
                for (final Object key : values.keySet()) {
                    Object mapValue = values.get(key);
                    String tempFieldName = methodName.toString().replace("set",
                            "");
                    String fieldName = tempFieldName.substring(0, 1)
                            .toLowerCase() + tempFieldName.substring(1);
                    Class clazz = ClassUtilForVCI.getElementType(target.getClass(), fieldName);
                    Object targetAttr = null;
                    try{
                        targetAttr = clazz.newInstance();
                    }catch (Throwable e){
                        //新的对象的属性初始化出错
                    }
                    BeanUtilForVCI.convert(mapValue, targetAttr);
                    retMap.put(key,targetAttr);
                }
            } else if (!ClassUtilForVCI.isPrimitive(targetClazz)) {
                //这个是对象类型
                Object targetAttr = null;
                try{
                    targetAttr = targetClazz.newInstance();
                }catch (Throwable e){
                    //新的对象属性初始化出错
                }
                BeanUtilForVCI.convert(value, targetAttr);
                return targetAttr;
            }
            if(value instanceof Boolean && targetClazz.equals(String.class)){
                //从boolean拷贝到string
                return String.valueOf(value);
            }
            if(value instanceof String && (targetClazz.equals(Boolean.class)
                    || targetClazz.equals(boolean.class))){
                //从String拷贝到boolean
                if("true".equalsIgnoreCase((String)value)){
                    return true;
                }else{
                    return false;
                }
            }
            if(value instanceof Date && targetClazz.equals(String.class)){
                //时间格式
                return VciDateUtil.date2Str((Date)value,VciDateUtil.DateTimeMillFormat);
            }
            if(value instanceof String && targetClazz.equals(Date.class)){
                //转换
                DateConverter dateConverter = new DateConverter();
                dateConverter.setAsText((String)value);
                return dateConverter.getValue();
            }
            return value;
        }
        /**
         * å¤„理集合属性
         * @param sourceCollection æºå¯¹è±¡ä¸­é›†åˆå±žæ€§çš„的值
         * @param targetCollection ç›®æ ‡å¯¹è±¡çš„集合属性的值
         * @param methodName setter方法
         */
        private void copyForCollection(Collection<?> sourceCollection,Collection targetCollection,Object methodName){
            for (final Object source : sourceCollection) {
                if(source instanceof Collection){
                    List<Object> targetValues = new ArrayList<>();
                    copyForCollection((Collection<?>)source,targetValues,methodName);
                    targetCollection.add(targetValues);
                }else if(source instanceof Map){
                    String tempFieldName = methodName.toString().replace("set",
                            "");
                    String fieldName = tempFieldName.substring(0, 1)
                            .toLowerCase() + tempFieldName.substring(1);
                    Class clazz = ClassUtilForVCI.getElementType(target.getClass(), fieldName);
                    Object targetAttr = null;
                    try {
                        targetAttr = clazz.newInstance();
                    } catch (Throwable e) {
                        //新的对象的属性初始化出错
                    }
                    Map map = (Map) source;
                    for(Object key : map.keySet()){
                        VciBaseUtil.setValueForField(key.toString(),targetAttr,VciBaseUtil.getStringValueFromObject(map.get(key)));
                    }
                    targetCollection.add(targetAttr);
                }else  {
                    String tempFieldName = methodName.toString().replace("set",
                            "");
                    String fieldName = tempFieldName.substring(0, 1)
                            .toLowerCase() + tempFieldName.substring(1);
                    Class clazz = ClassUtilForVCI.getElementType(target.getClass(), fieldName);
                    Object targetAttr = null;
                    try {
                        targetAttr = clazz.newInstance();
                    } catch (Throwable e) {
                        //新的对象的属性初始化出错
                    }
                    BeanUtilForVCI.convert(source, targetAttr);
                    targetCollection.add(targetAttr);
                }
            }
        }
    }
}
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/ClassUtilForVCI.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/ClassUtil.java ÐÞ¸Ä
@@ -11,7 +11,7 @@
 * @author weidy
 * @date 2019/11/23 10:18 AM
 */
public class ClassUtil {
public class ClassUtilForVCI {
    /**
     * åŸºæœ¬ç±»åž‹çš„æ˜ å°„
     */
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/Base64Util.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/Base64Util.java ÐÞ¸Ä
@@ -14,7 +14,7 @@
 *  this software without specific prior written permission.
 *  Author: DreamLu å¢æ˜¥æ¢¦ (596392912@qq.com)
 */
package com.vci.web.util;
package com.vci.starter.web.util.Lcm;
/**
 * Base64工具
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/BeanUtil.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/BeanUtil.java ÐÞ¸Ä
@@ -14,29 +14,19 @@
 *  this software without specific prior written permission.
 *  Author: DreamLu å¢æ˜¥æ¢¦ (596392912@qq.com)
 */
package com.vci.web.util;
package com.vci.starter.web.util.Lcm;
import com.vci.starter.web.annotation.*;
import com.vci.starter.web.enumpck.VciFieldTypeEnum;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.wrapper.VciReferFieldInfo;
import com.vci.web.util.beans.BeanProperty;
import com.vci.web.util.beans.BladeBeanCopier;
import com.vci.web.util.convert.BladeConverter;
import com.vci.web.util.beans.BladeBeanMap;
import org.apache.commons.lang3.StringUtils;
import com.vci.starter.web.util.Lcm.beans.BeanProperty;
import com.vci.starter.web.util.Lcm.beans.BladeBeanCopier;
import com.vci.starter.web.util.Lcm.beans.BladeBeanMap;
import com.vci.starter.web.util.Lcm.convert.BladeConverter;
import org.springframework.beans.BeanWrapper;
import org.springframework.beans.BeansException;
import org.springframework.beans.PropertyAccessorFactory;
import org.springframework.cglib.beans.BeanGenerator;
import org.springframework.lang.Nullable;
import java.lang.reflect.Field;
import java.util.*;
import static com.vci.starter.web.wrapper.VciQueryWrapperForDO.BASE_MODEL_COMPATIBILITY_MAP;
import static com.vci.starter.web.wrapper.VciQueryWrapperForDO.USER_TABLE_COMPATIBILITY;
/**
 * å®žä½“工具类
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/Charsets.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/Charsets.java ÐÞ¸Ä
@@ -14,9 +14,11 @@
 *  this software without specific prior written permission.
 *  Author: DreamLu å¢æ˜¥æ¢¦ (596392912@qq.com)
 */
package com.vci.web.util;
package com.vci.starter.web.util.Lcm;
import com.vci.starter.web.constant.StringPool;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.nio.charset.UnsupportedCharsetException;
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/ClassUtil.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/ClassUtil.java ÐÞ¸Ä
@@ -14,7 +14,7 @@
 *  this software without specific prior written permission.
 *  Author: DreamLu å¢æ˜¥æ¢¦ (596392912@qq.com)
 */
package com.vci.web.util;
package com.vci.starter.web.util.Lcm;
import org.springframework.core.BridgeMethodResolver;
import org.springframework.core.DefaultParameterNameDiscoverer;
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/CollectionUtil.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/CollectionUtil.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.web.util;
package com.vci.starter.web.util.Lcm;
import org.springframework.lang.Nullable;
import org.springframework.util.CollectionUtils;
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/ConcurrentDateFormat.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/ConcurrentDateFormat.java ÐÞ¸Ä
@@ -14,7 +14,7 @@
 *  this software without specific prior written permission.
 *  Author: DreamLu å¢æ˜¥æ¢¦ (596392912@qq.com)
 */
package com.vci.web.util;
package com.vci.starter.web.util.Lcm;
import java.text.ParseException;
import java.text.SimpleDateFormat;
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/ConvertUtil.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/ConvertUtil.java ÐÞ¸Ä
@@ -1,6 +1,7 @@
package com.vci.web.util;
package com.vci.starter.web.util.Lcm;
import com.vci.web.util.convert.BladeConversionService;
import com.vci.starter.web.util.ClassUtilForVCI;
import com.vci.starter.web.util.Lcm.convert.BladeConversionService;
import org.springframework.core.convert.TypeDescriptor;
import org.springframework.core.convert.support.GenericConversionService;
import org.springframework.lang.Nullable;
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/DatatypeConverterUtil.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/DatatypeConverterUtil.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.web.util;
package com.vci.starter.web.util.Lcm;
/**
 * æ•°æ®ç±»åž‹è½¬æ¢å·¥å…·ç±»
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/DateTimeUtil.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/DateTimeUtil.java ÐÞ¸Ä
@@ -14,7 +14,7 @@
 *  this software without specific prior written permission.
 *  Author: DreamLu å¢æ˜¥æ¢¦ (596392912@qq.com)
 */
package com.vci.web.util;
package com.vci.starter.web.util.Lcm;
import java.time.*;
import java.time.format.DateTimeFormatter;
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/DateUtil.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/DateUtil.java ÐÞ¸Ä
@@ -1,5 +1,6 @@
package com.vci.web.util;
package com.vci.starter.web.util.Lcm;
import com.vci.starter.web.constant.StringPool;
import org.springframework.util.Assert;
import java.text.ParseException;
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/DigestUtil.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/DigestUtil.java ÐÞ¸Ä
@@ -1,17 +1,17 @@
package com.vci.web.util;
package com.vci.starter.web.util.Lcm;
import com.vci.corba.common.PLException;
import com.vci.starter.web.exception.VciBaseException;
import org.apache.commons.codec.binary.Hex;
import com.vci.starter.web.constant.StringPool;
import org.springframework.lang.Nullable;
import org.springframework.util.DigestUtils;
import javax.crypto.*;
import javax.crypto.Cipher;
import javax.crypto.Mac;
import javax.crypto.SecretKey;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.security.*;
import java.security.spec.InvalidKeySpecException;
import java.security.spec.PKCS8EncodedKeySpec;
import java.security.InvalidKeyException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;
/**
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/Exceptions.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/Exceptions.java ÐÞ¸Ä
@@ -15,7 +15,7 @@
 *  Author: DreamLu å¢æ˜¥æ¢¦ (596392912@qq.com)
 */
package com.vci.web.util;
package com.vci.starter.web.util.Lcm;
import cn.hutool.core.io.FastStringWriter;
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/FileUtil.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/FileUtil.java ÐÞ¸Ä
@@ -15,8 +15,10 @@
 *  Author: DreamLu å¢æ˜¥æ¢¦ (596392912@qq.com)
 */
package com.vci.web.util;
package com.vci.starter.web.util.Lcm;
import com.vci.starter.web.constant.CharPool;
import com.vci.starter.web.constant.StringPool;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
import org.springframework.util.FileSystemUtils;
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/Func.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/Func.java ÐÞ¸Ä
@@ -1,16 +1,17 @@
package com.vci.web.util;
package com.vci.starter.web.util.Lcm;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.JsonNode;
import com.vci.web.util.jackson.JsonUtil;
import org.springframework.util.StringUtils;
import com.vci.starter.web.constant.StringPool;
import com.vci.starter.web.util.Lcm.jackson.JsonUtil;
import org.springframework.beans.BeansException;
import org.springframework.core.MethodParameter;
import org.springframework.core.annotation.AnnotatedElementUtils;
import org.springframework.core.convert.TypeDescriptor;
import org.springframework.lang.Nullable;
import org.springframework.util.PatternMatchUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.method.HandlerMethod;
import java.io.Closeable;
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/Holder.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/Holder.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.web.util;
package com.vci.starter.web.util.Lcm;
import java.security.SecureRandom;
import java.util.Random;
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/IoUtil.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/IoUtil.java ÐÞ¸Ä
@@ -15,7 +15,7 @@
 *  Author: DreamLu å¢æ˜¥æ¢¦ (596392912@qq.com)
 */
package com.vci.web.util;
package com.vci.starter.web.util.Lcm;
import org.springframework.lang.Nullable;
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/NumberUtil.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/NumberUtil.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.web.util;
package com.vci.starter.web.util.Lcm;
import org.springframework.lang.Nullable;
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/ObjectUtil.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/ObjectUtil.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.web.util;
package com.vci.starter.web.util.Lcm;
import org.springframework.lang.Nullable;
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/RandomType.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/RandomType.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.web.util;
package com.vci.starter.web.util.Lcm;
import lombok.Getter;
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/ReflectUtil.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/ReflectUtil.java ÐÞ¸Ä
@@ -14,7 +14,7 @@
 *  this software without specific prior written permission.
 *  Author: DreamLu å¢æ˜¥æ¢¦ (596392912@qq.com)
 */
package com.vci.web.util;
package com.vci.starter.web.util.Lcm;
import org.springframework.beans.BeansException;
import org.springframework.cglib.core.CodeGenerationException;
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/StringUtil.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/StringUtil.java ÐÞ¸Ä
@@ -1,11 +1,14 @@
package com.vci.web.util;
package com.vci.starter.web.util.Lcm;
import cn.hutool.core.util.ObjectUtil;
import com.vci.starter.web.constant.CharPool;
import com.vci.starter.web.constant.StringPool;
import com.vci.starter.web.util.Lcm.support.StrSpliter;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
import org.springframework.util.PatternMatchUtils;
import org.springframework.web.util.HtmlUtils;
import com.vci.web.support.StrSpliter;
import java.io.StringReader;
import java.io.StringWriter;
import java.text.MessageFormat;
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/Unchecked.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/Unchecked.java ÐÞ¸Ä
@@ -15,9 +15,10 @@
 *  Author: DreamLu å¢æ˜¥æ¢¦ (596392912@qq.com)
 */
package com.vci.web.util;
package com.vci.starter.web.util.Lcm;
import com.vci.web.util.function.*;
import com.vci.starter.web.util.Lcm.function.*;
import java.util.Comparator;
import java.util.Objects;
import java.util.concurrent.Callable;
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/UrlUtil.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/UrlUtil.java ÐÞ¸Ä
@@ -14,7 +14,7 @@
 *  this software without specific prior written permission.
 *  Author: DreamLu å¢æ˜¥æ¢¦ (596392912@qq.com)
 */
package com.vci.web.util;
package com.vci.starter.web.util.Lcm;
import java.net.URI;
import java.net.URISyntaxException;
@@ -34,7 +34,7 @@
     * @return sourced String
     */
    public static String encode(String source) {
        return UrlUtil.encode(source, Charsets.UTF_8);
        return encode(source, Charsets.UTF_8);
    }
    /**
@@ -44,7 +44,7 @@
     * @return decoded String
     */
    public static String decode(String source) {
        return UrlUtil.decode(source, Charsets.UTF_8);
        return decode(source, Charsets.UTF_8);
    }
    /**
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/beans/BeanProperty.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/beans/BeanProperty.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.web.util.beans;
package com.vci.starter.web.util.Lcm.beans;
import lombok.AllArgsConstructor;
import lombok.Getter;
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/beans/BladeBeanCopier.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/beans/BladeBeanCopier.java ÐÞ¸Ä
@@ -15,12 +15,13 @@
 *  Author: DreamLu å¢æ˜¥æ¢¦ (596392912@qq.com)
 */
package com.vci.web.util.beans;
package com.vci.starter.web.util.Lcm.beans;
import com.vci.web.util.BeanUtil;
import com.vci.web.util.ClassUtil;
import com.vci.web.util.ReflectUtil;
import com.vci.web.util.StringUtil;
import com.vci.starter.web.annotation.CopyProperty;
import com.vci.starter.web.util.Lcm.BeanUtil;
import com.vci.starter.web.util.Lcm.ClassUtil;
import com.vci.starter.web.util.Lcm.ReflectUtil;
import com.vci.starter.web.util.Lcm.StringUtil;
import org.springframework.asm.ClassVisitor;
import org.springframework.asm.Label;
import org.springframework.asm.Opcodes;
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/beans/BladeBeanCopierKey.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/beans/BladeBeanCopierKey.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.web.util.beans;
package com.vci.starter.web.util.Lcm.beans;
import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/beans/BladeBeanMap.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/beans/BladeBeanMap.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.web.util.beans;
package com.vci.starter.web.util.Lcm.beans;
import org.springframework.asm.ClassVisitor;
import org.springframework.cglib.beans.BeanMap;
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/beans/BladeBeanMapEmitter.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/beans/BladeBeanMapEmitter.java ÐÞ¸Ä
@@ -1,6 +1,7 @@
package com.vci.web.util.beans;
package com.vci.starter.web.util.Lcm.beans;
import com.vci.web.util.ReflectUtil;
import com.vci.starter.web.util.Lcm.ReflectUtil;
import org.springframework.asm.ClassVisitor;
import org.springframework.asm.Label;
import org.springframework.asm.Type;
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/beans/BladeBeanMapKey.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/beans/BladeBeanMapKey.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.web.util.beans;
package com.vci.starter.web.util.Lcm.beans;
import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/convert/BladeConversionService.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/convert/BladeConversionService.java ÐÞ¸Ä
@@ -1,6 +1,5 @@
package com.vci.web.util.convert;
package com.vci.starter.web.util.Lcm.convert;
import com.vci.web.util.convert.EnumToStringConverter;
import org.springframework.boot.convert.ApplicationConversionService;
import org.springframework.core.convert.support.GenericConversionService;
import org.springframework.lang.Nullable;
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/convert/BladeConverter.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/convert/BladeConverter.java ÐÞ¸Ä
@@ -1,10 +1,10 @@
package com.vci.web.util.convert;
package com.vci.starter.web.util.Lcm.convert;
import com.vci.web.util.ClassUtil;
import com.vci.web.util.ConvertUtil;
import com.vci.web.util.ReflectUtil;
import com.vci.web.util.Unchecked;
import com.vci.web.util.function.CheckedFunction;
import com.vci.starter.web.util.Lcm.ClassUtil;
import com.vci.starter.web.util.Lcm.ConvertUtil;
import com.vci.starter.web.util.Lcm.ReflectUtil;
import com.vci.starter.web.util.Lcm.Unchecked;
import com.vci.starter.web.util.Lcm.function.CheckedFunction;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cglib.core.Converter;
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/convert/EnumToStringConverter.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/convert/EnumToStringConverter.java ÐÞ¸Ä
@@ -15,10 +15,10 @@
 *  Author: DreamLu å¢æ˜¥æ¢¦ (596392912@qq.com)
 */
package com.vci.web.util.convert;
package com.vci.starter.web.util.Lcm.convert;
import com.fasterxml.jackson.annotation.JsonValue;
import com.vci.web.util.ConvertUtil;
import com.vci.starter.web.util.Lcm.ConvertUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.core.convert.TypeDescriptor;
import org.springframework.core.convert.converter.ConditionalGenericConverter;
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/convert/StringToEnumConverter.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/convert/StringToEnumConverter.java ÐÞ¸Ä
@@ -15,12 +15,12 @@
 *  Author: DreamLu å¢æ˜¥æ¢¦ (596392912@qq.com)
 */
package com.vci.web.util.convert;
package com.vci.starter.web.util.Lcm.convert;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.vci.web.util.ConvertUtil;
import com.vci.web.util.StringUtil;
import com.vci.starter.web.util.Lcm.ConvertUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.core.convert.TypeDescriptor;
import org.springframework.core.convert.converter.ConditionalGenericConverter;
import org.springframework.lang.Nullable;
@@ -80,7 +80,7 @@
    @Nullable
    @Override
    public Object convert(@Nullable Object source, TypeDescriptor sourceType, TypeDescriptor targetType) {
        if (StringUtil.isBlank((String) source)) {
        if (StringUtils.isBlank((String) source)) {
            return null;
        }
        Class<?> clazz = targetType.getType();
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/function/CheckedCallable.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/function/CheckedCallable.java ÐÞ¸Ä
@@ -15,7 +15,7 @@
 *  Author: DreamLu å¢æ˜¥æ¢¦ (596392912@qq.com)
 */
package com.vci.web.util.function;
package com.vci.starter.web.util.Lcm.function;
import org.springframework.lang.Nullable;
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/function/CheckedComparator.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/function/CheckedComparator.java ÐÞ¸Ä
@@ -15,7 +15,7 @@
 *  Author: DreamLu å¢æ˜¥æ¢¦ (596392912@qq.com)
 */
package com.vci.web.util.function;
package com.vci.starter.web.util.Lcm.function;
/**
 * å—检的 Comparator
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/function/CheckedConsumer.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/function/CheckedConsumer.java ÐÞ¸Ä
@@ -15,7 +15,7 @@
 *  Author: DreamLu å¢æ˜¥æ¢¦ (596392912@qq.com)
 */
package com.vci.web.util.function;
package com.vci.starter.web.util.Lcm.function;
import org.springframework.lang.Nullable;
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/function/CheckedFunction.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/function/CheckedFunction.java ÐÞ¸Ä
@@ -15,7 +15,7 @@
 *  Author: DreamLu å¢æ˜¥æ¢¦ (596392912@qq.com)
 */
package com.vci.web.util.function;
package com.vci.starter.web.util.Lcm.function;
import org.springframework.lang.Nullable;
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/function/CheckedRunnable.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/function/CheckedRunnable.java ÐÞ¸Ä
@@ -15,7 +15,7 @@
 *  Author: DreamLu å¢æ˜¥æ¢¦ (596392912@qq.com)
 */
package com.vci.web.util.function;
package com.vci.starter.web.util.Lcm.function;
/**
 * å—检的 runnable
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/function/CheckedSupplier.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/function/CheckedSupplier.java ÐÞ¸Ä
@@ -15,7 +15,7 @@
 *  Author: DreamLu å¢æ˜¥æ¢¦ (596392912@qq.com)
 */
package com.vci.web.util.function;
package com.vci.starter.web.util.Lcm.function;
import org.springframework.lang.Nullable;
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/jackson/BladeJavaTimeModule.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/jackson/BladeJavaTimeModule.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.web.util.jackson;
package com.vci.starter.web.util.Lcm.jackson;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.datatype.jsr310.PackageVersion;
@@ -8,7 +8,7 @@
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer;
import com.vci.web.util.DateTimeUtil;
import com.vci.starter.web.util.Lcm.DateTimeUtil;
import java.time.LocalDate;
import java.time.LocalDateTime;
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/jackson/JsonUtil.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/jackson/JsonUtil.java ÐÞ¸Ä
@@ -14,7 +14,7 @@
 *  this software without specific prior written permission.
 *  Author: Chill åº„骞 (smallchill@163.com)
 */
package com.vci.web.util.jackson;
package com.vci.starter.web.util.Lcm.jackson;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
@@ -24,7 +24,11 @@
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.databind.type.CollectionLikeType;
import com.fasterxml.jackson.databind.type.MapType;
import com.vci.web.util.*;
import com.vci.starter.web.constant.StringPool;
import com.vci.starter.web.util.Lcm.DateUtil;
import com.vci.starter.web.util.Lcm.Exceptions;
import com.vci.starter.web.util.Lcm.ObjectUtil;
import com.vci.starter.web.util.Lcm.StringUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.lang.Nullable;
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/Lcm/support/StrSpliter.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/support/StrSpliter.java ÐÞ¸Ä
@@ -1,8 +1,8 @@
package com.vci.web.support;
package com.vci.starter.web.util.Lcm.support;
import com.vci.web.util.StringUtil;
import com.vci.web.util.Func;
import com.vci.web.util.StringPool;
import com.vci.starter.web.util.Lcm.StringUtil;
import com.vci.starter.web.util.Lcm.Func;
import com.vci.starter.web.constant.StringPool;
import java.util.ArrayList;
import java.util.List;
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/VciBaseUtil.java
@@ -814,7 +814,7 @@
        if(c.isArray()){
            return isBasicType(c.getComponentType());
        }
        return ClassUtil.isPrimitive(c);
        return ClassUtilForVCI.isPrimitive(c);
    }
    /**
Source/plt-web/plt-web-parent/plt-web-permission/pom.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,73 @@
<?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">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.vci</groupId>
        <artifactId>plt-web-parent</artifactId>
        <version>2024.1-SNAPSHOT</version>
    </parent>
    <artifactId>plt-web-permission</artifactId>
    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <poi.version>4.1.0</poi.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>com.vci</groupId>
            <artifactId>plt-web-api</artifactId>
        </dependency>
        <dependency>
            <groupId>com.vci</groupId>
            <artifactId>plt-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>com.vci</groupId>
            <artifactId>plt-web-base</artifactId>
        </dependency>
        <dependency>
            <groupId>com.github.jsqlparser</groupId>
            <artifactId>jsqlparser</artifactId>
            <version>4.9</version>
        </dependency>
        <dependency>
            <groupId>org.reflections</groupId>
            <artifactId>reflections</artifactId>
            <version>0.9.11</version>
        </dependency>
        <dependency><!--代码生成器所需模板-->
            <artifactId>velocity</artifactId>
            <groupId>org.apache.velocity</groupId>
            <version>1.7</version>
        </dependency>
        <!--需要读取excel-->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>${poi.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-excelant</artifactId>
            <version>${poi.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml-schemas</artifactId>
            <version>${poi.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>${poi.version}</version>
        </dependency>
    </dependencies>
</project>
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/ajaxTask/SmUserUnLockTask.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/ajaxTask/SmUserUnLockTask.java ÐÞ¸Ä
@@ -1,6 +1,6 @@
package com.vci.frameworkcore.ajaxTask;
package com.vci.web.ajaxTask;
import com.vci.frameworkcore.compatibility.SmUserQueryServiceI;
import com.vci.web.service.SmUserQueryServiceI;
import java.util.concurrent.Delayed;
import java.util.concurrent.TimeUnit;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/ajaxTask/SmUserUnLockTaskManager.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/ajaxTask/SmUserUnLockTaskManager.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.frameworkcore.ajaxTask;
package com.vci.web.ajaxTask;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.util.VciDateUtil;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/config/ConfigCorbaReader.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/properties/ConfigCorbaReader.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.frameworkcore.properties;
package com.vci.web.config;
import java.io.IOException;
import java.io.InputStream;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/config/WebFilePreviewAutoConfig.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/config/WebFilePreviewAutoConfig.java ÐÞ¸Ä
@@ -13,12 +13,18 @@
public class WebFilePreviewAutoConfig {
    /**
     * æ˜¯å¦å¯ç”¨
     */
    private boolean enabled;
    /**
     * é¢„览服务的路径
     */
    private String previewServiceUrl;
    /**
     * é¢„览的内部key,与预览服务器里对应
     * app里配置的 private-token-key将会用于配置  previewSystemKey。 éœ€è¦åŒæ—¶åœ¨é¢„览服务里配置
     */
    private String previewSystemKey;
@@ -27,9 +33,13 @@
     */
    private Long invalidTime = 5L;
    /***
     * app里配置的 private-token-key将会用于配置  previewSystemKey。 éœ€è¦åŒæ—¶åœ¨é¢„览服务里配置
     */
    public boolean isEnabled() {
        return enabled;
    }
    public void setEnabled(boolean enabled) {
        this.enabled = enabled;
    }
    public String getPreviewServiceUrl() {
        return previewServiceUrl;
@@ -58,7 +68,8 @@
    @Override
    public String toString() {
        return "WebFilePreviewAutoConfig{" +
                "previewServiceUrl='" + previewServiceUrl + '\'' +
                "enabled=" + enabled +
                ", previewServiceUrl='" + previewServiceUrl + '\'' +
                ", previewSystemKey='" + previewSystemKey + '\'' +
                ", invalidTime=" + invalidTime +
                '}';
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/AuditTaskController.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/plugins/controller/AuditTaskController.java ÐÞ¸Ä
@@ -1,11 +1,11 @@
package com.vci.plugins.controller;
package com.vci.web.controller;
import com.vci.corba.common.PLException;
import com.vci.corba.omd.data.BusinessObject;
import com.vci.corba.query.data.KV;
import com.vci.omd.utils.ObjectTool;
import com.vci.plugins.dto.AuditTaskDTO;
import com.vci.dto.AuditTaskDTO;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.util.VciDateUtil;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/HomeTaskController.java
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/ImageViewerController.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/plugins/controller/ImageViewerController.java ÐÞ¸Ä
@@ -1,10 +1,10 @@
package com.vci.plugins.controller;
package com.vci.web.controller;
import com.vci.constant.VciFileBtmTypeConstant;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.util.ControllerUtil;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.query.FileImageViewerQuery;
import com.vci.query.FileImageViewerQuery;
import com.vci.web.service.VciFileDownloadServiceI;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/OrgDepartmentQueryController.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/controller/OrgDepartmentQueryController.java ÐÞ¸Ä
@@ -1,7 +1,6 @@
package com.vci.frameworkcore.controller;
package com.vci.web.controller;
import com.vci.dto.OrgDepartmentDTO;
import com.vci.frameworkcore.compatibility.OrgDeptQueryServiceI;
import com.vci.constant.FrameWorkLangCodeConstant;
import com.vci.pagemodel.OrgDepartmentVO;
import com.vci.starter.web.annotation.controller.VciUnCheckRight;
@@ -11,7 +10,8 @@
import com.vci.starter.web.util.LangBaseUtil;
import com.vci.starter.web.util.LocalFileUtil;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.util.Func;
import com.vci.starter.web.util.Lcm.Func;
import com.vci.web.service.OrgDeptQueryServiceI;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/OrgDutyQueryController.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/controller/OrgDutyQueryController.java ÐÞ¸Ä
@@ -1,9 +1,9 @@
package com.vci.frameworkcore.controller;
package com.vci.web.controller;
import com.vci.frameworkcore.compatibility.OrgDutyQueryServiceI;
import com.vci.pagemodel.OrgDutyVO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.*;
import com.vci.web.service.OrgDutyQueryServiceI;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/SmRoleQueryController.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/controller/SmRoleQueryController.java ÐÞ¸Ä
@@ -1,19 +1,22 @@
package com.vci.frameworkcore.controller;
package com.vci.web.controller;
import com.vci.frameworkcore.compatibility.SmRoleQueryServiceI;
import com.vci.constant.FrameWorkLangCodeConstant;
import com.vci.dto.SmRoleDTO;
import com.vci.enumpck.UserTypeEnum;
import com.vci.pagemodel.SmRoleVO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.*;
import com.vci.starter.web.util.LocalFileUtil;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.util.WebThreadLocalUtil;
import com.vci.web.enumpck.UserTypeEnum;
import com.vci.web.service.SmRoleQueryServiceI;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/SmUserQueryController.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/controller/SmUserQueryController.java ÐÞ¸Ä
@@ -1,8 +1,7 @@
package com.vci.frameworkcore.controller;
package com.vci.web.controller;
import com.vci.dto.SmUserDTO;
import com.vci.corba.common.PLException;
import com.vci.frameworkcore.compatibility.SmUserQueryServiceI;
import com.vci.constant.FrameWorkLangCodeConstant;
import com.vci.pagemodel.SmUserVO;
import com.vci.starter.web.annotation.controller.VciUnCheckRight;
@@ -12,7 +11,8 @@
import com.vci.starter.web.util.LangBaseUtil;
import com.vci.starter.web.util.LocalFileUtil;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.util.Func;
import com.vci.starter.web.util.Lcm.Func;
import com.vci.web.service.SmUserQueryServiceI;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -243,7 +243,7 @@
     * @throws VciBaseException æŸ¥è¯¢å‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常,如果是老的项目里不抛出异常
     */
    @RequestMapping(value = "/getDataGridUsers",method = RequestMethod.GET)
    public BaseResult<SmUserVO> getDataGridUsers(BaseQueryObject queryObject) throws VciBaseException {
    public BaseResult<SmUserVO> getDataGridUsers(BaseQueryObject queryObject) {
        try {
            DataGrid<SmUserVO> userVODataGrid = userQueryService.getDataGridUsers(queryObject.getConditionMap(),queryObject.getPageHelper());
            return BaseResult.dataGrid(userVODataGrid);
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/Sql2TableController.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/plugins/controller/Sql2TableController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.plugins.controller;
package com.vci.web.controller;
import com.alibaba.fastjson.JSONObject;
import com.vci.corba.common.PLException;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/VciFileDownloadController.java
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/VciFileQueryController.java
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/VciFileUploadController.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/VciFileUploadController.java ÐÞ¸Ä
@@ -17,7 +17,7 @@
import java.io.IOException;
import static org.apache.commons.compress.utils.Charsets.UTF_8;
import static com.vci.starter.web.util.Lcm.Charsets.UTF_8;
/**
 * æ–‡æ¡£ä¸Šä¼ æŽ§åˆ¶å™¨
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/VciOsCodeRuleController.java
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/WFWorkflowNodeFavController.java
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/WebCodeGenSchemaController.java
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/WebProcessCommandController.java
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/WebProcessDefineController.java
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/WebScanAnnotationController.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebScanAnnotationController.java ÐÞ¸Ä
@@ -1,9 +1,7 @@
package com.vci.web.controller;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.util.LangBaseUtil;
import com.vci.web.service.impl.WebInitServiceImpl;
import com.vci.web.util.OsScanAnnotationTool;
import com.vci.web.util.WebUtil;
import org.springframework.beans.factory.annotation.Autowired;
@@ -30,12 +28,6 @@
    private OsScanAnnotationTool scanAnnotationTool;
    /**
     * åˆå§‹åŒ–服务
     */
    @Autowired
    private WebInitServiceImpl initService;
    /**
     * ä½¿ç”¨åŒ…名扫描注解
     * @param packName åŒ…名
     * @return æ‰§è¡Œç»“æžœ
@@ -43,14 +35,10 @@
    @PostMapping(value = "/scanAnnotation")
    public synchronized BaseResult scanAnnotation(String packName){
        try {
            initService.clearAllCache();
            initService.initServerCache();
            List<String> packageList = WebUtil.str2List(packName);
            List<String> entityList = new ArrayList();
            List<String> unScanEntityList = new ArrayList<String>();
            scanAnnotationTool.doScanAnnotation2OSServer(packageList, entityList,unScanEntityList);
            initService.clearAllCache();
            initService.initServerCache();
        }catch (Throwable e){
            return BaseResult.fail(LangBaseUtil.getErrorMsg(e));
        }
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/BdSelectInputCharDaoI.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/dao/BdSelectInputCharDaoI.java ÐÞ¸Ä
@@ -1,13 +1,13 @@
package com.vci.web.dao;
import com.vci.model.BdSelectInputCharDO;
import com.vci.starter.web.pagemodel.*;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.pagemodel.BatchCBO;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import java.util.Collection;
import java.util.*;
import java.util.List;
import java.util.Map;
/**
 * å¯è¾“可选内容数据操作层
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/OsCodeBreakCodeDaoI.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/dao/OsCodeBreakCodeDaoI.java ÐÞ¸Ä
@@ -1,7 +1,7 @@
package com.vci.web.dao;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.model.OsCodeBreakCodeDO;
import com.vci.starter.web.pagemodel.PageHelper;
import java.util.Collection;
import java.util.List;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/OsCodeEnumDaoI.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/dao/OsCodeEnumDaoI.java ÐÞ¸Ä
@@ -1,6 +1,7 @@
package com.vci.web.dao;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.model.OsCodeEnumDO;
import com.vci.starter.web.pagemodel.PageHelper;
import java.util.Collection;
import java.util.List;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/OsCodeGenSchemaDaoI.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/dao/OsCodeGenSchemaDaoI.java ÐÞ¸Ä
@@ -1,7 +1,7 @@
package com.vci.web.dao;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.model.OsCodeGenSchemaDO;
import com.vci.starter.web.pagemodel.PageHelper;
import java.util.List;
import java.util.Map;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/OsCodeRuleDaoI.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/dao/OsCodeRuleDaoI.java ÐÞ¸Ä
@@ -1,8 +1,8 @@
package com.vci.web.dao;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.model.OsCodeRuleDO;
import com.vci.starter.web.pagemodel.PageHelper;
import java.util.Collection;
import java.util.List;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/OsCodeRuleElementDaoI.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/dao/OsCodeRuleElementDaoI.java ÐÞ¸Ä
@@ -1,8 +1,8 @@
package com.vci.web.dao;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.model.OsCodeRuleElementDO;
import com.vci.starter.web.pagemodel.PageHelper;
import java.util.Collection;
import java.util.List;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/OsCodeSerialNumberDaoI.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/dao/OsCodeSerialNumberDaoI.java ÐÞ¸Ä
@@ -1,7 +1,7 @@
package com.vci.web.dao;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.model.OsCodeSerialNumberDO;
import com.vci.starter.web.pagemodel.PageHelper;
import java.util.Collection;
import java.util.List;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/VciFileDocClassifyDaoI.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/dao/VciFileDocClassifyDaoI.java ÐÞ¸Ä
@@ -1,7 +1,7 @@
package com.vci.web.dao;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.model.VciFileDocClassifyDO;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import java.util.Collection;
import java.util.List;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/VciFileObjectDaoI.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/dao/VciFileObjectDaoI.java ÐÞ¸Ä
@@ -1,7 +1,7 @@
package com.vci.web.dao;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.model.VciFileObjectDO;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import java.util.Collection;
import java.util.List;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/VciFileVolumeDaoI.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/dao/VciFileVolumeDaoI.java ÐÞ¸Ä
@@ -1,7 +1,7 @@
package com.vci.web.dao;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.model.VciFileVolumeDO;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import java.util.Collection;
import java.util.List;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/WFWorkflowNodeFavDaoI.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/dao/WFWorkflowNodeFavDaoI.java ÐÞ¸Ä
@@ -1,9 +1,9 @@
package com.vci.web.dao;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.model.WFWorkflowNodeFavDO;
import com.vci.pagemodel.BatchCBO;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import java.util.Collection;
import java.util.List;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/WFWorkflowNodeFavItemDaoI.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/dao/WFWorkflowNodeFavItemDaoI.java ÐÞ¸Ä
@@ -1,8 +1,8 @@
package com.vci.web.dao;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.model.WFWorkflowNodeFavItemDO;
import com.vci.pagemodel.BatchCBO;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import java.util.Collection;
import java.util.List;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/WebProcessDaoI.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/dao/WebProcessDaoI.java ÐÞ¸Ä
@@ -4,12 +4,12 @@
import com.vci.corba.workflow.WorkflowServicePrx;
import com.vci.corba.workflow.data.TasksAssignedInfo;
import com.vci.dto.ProcessTemplateVO;
import com.vci.model.WFProcessClassifyDO;
import com.vci.model.WFProcessTemplateDO;
import com.vci.pagemodel.*;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.model.WFProcessClassifyDO;
import com.vci.model.WFProcessTemplateDO;
import java.util.Collection;
import java.util.Date;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/BdSelectInputCharDaoImpl.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/dao/impl/BdSelectInputCharDaoImpl.java ÐÞ¸Ä
@@ -1,16 +1,14 @@
package com.vci.web.dao.impl;
import com.vci.model.BdSelectInputCharDO;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import org.apache.commons.lang3.StringUtils;
import com.vci.starter.web.util.*;
import com.vci.web.dao.BdSelectInputCharDaoI;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.*;
import com.vci.web.service.WebBoServiceI;
import com.vci.web.service.OsLifeCycleServiceI;
import com.vci.pagemodel.BatchCBO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.dao.BdSelectInputCharDaoI;
import com.vci.web.service.WebBoServiceI;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@@ -34,12 +32,6 @@
    */
    @Autowired
    private WebBoServiceI boService;
    /**
    * ç”Ÿå‘½å‘¨æœŸçš„æœåŠ¡
    */
    @Autowired
    private OsLifeCycleServiceI lifeCycleService;
    /**
     * ä½¿ç”¨ä¸»é”®åˆ é™¤
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/OsCodeBreakCodeDaoImpl.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/dao/impl/OsCodeBreakCodeDaoImpl.java ÐÞ¸Ä
@@ -1,13 +1,13 @@
package com.vci.web.dao.impl;
import com.vci.corba.omd.data.BusinessObject;
import com.vci.model.OsCodeBreakCodeDO;
import com.vci.pagemodel.BatchCBO;
import com.vci.starter.web.constant.QueryOptionConstant;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.dao.OsCodeBreakCodeDaoI;
import com.vci.model.OsCodeBreakCodeDO;
import com.vci.pagemodel.BatchCBO;
import com.vci.web.service.WebBoServiceI;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/OsCodeEnumDaoImpl.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/dao/impl/OsCodeEnumDaoImpl.java ÐÞ¸Ä
@@ -1,13 +1,13 @@
package com.vci.web.dao.impl;
import com.vci.corba.omd.data.BusinessObject;
import com.vci.model.OsCodeEnumDO;
import com.vci.pagemodel.BatchCBO;
import com.vci.starter.web.constant.QueryOptionConstant;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.dao.OsCodeEnumDaoI;
import com.vci.model.OsCodeEnumDO;
import com.vci.pagemodel.BatchCBO;
import com.vci.web.service.WebBoServiceI;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/OsCodeGenSchemaDaoImpl.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/dao/impl/OsCodeGenSchemaDaoImpl.java ÐÞ¸Ä
@@ -1,11 +1,10 @@
package com.vci.web.dao.impl;
import com.vci.model.OsCodeGenSchemaDO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.dao.OsCodeGenSchemaDaoI;
import com.vci.model.OsCodeGenSchemaDO;
import com.vci.web.service.OsLinkTypeServiceI;
import com.vci.web.service.WebBoServiceI;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -31,11 +30,6 @@
    @Autowired
    private WebBoServiceI boService;
    /**
     * ç”Ÿå‘½å‘¨æœŸçš„æœåŠ¡
     */
    @Autowired
    private OsLinkTypeServiceI lifeCycleService;
    /**
     * ä½¿ç”¨ä¸»é”®åˆ é™¤
     *
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/OsCodeRuleDaoImpl.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/dao/impl/OsCodeRuleDaoImpl.java ÐÞ¸Ä
@@ -1,14 +1,14 @@
package com.vci.web.dao.impl;
import com.vci.corba.omd.data.BusinessObject;
import com.vci.model.OsCodeRuleDO;
import com.vci.pagemodel.BatchCBO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.dao.OsCodeRuleDaoI;
import com.vci.model.OsCodeRuleDO;
import com.vci.pagemodel.BatchCBO;
import com.vci.web.service.OsLifeCycleServiceI;
import com.vci.web.service.WebBoServiceI;
import com.vci.web.service.WebLifeCycleServiceI;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@@ -40,7 +40,7 @@
     * ç”Ÿå‘½å‘¨æœŸçš„æœåŠ¡
     */
    @Autowired
    private OsLifeCycleServiceI lifeCycleService;
    private WebLifeCycleServiceI lifeCycleService;
    
    /**
     * ä½¿ç”¨ä¸»é”®åˆ é™¤
@@ -168,7 +168,11 @@
        if(CollectionUtils.isEmpty(cbos)){
            return 0;
        }
        lifeCycleService.transCboStatus(cbos,lcStatus);
        try {
            lifeCycleService.transCboStatus(cbos,lcStatus);
        } catch (Exception e) {
            throw new VciBaseException("批量修改生命周期的状态!", new Object[]{}, e);
        }
        return cbos.size();
    }
@@ -184,7 +188,11 @@
        if(cbo == null || StringUtils.isBlank(cbo.oid)){
            return 0;
        }
        lifeCycleService.transStatus(cbo,lcStatus);
        try {
            lifeCycleService.transStatus(cbo,lcStatus);
        } catch (Exception e) {
            throw new VciBaseException("修改生命周期的状态失败!", new Object[]{}, e);
        }
        return 1;
    }
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/OsCodeRuleElementDaoImpl.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/dao/impl/OsCodeRuleElementDaoImpl.java ÐÞ¸Ä
@@ -1,11 +1,11 @@
package com.vci.web.dao.impl;
import com.vci.model.OsCodeRuleElementDO;
import com.vci.pagemodel.BatchCBO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.dao.OsCodeRuleElementDaoI;
import com.vci.model.OsCodeRuleElementDO;
import com.vci.pagemodel.BatchCBO;
import com.vci.web.service.WebBoServiceI;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/OsCodeSerialNumberDaoImpl.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/dao/impl/OsCodeSerialNumberDaoImpl.java ÐÞ¸Ä
@@ -1,11 +1,11 @@
package com.vci.web.dao.impl;
import com.vci.model.OsCodeSerialNumberDO;
import com.vci.pagemodel.BatchCBO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.dao.OsCodeSerialNumberDaoI;
import com.vci.model.OsCodeSerialNumberDO;
import com.vci.pagemodel.BatchCBO;
import com.vci.web.service.WebBoServiceI;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/VciFileDocClassifyDaoImpl.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/dao/impl/VciFileDocClassifyDaoImpl.java ÐÞ¸Ä
@@ -1,11 +1,11 @@
package com.vci.web.dao.impl;
import com.vci.constant.VciFileBtmTypeConstant;
import com.vci.model.VciFileDocClassifyDO;
import com.vci.starter.web.constant.QueryOptionConstant;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.dao.VciFileDocClassifyDaoI;
import com.vci.model.VciFileDocClassifyDO;
import com.vci.web.service.WebBoServiceI;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/VciFileDocClassifyServiceImpl.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/VciFileDocClassifyServiceImpl.java ÐÞ¸Ä
@@ -1,8 +1,8 @@
package com.vci.web.service.impl;
package com.vci.web.dao.impl;
import com.vci.dto.VciFileDocClassifyDTO;
import com.vci.dto.VciFileDocClassifyDTOList;
import com.vci.pagemodel.VciFileDocClassifyVO;
import com.vci.model.VciFileDocClassifyDO;
import com.vci.pagemodel.VciFileDocClassifyVO;
import com.vci.starter.revision.service.RevisionModelUtil;
import com.vci.starter.web.annotation.bus.VciChangeDocument;
@@ -12,11 +12,10 @@
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.pagemodel.KeyValue;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.BeanUtil;
import com.vci.starter.web.util.BeanUtilForVCI;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.dao.VciFileDocClassifyDaoI;
import com.vci.model.VciFileDocClassifyDO;
import com.vci.web.service.VciFileDocClassifyServiceI;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
@@ -111,7 +110,7 @@
    public VciFileDocClassifyVO vciFileDocClassifyDO2VO(VciFileDocClassifyDO vciFileDocClassifyDO) throws VciBaseException {
              VciFileDocClassifyVO vo = new VciFileDocClassifyVO();
        if(vciFileDocClassifyDO != null){
          BeanUtil.convert(vciFileDocClassifyDO,vo);
          BeanUtilForVCI.convert(vciFileDocClassifyDO,vo);
          //还需要处理枚举等其他的内容
        }
        return vo;
@@ -129,7 +128,7 @@
        VciBaseUtil.alertNotNull(vciFileDocClassifyDTO,"需要添加的数据对象");
        //将DTO转换为DO
        VciFileDocClassifyDO vciFileDocClassifyDO = new VciFileDocClassifyDO();
        BeanUtil.convert(vciFileDocClassifyDTO,vciFileDocClassifyDO);
        BeanUtilForVCI.convert(vciFileDocClassifyDTO,vciFileDocClassifyDO);
        revisionModelUtil.wrapperForAdd(vciFileDocClassifyDO);
        int insert = vciFileDocClassifyMapper.insert(vciFileDocClassifyDO);
@@ -332,7 +331,7 @@
        //循环处理
        dtoList.stream().forEach(dto->{
            VciFileDocClassifyDO classifyDO = new VciFileDocClassifyDO();
            BeanUtil.convert(dto,classifyDO);
            BeanUtilForVCI.convert(dto,classifyDO);
            VciBaseUtil.alertNotNull(classifyDO.getId(),"文件类型编号",classifyDO.getName(),"文件类型名称");
            doList.add(classifyDO);
        });
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/VciFileDownloadServiceImpl.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/VciFileDownloadServiceImpl.java ÐÞ¸Ä
@@ -1,25 +1,25 @@
package com.vci.web.service.impl;
package com.vci.web.dao.impl;
import com.vci.corba.common.PLException;
import com.vci.corba.volume.VolumeServicePrx;
import com.vci.enumpck.VciFileTransProtocolEnum;
import com.vci.pagemodel.VciFileVolumeVO;
import com.vci.enumpck.UI.VciFileTransProtocolEnum;
import com.vci.model.VciFileObjectDO;
import com.vci.pagemodel.VciFileObjectVO;
import com.vci.pagemodel.VciFileVolumeVO;
import com.vci.starter.web.annotation.bus.VciChangeDocument;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.util.LocalFileUtil;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.util.file.clientutil.VciFileServerClientUtil;
import com.vci.web.dao.VciFileObjectDaoI;
import com.vci.model.VciFileObjectDO;
import com.vci.web.properties.WebProperties;
import com.vci.web.service.VciFileDownloadServiceI;
import com.vci.web.service.VciFileObjectServiceI;
import com.vci.web.service.VciFileVolumeServiceI;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.file.VciZipUtil;
import com.vci.web.util.file.clientutil.VciFileServerClientUtil;
import net.lingala.zip4j.core.ZipFile;
import net.lingala.zip4j.io.ZipOutputStream;
import org.apache.commons.lang3.StringUtils;
@@ -32,9 +32,9 @@
import java.util.List;
import java.util.Map;
import static com.vci.constant.FrameWorkLangCodeConstant.*;
import static com.vci.constant.VciFileLangCodeConstant.FILE_NOT_FOUND;
import static com.vci.constant.VciFileLangCodeConstant.FILE_READ_FAIL;
import static com.vci.constant.FrameWorkLangCodeConstant.*;
/**
 * æ–‡ä»¶çš„下载服务
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/VciFileObjectDaoImpl.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/dao/impl/VciFileObjectDaoImpl.java ÐÞ¸Ä
@@ -2,12 +2,12 @@
import com.vci.constant.VciFileBtmTypeConstant;
import com.vci.corba.omd.data.BusinessObject;
import com.vci.model.VciFileObjectDO;
import com.vci.omd.utils.ObjectTool;
import com.vci.starter.web.constant.QueryOptionConstant;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.dao.VciFileObjectDaoI;
import com.vci.model.VciFileObjectDO;
import com.vci.web.service.WebBoServiceI;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/VciFileObjectServiceImpl.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/VciFileObjectServiceImpl.java ÐÞ¸Ä
@@ -1,9 +1,11 @@
package com.vci.web.service.impl;
package com.vci.web.dao.impl;
import com.vci.corba.common.PLException;
import com.vci.corba.volume.VolumeServicePrx;
import com.vci.dto.VciFileObjectDTO;
import com.vci.lcstatuspck.FileLCStatus;
import com.vci.model.VciFileObjectDO;
import com.vci.model.VciFileVolumeDO;
import com.vci.pagemodel.VciFileObjectVO;
import com.vci.starter.revision.service.RevisionModelUtil;
import com.vci.starter.web.annotation.bus.VciChangeDocument;
@@ -12,12 +14,10 @@
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.BeanUtil;
import com.vci.starter.web.util.BeanUtilForVCI;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.dao.VciFileObjectDaoI;
import com.vci.model.VciFileObjectDO;
import com.vci.model.VciFileVolumeDO;
import com.vci.web.service.VciFileObjectServiceI;
import com.vci.web.service.VciFileVolumeServiceI;
import com.vci.web.util.PlatformClientUtil;
@@ -33,8 +33,8 @@
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
import static com.vci.constant.VciFileLangCodeConstant.FILE_RELEASED;
import static com.vci.constant.FrameWorkLangCodeConstant.*;
import static com.vci.constant.VciFileLangCodeConstant.FILE_RELEASED;
/**
 * æ–‡ä»¶å¯¹è±¡æœåŠ¡
@@ -133,7 +133,7 @@
    public VciFileObjectVO vciFileObjectDO2VO(VciFileObjectDO vciFileObjectDO) throws VciBaseException {
              VciFileObjectVO vo = new VciFileObjectVO();
        if(vciFileObjectDO != null){
          BeanUtil.convert(vciFileObjectDO,vo);
          BeanUtilForVCI.convert(vciFileObjectDO,vo);
          //还需要处理枚举等其他的内容
        }
        return vo;
@@ -151,7 +151,7 @@
        VciBaseUtil.alertNotNull(vciFileObjectDTO,"需要添加的数据对象");
        //将DTO转换为DO
        VciFileObjectDO vciFileObjectDO = new VciFileObjectDO();
        BeanUtil.convert(vciFileObjectDTO,vciFileObjectDO);
        BeanUtilForVCI.convert(vciFileObjectDTO,vciFileObjectDO);
        revisionModelUtil.wrapperForAdd(vciFileObjectDO);
        int insert = vciFileObjectMapper.insert(vciFileObjectDO);
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/VciFileUploadServiceImpl.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/VciFileUploadServiceImpl.java ÐÞ¸Ä
@@ -1,13 +1,17 @@
package com.vci.web.service.impl;
package com.vci.web.dao.impl;
import com.vci.constant.FrameWorkLangCodeConstant;
import com.vci.constant.VciFileDefaultValueConstant;
import com.vci.constant.VciFileLangCodeConstant;
import com.vci.constant.WebLangCodeConstant;
import com.vci.corba.common.PLException;
import com.vci.corba.volume.VolumeServicePrx;
import com.vci.dto.VciFileObjectDTO;
import com.vci.enumpck.VciFileTransProtocolEnum;
import com.vci.enumpck.UI.VciFileTransProtocolEnum;
import com.vci.lcstatuspck.FileLCStatus;
import com.vci.constant.FrameWorkLangCodeConstant;
import com.vci.model.VciFileDocClassifyDO;
import com.vci.model.VciFileObjectDO;
import com.vci.model.VciFileVolumeDO;
import com.vci.pagemodel.VciFileObjectVO;
import com.vci.starter.revision.service.RevisionModelUtil;
import com.vci.starter.web.annotation.bus.VciChangeDocument;
@@ -15,17 +19,13 @@
import com.vci.starter.web.enumpck.UserSecretEnum;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.util.BeanUtil;
import com.vci.starter.web.util.BeanUtilForVCI;
import com.vci.starter.web.util.LocalFileUtil;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.constant.WebLangCodeConstant;
import com.vci.web.dao.VciFileDocClassifyDaoI;
import com.vci.web.dao.VciFileObjectDaoI;
import com.vci.web.dao.VciFileVolumeDaoI;
import com.vci.model.VciFileDocClassifyDO;
import com.vci.model.VciFileObjectDO;
import com.vci.model.VciFileVolumeDO;
import com.vci.web.properties.WebProperties;
import com.vci.web.service.VciFileUploadServiceI;
import com.vci.web.service.VciFileVolumeServiceI;
@@ -45,8 +45,9 @@
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import static com.vci.constant.FrameWorkLangCodeConstant.UPLOAD_FAIL;
import static com.vci.constant.FrameWorkLangCodeConstant.UPLOAD_SUCCESS;
import static com.vci.constant.VciFileLangCodeConstant.*;
import static com.vci.constant.FrameWorkLangCodeConstant.*;
@Service
@VciChangeDocument(btmType = "fileUpload")
@@ -321,7 +322,7 @@
        baseResult.setMsg(FrameWorkLangCodeConstant.UPLOAD_SUCCESS);
        VciFileObjectVO vciFileObjectVO = new VciFileObjectVO();
        BeanUtil.convert(vciFileObjectDO, vciFileObjectVO);
        BeanUtilForVCI.convert(vciFileObjectDO, vciFileObjectVO);
        vciFileObjectVO.setFileDocClassifyName("22222");
        baseResult.setObj(vciFileObjectVO);
@@ -403,7 +404,7 @@
        List<VciFileObjectVO> voList = new ArrayList<VciFileObjectVO>();
        for(VciFileObjectDO vciFileObjectDO : resultList){
            VciFileObjectVO vciFileObjectVO = new VciFileObjectVO();
            BeanUtil.convert(vciFileObjectDO,vciFileObjectVO);
            BeanUtilForVCI.convert(vciFileObjectDO,vciFileObjectVO);
            voList.add(vciFileObjectVO);
        }
@@ -431,7 +432,7 @@
        for(VciFileObjectDO sourceDO : sourceFileObjectList){
            VciFileObjectDO targetDO = new VciFileObjectDO();
            BeanUtil.convert(sourceDO, targetDO);
            BeanUtilForVCI.convert(sourceDO, targetDO);
            targetDO.setOid(VciBaseUtil.getPk());
            targetDO.setCreator(currentUserId);
            targetDO.setCreateTime(currentDate);
@@ -673,7 +674,7 @@
                }
                VciFileObjectVO vciFileObjectVO = new VciFileObjectVO();
                BeanUtil.convert(vciFileObjectDO,vciFileObjectVO);
                BeanUtilForVCI.convert(vciFileObjectDO,vciFileObjectVO);
                baseResult.setObj(vciFileObjectVO);
                threadFileObjectMap.remove(fileOid);
@@ -724,7 +725,7 @@
        List<VciFileObjectVO> vciFileObjectVOS = new ArrayList<VciFileObjectVO>();
        for(VciFileObjectDTO vciFileObjectDTO : vciFileObjectDTOS){
            VciFileObjectDO vciFileObjectDO = new VciFileObjectDO();
            BeanUtil.convert(vciFileObjectDTO, vciFileObjectDO);
            BeanUtilForVCI.convert(vciFileObjectDTO, vciFileObjectDO);
            vciFileObjectDO.setPkFileVolume(vciFileVolumeDO.getOid());
            if(StringUtils.isBlank(vciFileObjectDO.getId())){
                vciFileObjectDO.setName(vciFileObjectDO.getId());
@@ -741,7 +742,7 @@
            vciFileObjectDOS.add(vciFileObjectDO);
            VciFileObjectVO vciFileObjectVO = new VciFileObjectVO();
            BeanUtil.convert(vciFileObjectDO, vciFileObjectVO);
            BeanUtilForVCI.convert(vciFileObjectDO, vciFileObjectVO);
            vciFileObjectVOS.add(vciFileObjectVO);
            threadFileObjectMap.put(vciFileObjectDO.getOid(),vciFileObjectDTO);
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/VciFileVolumeDaoImpl.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/dao/impl/VciFileVolumeDaoImpl.java ÐÞ¸Ä
@@ -1,11 +1,11 @@
package com.vci.web.dao.impl;
import com.vci.constant.VciFileBtmTypeConstant;
import com.vci.model.VciFileVolumeDO;
import com.vci.starter.web.constant.QueryOptionConstant;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.dao.VciFileVolumeDaoI;
import com.vci.model.VciFileVolumeDO;
import com.vci.web.service.WebBoServiceI;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/VciFileVolumeServiceImpl.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/VciFileVolumeServiceImpl.java ÐÞ¸Ä
@@ -1,23 +1,23 @@
package com.vci.web.service.impl;
package com.vci.web.dao.impl;
import com.vci.constant.FrameWorkLangCodeConstant;
import com.vci.corba.common.PLException;
import com.vci.corba.framework.data.PvolumeInfo;
import com.vci.dto.VciFileVolumeDTO;
import com.vci.enumpck.VciFileServiceOsTypeEnum;
import com.vci.enumpck.VciFileTransProtocolEnum;
import com.vci.enumpck.UI.VciFileServiceOsTypeEnum;
import com.vci.enumpck.UI.VciFileTransProtocolEnum;
import com.vci.model.VciFileVolumeDO;
import com.vci.pagemodel.VciFileVolumeVO;
import com.vci.constant.FrameWorkLangCodeConstant;
import com.vci.starter.web.annotation.bus.VciChangeDocument;
import com.vci.starter.web.enumpck.VciChangeDocumentTypeEnum;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.BeanUtil;
import com.vci.starter.web.util.BeanUtilForVCI;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.dao.VciFileVolumeDaoI;
import com.vci.model.VciFileVolumeDO;
import com.vci.web.service.VciFileVolumeServiceI;
import com.vci.web.util.PlatformClientUtil;
import org.apache.commons.lang3.StringUtils;
@@ -113,7 +113,7 @@
    public VciFileVolumeVO vciFileVolumeDO2VO(VciFileVolumeDO vciFileVolumeDO) throws VciBaseException {
              VciFileVolumeVO vo = new VciFileVolumeVO();
        if(vciFileVolumeDO != null){
            BeanUtil.convert(vciFileVolumeDO,vo);
            BeanUtilForVCI.convert(vciFileVolumeDO,vo);
            //还需要处理枚举等其他的内容
            vo.setServiceOsTypeText(VciFileServiceOsTypeEnum.getTextByValue(vo.getServiceOsType()));
@@ -134,7 +134,7 @@
        VciBaseUtil.alertNotNull(vciFileVolumeDTO,"需要添加的数据对象");
        //将DTO转换为DO
        VciFileVolumeDO vciFileVolumeDO = new VciFileVolumeDO();
        BeanUtil.convert(vciFileVolumeDTO,vciFileVolumeDO);
        BeanUtilForVCI.convert(vciFileVolumeDTO,vciFileVolumeDO);
        vciFileVolumeDO.setCurrentVolume("0");
        int insert = vciFileVolumeMapper.insert(vciFileVolumeDO);
        if(insert>0){
@@ -156,7 +156,7 @@
         VciBaseUtil.alertNotNull(vciFileVolumeDTO,"数据对象",vciFileVolumeDTO.getOid(),"文仓管理主键");
         //将DTO转换为DO
         VciFileVolumeDO vciFileVolumeDO = selectByOid(vciFileVolumeDTO.getOid());
         BeanUtil.convert(vciFileVolumeDTO,vciFileVolumeDO);
         BeanUtilForVCI.convert(vciFileVolumeDTO,vciFileVolumeDO);
         int update = vciFileVolumeMapper.updateByPrimaryKey(vciFileVolumeDO);
         if(update>0){
             return vciFileVolumeDO2VO(vciFileVolumeDO);
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/WFWorkflowNodeFavDaoImpl.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/dao/impl/WFWorkflowNodeFavDaoImpl.java ÐÞ¸Ä
@@ -1,15 +1,13 @@
package com.vci.web.dao.impl;
import com.vci.constant.FrameWorkBusLangCodeConstant;
import com.vci.model.WFWorkflowNodeFavDO;
import com.vci.pagemodel.BatchCBO;
import com.vci.web.dao.WFWorkflowNodeFavDaoI;
import com.vci.web.service.WebBoServiceI;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.dao.WFWorkflowNodeFavDaoI;
import com.vci.model.WFWorkflowNodeFavDO;
import com.vci.pagemodel.BatchCBO;
import com.vci.web.service.OsLifeCycleServiceI;
import com.vci.web.service.WebBoServiceI;
import com.vci.web.util.PlatformClientUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@@ -33,19 +31,6 @@
     */
    @Autowired
    private WebBoServiceI boService;
    /**
     * ç”Ÿå‘½å‘¨æœŸçš„æœåŠ¡
     */
    @Autowired
    private OsLifeCycleServiceI lifeCycleService;
    /**
     * å¹³å°çš„客户端
     */
    @Autowired
    private PlatformClientUtil platformClientUtil;
    /**
     * ä½¿ç”¨ä¸»é”®åˆ é™¤
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/WFWorkflowNodeFavItemDaoImpl.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/dao/impl/WFWorkflowNodeFavItemDaoImpl.java ÐÞ¸Ä
@@ -1,15 +1,13 @@
package com.vci.web.dao.impl;
import com.vci.constant.FrameWorkBusLangCodeConstant;
import com.vci.model.WFWorkflowNodeFavItemDO;
import com.vci.pagemodel.BatchCBO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.dao.WFWorkflowNodeFavItemDaoI;
import com.vci.model.WFWorkflowNodeFavItemDO;
import com.vci.pagemodel.BatchCBO;
import com.vci.web.service.OsLifeCycleServiceI;
import com.vci.web.service.WebBoServiceI;
import com.vci.web.util.PlatformClientUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@@ -32,18 +30,6 @@
     */
    @Autowired
    private WebBoServiceI boService;
    /**
     * ç”Ÿå‘½å‘¨æœŸçš„æœåŠ¡
     */
    @Autowired
    private OsLifeCycleServiceI lifeCycleService;
    /**
     * å¹³å°çš„客户端
     */
    @Autowired
    private PlatformClientUtil platformClientUtil;
    /**
     * ä½¿ç”¨ä¸»é”®åˆ é™¤
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/dao/impl/WebProcessDaoImpl.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/dao/impl/WebProcessDaoImpl.java ÐÞ¸Ä
@@ -1,6 +1,7 @@
package com.vci.web.dao.impl;
import com.vci.common.utility.ObjectUtility;
import com.vci.constant.WFVariablesKeyConstant;
import com.vci.corba.common.PLException;
import com.vci.corba.common.data.UserEntityInfo;
import com.vci.corba.omd.data.BusinessObject;
@@ -8,25 +9,24 @@
import com.vci.corba.workflow.WorkflowServicePrx;
import com.vci.corba.workflow.data.*;
import com.vci.dto.ProcessTemplateVO;
import com.vci.frameworkcore.compatibility.SmUserQueryServiceI;
import com.vci.pagemodel.*;
import com.vci.model.ProcessInstance;
import com.vci.model.ProcessTask;
import com.vci.model.WFProcessClassifyDO;
import com.vci.model.WFProcessTemplateDO;
import com.vci.omd.utils.ObjectTool;
import com.vci.pagemodel.*;
import com.vci.starter.web.constant.QueryOptionConstant;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.pagemodel.SessionInfo;
import com.vci.starter.web.util.BeanUtil;
import com.vci.starter.web.util.BeanUtilForVCI;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.util.VciDateUtil;
import com.vci.constant.WFVariablesKeyConstant;
import com.vci.web.dao.WebProcessDaoI;
import com.vci.model.ProcessInstance;
import com.vci.model.ProcessTask;
import com.vci.model.WFProcessClassifyDO;
import com.vci.model.WFProcessTemplateDO;
import com.vci.web.service.OsLifeCycleServiceI;
import com.vci.web.service.SmUserQueryServiceI;
import com.vci.web.service.WebBoServiceI;
import com.vci.web.service.WebLifeCycleServiceI;
import com.vci.web.service.WebLoServiceI;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
@@ -38,6 +38,7 @@
import org.springframework.stereotype.Repository;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
@@ -50,21 +51,6 @@
 */
@Repository
public class WebProcessDaoImpl implements WebProcessDaoI {
    @Autowired
    private WebBoServiceI boService;
    @Autowired
    private WebLoServiceI loService;
    @Autowired
    private OsLifeCycleServiceI lifeCycleService;
    /**
     * ç”¨æˆ·æŸ¥è¯¢æœåŠ¡
     */
    @Autowired
    private SmUserQueryServiceI userQueryService;
    /**
     * æ—¥å¿—
@@ -72,13 +58,24 @@
    private Logger logger = LoggerFactory.getLogger(getClass());
    /**
     * æž„造方法,初始化平台的流程服务
     */
    /**
     * å¤šè¯­è¨€çš„前缀
     */
    private final String msgCodePrefix = "com.vci.web.flow.";
    @Resource
    private WebBoServiceI boService;
    @Resource
    private WebLoServiceI loService;
    @Resource
    private WebLifeCycleServiceI lifeCycleService;
    /**
     * ç”¨æˆ·æŸ¥è¯¢æœåŠ¡
     */
    @Autowired
    private SmUserQueryServiceI userQueryService;
    /**
     * å¹³å°çš„æµç¨‹æœåŠ¡
@@ -502,7 +499,7 @@
            conditionMap.put("lcstatus", "Executing");
            btmType = workitemBtmType;
        }else{
            throw new VciBaseException("msgCodePrefix",new String[]{doTaskType+""});
            throw new VciBaseException(msgCodePrefix+"doTaskTypeError",new String[]{doTaskType+""});
        }
        List<String> causeList = new ArrayList<String>();
        causeList.add("*");
@@ -577,7 +574,7 @@
        List<ProcessTaskVO> taskVOList = new ArrayList<>();
        Optional.ofNullable(tasks).orElseGet(()->new ArrayList<>()).stream().forEach(task->{
            ProcessTaskVO taskVO = new ProcessTaskVO();
            BeanUtil.convert(task,taskVO);
            BeanUtilForVCI.convert(task,taskVO);
            taskVOList.add(taskVO);
        });
        return taskVOList;
@@ -591,7 +588,7 @@
        if(process == null || StringUtils.isBlank(process.getOid())){
            throw new VciBaseException(DATA_OID_NOT_EXIST);
        }
        BeanUtil.convert(process,processInstanceVO);
        BeanUtilForVCI.convert(process,processInstanceVO);
        return processInstanceVO;
    }
@@ -952,7 +949,7 @@
     * @throws VciBaseException
     */
    @Override
    public void endProcess(String executionId) throws VciBaseException {
    public void endProcess(String executionId) {
        try {
            DataGrid dataGrid  = getDataByProcess(executionId,null);
            //先获取一下
@@ -970,10 +967,12 @@
            }
        } catch (PLException vciError) {
            throw WebUtil.getVciBaseException(vciError);
        }
    }
        } catch (Exception e) {
            throw new VciBaseException("结束流程失败!", new Object[]{}, e);
        }
    }
    private void  resetLcStatusForBusinessData(List<Map> bussinesDataList,String resetStatus) throws VciBaseException{
    private void  resetLcStatusForBusinessData(List<Map> bussinesDataList,String resetStatus) throws Exception{
        if(bussinesDataList!=null && bussinesDataList.size() > 0){
            String btmType = "";
            String lctId = "";
@@ -1024,7 +1023,7 @@
        List<ProcessInstanceVO> instanceVOS = new ArrayList<>();
        Optional.ofNullable(processInstances).orElseGet(()->new ArrayList<>()).stream().forEach(instance->{
            ProcessInstanceVO instanceVO = new ProcessInstanceVO();
            BeanUtil.convert(instance,instanceVO);
            BeanUtilForVCI.convert(instance,instanceVO);
            instanceVOS.add(instanceVO);
        });
        return instanceVOS;
@@ -1087,7 +1086,7 @@
    public ProcessClassifyVO processClassifyDO2VO(WFProcessClassifyDO classifyDO){
        ProcessClassifyVO classifyVO = new ProcessClassifyVO();
        if(classifyVO!=null){
            BeanUtil.convert(classifyDO,classifyVO);
            BeanUtilForVCI.convert(classifyDO,classifyVO);
        }
        return classifyVO;
    }
@@ -1118,7 +1117,7 @@
    public ProcessTemplateVO processTemplateDO2VO(WFProcessTemplateDO templateDO){
        ProcessTemplateVO templateVO = new ProcessTemplateVO();
        if(templateVO!=null){
            BeanUtil.convert(templateDO,templateVO);
            BeanUtilForVCI.convert(templateDO,templateVO);
        }
        return templateVO;
    }
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/initTask/VciWebInitTaskComponent.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/initTask/VciWebInitTaskComponent.java ÐÞ¸Ä
@@ -1,14 +1,11 @@
package com.vci.web.initTask;
import com.alibaba.fastjson.JSONObject;
import com.vci.client.mw.ClientContextVariable;
import com.vci.client.mw.LaunchModeEnum;
import com.vci.constant.FrameWorkBtmTypeConstant;
import com.vci.corba.common.PLException;
import com.vci.corba.framework.FrameworkServicePrx;
import com.vci.corba.omd.data.AttributeValue;
import com.vci.constant.FrameWorkBtmTypeConstant;
import com.vci.frameworkcore.properties.VciFramworkCompatibilityProperties;
import com.vci.starter.web.annotation.config.VciConfigField;
import com.vci.starter.web.annotation.config.VciConfigModule;
import com.vci.starter.web.enumpck.SessionStorageTypeEnum;
@@ -16,20 +13,14 @@
import com.vci.starter.web.pagemodel.SessionInfo;
import com.vci.starter.web.properties.VciSessionProperties;
import com.vci.starter.web.util.ApplicationContextProvider;
import com.vci.starter.web.util.LocalFileUtil;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.pagemodel.OsAttributeVO;
import com.vci.web.properties.VciFramworkCompatibilityProperties;
import com.vci.web.properties.WebProperties;
import com.vci.web.service.OsAttributeServiceI;
import com.vci.web.service.VciMdServiceI;
import com.vci.web.service.impl.UIEngineServiceImpl;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
@@ -40,7 +31,6 @@
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.stream.Collectors;
@@ -57,12 +47,6 @@
     * æ—¥å¿—对象
     */
    private Logger logger = LoggerFactory.getLogger(getClass());
    /**
     * æ˜¯å¦å…¼å®¹
     */
    @Value("${user-table-compatibility:}")
    private String compatibility;
    /**
     * é…ç½®å¯¹è±¡
@@ -89,19 +73,6 @@
    private VciFramworkCompatibilityProperties compatibilityProperties;
    /**
     * å±žæ€§çš„æœåŠ¡
     */
    @Autowired
    private OsAttributeServiceI attributeService;
    /**
     * markdown的服务
     */
    @Autowired
    private VciMdServiceI mdService;
    /**
     * æ‰§è¡Œåˆå§‹åŒ–
     * @param args å¯åŠ¨çš„å‚æ•°
     */
@@ -111,35 +82,9 @@
        initSysadmin();
        initClearSession();
        initSetting();
//        secretService.getMinDataSecret();
//        secretService.getMinIpSecret();
//        secretService.getMinUserSecret();
//        initService.clearAllCache();
//        initService.initServerCache();
        mdService.scanAllMdFile();
        initDefaultAttribute();
    }
    /**
     * åˆå§‹åŒ–默认的属性
     */
    private void initDefaultAttribute() {
        try {
            String attrJson = LocalFileUtil.readContentForFileInJar("DefaultAttribute.json");
            if (StringUtils.isBlank(attrJson)) {
                logger.info("没有读取到classpath*:DefaultAttribute.json文件的内容");
                return;
            }
            List<OsAttributeVO> attributeVOS = JSONObject.parseArray(attrJson, OsAttributeVO.class);
            if(!CollectionUtils.isEmpty(attributeVOS)){
                attributeService.setDefaultAttributeVOs(attributeVOS.stream().sorted(((o1, o2) -> o1.getId().compareTo(o2.getId()))).collect(Collectors.toList()));
                attributeService.setDefaultAttributeVOMap(attributeVOS.stream().collect(Collectors.toMap(s->s.getId().toLowerCase(Locale.ROOT), t->t)));
            }
            logger.info("读取默认属性完成");
        }catch (Throwable e){
            logger.error("读取classpath*:DefaultAttribute.json的内容并转换的时候出错了",e);
        }
    }
    /**
     * æ¸…除会话的信息内容
@@ -281,21 +226,6 @@
        }
        //只有当数据密级控制开启的情况下,才会控制流程发起时的密级
        webProperties.setCheckSecretOnProcessStart(webProperties.isCheckClientSessionTimeout()&&webProperties.isSecretRight());
        if(webProperties.isDebug()){
            UIEngineServiceImpl.QUERY_BY_CACHE = false;
        }
        System.out.println("---读取服务端的配置文件完成---");
    }
    public String getCompatibility() {
        return compatibility;
    }
    public void setCompatibility(String compatibility) {
        this.compatibility = compatibility;
    }
}
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/interceptor/MyMVCConfig.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/interceptor/MyMVCConfig.java ÐÞ¸Ä
@@ -12,14 +12,13 @@
@Configuration
@EnableWebMvc
//@Order(100)
public class MyMVCConfig implements WebMvcConfigurer {
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
//配置白名单
        //配置白名单
        List<String> patterns = new ArrayList<>();
        patterns.add("/stmFunctionController/**");
//        patterns.add("/smFunctionController/**");
        registry.addInterceptor(new VciSecurityInterceptor()).excludePathPatterns(patterns);
    }
}
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/maven/BatchRedeployJar2Maven.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/BatchRedeployJar2Maven.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci;
package com.vci.web.maven;
import java.io.*;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/properties/VciFramworkCompatibilityProperties.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/properties/VciFramworkCompatibilityProperties.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.frameworkcore.properties;
package com.vci.web.properties;
import com.vci.starter.web.yml.YamlPropertySourceFactory;
import org.springframework.boot.context.properties.ConfigurationProperties;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/properties/VciSecurityManageProperties.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/properties/VciSecurityManageProperties.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.frameworkcore.properties;
package com.vci.web.properties;
import org.springframework.context.annotation.Configuration;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/properties/WebProperties.java
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/OrgDeptQueryServiceI.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/OrgDeptQueryServiceI.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.frameworkcore.compatibility;
package com.vci.web.service;
import com.vci.dto.OrgDepartmentDTO;
import com.vci.corba.common.PLException;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/OrgDutyQueryServiceI.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/OrgDutyQueryServiceI.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.frameworkcore.compatibility;
package com.vci.web.service;
import com.vci.pagemodel.OrgDutyVO;
import com.vci.starter.web.exception.VciBaseException;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/OsCodeGenSchemaServiceI.java
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/OsCodeRuleServiceI.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsCodeRuleServiceI.java ÐÞ¸Ä
@@ -1,8 +1,5 @@
package com.vci.web.service;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.dto.OsCodeRuleDTO;
import com.vci.dto.OsCodeRuleProduceDTO;
import com.vci.model.OsCodeRuleDO;
@@ -10,6 +7,9 @@
import com.vci.pagemodel.OsCodeResultVO;
import com.vci.pagemodel.OsCodeRuleElementVO;
import com.vci.pagemodel.OsCodeRuleVO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.pagemodel.PageHelper;
import java.util.Collection;
import java.util.List;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/SmRoleQueryServiceI.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmRoleQueryServiceI.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.frameworkcore.compatibility;
package com.vci.web.service;
import com.vci.corba.common.PLException;
import com.vci.dto.SmRoleDTO;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/SmUserQueryServiceI.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmUserQueryServiceI.java ÐÞ¸Ä
@@ -1,7 +1,7 @@
package com.vci.frameworkcore.compatibility;
package com.vci.web.service;
import com.vci.dto.SmUserDTO;
import com.vci.corba.common.PLException;
import com.vci.dto.SmUserDTO;
import com.vci.pagemodel.SmUserVO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.*;
@@ -34,7 +34,7 @@
     * @return ç”¨æˆ·çš„æ˜¾ç¤ºå¯¹è±¡ï¼Œå¦‚果用户不存在则返回null,不会抛出异常
     * @throws VciBaseException å‚数为空或者数据库存在问题的时候会抛出异常
     */
    SmUserVO getUserByUserId(String userId) throws VciBaseException;
    SmUserVO getUserByUserId(String userId);
    /**
     * æ‰¹é‡èŽ·å–ç”¨æˆ·çš„ä¿¡æ¯ï¼ˆæ ¹æ®ç”¨æˆ·åï¼‰
@@ -42,7 +42,7 @@
     * @return ç”¨æˆ·çš„æ˜¾ç¤ºå¯¹è±¡ï¼Œå¦‚果用户不存在则返回空的列表,不会抛出异常
     * @throws VciBaseException å‚数为空或者数据库存在问题的时候会抛出异常
     */
    List<SmUserVO> listUserByUserIds(Collection<String> userIdCollections) throws VciBaseException;
    List<SmUserVO> listUserByUserIds(Collection<String> userIdCollections);
    /**
     * æ ¹æ®ç”¨æˆ·ä¸»é”®èŽ·å–ç”¨æˆ·çš„ä¿¡æ¯
@@ -50,7 +50,7 @@
     * @return ç”¨æˆ·çš„æ˜¾ç¤ºå¯¹è±¡ï¼Œå¦‚果用户不存在则返回null,不会抛出异常
     * @throws VciBaseException å‚数为空或者数据库存在问题的时候会抛出异常
     */
    SmUserVO getUserByUserOid(String userOid) throws VciBaseException;
    SmUserVO getUserByUserOid(String userOid);
    /**
     * æ‰¹é‡èŽ·å–ç”¨æˆ·çš„ä¿¡æ¯ ï¼ˆæ ¹æ®ç”¨æˆ·ä¸»é”®ï¼‰
@@ -58,7 +58,7 @@
     * @return ç”¨æˆ·çš„æ˜¾ç¤ºå¯¹è±¡ï¼Œå¦‚果用户不存在则返回空的列表,不会抛出异常
     * @throws VciBaseException å‚数为空或者数据库存在问题的时候会抛出异常
     */
    List<SmUserVO> listUserByUserOids(Collection<String> userOidCollections) throws VciBaseException;
    List<SmUserVO> listUserByUserOids(Collection<String> userOidCollections);
    /**
     * ç”¨æˆ·ç®¡ç†ç•Œé¢åˆ†é¡µæŸ¥è¯¢
@@ -66,7 +66,7 @@
     * @param pageHelper åˆ†é¡µå‚æ•°
     * @return
     */
    DataGrid<SmUserVO> getDataGridUsers(Map<String, String> conditionMap, PageHelper pageHelper) throws PLException;
    DataGrid<SmUserVO> getDataGridUsers(Map<String, String> conditionMap, PageHelper pageHelper);
    /**
     * æ ¹æ®ç”¨æˆ·åèŽ·å–ç”¨æˆ·çš„å§“å
@@ -88,7 +88,7 @@
     * @return éƒ¨é—¨ä¸»é”®å’Œå¯¹åº”的用户显示对象列表的映射,key部门的主键,value是这个部门下的用户
     * @throws VciBaseException å‚数为空或者查询出错的时候会抛出异常
     */
    Map<String,List<SmUserVO>> batchListUserByDeptOids(Collection<String> deptOidCollection) throws VciBaseException;
    Map<String,List<SmUserVO>> batchListUserByDeptOids(Collection<String> deptOidCollection);
    /**
     * ç»Ÿè®¡éƒ¨é—¨ä¸‹çš„用户:包含子部门下的用户
@@ -97,7 +97,7 @@
     * @return
     * @throws VciBaseException
     */
    List<SmUserVO> countSmUserByDeptOid(String deptOid, Map<String, String> queryMap) throws VciBaseException;
    List<SmUserVO> countSmUserByDeptOid(String deptOid, Map<String, String> queryMap);
    /**
     * æŸ¥è¯¢æŸä¸ªéƒ¨é—¨ä¸‹çš„用户对象
@@ -106,7 +106,7 @@
     * @return ç”¨æˆ·çš„æ˜¾ç¤ºå¯¹è±¡åˆ—表
     * @throws VciBaseException å‚数为空或者查询出错的时候会抛出异常
     */
    List<SmUserVO> listUserByDeptOid(String deptOid, Map<String, String> queryMap) throws VciBaseException;
    List<SmUserVO> listUserByDeptOid(String deptOid, Map<String, String> queryMap);
    /**
     * æŸ¥è¯¢ä¸åœ¨æŸä¸ªéƒ¨é—¨ä¸‹çš„用户对象列表
@@ -115,7 +115,7 @@
     * @return ç”¨æˆ·çš„æ˜¾ç¤ºå¯¹è±¡åˆ—表,默认使用用户名升序排列
     * @throws VciBaseException å‚数为空或者查询出错的时候会抛出异常
     */
    List<SmUserVO> listUserUnInDeptOid(String deptOid, Map<String, String> queryMap) throws VciBaseException;
    List<SmUserVO> listUserUnInDeptOid(String deptOid, Map<String, String> queryMap);
    /**
     *  æŸ¥è¯¢æŸä¸ªè§’色下的用户对象列表
@@ -124,7 +124,7 @@
     * @return ç”¨æˆ·çš„æ˜¾ç¤ºå¯¹è±¡åˆ—表
     * @throws VciBaseException å‚数为空或者查询出错的时候会抛出异常
     */
    List<SmUserVO> listUserByRoleOid(String roleOid, Map<String, String> queryMap) throws VciBaseException;
    List<SmUserVO> listUserByRoleOid(String roleOid, Map<String, String> queryMap);
    /**
     * æŸ¥è¯¢ä¸åœ¨æŸä¸ªè§’色下的用户对象列表
@@ -133,7 +133,7 @@
     * @return ç”¨æˆ·çš„æ˜¾ç¤ºå¯¹è±¡åˆ—表,默认使用用户名升序排列
     * @throws VciBaseException å‚数为空或者查询出错的时候会抛出异常
     */
    List<SmUserVO> listUserUnInRoleOid(String roleOid, Map<String, String> queryMap) throws VciBaseException;
    List<SmUserVO> listUserUnInRoleOid(String roleOid, Map<String, String> queryMap);
    /**
     * æ‰¹é‡æ ¹æ®è§’色的主键获取用户
@@ -141,7 +141,7 @@
     * @return è§’色主键和对应的用户显示对象列表的映射,key角色的主键,value是这个角色下的用户
     * @throws VciBaseException å‚数为空或者查询出错的时候会抛出异常
     */
    Map<String,List<SmUserVO>> batchListUserByRoleOids(Collection<String> roleOidCollection) throws VciBaseException;
    Map<String,List<SmUserVO>> batchListUserByRoleOids(Collection<String> roleOidCollection);
    /**
     * å‚照生效的用户
@@ -150,7 +150,7 @@
     * @return ç”¨æˆ·çš„æ˜¾ç¤ºå¯¹è±¡ï¼Œé»˜è®¤ä½¿ç”¨ç”¨æˆ·åå‡åºæŽ’列
     * @throws VciBaseException æŸ¥è¯¢å‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    DataGrid<SmUserVO> refGridUsers(Map<String, String> queryMap, PageHelper pageHelper) throws VciBaseException;
    DataGrid<SmUserVO> refGridUsers(Map<String, String> queryMap, PageHelper pageHelper);
    /**
     * å‚照用户的树形显示
@@ -158,7 +158,7 @@
     * @return ç”¨æˆ·çš„æ ‘形信息,里面会包含用户对象里的所有属性
     * @throws VciBaseException æŸ¥è¯¢å‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    List<Tree> refTreeUsers(TreeQueryObject treeQueryObject) throws VciBaseException;
    List<Tree> refTreeUsers(TreeQueryObject treeQueryObject);
    /**
     * äººå‘˜æƒé™é€‰æ‹©æ ‘
@@ -166,7 +166,7 @@
     * @return
     * @throws VciBaseException
     */
    List<Tree> refPersonOrgTree(TreeQueryObject treeQueryObject) throws VciBaseException;
    List<Tree> refPersonOrgTree(TreeQueryObject treeQueryObject);
    /**
     * æ ¡éªŒå¯†ç æ˜¯å¦ç›¸åŒï¼Œåœ¨æ–°å¹³å°ä¸­å­˜å‚¨çš„密码是两次md5
@@ -211,14 +211,14 @@
     * @param wrongCount å¯†ç çš„错误次数
     * @throws VciBaseException å‚数为空或者存储到数据库中出错的时候会抛出异常
     */
    void updateUserPwdWrongCount(String userOid, int wrongCount) throws VciBaseException;
    void updateUserPwdWrongCount(String userOid, int wrongCount);
    /**
     * æ›´æ–°ç”¨æˆ·çš„æœ€åŽç™»å½•æ—¶é—´
     * @param userOid ç”¨æˆ·çš„主键
     * @throws VciBaseException å‚数为空的时候会抛出异常
     */
    void updateUserLoginTime(String userOid) throws VciBaseException;
    void updateUserLoginTime(String userOid);
    /**
     * æ·»åŠ ç”¨æˆ·
@@ -269,7 +269,7 @@
     * @param roleType
     * @return
     */
    List<String> queryUserNameByRoleType(String roleType) throws PLException;
    List<String> queryUserNameByRoleType(String roleType);
    /**
     * ä½¿ç”¨å½“前用户的类型查询用户
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/VciFileDocClassifyServiceI.java
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/VciFileDownloadServiceI.java
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/VciFileObjectServiceI.java
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/VciFileQueryServiceI.java
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/VciFileUploadServiceI.java
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/VciFileVolumeServiceI.java
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/WFWorkflowNodeFavItemServiceI.java
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/WFWorkflowNodeFavServiceI.java
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/WebAttributeServiceI.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,56 @@
package com.vci.web.service;
import com.vci.corba.omd.atm.AttributeDef;
import com.vci.pagemodel.OsAttributeVO;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
 * @Description å±žæ€§æœåŠ¡æŽ¥å£
 * @Author dangsn
 * @Date 2024/11/28 14:25
 */
public interface WebAttributeServiceI {
    /**
     * ä½¿ç”¨å±žæ€§ç¼–号获取对象--批量
     * @param attrCodes å±žæ€§çš„英文名称
     * @return å±žæ€§çš„æ˜¾ç¤ºå¯¹è±¡
     */
    List<OsAttributeVO> listAttrByIds(Collection<String> attrCodes);
    /**
     * ä½¿ç”¨å±žæ€§ç¼–号获取对象--批量
     * @param attrCodes å±žæ€§çš„英文名称
     * @param attributeVOMap å±žæ€§å¯¹è±¡
     * @return å±žæ€§çš„æ˜¾ç¤ºå¯¹è±¡
     */
    List<OsAttributeVO> listAttrByIds(Collection<String> attrCodes, Map<String, OsAttributeVO> attributeVOMap);
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„属性
     * @return å±žæ€§çš„æ˜¾ç¤ºå¯¹è±¡
     */
    List<OsAttributeVO> selectAllAttribute();
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„属性映射
     * @return key是属性的英文名称小写,value是属性的显示对象
     */
    Map<String,OsAttributeVO> selectAllAttributeMap();
    /**
     * å±žæ€§çš„æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param attribItems æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
     */
    List<OsAttributeVO> attributeDO2VOs(Collection<AttributeDef> attribItems);
    /**
     * å±žæ€§çš„æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param attribItem æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
     */
    OsAttributeVO attributeDO2VO(AttributeDef attribItem);
}
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/WebBoServiceI.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/WebBoServiceI.java ÐÞ¸Ä
@@ -4,11 +4,11 @@
import com.vci.common.qt.object.QueryTemplate;
import com.vci.corba.omd.data.BusinessObject;
import com.vci.corba.omd.data.LinkObject;
import com.vci.pagemodel.BatchCBO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.pagemodel.BatchCBO;
import java.util.Collection;
import java.util.List;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/WebBtmServiceI.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,96 @@
package com.vci.web.service;
import com.vci.corba.common.PLException;
import com.vci.corba.omd.btm.BizType;
import com.vci.pagemodel.OsAttributeVO;
import com.vci.pagemodel.OsBtmTypeAttributeVO;
import com.vci.pagemodel.OsBtmTypeVO;
import com.vci.pagemodel.OsUsedAttributeVO;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
 * @Description ä¸šåŠ¡ç±»åž‹æœåŠ¡æŽ¥å£
 * @Author dangsn
 * @Date 2024/11/28 11:32
 */
public interface WebBtmServiceI {
    /**
     * TODO:尽量别用这个方法很慢,做了一次全查再转来转去
     * ä½¿ç”¨ç¼–号获取业务类型
     * @param id ç¼–号
     * @return ä¸šåŠ¡ç±»åž‹
     */
    OsBtmTypeVO getBtmById(String id) throws PLException;
    /**
     * æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param btmItem æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
     */
    OsBtmTypeVO btmDO2VO(BizType btmItem, Map<String, OsAttributeVO> attributeVOMap);
    /**
     * èŽ·å–ä¸šåŠ¡ç±»åž‹çš„åœ¨å“ªä¸ªå±žæ€§ä¸­ä½¿ç”¨
     * @param btmName ä¸šåŠ¡ç±»åž‹
     * @return å¼•用的信息
     */
    List<OsUsedAttributeVO> listBtmUsedInfo(String btmName);
    /**
     * èŽ·å–ä¸šåŠ¡ç±»åž‹çš„åœ¨å“ªä¸ªå±žæ€§ä¸­ä½¿ç”¨
     *
     * @param btmId ä¸šåŠ¡ç±»åž‹
     * @param hasLink æ˜¯å¦åŒ…含链接类型中
     * @return å¼•用的信息
     */
    List<OsUsedAttributeVO> listBtmUsedInfo(String btmId, boolean hasLink);
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„业务类型映射
     * @return key æ˜¯ä¸šåŠ¡çš„è‹±æ–‡åç§°çš„å°å†™
     */
    Map<String,OsBtmTypeVO> selectAllBtmMap();
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„业务类型映射
     * @return key æ˜¯ä¸šåŠ¡çš„è‹±æ–‡åç§°çš„å°å†™
     */
    Map<String,OsBtmTypeVO> selectAllBtmMap(Map<String, OsAttributeVO> attributeVOMap);
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„业务类型
     * @return ä¸šåŠ¡ç±»åž‹å¯¹è±¡
     */
    List<OsBtmTypeVO> selectAllBtm();
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„业务类型
     * @return ä¸šåŠ¡ç±»åž‹å¯¹è±¡
     */
    List<OsBtmTypeVO> selectAllBtm(Map<String, OsAttributeVO> attributeVOMap);
    /**
     * æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param btmItems æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
     */
    List<OsBtmTypeVO> btmDO2VOs(Collection<BizType> btmItems, Map<String, OsAttributeVO> attributeVOMap);
    /**
     * ä½¿ç”¨ç¼–号获取业务类型
     * @param btmIds ç¼–号
     * @return ä¸šåŠ¡ç±»åž‹
     */
    List<OsBtmTypeVO> listBtmByIds(Collection<String> btmIds);
    /**
     * æ ¹æ®ä¸šåŠ¡ç±»åž‹èŽ·å–åŒ…å«çš„å±žæ€§--不包含基础属性
     * @param btmId ä¸šåŠ¡ç±»åž‹çš„ç¼–å·
     * @return å±žæ€§çš„内容
     */
    List<OsBtmTypeAttributeVO> listAttributeByBtmId(String btmId);
}
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/WebEnumServiceI.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,77 @@
package com.vci.web.service;
import com.vci.corba.omd.etm.EnumType;
import com.vci.pagemodel.KeyValue;
import com.vci.pagemodel.OsEnumItemVO;
import com.vci.pagemodel.OsEnumVO;
import com.vci.starter.web.exception.VciBaseException;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
 * @Description æžšä¸¾æœåŠ¡æŽ¥å£
 * @Author dangsn
 * @Date 2024/11/28 11:18
 */
public interface WebEnumServiceI {
    /**
     * æ ¹æ®æžšä¸¾çš„key获取枚举的对象
     * @param enumCode æžšä¸¾çš„编号
     * @return æžšä¸¾åŒ…含的值
     * @throws VciBaseException èŽ·å–æžšä¸¾å‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚å¸¸
     */
    List<KeyValue> getEnum(String enumCode) throws VciBaseException;
    /**
     * æ ¹æ®æžšä¸¾çš„值,获取对应的显示文本
     * @param enumCode æžšä¸¾çš„编号
     * @param enumKey æžšä¸¾çš„值
     * @return æžšä¸¾çš„æ–‡æœ¬
     * @throws VciBaseException èŽ·å–æžšä¸¾å‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚å¸¸
     */
    String getValue(String enumCode, String enumKey);
    /**
     * æžšä¸¾çš„æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param enumType æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
     */
    OsEnumVO enumDO2VO(EnumType enumType);
    /**
     * æžšä¸¾æ˜Žç»†è½¬æ¢ä¸ºKV
     * @param enumItemVOS æžšä¸¾æ˜Žç»†æ˜¾ç¤ºå¯¹è±¡
     * @return KV
     */
    List<KeyValue> enumItem2KV(Collection<OsEnumItemVO> enumItemVOS);
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„æžšä¸¾æ˜ å°„
     * @return key是枚举的英文名称
     */
    Map<String,OsEnumVO> selectAllEnumMap();
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„æžšä¸¾
     * @return æžšä¸¾çš„æ˜¾ç¤ºå¯¹è±¡
     */
    List<OsEnumVO> selectAllEnum();
    /**
     * æžšä¸¾çš„æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param enumItems æžšä¸¾çš„对象
     * @return æ˜¾ç¤ºå¯¹è±¡
     */
    List<OsEnumVO> enumDO2VOs(Collection<EnumType> enumItems);
    /**
     * èŽ·å–æžšä¸¾çš„æ˜ å°„
     * @param enumCode æžšä¸¾çš„编号
     * @return æžšä¸¾çš„值
     * @throws VciBaseException èŽ·å–æžšä¸¾å‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚å¸¸
     */
    Map<String,String> getEnumValueMap(String enumCode);
}
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/WebHomeTaskServiceI.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/WebHomeTaskServiceI.java ÐÞ¸Ä
@@ -1,11 +1,11 @@
package com.vci.web.service;
import com.vci.dto.WebHomeTaskActionDTO;
import com.vci.pagemodel.WebHomeTaskActionVO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.dto.WebHomeTaskActionDTO;
import com.vci.pagemodel.WebHomeTaskActionVO;
import java.util.List;
import java.util.Map;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/WebLifeCycleServiceI.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,121 @@
package com.vci.web.service;
import com.vci.corba.omd.data.BusinessObject;
import com.vci.corba.omd.lcm.LifeCycle;
import com.vci.pagemodel.OsLifeCycleLineVO;
import com.vci.pagemodel.OsLifeCycleVO;
import com.vci.pagemodel.OsStatusVO;
import com.vci.starter.web.exception.VciBaseException;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
 * @Description ç”Ÿå‘½å‘¨æœŸæœåŠ¡æŽ¥å£
 * @Author dangsn
 * @Date 2024/11/28 10:38
 */
public interface WebLifeCycleServiceI {
    /**
     * è·ƒè¿ç”Ÿå‘½å‘¨æœŸçŠ¶æ€ï¼Œæ³¨æ„è°ƒç”¨æ­¤æ–¹æ³•å°±ä¼šè¢«æŒä¹…åŒ–ï¼Œä¸å—äº‹åŠ¡æŽ§åˆ¶
     * @param bo ä¸šåŠ¡ç±»åž‹çš„æ•°æ®å¯¹è±¡
     * @param targetStatus ç›®æ ‡çš„生命周期状态,不区分大小
     * @throws VciBaseException å¦‚果目标生命周期和当前生命周期状态没有连接线时抛出异常
     */
    void transStatus(BusinessObject bo, String targetStatus);
    /**
     * æ‰¹é‡è·ƒè¿ç”Ÿå‘½å‘¨æœŸçŠ¶æ€ï¼Œè¿™äº›æ•°æ®ä¸­çš„å½“å‰çŠ¶æ€å¿…é¡»éƒ½æ˜¯ä¸€æ ·ï¼Œæˆ–è€…æ˜¯å½“å‰çŠ¶æ€éƒ½å¯ä»¥è¿žæŽ¥åˆ°ç›®æ ‡çŠ¶æ€
     * @param bos ä¸šåŠ¡ç±»åž‹å¯¹è±¡æ•°æ®
     * @param targetStatus  ç›®æ ‡çŠ¶æ€ï¼Œä¸åŒºåˆ†å¤§å°å†™
     * @throws VciBaseException è½¬æ¢ç”Ÿå‘½å‘¨æœŸå‡ºé”™çš„æ—¶å€™æŠ›å‡ºå¼‚常
     */
    void transStatus(BusinessObject[] bos, String targetStatus);
    /**
     * æ‰¹é‡è·ƒè¿ç”Ÿå‘½å‘¨æœŸçŠ¶æ€ï¼Œè¿™äº›æ•°æ®ä¸­çš„å½“å‰çŠ¶æ€å¿…é¡»éƒ½æ˜¯ä¸€æ ·ï¼Œæˆ–è€…æ˜¯å½“å‰çŠ¶æ€éƒ½å¯ä»¥è¿žæŽ¥åˆ°ç›®æ ‡çŠ¶æ€
     * @param cboList ä¸šåŠ¡ç±»åž‹å¯¹è±¡æ•°æ®
     * @param targetStatus  ç›®æ ‡çŠ¶æ€ï¼Œä¸åŒºåˆ†å¤§å°å†™
     * @throws VciBaseException è½¬æ¢ç”Ÿå‘½å‘¨æœŸå‡ºé”™çš„æ—¶å€™æŠ›å‡ºå¼‚常
     */
    void transCboStatus(List<BusinessObject> cboList, String targetStatus);
    /**
     * èŽ·å–è¿žæŽ¥çº¿
     * @param lcid ç”Ÿå‘½å‘¨æœŸçš„编号
     * @param currentStatus å½“前的状态
     * @param targetStatus ç›®æ ‡çš„状态
     * @return è¿žæŽ¥çº¿
     * @throws VciBaseException è¯»å–出错的时候会抛出异常
     */
    OsLifeCycleLineVO getTransVO(String lcid, String currentStatus, String targetStatus);
    /**
     * è·ƒè¿ä¸šåŠ¡ç±»åž‹çš„ç”Ÿå‘½å‘¨æœŸçŠ¶æ€
     * @param obj ä¸šåŠ¡ç±»åž‹æ•°æ®å¯¹è±¡
     * @param lineVO è·ƒè¿è·¯ç”±
     * @throws VciBaseException è·ƒè¿å‡ºé”™çš„æ˜¯ä¼šæŠ›å‡ºå¼‚常
     */
    void doTransVO(BusinessObject obj, OsLifeCycleLineVO lineVO);
    /**
     * æ‰¹é‡æ‰§è¡Œè·ƒè¿æ“ä½œ
     * @param bos ä¸šåŠ¡ç±»åž‹æ•°æ®
     * @param vos è·ƒè¿å¯¹è±¡
     * @throws VciBaseException è·ƒè¿å‡ºé”™çš„æ˜¯ä¼šæŠ›å‡ºå¼‚常
     */
    void batchTransVo(BusinessObject[] bos, OsLifeCycleLineVO[] vos);
    /**
     * æ‰¹é‡æ‰§è¡Œè·ƒè¿æ“ä½œï¼Œè¦æ±‚必须是同一个业务类型下的
     * @param bos ä¸šåŠ¡ç±»åž‹æ•°æ®å¯¹è±¡
     * @param lineVOs è·ƒè¿å¯¹è±¡
     * @param releaseStatus å‘布状态,如果目标状态是发布状态时传递这个值
     * @throws VciBaseException  è·ƒè¿å‡ºé”™çš„æ˜¯ä¼šæŠ›å‡ºå¼‚常
     */
    void batchTransVo(BusinessObject[] bos, OsLifeCycleLineVO[] lineVOs, String[] releaseStatus);
    /**
     * é€šè¿‡ç¼–号获取生命周期状态对象,
     * @param lctId ç”Ÿå‘½å‘¨æœŸç¼–号
     * @return ç”Ÿå‘½å‘¨æœŸçš„æ˜¾ç¤ºå¯¹è±¡
     */
    OsLifeCycleVO getLifeCycleById(String lctId);
    /**
     * æŸ¥è¯¢æ‰€æœ‰ç”Ÿå‘½å‘¨æœŸçŠ¶æ€çš„æ˜ å°„
     * @return key æ˜¯ç”Ÿå‘½å‘¨æœŸçš„编号的英文小写
     * @throws VciBaseException æŸ¥è¯¢çš„æ—¶å€™å‡ºé”™ä¼šæŠ›å‡ºå¼‚常
     */
    Map<String,OsLifeCycleVO> selectAllLifeCycleMap();
    /**
     * æŸ¥è¯¢æ‰€æœ‰ç”Ÿå‘½å‘¨æœŸçŠ¶æ€
     * @return ç”Ÿå‘½å‘¨æœŸçŠ¶æ€çš„å¯¹è±¡
     * @throws VciBaseException æŸ¥è¯¢çš„æ—¶å€™å‡ºé”™ä¼šæŠ›å‡ºå¼‚常
     */
    List<OsLifeCycleVO> selectAllLifeCycle();
    /**
     * ç”Ÿå‘½å‘¨æœŸçš„æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param lifeCycles æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
     */
    List<OsLifeCycleVO> lifeCycleDO2VOs(Collection<LifeCycle> lifeCycles);
    /**
     * ç”Ÿå‘½å‘¨æœŸçš„æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param lifeCyle æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
     */
    OsLifeCycleVO lifeCycleDO2VO(LifeCycle lifeCyle);
    /**
     * ä½¿ç”¨ç”Ÿå‘½å‘¨æœŸçš„编号获取包含的状态显示对象
     * @param lifeCycleId ç”Ÿå‘½å‘¨æœŸçš„编号
     * @return çŠ¶æ€çš„æ˜¾ç¤ºå¯¹è±¡
     */
    List<OsStatusVO> listStatusById(String lifeCycleId);
}
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/WebLinkTypeServiceI.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,42 @@
package com.vci.web.service;
import com.vci.corba.omd.ltm.LinkType;
import com.vci.pagemodel.OsLinkTypeVO;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
 * @Description é“¾æŽ¥ç±»åž‹æœåŠ¡æŽ¥å£
 * @Author dangsn
 * @Date 2024/11/28 11:41
 */
public interface WebLinkTypeServiceI {
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„链接类型
     * @return é“¾æŽ¥ç±»åž‹å¯¹è±¡
     */
    List<OsLinkTypeVO> selectAllLink();
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„链接类型映射
     * @return key æ˜¯é“¾æŽ¥çš„英文名称的小写
     */
    Map<String,OsLinkTypeVO> selectAllLinkMap();
    /**
     * æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param linkTypes æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
     */
    List<OsLinkTypeVO> linkTypeDO2VOs(Collection<LinkType> linkTypes);
    /**
     * æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param linkType æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
     */
    OsLinkTypeVO linkTypeDO2VO(LinkType linkType);
}
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/WebLoServiceI.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/WebLoServiceI.java ÐÞ¸Ä
@@ -1,15 +1,13 @@
package com.vci.web.service;
import com.vci.corba.omd.data.AttributeValue;
import com.vci.corba.omd.data.BusinessObject;
import com.vci.corba.omd.data.LinkObject;
import com.vci.corba.query.data.BOAndLO;
import com.vci.query.UILinkTypeDataQuery;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.web.query.UILinkTypeDataQuery;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -116,15 +114,6 @@
     * @throws VciBaseException
     */
     Map<String,BusinessObject> queryLinkedCbo(List los, boolean isDirection) throws VciBaseException;
//    /**
//     *查询链接类型某端的业务类型
//     * @param clo é“¾æŽ¥ç±»åž‹å¯¹è±¡
//     * @param isDirection æ˜¯å¦åå‘
//     * @return
//     * @throws VciBaseException
//     */
//     Map<String,BusinessObject> queryLinkedCbo(LinkObject[] clo, boolean isDirection) throws VciBaseException;
    /**
     * æŸ¥è¯¢é“¾æŽ¥ç±»åž‹æŸç«¯çš„业务类型
@@ -264,40 +253,5 @@
     * @param attributeName å±žæ€§åç§°
     * @param attributeValue å±žæ€§çš„值
     */
    public default void setAttribute(LinkObject clo,String attributeName,String attributeValue){
        com.vci.corba.omd.data.AttributeValue[] attrValues =clo.newAttrValList;
        ArrayList<com.vci.corba.omd.data.AttributeValue> attrValList = new ArrayList();
        com.vci.corba.omd.data.AttributeValue attrVal;
        int i;
        if (attrValues != null && attrValues.length > 0) {
            com.vci.corba.omd.data.AttributeValue[] var9 = attrValues;
            i = attrValues.length;
            for(int var7 = 0; var7 < i; ++var7) {
                attrVal = var9[var7];
                attrValList.add(attrVal);
            }
        }
        attrVal = null;
        boolean isExist = false;
        for(i = 0; i < attrValList.size(); ++i) {
            attrVal = (com.vci.corba.omd.data.AttributeValue)attrValList.get(i);
            if (attrVal.attrName.toUpperCase().equals(attributeName.toUpperCase())) {
                attrVal.attrVal = attributeValue;
                isExist = true;
                break;
            }
        }
        if (!isExist) {
            attrVal = new com.vci.corba.omd.data.AttributeValue();
            attrVal.attrName = attributeName.toUpperCase();
            attrVal.attrVal = attributeValue;
            attrValList.add(attrVal);
        }
        clo.newAttrValList = attrValList.toArray(new AttributeValue[attrValList.size()]);
    };
    void setAttribute(LinkObject clo,String attributeName,String attributeValue);
}
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/WebProcessCommandServiceI.java
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/WebProcessDefineServiceI.java
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/WebPwdStrategyQueryServiceI.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,51 @@
package com.vci.web.service;
import com.vci.corba.common.PLException;
import com.vci.pagemodel.SmPasswordStrategyVO;
import com.vci.starter.web.exception.VciBaseException;
import java.util.Collection;
import java.util.Map;
/**
 * @Description å¯†ç ç­–略查询
 * @Author dangsn
 * @Date 2024/11/28 16:16
 */
public interface WebPwdStrategyQueryServiceI {
    /**
     * èŽ·å–é»˜è®¤å¯†ç ç­–ç•¥
     * @return
     */
    SmPasswordStrategyVO getPasswordStrategyVOByDefault();
    /**
     * æ ¹æ®å•条用户的主键,获取用户的密码安全策略
     * @param userOid ç”¨æˆ·çš„主键
     * @return å¯†ç å®‰å…¨ç­–略的显示对象,如果不存在则会返回Null
     * @throws VciBaseException å‚数为空或者数据库查询出错的时候会抛出异常
     */
    SmPasswordStrategyVO getPasswordStrategyVOByUserOid(String userOid) throws PLException;
    /**
     * æ‰¹é‡æ ¹æ®ç”¨æˆ·çš„主键来获取密码策略
     * @param userOidCollection ç”¨æˆ·ä¸»é”®é›†åˆ
     * @return å¯†ç ç­–略的显示对象,key是用户主键,value是这个用户关联的密码策略
     */
    Map<String, SmPasswordStrategyVO> batchSmPwdStrategyByUserOids(Collection<String> userOidCollection);
    /**
     * æ ¹æ®ä¸»é”®æŸ¥è¯¢å¯†ç ç­–ç•¥map对象
     * @param oidList
     * @return key为密码策略主键 value为密码策略
     */
    Map<String,SmPasswordStrategyVO> mapPasswordStrategyVOMapByOid(Collection<String> oidList);
    /**
     * ä½¿ç”¨ä¸»é”®èŽ·å–å¯†ç ç­–ç•¥
     * @param oid ä¸»é”®
     * @return å¯†ç ç­–略显示对象
     */
    SmPasswordStrategyVO getPasswordStrategyVOByOid(String oid);
}
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/WebRevisionRuleServiceI.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,49 @@
package com.vci.web.service;
import com.vci.corba.omd.vrm.VersionRule;
import com.vci.pagemodel.OsRevisionRuleVO;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
 * @Description ç‰ˆæœ¬è§„则服务接口
 * @Author dangsn
 * @Date 2024/11/28 14:19
 */
public interface WebRevisionRuleServiceI {
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„版本规则
     * @return ç‰ˆæœ¬å¯¹è±¡
     */
    List<OsRevisionRuleVO> selectAllRevision();
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„版本规则映射
     * @return key æ˜¯ç‰ˆæœ¬çš„英文名称
     */
    Map<String,OsRevisionRuleVO> selectAllRevisionMap();
    /**
     * ä½¿ç”¨ç¼–号获取规则的值
     * @param id ç¼–号
     * @return æ˜¾ç¤ºå¯¹è±¡
     */
    OsRevisionRuleVO getRevisionRuleById(String id);
    /**
     * æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param versionRules æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
     */
    List<OsRevisionRuleVO> revisionRuleDO2VOs(Collection<VersionRule> versionRules);
    /**
     * æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param versionRule æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
     */
    OsRevisionRuleVO revisionRuleDO2VO(VersionRule versionRule);
}
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/WebSecretServiceI.java
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/WebStatusServiceI.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,42 @@
package com.vci.web.service;
import com.vci.corba.omd.stm.StatePool;
import com.vci.pagemodel.OsStatusVO;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
 * @Description çŠ¶æ€æ± æœåŠ¡æŽ¥å£
 * @Author dangsn
 * @Date 2024/11/28 10:51
 */
public interface WebStatusServiceI {
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„状态
     * @return çŠ¶æ€çš„æ˜¾ç¤ºå¯¹è±¡
     */
    List<OsStatusVO> selectAllStatus();
    /**
     * æŸ¥è¯¢å…¨éƒ¨çš„状态映射
     * @return key是状态的英文名称
     */
    Map<String, OsStatusVO> selectAllStatusMap();
    /**
     * æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param statePool çŠ¶æ€æ± çš„æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
     */
    OsStatusVO statusDO2VO(StatePool statePool);
    /**
     * æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param statePools çŠ¶æ€æ± çš„æ•°æ®å¯¹è±¡ é›†åˆ
     * @return æ˜¾ç¤ºå¯¹è±¡
     */
    List<OsStatusVO> statusDO2VOs(Collection<StatePool> statePools);
}
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/OrgDeptQueryServiceImpl.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/OrgDeptQueryServiceImpl.java ÐÞ¸Ä
@@ -1,12 +1,12 @@
package com.vci.frameworkcore.compatibility.impl;
package com.vci.web.service.impl;
import com.vci.dto.OrgDepartmentDTO;
import com.vci.corba.common.PLException;
import com.vci.corba.common.data.UserEntityInfo;
import com.vci.corba.framework.data.DeptInfo;
import com.vci.corba.omd.data.BusinessObject;
import com.vci.frameworkcore.compatibility.OrgDeptQueryServiceI;
import com.vci.frameworkcore.lcstatuspck.FrameworkDataLCStatus;
import com.vci.web.service.OrgDeptQueryServiceI;
import com.vci.lcstatuspck.FrameworkDataLCStatus;
import com.vci.model.OrgDeptForPlatform1;
import com.vci.po.OrgDeptPO;
import com.vci.pagemodel.OrgDepartmentVO;
@@ -24,7 +24,7 @@
import com.vci.starter.web.util.*;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.service.WebBoServiceI;
import com.vci.web.util.Func;
import com.vci.starter.web.util.Lcm.Func;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
@@ -33,7 +33,6 @@
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.io.File;
@@ -534,7 +533,7 @@
            orgDepartmentVOList = deptDO2VOs(boService.selectByQueryWrapper(queryWrapperForDO,OrgDeptForPlatform1.class));
        }
        TreeWrapperOptions treeWrapperOptions = new TreeWrapperOptions();
        BeanUtil.convert(treeQueryObject,treeWrapperOptions);
        BeanUtilForVCI.convert(treeQueryObject,treeWrapperOptions);
        treeWrapperOptions.setParentFieldName("pkFatherDepartment");
        List<Tree> trees = revisionModelUtil.doList2Trees(orgDepartmentVOList, treeWrapperOptions, dept -> {
            return dept.getId() + " " + dept.getName() + (FrameworkDataLCStatus.DISABLED.getValue().equals(dept.getLcStatus()) ? "【停用】" : "");
@@ -677,7 +676,7 @@
            throw new VciBaseException("同一父节点下该部门名称或编号已经存在,请修改!");
        }
        OrgDepartmentDTO departmentDTO = new OrgDepartmentDTO();
        BeanUtil.convert(dbDepartmentVO,departmentDTO);
        BeanUtilForVCI.convert(dbDepartmentVO,departmentDTO);
        departmentDTO.setCode(orgDepartmentDTO.getCode());
        departmentDTO.setId(orgDepartmentDTO.getId());
        departmentDTO.setSpecialties(orgDepartmentDTO.getSpecialties());
@@ -845,7 +844,7 @@
                indexMap.put(po.getName(),po.getRowIndex());
                //校验数据就该组装成DTO数据对象了
                OrgDepartmentDTO dto = new OrgDepartmentDTO();
                BeanUtil.convert(po,dto);
                BeanUtilForVCI.convert(po,dto);
                dto.setOid(po.getId());
                dto.setId(po.getNum());
                dto.setDescription(po.getDesc());
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/OrgDutyQueryServiceImpl.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/OrgDutyQueryServiceImpl.java ÐÞ¸Ä
@@ -1,6 +1,6 @@
package com.vci.frameworkcore.compatibility.impl;
package com.vci.web.service.impl;
import com.vci.frameworkcore.compatibility.OrgDutyQueryServiceI;
import com.vci.web.service.OrgDutyQueryServiceI;
import com.vci.pagemodel.OrgDutyVO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.DataGrid;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/OsCodeGenSchemaServiceImpl.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsCodeGenSchemaServiceImpl.java ÐÞ¸Ä
@@ -1,7 +1,15 @@
package com.vci.web.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.vci.bo.OsCodeGenAttributeBO;
import com.vci.bo.OsCodeGenButtonBO;
import com.vci.corba.common.PLException;
import com.vci.dto.OsCodeGenSchemaDTO;
import com.vci.enumpck.OsCodeGenJsPanelTypeEnum;
import com.vci.model.OsCodeGenSchemaDO;
import com.vci.pagemodel.OsBtmTypeAttributeVO;
import com.vci.pagemodel.OsBtmTypeVO;
import com.vci.pagemodel.OsCodeGenSchemaVO;
import com.vci.starter.revision.service.RevisionModelUtil;
import com.vci.starter.web.annotation.Column;
import com.vci.starter.web.constant.FrameWorkLcStatusConstant;
@@ -10,24 +18,14 @@
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.BeanUtil;
import com.vci.starter.web.util.BeanUtilForVCI;
import com.vci.starter.web.util.LocalFileUtil;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.util.VciDateUtil;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.bo.OsCodeGenAttributeBO;
import com.vci.bo.OsCodeGenButtonBO;
import com.vci.web.dao.OsCodeGenSchemaDaoI;
import com.vci.dto.OsCodeGenSchemaDTO;
import com.vci.web.enumpck.OsCodeGenJsPanelTypeEnum;
import com.vci.model.OsCodeGenSchemaDO;
import com.vci.pagemodel.OsBtmTypeAttributeVO;
import com.vci.pagemodel.OsBtmTypeVO;
import com.vci.pagemodel.OsCodeGenSchemaVO;
import com.vci.web.service.OsAttributeServiceI;
import com.vci.web.service.OsBtmServiceI;
import com.vci.web.service.OsCodeGenSchemaServiceI;
import com.vci.web.service.WebBtmIOServiceI;
import com.vci.web.service.WebBtmServiceI;
import com.vci.web.util.WebUtil;
import com.vci.web.util.file.VciZipUtil;
import org.apache.commons.io.IOUtils;
@@ -74,22 +72,10 @@
    private OsCodeGenSchemaDaoI codeGenSchemaDOMapper;
    /**
     * ä¸šåŠ¡ç±»åž‹
     */
    @Autowired
    private WebBtmIOServiceI btmIOService;
    /**
     * ä¸šåŠ¡ç±»åž‹ç›¸å…³çš„æ“ä½œ
     */
    @Autowired
    private OsBtmServiceI btmService;
    /**
     * å±žæ€§çš„æœåŠ¡
     */
    @Autowired
    private OsAttributeServiceI attrServiceI;
    @Resource
    private WebBtmServiceI btmService;
    /**
     * ä»£ç ç”Ÿæˆçš„æ–‡ä»¶å¤¹
@@ -158,7 +144,7 @@
    public OsCodeGenSchemaVO codeGenSchemaDO2VO(OsCodeGenSchemaDO schemaDO) {
        OsCodeGenSchemaVO schemaVO = new OsCodeGenSchemaVO();
        if(schemaDO!=null){
            BeanUtil.convert(schemaDO,schemaVO);
            BeanUtilForVCI.convert(schemaDO,schemaVO);
            schemaVO.setWestLayoutPanelTypeText(OsCodeGenJsPanelTypeEnum.getTextByValue(schemaVO.getWestLayoutPanelType()));
            schemaVO.setCenterLayoutPanelTypeText(OsCodeGenJsPanelTypeEnum.getTextByValue(schemaVO.getCenterLayoutPanelType()));
            schemaVO.setSouthLayoutPanelTypeText(OsCodeGenJsPanelTypeEnum.getTextByValue(schemaVO.getSouthLayoutPanelType()));
@@ -177,7 +163,7 @@
    public OsCodeGenSchemaVO addSchema(OsCodeGenSchemaDTO codeGenSchemaDTO) throws VciBaseException {
        VciBaseUtil.alertNotNull(codeGenSchemaDTO,"要添加的方案");
        OsCodeGenSchemaDO codeGenSchemaDO = new OsCodeGenSchemaDO();
        BeanUtil.convert(codeGenSchemaDTO,codeGenSchemaDO);
        BeanUtilForVCI.convert(codeGenSchemaDTO,codeGenSchemaDO);
        checkJsonFormate(codeGenSchemaDO);
        //实现类是前端直接填写
        codeGenSchemaDOMapper.insert(codeGenSchemaDO);
@@ -408,7 +394,7 @@
        }
        OsBtmTypeAttributeVO idAttr = new OsBtmTypeAttributeVO();
        if(defaultAttrMap.containsKey("id")){
            BeanUtil.convert(defaultAttrMap.get("id"),idAttr);
            BeanUtilForVCI.convert(defaultAttrMap.get("id"),idAttr);
            idAttr.setId("id");
            if(StringUtils.isBlank(idAttr.getName())){
                idAttr.setName("编号");
@@ -422,7 +408,7 @@
        OsBtmTypeAttributeVO nameAttr = new OsBtmTypeAttributeVO();
        if(defaultAttrMap.containsKey("name")){
            BeanUtil.convert(defaultAttrMap.get("name"),nameAttr);
            BeanUtilForVCI.convert(defaultAttrMap.get("name"),nameAttr);
            nameAttr.setId("name");
            if(StringUtils.isBlank(nameAttr.getName())){
                nameAttr.setName("名称");
@@ -436,7 +422,7 @@
        OsBtmTypeAttributeVO descAttr = new OsBtmTypeAttributeVO();
        if(defaultAttrMap.containsKey("desc")){
            BeanUtil.convert(defaultAttrMap.get("desc"),descAttr);
            BeanUtilForVCI.convert(defaultAttrMap.get("desc"),descAttr);
            descAttr.setId("description");
            if(StringUtils.isBlank(descAttr.getName())){
                descAttr.setName("描述");
@@ -451,7 +437,7 @@
        if(!CollectionUtils.isEmpty(attributeVOS)){
            attributeVOS.stream().forEach(attr->{
                OsCodeGenAttributeBO attributeBO = new OsCodeGenAttributeBO();
                BeanUtil.convert(attr, attributeBO);
                BeanUtilForVCI.convert(attr, attributeBO);
                attributeBO.setIdUpper(attr.getId().toUpperCase());
                if(VciQueryWrapperForDO.LC_STATUS_FIELD.equalsIgnoreCase(attributeBO.getId())){
                    attributeBO.setName("状态");
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/OsCodeRuleServiceImpl.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsCodeRuleServiceImpl.java ÐÞ¸Ä
@@ -1,31 +1,30 @@
package com.vci.web.service.impl;
import com.vci.constant.FrameWorkDefaultValueConstant;
import com.vci.constant.FrameWorkDefaultValueConstant;
import com.vci.frameworkcore.lcstatuspck.FrameworkDataLCStatus;
import com.vci.model.*;
import com.vci.starter.web.enumpck.BooleanEnum;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.BeanUtil;
import com.vci.starter.web.util.LangBaseUtil;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.util.VciDateUtil;
import com.vci.bo.OsCodeSerialBuildBO;
import com.vci.web.dao.*;
import com.vci.constant.FrameWorkDefaultValueConstant;
import com.vci.dto.OsCodeEnumDTO;
import com.vci.dto.OsCodeRuleDTO;
import com.vci.dto.OsCodeRuleElementDTO;
import com.vci.dto.OsCodeRuleProduceDTO;
import com.vci.web.enumpck.OsCodeDateValueTypeEnum;
import com.vci.web.enumpck.OsCodeElementTypeEnum;
import com.vci.web.enumpck.OsCodeFillTypeEnum;
import com.vci.web.enumpck.OsCodeProductTypeEnum;
import com.vci.enumpck.OsCodeDateValueTypeEnum;
import com.vci.enumpck.OsCodeElementTypeEnum;
import com.vci.enumpck.OsCodeFillTypeEnum;
import com.vci.enumpck.OsCodeProductTypeEnum;
import com.vci.lcstatuspck.FrameworkDataLCStatus;
import com.vci.model.*;
import com.vci.pagemodel.OsCodeEnumVO;
import com.vci.pagemodel.OsCodeResultVO;
import com.vci.pagemodel.OsCodeRuleElementVO;
import com.vci.pagemodel.OsCodeRuleVO;
import com.vci.starter.web.enumpck.BooleanEnum;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.BeanUtilForVCI;
import com.vci.starter.web.util.LangBaseUtil;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.util.VciDateUtil;
import com.vci.web.dao.*;
import com.vci.web.service.OsCodeRuleServiceI;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
@@ -561,7 +560,7 @@
            Map<String,List<OsCodeEnumVO>> enumVOMap = new HashMap<String, List<OsCodeEnumVO>>();
            for(OsCodeEnumDO enumDO : existEnumDOs){
                OsCodeEnumVO enumVO = new OsCodeEnumVO();
                BeanUtil.convert(enumDO,enumVO);
                BeanUtilForVCI.convert(enumDO,enumVO);
                String pkCodeRuleElement = enumVO.getPkCodeRuleElement();
                List<OsCodeEnumVO> enumVOS = enumVOMap.containsKey(pkCodeRuleElement) ? enumVOMap.get(pkCodeRuleElement) : new ArrayList<OsCodeEnumVO>();
                enumVOS.add(enumVO);
@@ -584,7 +583,7 @@
    public OsCodeRuleVO codeRuleDO2VO(OsCodeRuleDO ruleDO) {
        OsCodeRuleVO ruleVO = new OsCodeRuleVO();
        if (ruleDO != null) {
            BeanUtil.convert(ruleDO, ruleVO);
            BeanUtilForVCI.convert(ruleDO, ruleVO);
            ruleVO.setLcStatusText(FrameworkDataLCStatus.getTextByValue(ruleVO.getLcStatus()));
            ruleVO.setCodeProductTypeText(OsCodeProductTypeEnum.getTextByValue(ruleVO.getCodeProductType()));
        }
@@ -602,7 +601,7 @@
    public OsCodeRuleElementVO codeRuleElementDO2VO(OsCodeRuleElementDO elementDO) {
        OsCodeRuleElementVO elementVO = new OsCodeRuleElementVO();
        if (elementDO != null) {
            BeanUtil.convert(elementDO, elementVO);
            BeanUtilForVCI.convert(elementDO, elementVO);
            elementVO.setCodeElementTypeText(OsCodeElementTypeEnum.getTextByValue(elementVO.getCodeElementType()));
            elementVO.setCodeFillTypeText(OsCodeFillTypeEnum.getTextByValue(elementVO.getCodeFillType()));
            elementVO.setCodeDateValueTypeText(OsCodeDateValueTypeEnum.getTextByValue(elementVO.getCodeDateValueType()));
@@ -650,7 +649,7 @@
    public OsCodeRuleVO addRule(OsCodeRuleDTO ruleDTO) {
        VciBaseUtil.alertNotNull(ruleDTO, "数据传输对象", ruleDTO.getElements(), "规则的元素");
        OsCodeRuleDO ruleDO = new OsCodeRuleDO();
        BeanUtil.convert(ruleDTO, ruleDO);
        BeanUtilForVCI.convert(ruleDTO, ruleDO);
        ruleDO.setOid(VciBaseUtil.getPk());
        List<OsCodeRuleElementDO> elementDOS = new ArrayList<OsCodeRuleElementDO>();
        List<OsCodeEnumDO> enumMapDOs = new ArrayList<OsCodeEnumDO>();
@@ -676,7 +675,7 @@
        if (elementDTOS != null) {
            for (OsCodeRuleElementDTO elementDTO : elementDTOS) {
                OsCodeRuleElementDO elementDO = new OsCodeRuleElementDO();
                BeanUtil.convert(elementDTO, elementDO);
                BeanUtilForVCI.convert(elementDTO, elementDO);
                elementDO.setPkCodeRule(pkRule);
                elementDO.setOid(VciBaseUtil.getPk());
                //需要每个类型做处理
@@ -710,7 +709,7 @@
                        for(OsCodeEnumDTO enumDTO : enumMaps){
                            VciBaseUtil.alertNotNull(enumDTO.getEnumItemKey(),"枚举映射中枚举的值",enumDTO.getCodeMapValue(),"枚举映射的枚举对应的映射值");
                            OsCodeEnumDO enumDO = new OsCodeEnumDO();
                            BeanUtil.convert(enumDTO,enumDO);
                            BeanUtilForVCI.convert(enumDTO,enumDO);
                            enumDO.setPkCodeRuleElement(elementDO.getOid());
                            enumMapDOs.add(enumDO);
                        }
@@ -738,7 +737,7 @@
    public OsCodeRuleVO editRule(OsCodeRuleDTO ruleDTO) {
        VciBaseUtil.alertNotNull(ruleDTO, "数据传输对象", ruleDTO.getElements(), "规则的元素", ruleDTO.getOid(), "规则的主键");
        OsCodeRuleDO ruleDO = selectByOid(ruleDTO.getOid());
        BeanUtil.convert(ruleDTO,ruleDO);
        BeanUtilForVCI.convert(ruleDTO,ruleDO);
        List<OsCodeRuleElementDO> existElementDOs = codeRuleElementDao.selectByRuleOid(ruleDO.getOid());
        //找enum的明细内容,也是要删除的
        List<OsCodeEnumDO> existEnumDOs = codeEnumDao.selectByRuleOid(ruleDO.getOid());
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/SmRoleQueryServiceImpl.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmRoleQueryServiceImpl.java ÐÞ¸Ä
@@ -1,16 +1,15 @@
package com.vci.frameworkcore.compatibility.impl;
package com.vci.web.service.impl;
import com.vci.constant.FrameWorkBtmTypeConstant;
import com.vci.corba.common.PLException;
import com.vci.corba.common.data.UserEntityInfo;
import com.vci.corba.framework.data.RoleInfo;
import com.vci.corba.omd.data.BusinessObject;
import com.vci.frameworkcore.compatibility.SmRoleQueryServiceI;
import com.vci.constant.FrameWorkBtmTypeConstant;
import com.vci.web.service.SmRoleQueryServiceI;
import com.vci.dto.SmRoleDTO;
import com.vci.frameworkcore.compatibility.SmUserQueryServiceI;
import com.vci.frameworkcore.enumpck.RoleClassifyEnum;
import com.vci.frameworkcore.enumpck.RoleControlAreaEnum;
import com.vci.web.service.SmUserQueryServiceI;
import com.vci.enumpck.UI.RoleClassifyEnum;
import com.vci.enumpck.UI.RoleControlAreaEnum;
import com.vci.model.SmRoleForPlatform1;
import com.vci.pagemodel.SmUserVO;
import com.vci.po.SmRolePO;
@@ -23,13 +22,13 @@
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.*;
import com.vci.starter.web.util.LangBaseUtil;
import com.vci.web.util.BeanUtil;
import com.vci.starter.web.util.Lcm.BeanUtil;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.util.WebThreadLocalUtil;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.enumpck.UserTypeEnum;
import com.vci.enumpck.UserTypeEnum;
import com.vci.web.service.WebBoServiceI;
import com.vci.web.util.Func;
import com.vci.starter.web.util.Lcm.Func;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/SmUserQueryServiceImpl.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java ÐÞ¸Ä
@@ -1,30 +1,27 @@
package com.vci.frameworkcore.compatibility.impl;
package com.vci.web.service.impl;
import com.vci.common.util.ThreeDES;
import com.vci.common.utility.ObjectUtility;
import com.vci.corba.common.PLException;
import com.vci.corba.common.data.UserEntityInfo;
import com.vci.corba.framework.data.DeptInfo;
import com.vci.corba.framework.data.RoleInfo;
import com.vci.corba.framework.data.UserInfo;
import com.vci.corba.framework.data.UserLogonInfo;
import com.vci.corba.omd.data.BusinessObject;
import com.vci.corba.omd.etm.EnumItem;
import com.vci.corba.omd.etm.EnumType;
import com.vci.dto.SmUserDTO;
import com.vci.common.util.ThreeDES;
import com.vci.corba.common.PLException;
import com.vci.corba.common.data.UserEntityInfo;
import com.vci.corba.framework.data.UserInfo;
import com.vci.corba.omd.data.BusinessObject;
import com.vci.frameworkcore.compatibility.OrgDeptQueryServiceI;
import com.vci.frameworkcore.compatibility.SmPwdStrategyQueryServiceI;
import com.vci.frameworkcore.compatibility.SmRoleQueryServiceI;
import com.vci.frameworkcore.compatibility.SmUserQueryServiceI;
import com.vci.frameworkcore.enumpck.OrgTypeEnum;
import com.vci.enumpck.UI.OrgTypeEnum;
import com.vci.enumpck.UserTypeEnum;
import com.vci.model.SmUserDO;
import com.vci.pagemodel.SmUserVO;
import com.vci.po.SmUserPO;
import com.vci.omd.utils.ObjectTool;
import com.vci.pagemodel.OrgDepartmentVO;
import com.vci.pagemodel.SmPasswordStrategyVO;
import com.vci.pagemodel.SmRoleVO;
import com.vci.frameworkcore.properties.ConfigCorbaReader;
import com.vci.omd.utils.ObjectTool;
import com.vci.pagemodel.SmUserVO;
import com.vci.po.SmUserPO;
import com.vci.properties.OsConfig;
import com.vci.starter.poi.bo.ReadExcelOption;
import com.vci.starter.poi.bo.WriteExcelData;
import com.vci.starter.poi.bo.WriteExcelOption;
@@ -35,10 +32,9 @@
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.*;
import com.vci.starter.web.util.*;
import com.vci.starter.web.util.Lcm.Func;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.enumpck.UserTypeEnum;
import com.vci.web.service.WebBoServiceI;
import com.vci.web.util.Func;
import com.vci.web.service.*;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
@@ -53,8 +49,6 @@
import java.io.File;
import java.util.*;
import java.util.stream.Collectors;
import static com.vci.web.util.WebUtil.arryAndSqlToBusinessObject;
/**
 * ç”¨æˆ·çš„æŸ¥è¯¢ç›¸å…³çš„æœåŠ¡ï¼Œå¯ä»¥å…¼å®¹è€å¹³å°å’Œè€çš„pdm
@@ -94,7 +88,7 @@
     * å¯†ç ç­–略查询服务
     */
    @Autowired
    private SmPwdStrategyQueryServiceI smPwdStrategyQueryService;
    private WebPwdStrategyQueryServiceI smPwdStrategyQueryService;
    /**
     * ä½¿ç”¨è§’色的属性查询用户时
@@ -150,6 +144,11 @@
     * æ—¥å¿—
     */
    private Logger logger = LoggerFactory.getLogger(getClass());
    /**
     * å¹³å°é…ç½®
     */
    private OsConfig osConfig;
    /**
     * æ£€æŸ¥ç”¨æˆ·æ˜¯å¦å­˜åœ¨ï¼Œå¯ä»¥æ ¹æ®ç”¨æˆ·åï¼Œä¹Ÿå¯ä»¥æ ¹æ®ç”¨æˆ·oid
@@ -209,7 +208,7 @@
        try{
            String[][] sqlQueryResult = platformClientUtil.getBOFService().getSqlQueryResult(sql + fromSql, null);
            if(sqlQueryResult.length>0){
                BusinessObject cbo = arryAndSqlToBusinessObject(queryWrapper.getSelectFieldSql(),sqlQueryResult[0]);
                BusinessObject cbo = WebUtil.arryAndSqlToBusinessObject(queryWrapper.getSelectFieldSql(),sqlQueryResult[0]);
                return cbo2VO(cbo);
            }
        }catch (Exception e){
@@ -254,7 +253,7 @@
     * @throws VciBaseException å‚数为空或者数据库存在问题的时候会抛出异常
     */
    @Override
    public List<SmUserVO> listUserByUserIds(Collection<String> userIdCollections)throws VciBaseException {
    public List<SmUserVO> listUserByUserIds(Collection<String> userIdCollections) {
        WebUtil.alertNotNull(userIdCollections,"用户名集合");
        try {
            UserInfo[] userInfo = platformClientUtil.getFrameworkService().fetchUserInfoByNames(VciBaseUtil.collection2StrArr(userIdCollections));
@@ -271,7 +270,7 @@
     * @throws VciBaseException å‚数为空或者数据库存在问题的时候会抛出异常
     */
    @Override
    public SmUserVO getUserByUserOid(String userOid) throws VciBaseException {
    public SmUserVO getUserByUserOid(String userOid) {
        WebUtil.alertNotNull(userOid,"用户主键");
        try {
            UserInfo userInfo = platformClientUtil.getFrameworkService().getUserObjectByoid(userOid);
@@ -288,7 +287,7 @@
     * @throws VciBaseException å‚数为空或者数据库存在问题的时候会抛出异常
     */
    @Override
    public List<SmUserVO> listUserByUserOids(Collection<String> userOidCollections) throws VciBaseException {
    public List<SmUserVO> listUserByUserOids(Collection<String> userOidCollections) {
        WebUtil.alertNotNull(userOidCollections,"用户主键集合");
        try {
            UserInfo[] userInfoArr = platformClientUtil.getFrameworkService().getUserObjectByoids(VciBaseUtil.collection2StrArr(userOidCollections));
@@ -417,7 +416,7 @@
     */
    private SmUserVO smUserDO2VO(SmUserDO smUserDO){
        SmUserVO smUserVO = new SmUserVO();
        BeanUtil.convert(smUserDO,smUserVO);
        BeanUtilForVCI.convert(smUserDO,smUserVO);
        return smUserVO;
    }
@@ -465,7 +464,7 @@
        }else{
            userDO.setLockFlag(BooleanEnum.TRUE.getValue());
        }
        BeanUtil.convert(userDO,userVO);
        BeanUtilForVCI.convert(userDO,userVO);
        return userVO;
    }
@@ -532,44 +531,49 @@
     * @return
     */
    @Override
    public DataGrid<SmUserVO> getDataGridUsers(Map<String, String> conditionMap, PageHelper pageHelper) throws PLException {
    public DataGrid<SmUserVO> getDataGridUsers(Map<String, String> conditionMap, PageHelper pageHelper) {
        if(pageHelper == null){
            pageHelper = new PageHelper(-1);
        }
        pageHelper.addDefaultAsc("PLTRUENAME");
        String loginUserId = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId();
        //String loginUserId = "Ludc";
        //分页查询
        UserInfo[] userInfos = platformClientUtil.getFrameworkService().fetchUserInfoByCondition(
                conditionMap.get("name"),
                conditionMap.get("id"),
                conditionMap.get("pkDepartment"),
                conditionMap.get("pkPerson"),
                loginUserId,  //当前登录的用户名
                pageHelper.getPage(),
                pageHelper.getLimit()
        );
        DataGrid<SmUserVO> dataGrid = new DataGrid<>();
        if(Func.isNotEmpty(userInfos)){
            List<String> idList = Arrays.stream(userInfos).map(item -> item.id).collect(Collectors.toList());
            orgDepartmentVOMap = orgDeptQueryService.batchMapDeptNameByUserOids(idList, null);
            smRoleVOMap = smRoleQueryService.batchListRoleByUserOids(idList,null);
            smPwdStrategyVOMap = smPwdStrategyQueryService.batchSmPwdStrategyByUserOids(idList);
            dataGrid.setData(userInfoArr2VO(userInfos));
            //用完了清空
            orgDepartmentVOMap = null;
            smRoleVOMap = null;
            smPwdStrategyVOMap = null;
            //TODO: è¿™ä¸ªç»Ÿè®¡æ€»æ•°æœ‰é—®é¢˜ï¼Œå¸¦è¿‡åŽ»çš„å‚æ•°ä¸èƒ½åƒä¸Šé¢é‚£ä¸ªfetchUserInfoByCondition查询一样统计的却的总数
            dataGrid.setTotal(
                    platformClientUtil.getFrameworkService().getUserTotalByCondition(
                        conditionMap.get("name"),
                        conditionMap.get("id"),
                        conditionMap.get("pkDepartment"),
                        conditionMap.get("pkPerson"),
                        loginUserId  //当前登录的用户名
                    )
        DataGrid<SmUserVO> dataGrid = null;
        try {
            //String loginUserId = "Ludc";
            //分页查询
            UserInfo[] userInfos = platformClientUtil.getFrameworkService().fetchUserInfoByCondition(
                    conditionMap.get("name"),
                    conditionMap.get("id"),
                    conditionMap.get("pkDepartment"),
                    conditionMap.get("pkPerson"),
                    loginUserId,  //当前登录的用户名
                    pageHelper.getPage(),
                    pageHelper.getLimit()
            );
            dataGrid = new DataGrid<>();
            if(Func.isNotEmpty(userInfos)){
                List<String> idList = Arrays.stream(userInfos).map(item -> item.id).collect(Collectors.toList());
                orgDepartmentVOMap = orgDeptQueryService.batchMapDeptNameByUserOids(idList, null);
                smRoleVOMap = smRoleQueryService.batchListRoleByUserOids(idList,null);
                smPwdStrategyVOMap = smPwdStrategyQueryService.batchSmPwdStrategyByUserOids(idList);
                dataGrid.setData(userInfoArr2VO(userInfos));
                //用完了清空
                orgDepartmentVOMap = null;
                smRoleVOMap = null;
                smPwdStrategyVOMap = null;
                //TODO: è¿™ä¸ªç»Ÿè®¡æ€»æ•°æœ‰é—®é¢˜ï¼Œå¸¦è¿‡åŽ»çš„å‚æ•°ä¸èƒ½åƒä¸Šé¢é‚£ä¸ªfetchUserInfoByCondition查询一样统计的却的总数
                dataGrid.setTotal(
                        platformClientUtil.getFrameworkService().getUserTotalByCondition(
                            conditionMap.get("name"),
                            conditionMap.get("id"),
                            conditionMap.get("pkDepartment"),
                            conditionMap.get("pkPerson"),
                            loginUserId  //当前登录的用户名
                        )
                );
            }
        } catch (Exception e) {
            throw new VciBaseException("获取用户列表失败!", new Object[]{}, e);
        }
        return dataGrid;
    }
@@ -625,7 +629,7 @@
     * @throws VciBaseException
     */
    @Override
    public List<SmUserVO> countSmUserByDeptOid(String deptOid, Map<String, String> queryMap) throws VciBaseException {
    public List<SmUserVO> countSmUserByDeptOid(String deptOid, Map<String, String> queryMap) {
        //是否查询子部门下关联的用户
        List<OrgDepartmentVO> orgDepartmentVOList = orgDeptQueryService.listAllLevelChildrenDeptByParentOid(deptOid, null);
        List<String> deptOidCollection = orgDepartmentVOList.stream().map(OrgDepartmentVO::getOid).collect(Collectors.toList());
@@ -658,7 +662,7 @@
     * @throws VciBaseException å‚数为空或者查询出错的时候会抛出异常
     */
    @Override
    public List<SmUserVO> listUserByDeptOid(String deptOid, Map<String, String> queryMap) throws VciBaseException {
    public List<SmUserVO> listUserByDeptOid(String deptOid, Map<String, String> queryMap) {
        //查询当前选中的部门下的用户
        return listUserVOByDeptOid(queryMap,Arrays.asList(deptOid),false );
    }
@@ -671,7 +675,7 @@
     * @throws VciBaseException å‚数为空或者查询出错的时候会抛出异常
     */
    @Override
    public List<SmUserVO> listUserUnInDeptOid(String deptOid, Map<String, String> queryMap) throws VciBaseException {
    public List<SmUserVO> listUserUnInDeptOid(String deptOid, Map<String, String> queryMap) {
        // TODO:根据当前登录的用户决定能查那些用户
        String userType = "0";//WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUsertype();
        //根据当前登录的用户类型不同,查询不同的用户
@@ -790,7 +794,7 @@
     */
    @Override
    public Map<String, List<SmUserVO>> batchListUserByDeptOids(
            Collection<String> deptOidCollection) throws VciBaseException {
            Collection<String> deptOidCollection) {
        if(CollectionUtils.isEmpty(deptOidCollection)){
            return new HashMap<>();
        }
@@ -810,7 +814,7 @@
     */
    @Override
    public List<SmUserVO> listUserByRoleOid(String roleOid,
            Map<String, String> queryMap) throws VciBaseException {
            Map<String, String> queryMap) {
        return listUserVOByRoleOid(queryMap,roleOid,false);
    }
@@ -823,7 +827,7 @@
     */
    @Override
    public List<SmUserVO> listUserUnInRoleOid(String roleOid,
            Map<String, String> queryMap) throws VciBaseException {
            Map<String, String> queryMap) {
        // TODO:根据当前登录的用户决定能查那些用户
        String usertype = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUsertype();
        //根据当前登录的用户类型不同,查询不同的用户
@@ -882,7 +886,7 @@
     */
    @Override
    public Map<String, List<SmUserVO>> batchListUserByRoleOids(
            Collection<String> roleOidCollection) throws VciBaseException {
            Collection<String> roleOidCollection) {
        if(CollectionUtils.isEmpty(roleOidCollection)){
            return new HashMap<>();
        }
@@ -928,7 +932,7 @@
     */
    @Override
    public DataGrid<SmUserVO> refGridUsers(Map<String, String> queryMap,
            PageHelper pageHelper) throws VciBaseException {
            PageHelper pageHelper) {
        return gridUserByQueryField(null,null,queryMap,pageHelper,false);
    }
@@ -939,8 +943,7 @@
     * @throws VciBaseException æŸ¥è¯¢å‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    @Override
    public List<Tree> refTreeUsers(TreeQueryObject treeQueryObject)
            throws VciBaseException {
    public List<Tree> refTreeUsers(TreeQueryObject treeQueryObject) {
        VciQueryWrapperForDO queryWrapper = getQueryWrapper(null, null, treeQueryObject.getConditionMap(), null, false);
        queryWrapper.wrapperSql();
        String sql =  queryWrapper.getSelectFieldSql();
@@ -972,7 +975,7 @@
     * @throws VciBaseException
     */
    @Override
    public List<Tree> refPersonOrgTree(TreeQueryObject treeQueryObject) throws VciBaseException {
    public List<Tree> refPersonOrgTree(TreeQueryObject treeQueryObject) {
        List<Tree> rootTreeList=new ArrayList<>();
         Map<String,String> conditionMap=treeQueryObject.getConditionMap();
         if(CollectionUtils.isEmpty(conditionMap)) {
@@ -1254,8 +1257,7 @@
     * @throws VciBaseException å‚数为空或者存储到数据库中出错的时候会抛出异常
     */
    @Override
    public void updateUserPwdWrongCount(String userOid, int wrongCount)
            throws VciBaseException {
    public void updateUserPwdWrongCount(String userOid, int wrongCount){
        WebUtil.alertNotNull(userOid,"用户主键");
        String sql = "update pllogoninfo set plwrongnum = " + wrongCount +" where pluserid ='" + userOid + "'";
        try {
@@ -1271,7 +1273,7 @@
     * @throws VciBaseException å‚数为空的时候会抛出异常
     */
    @Override
    public void updateUserLoginTime(String userOid) throws VciBaseException {
    public void updateUserLoginTime(String userOid) {
        WebUtil.alertNotNull(userOid,"用户主键");
        String sql = "update pllogoninfo set pllogontime = sysdate where pluserid ='" + userOid + "'";
        try {
@@ -1501,8 +1503,7 @@
        // è®¾ç½®è¡¨å•列名
        List<String> columns = new ArrayList<>(Arrays.asList("账号", "密码", "姓名", "电子邮箱", "专业", "描述", "部门(上下级部门之间以反斜杠隔开(/))"));
        //获取是否导出密级配置项
        String flag = ConfigCorbaReader.getConfigValue("exportSecretGrade");
        if (flag != null && flag.equalsIgnoreCase("true")) {
        if (osConfig.isExportSecretGrade()) {
            columns = new ArrayList<>(Arrays.asList("账号", "密码", "姓名", "电子邮箱", "专业", "描述", "部门(上下级部门之间以反斜杠隔开(/))" ,"密级"));
        }
        //设置必填列
@@ -1553,7 +1554,7 @@
            String loginUserId = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId();
            UserEntityInfo userEntityInfo = new UserEntityInfo(loginUserId,null);
            //是否导入密级配置
            boolean exportSecretGrade = Boolean.parseBoolean(ConfigCorbaReader.getConfigValue("exportSecretGrade"));
            boolean exportSecretGrade = osConfig.isExportSecretGrade();
            List<SmUserPO> poList = ExcelUtil.readDataObjectFromExcel(file, SmUserPO.class,excelOption,(value, po, fieldName)->{
                Integer secretValue = UserSecretEnum.getSecretValueByText(po.getSecretGradeText());
                //是否必须导入密级
@@ -1606,7 +1607,7 @@
            //保存逻辑
            poList.stream().forEach(smUserPO->{
                SmUserDTO smUserDTO = new SmUserDTO();
                BeanUtil.convert(smUserPO,smUserDTO);
                BeanUtilForVCI.convert(smUserPO,smUserDTO);
                //用户信息是否规范检查
                this.check(smUserDTO,true,true);
                //生成存储的DO对象
@@ -1649,7 +1650,7 @@
     * @return
     */
    @Override
    public List<String> queryUserNameByRoleType(String roleType) throws PLException {
    public List<String> queryUserNameByRoleType(String roleType) {
        List<String> userNameList = new ArrayList<>();
        if(Func.isBlank(roleType)){
            return userNameList;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WFWorkflowNodeFavItemServiceImpl.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WFWorkflowNodeFavItemServiceImpl.java ÐÞ¸Ä
@@ -1,5 +1,9 @@
package com.vci.web.service.impl;
import com.vci.dto.WFWorkflowNodeFavItemDTO;
import com.vci.model.WFWorkflowNodeFavItemDO;
import com.vci.pagemodel.BatchCBO;
import com.vci.pagemodel.WFWorkflowNodeFavItemVO;
import com.vci.starter.revision.service.RevisionModelUtil;
import com.vci.starter.web.annotation.bus.VciChangeDocument;
import com.vci.starter.web.enumpck.VciChangeDocumentTypeEnum;
@@ -7,14 +11,10 @@
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.BeanUtil;
import com.vci.starter.web.util.BeanUtilForVCI;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.dao.WFWorkflowNodeFavItemDaoI;
import com.vci.dto.WFWorkflowNodeFavItemDTO;
import com.vci.model.WFWorkflowNodeFavItemDO;
import com.vci.pagemodel.BatchCBO;
import com.vci.pagemodel.WFWorkflowNodeFavItemVO;
import com.vci.web.service.WFWorkflowNodeFavItemServiceI;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
@@ -109,7 +109,7 @@
    public  WFWorkflowNodeFavItemVO wFWorkflowNodeFavItemDO2VO(WFWorkflowNodeFavItemDO wFWorkflowNodeFavItemDO) throws VciBaseException{
        WFWorkflowNodeFavItemVO vo = new WFWorkflowNodeFavItemVO();
        if(wFWorkflowNodeFavItemDO != null){
            BeanUtil.convert(wFWorkflowNodeFavItemDO,vo);
            BeanUtilForVCI.convert(wFWorkflowNodeFavItemDO,vo);
            //还需要处理枚举等其他的内容
        }
        return vo;
@@ -128,7 +128,7 @@
        VciBaseUtil.alertNotNull(wFWorkflowNodeFavItemDTO,"需要添加的数据对象");
        //将DTO转换为DO
        WFWorkflowNodeFavItemDO wFWorkflowNodeFavItemDO = new WFWorkflowNodeFavItemDO();
        BeanUtil.convert(wFWorkflowNodeFavItemDTO,wFWorkflowNodeFavItemDO);
        BeanUtilForVCI.convert(wFWorkflowNodeFavItemDTO,wFWorkflowNodeFavItemDO);
        revisionModelUtil.wrapperForAdd(wFWorkflowNodeFavItemDO);
        BatchCBO batchCBO = wFWorkflowNodeFavItemMapper.insert(wFWorkflowNodeFavItemDO);
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WFWorkflowNodeFavServiceImpl.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WFWorkflowNodeFavServiceImpl.java ÐÞ¸Ä
@@ -1,5 +1,11 @@
package com.vci.web.service.impl;
import com.vci.dto.WFWorkflowNodeFavDTO;
import com.vci.model.WFWorkflowNodeFavDO;
import com.vci.model.WFWorkflowNodeFavItemDO;
import com.vci.pagemodel.BatchCBO;
import com.vci.pagemodel.WFWorkflowNodeFavItemVO;
import com.vci.pagemodel.WFWorkflowNodeFavVO;
import com.vci.starter.revision.service.RevisionModelUtil;
import com.vci.starter.web.annotation.bus.VciChangeDocument;
import com.vci.starter.web.enumpck.VciChangeDocumentTypeEnum;
@@ -7,17 +13,11 @@
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.BeanUtil;
import com.vci.starter.web.util.BeanUtilForVCI;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.dao.WFWorkflowNodeFavDaoI;
import com.vci.web.dao.WFWorkflowNodeFavItemDaoI;
import com.vci.dto.WFWorkflowNodeFavDTO;
import com.vci.model.WFWorkflowNodeFavDO;
import com.vci.model.WFWorkflowNodeFavItemDO;
import com.vci.pagemodel.BatchCBO;
import com.vci.pagemodel.WFWorkflowNodeFavItemVO;
import com.vci.pagemodel.WFWorkflowNodeFavVO;
import com.vci.web.service.WFWorkflowNodeFavItemServiceI;
import com.vci.web.service.WFWorkflowNodeFavServiceI;
import org.apache.commons.lang3.StringUtils;
@@ -127,7 +127,7 @@
    public  WFWorkflowNodeFavVO wFWorkflowNodeFavDO2VO(WFWorkflowNodeFavDO wFWorkflowNodeFavDO) throws VciBaseException{
        WFWorkflowNodeFavVO vo = new WFWorkflowNodeFavVO();
        if(wFWorkflowNodeFavDO != null){
            BeanUtil.convert(wFWorkflowNodeFavDO,vo);
            BeanUtilForVCI.convert(wFWorkflowNodeFavDO,vo);
            //还需要处理枚举等其他的内容
        }
        return vo;
@@ -161,7 +161,7 @@
        }else{
            //将DTO转换为DO
            WFWorkflowNodeFavDO wFWorkflowNodeFavDO = new WFWorkflowNodeFavDO();
            BeanUtil.convert(wFWorkflowNodeFavDTO,wFWorkflowNodeFavDO);
            BeanUtilForVCI.convert(wFWorkflowNodeFavDTO,wFWorkflowNodeFavDO);
            wFWorkflowNodeFavDO.setUserId(userId);
            revisionModelUtil.wrapperForAdd(wFWorkflowNodeFavDO);
            wFWorkflowNodeFavMapper.insert(wFWorkflowNodeFavDO);
@@ -170,7 +170,7 @@
        String schemaOid = favDO.getOid();
        wFWorkflowNodeFavDTO.getItems().stream().forEach(item->{
            WFWorkflowNodeFavItemDO itemDO = new WFWorkflowNodeFavItemDO();
            BeanUtil.convert(item,itemDO);
            BeanUtilForVCI.convert(item,itemDO);
            itemDO.setWorkflowNodeFavOid(schemaOid);
            newItems.add(itemDO);
        });
@@ -211,7 +211,7 @@
                List<WFWorkflowNodeFavItemDO> newItems = new ArrayList<>();
                wFWorkflowNodeFavDTO.getItems().stream().forEach(item -> {
                    WFWorkflowNodeFavItemDO itemDO = new WFWorkflowNodeFavItemDO();
                    BeanUtil.convert(item, itemDO);
                    BeanUtilForVCI.convert(item, itemDO);
                    itemDO.setWorkflowNodeFavOid(wFWorkflowNodeFavDO.getOid());
                    newItems.add(itemDO);
                });
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WebAttributeServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,257 @@
package com.vci.web.service.impl;
import com.vci.corba.common.PLException;
import com.vci.corba.omd.atm.AttributeDef;
import com.vci.enumpck.UI.ItemTypeEnum;
import com.vci.pagemodel.OsAttributeVO;
import com.vci.starter.web.annotation.log.VciUnLog;
import com.vci.starter.web.enumpck.VciFieldTypeEnum;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.util.Lcm.Func;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.util.VciDateUtil;
import com.vci.web.service.WebAttributeServiceI;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.*;
import java.util.stream.Collectors;
/**
 * @Description å±žæ€§æœåŠ¡
 * @Author dangsn
 * @Date 2024/11/28 14:26
 */
@Service
public class WebAttributeServiceImpl implements WebAttributeServiceI {
    /**
     * æ—¥å¿—
     */
    private Logger logger = LoggerFactory.getLogger(getClass());
    /**
     * å¹³å°çš„调用工具类
     */
    @Autowired
    private PlatformClientUtil platformClientUtil;
    /**
     * ä½¿ç”¨å±žæ€§ç¼–号获取对象--批量
     *
     * @param attrCodes å±žæ€§çš„英文名称
     * @return å±žæ€§çš„æ˜¾ç¤ºå¯¹è±¡
     */
    @Override
    public List<OsAttributeVO> listAttrByIds(Collection<String> attrCodes) {
        if(CollectionUtils.isEmpty(attrCodes)){
            return null;
        }
        Map<String, OsAttributeVO> attributeVOMap = selectAllAttributeMap();
        List<OsAttributeVO> attributeVOS = new ArrayList<>();
        attrCodes.stream().forEach(attrCode->{
            OsAttributeVO attributeVO = attributeVOMap.getOrDefault(attrCode.toLowerCase(),null);
            if(attributeVO!=null){
                attributeVOS.add(attributeVO);
            }
        });
        return attributeVOS;
    }
    /**
     * ä½¿ç”¨å±žæ€§ç¼–号获取对象--批量
     *
     * @param attrCodes å±žæ€§çš„英文名称
     * @param attributeVOMap å±žæ€§å¯¹è±¡
     * @return å±žæ€§çš„æ˜¾ç¤ºå¯¹è±¡
     */
    @Override
    public List<OsAttributeVO> listAttrByIds(Collection<String> attrCodes,Map<String, OsAttributeVO> attributeVOMap) {
        if(CollectionUtils.isEmpty(attrCodes)){
            return null;
        }
        if(attributeVOMap == null){
            attributeVOMap = selectAllAttributeMap();
        }
        List<OsAttributeVO> attributeVOS = new ArrayList<>();
        Map<String, OsAttributeVO> finalAttributeVOMap = attributeVOMap;
        attrCodes.stream().forEach(attrCode->{
            OsAttributeVO attributeVO = finalAttributeVOMap.getOrDefault(attrCode.toLowerCase(),null);
            if(attributeVO!=null){
                attributeVOS.add(attributeVO);
            }
        });
        return attributeVOS;
    }
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„属性
     *
     * @return å±žæ€§çš„æ˜¾ç¤ºå¯¹è±¡
     */
    @Override
    public List<OsAttributeVO> selectAllAttribute() {
        //后面两个分页数,完全没有用
        try {
            return attributeDO2VOs(Arrays.stream(platformClientUtil.getAttributeService().getAttributeDefs("",1,1)).collect(Collectors.toList()));
        } catch (PLException vciError) {
            throw WebUtil.getVciBaseException(vciError);
        }
    }
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„属性映射
     *
     * @return key是属性的英文名称小写,value是属性的显示对象
     */
    @Override
    @VciUnLog
    public Map<String, OsAttributeVO> selectAllAttributeMap() {
        return Optional.ofNullable(selectAllAttribute()).orElseGet(()->new ArrayList<>()).stream().collect(Collectors.toMap(s->s.getId().toLowerCase(),t->t,(o1,o2)->o1));
    }
    /**
     * å±žæ€§çš„æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     *
     * @param attribItems æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
     */
    @Override
    public List<OsAttributeVO> attributeDO2VOs(Collection<AttributeDef> attribItems) {
        List<OsAttributeVO> vos = new ArrayList<>();
        Optional.ofNullable(attribItems).orElseGet(()->new ArrayList<>()).stream().forEach(attribItem -> {
            vos.add(attributeDO2VO(attribItem));
        });
        return vos;
    }
    /**
     * å±žæ€§çš„æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     *
     * @param attribItem æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
     */
    @Override
    public OsAttributeVO attributeDO2VO(AttributeDef attribItem) {
        OsAttributeVO attributeVO = new OsAttributeVO();
        if(attribItem!=null){
            attributeVO.setOid(attribItem.oid);
            attributeVO.setId(attribItem.name);
            attributeVO.setCreator(attribItem.creator);
            try {
                attributeVO.setCreateTime(new Date(attribItem.createTime));
                attributeVO.setLastModifyTime(new Date(attribItem.modifyTime));
                attributeVO.setTs(VciDateUtil.str2Date(attribItem.ts,VciDateUtil.DateTimeMillFormat));
            }catch (Throwable e){
                e.printStackTrace();
                String errorLog = "属性DO转VO时出错,原因:"+ VciBaseUtil.getExceptionMessage(e);
                logger.error(errorLog);
                throw new VciBaseException(errorLog);
            }
            attributeVO.setLastModifier(attribItem.modifier);
            attributeVO.setName(attribItem.label);
            attributeVO.setDescription(attribItem.description);
            attributeVO.setAttributeDataType(attribItem.vtDataType);
            attributeVO.setAttributeDataTypeText(VciFieldTypeEnum.getTextByValue(attribItem.vtDataType));
            //获取UI属性类型
            attributeVO.setAttributeUIType(ItemTypeEnum.convertAttributeTypeTOUITypeTextByValue(attribItem.vtDataType,false));
            //获取UI属性类型文本
            attributeVO.setAttributeUITypeText(ItemTypeEnum.convertAttributeTypeTOUITypeTextByValue(attribItem.vtDataType,true));
            attributeVO.setDefaultValue(attribItem.defValue);
            if(Func.isNotBlank(attribItem.rage)){
                attributeVO.setRange(attribItem.rage.replace("&lt;","<"));
            }else{
                attributeVO.setRange(attribItem.rage);
            }
            attributeVO.setOther(attribItem.other);
            //处理参照相关属性
            if(StringUtils.isNotBlank(attribItem.other)) {
                if (isReferAttr(attribItem.other)) {
                    //说明这个的确是参照字段
                    String[] others = attribItem.other.split(";");
                    for (String s : others) {
                        if (s.toLowerCase().contains("btm") && s.split("=").length > 1) {//必须要判断长度,因为枚举的时候也是包含这个btm的
                            attributeVO.setBtmTypeId(s.split("=")[1].trim());
                        }
                        //链接类型不支持
                        if (s.toLowerCase().contains("link") && s.split("=").length > 1) {//必须要判断长度,因为枚举的时候也是包含这个btm的
                            attributeVO.setLinkTypeName(s.split("=")[1].trim());
                        }
                        if (s.toLowerCase().contains("version") && s.split("=").length > 1) {//必须要判断长度,因为枚举的时候也是包含这个btm的
                            attributeVO.setVersion(WebUtil.getInt(s.split("=")[1].trim()));
                        }
                    }
                }
                //必输和长度
                String[] others = attribItem.other.split(";");
                for (String s : others) {
                    if (s.toLowerCase().contains("allownull") && s.split("=").length > 1) {//必须要判断长度,因为枚举的时候也是包含这个btm的
                        boolean allownull = false;
                        if (s.split("=")[1].trim().toLowerCase().equals("yes")) {
                            allownull = true;
                        }
                        attributeVO.setNullableFlag(allownull);
                    }
                    if (s.toLowerCase().indexOf("length") > -1 && s.split("=").length > 1) {
                        int length = WebUtil.getInt(s.split("=")[1].trim());
                        if (length > 0) {
                            attributeVO.setAttrLength(length);
                        }
                    }
                }
                //枚举
                if(isEnumAttr(attribItem.other)){
                    for (String s : others) {
                        if(s.contains("enumName") && s.split("=").length>1) {
                            attributeVO.setEnumId(s.split("=")[1].trim());
                        }
                    }
                }
            }
        }
        return attributeVO;
    }
    /**
     * æ˜¯å¦ä¸ºå‚照属性
     * @param other é…ç½®çš„å…¶ä»–
     * @return true æ˜¯å‚ç…§
     */
    private boolean isReferAttr(String other){
        if(StringUtils.isNotBlank(other)
                && (other.toLowerCase().contains("btm") || other.toLowerCase().contains("link"))){
            //还不能确定,因为枚举的时候也会设置btm
            String[] temp = other.split(";");
            for(String s : temp){
                if((s.contains("btm") || s.contains("link")) && s.split("=").length>1){
                    return true;
                }
            }
        }
        return false;
    }
    /**
     * æ˜¯å¦ä¸ºæžšä¸¾çš„属性
     * @param other é…ç½®çš„内容
     * @return true æ˜¯æžšä¸¾
     */
    private boolean isEnumAttr(String other){
        if(StringUtils.isNotBlank(other)
                && other.contains("enumName")){
            //还不能确定,因为枚举的时候也会设置btm
            String[] temp = other.split(";");
            for(String s : temp){
                if(s.contains("enumName")&& s.split("=").length>1){
                    return true;
                }
            }
        }
        return false;
    }
}
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WebBoServiceImpl.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebBoServiceImpl.java ÐÞ¸Ä
@@ -12,7 +12,6 @@
import com.vci.corba.query.ObjectQueryServicePrx;
import com.vci.corba.query.data.BtmRefQueryOption;
import com.vci.corba.query.data.KV;
import com.vci.frameworkcore.compatibility.SmUserQueryServiceI;
import com.vci.omd.utils.ObjectTool;
import com.vci.pagemodel.*;
import com.vci.starter.web.annotation.Column;
@@ -21,12 +20,12 @@
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.BeanUtil;
import com.vci.starter.web.util.BeanUtilForVCI;
import com.vci.starter.web.util.Lcm.Func;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.properties.WebProperties;
import com.vci.web.service.*;
import com.vci.web.util.Func;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
@@ -35,10 +34,10 @@
import org.dom4j.DocumentHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.lang.reflect.Field;
import java.util.*;
import java.util.stream.Collectors;
@@ -49,76 +48,64 @@
 * @author weidy
 */
@Service
public class WebBoServiceImpl implements WebBoServiceI{
    /**
     * æžšä¸¾æœåŠ¡
     */
    @Autowired
    private OsEnumServiceI enumService;//枚举服务
    /**
     * å±žæ€§æœåŠ¡
     */
    @Autowired
    private OsAttributeServiceI attrService;//属性服务
public class WebBoServiceImpl implements WebBoServiceI {
    /**
     * ç”Ÿå‘½å‘¨æœŸçš„æœåŠ¡
     */
    @Autowired
    private OsLifeCycleServiceI lifeService;//生命周期服务
    /**
     * çŠ¶æ€çš„æœåŠ¡
     */
    @Autowired
    private OsStatusServiceI statusService;
    /**
     * ç”¨æˆ·æŸ¥è¯¢æœåŠ¡
     */
    @Autowired
    private SmUserQueryServiceI userQueryService;
    /**
     * é“¾æŽ¥ç±»åž‹æœåŠ¡
     */
    @Autowired
    private WebLoServiceI loService;
    /**
     * é…ç½®ä¿¡æ¯
     */
    @Autowired
    private WebProperties webProperties;
    /**
     * å¤šè¯­è¨€å‰ç¼€
     */
    private final String msgCodePrefix = "com.vci.web.boService.";
    /**
     * æ—¥å¿—对象
     */
    private Logger logger = LoggerFactory.getLogger(getClass());
    /**
     * å¤šè¯­è¨€å‰ç¼€
     */
    private final String msgCodePrefix = "com.vci.web.boService.";
    /**
     * æžšä¸¾æœåŠ¡
     */
    @Resource
    private WebEnumServiceI enumService;//枚举服务
    /**
     * ç”Ÿå‘½å‘¨æœŸçš„æœåŠ¡
     */
    @Resource
    private WebLifeCycleServiceI lifeService;//生命周期服务
    /**
     * çŠ¶æ€çš„æœåŠ¡
     */
    @Resource
    private WebStatusServiceI statusService;
    /**
     * ç”¨æˆ·æŸ¥è¯¢æœåŠ¡
     */
    @Resource
    private SmUserQueryServiceI userQueryService;
    /**
     * é…ç½®ä¿¡æ¯
     */
    @Resource
    private WebProperties webProperties;
    /**
     * ä¸šåŠ¡ç±»åž‹çš„æœåŠ¡
     */
    @Autowired
    private OsBtmServiceI btmService;
    @Resource
    private WebBtmServiceI btmService;
    /**
     * ç‰ˆæœ¬è§„则的服务
     */
    @Autowired
    private OsRevisionRuleServiceI revisionRuleService;
    @Resource
    private WebRevisionRuleServiceI revisionRuleService;
    /**
     * å¹³å°è°ƒç”¨å®¢æˆ·ç«¯
     */
    @Autowired
    @Resource
    private PlatformClientUtil platformClientUtil;
    /**
@@ -2531,7 +2518,7 @@
    @Override
    public <T> int countByQueryWrapper(VciQueryWrapperForDO queryWrapper, Class<T> doClass) throws VciBaseException {
        VciQueryWrapperForDO queryWrapperForDO = new VciQueryWrapperForDO(null,doClass);
        BeanUtil.convert(queryWrapper,queryWrapperForDO);
        BeanUtilForVCI.convert(queryWrapper,queryWrapperForDO);
        queryWrapperForDO.clearPage();
        queryWrapperForDO.wrapperSql();
        String sql= queryWrapperForDO.getSelectFieldSql() + " from " + queryWrapperForDO.getTableName() + " " + queryWrapperForDO.getTableNick() + queryWrapperForDO.getLinkTableSql() ;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WebBtmServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,363 @@
package com.vci.web.service.impl;
import com.vci.corba.common.PLException;
import com.vci.corba.omd.btm.BizType;
import com.vci.pagemodel.*;
import com.vci.starter.web.annotation.log.VciUnLog;
import com.vci.starter.web.enumpck.BooleanEnum;
import com.vci.starter.web.util.BeanUtilForVCI;
import com.vci.starter.web.util.Lcm.ConcurrentDateFormat;
import com.vci.starter.web.util.Lcm.Func;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.util.VciDateUtil;
import com.vci.web.service.WebAttributeServiceI;
import com.vci.web.service.WebBtmServiceI;
import com.vci.web.service.WebEnumServiceI;
import com.vci.web.service.WebLinkTypeServiceI;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
/**
 * @Description ä¸šåŠ¡ç±»åž‹æœåŠ¡
 * @Author dangsn
 * @Date 2024/11/28 11:32
 */
@Service
public class WebBtmServiceImpl implements WebBtmServiceI {
    /**
     * æ—¥å¿—
     */
    private Logger logger = LoggerFactory.getLogger(getClass());
    /**
     * å¹³å°çš„调用工具类
     */
    @Resource
    private PlatformClientUtil platformClientUtil;
    /**
     * æžšä¸¾çš„æœåŠ¡
     */
    @Resource
    private WebEnumServiceI enumService;
    /**
     * é“¾æŽ¥ç±»åž‹çš„æœåŠ¡
     */
    @Resource
    private WebLinkTypeServiceI linkTypeService;
    /**
     * å±žæ€§çš„æœåŠ¡
     */
    @Resource
    private WebAttributeServiceI attributeService;
    /**
     * ä½¿ç”¨ç¼–号获取业务类型
     *
     * @param id ç¼–号
     * @return ä¸šåŠ¡ç±»åž‹
     */
    @Override
    public OsBtmTypeVO getBtmById(String id) throws PLException {
        if (StringUtils.isBlank(id)) {
            return null;
        }
        BizType bizType = platformClientUtil.getBtmService().getBizTypeByName(id);
        return btmDO2VO(bizType,null);
    }
    /**
     * æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     *
     * @param btmItem æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
     */
    @Override
    public OsBtmTypeVO btmDO2VO(BizType btmItem, Map<String, OsAttributeVO> attributeVOMap) {
        OsBtmTypeVO vo = new OsBtmTypeVO();
        if (btmItem != null) {
            vo.setOid(btmItem.oid);
            vo.setCreator(btmItem.creator);
            vo.setLastModifier(btmItem.modifier);
            try {
                // btmItem.createTime拿到的是时间戳,但是这儿要的是例如2017-12-27 09:32:20.034这样的格式,所以不调用这个方法,改调用其他方法
                //vo.setCreateTime(VciDateUtil.str2Date(String.valueOf(btmItem.createTime),VciDateUtil.DateTimeFormat));
                vo.setCreateTime(Func.parse(btmItem.createTime, ConcurrentDateFormat.of(VciDateUtil.DateTimeFormat)));
                vo.setLastModifyTime(Func.parse(btmItem.modifyTime, ConcurrentDateFormat.of(VciDateUtil.DateTimeFormat)));
                vo.setTs(Func.parse(btmItem.ts, ConcurrentDateFormat.of(VciDateUtil.DateTimeMillFormat)));
            } catch (Exception e) {
                e.printStackTrace();
            }
            vo.setDescription(btmItem.description);
            vo.setId(btmItem.name);
            vo.setName(btmItem.label);
            vo.setLifeCycleId(btmItem.lifeCycle);
            vo.setAbstractFlag(btmItem.isAbstract);
            vo.setImplClass(btmItem.implClass);
            vo.setShape(btmItem.shape);
            vo.setRevLevel(btmItem.revLevel);
            vo.setRevisionRuleId(btmItem.revRuleName);
            vo.setTableName(VciBaseUtil.getTableName(vo.getId()));
            vo.setInputRevisionFlag(btmItem.revInput);
            vo.setDelimiter(btmItem.delimiter);
            vo.setfName(btmItem.fName);
            vo.setVersionRule(String.valueOf(btmItem.verRuleName));
            if (StringUtils.isNotBlank(vo.getRevisionRuleId()) || vo.isInputRevisionFlag()) {
                vo.setRevisionFlag(true);
            }
            vo.setLifeCycleIds(Arrays.stream(btmItem.lifeCycles).collect(Collectors.joining(",")));
            vo.setApNameArray(btmItem.apNameArray);
            List<OsAttributeVO> attributeVOS = attributeService.listAttrByIds(Arrays.stream(btmItem.apNameArray).collect(Collectors.toList()),attributeVOMap);
            List<OsBtmTypeAttributeVO> btmTypeAttributeVOS = new ArrayList<>();
            Optional.ofNullable(attributeVOS).orElseGet(() -> new ArrayList<>()).stream().forEach(attributeVO -> {
                OsBtmTypeAttributeVO btmTypeAttributeVO = new OsBtmTypeAttributeVO();
                BeanUtilForVCI.convert(attributeVO, btmTypeAttributeVO);
                btmTypeAttributeVO.setPkBtmType(vo.getOid());
                btmTypeAttributeVO.setBtmTypeId(vo.getId());
                btmTypeAttributeVO.setAttributeDataType(attributeVO.getAttributeDataType());
                btmTypeAttributeVO.setAttributeLength(attributeVO.getAttrLength());
                btmTypeAttributeVO.setDefaultValue(attributeVO.getDefaultValue());
                if ("secretgrade".equalsIgnoreCase(attributeVO.getId())) {
                    vo.setSecretFlag(true);
                }
                if (StringUtils.isNotBlank(attributeVO.getBtmTypeId())) {
                    btmTypeAttributeVO.setReferFlag(true);
                    btmTypeAttributeVO.setReferBtmTypeId(attributeVO.getBtmTypeId());
                }
                if (StringUtils.isNotBlank(attributeVO.getEnumId())) {
                    btmTypeAttributeVO.setEnumFlag(true);
                    btmTypeAttributeVO.setEnumItemMap(enumService.getEnumValueMap(btmTypeAttributeVO.getEnumId()));
                }
                btmTypeAttributeVOS.add(btmTypeAttributeVO);
            });
            vo.setAttributes(btmTypeAttributeVOS);
        }
        return vo;
    }
    /**
     * èŽ·å–ä¸šåŠ¡ç±»åž‹çš„åœ¨å“ªä¸ªå±žæ€§ä¸­ä½¿ç”¨
     *
     * @param btmName ä¸šåŠ¡ç±»åž‹
     * @return å¼•用的信息
     */
    @Override
    public List<OsUsedAttributeVO> listBtmUsedInfo(String btmName) {
        return listBtmUsedInfo(btmName, false);
    }
    /**
     * èŽ·å–ä¸šåŠ¡ç±»åž‹çš„åœ¨å“ªä¸ªå±žæ€§ä¸­ä½¿ç”¨
     *
     * @param btmId   ä¸šåŠ¡ç±»åž‹
     * @param hasLink æ˜¯å¦åŒ…含链接类型中
     * @return å¼•用的信息
     */
    @Override
    public List<OsUsedAttributeVO> listBtmUsedInfo(String btmId, boolean hasLink) {
        VciBaseUtil.alertNotNull(btmId, "业务类型的名称");
        List<OsAttributeVO> allReferThisBtmAttributes = Optional.ofNullable(attributeService.selectAllAttribute()).orElseGet(() -> new ArrayList<>()).stream().filter(s -> btmId.equalsIgnoreCase(s.getBtmTypeId())).collect(Collectors.toList());
        if (CollectionUtils.isEmpty(allReferThisBtmAttributes)) {
            return null;
        }
        //根据这些属性,找它使用的业务类型
        List<OsUsedAttributeVO> usedInfos = new ArrayList<>();
        List<OsBtmTypeVO> btmTypeVOMap = selectAllBtmMap().values().stream().collect(Collectors.toList());
        List<OsLinkTypeVO> linkTypeVOS = linkTypeService.selectAllLinkMap().values().stream().collect(Collectors.toList());
        allReferThisBtmAttributes.stream().forEach(attribute -> {
            //其他的业务类型包含了这个属性的
            List<OsBtmTypeVO> usedBtms = btmTypeVOMap.stream().filter(btmTypeVO -> !CollectionUtils.isEmpty(btmTypeVO.getAttributes()) && btmTypeVO.getAttributes().stream().anyMatch(s -> attribute.getId().equalsIgnoreCase(s.getId()))).collect(Collectors.toList());
            if (!CollectionUtils.isEmpty(usedBtms)) {
                usedBtms.stream().forEach(btm -> {
                    btm.getAttributes().stream().filter(s -> attribute.getId().equalsIgnoreCase(s.getId())).forEach(attrInBtm -> {
                        OsUsedAttributeVO usedAttributeVO = new OsUsedAttributeVO();
                        usedAttributeVO.setId(attrInBtm.getId());
                        usedAttributeVO.setName(attrInBtm.getName());
                        usedAttributeVO.setPkBtmType(btm.getId());
                        usedAttributeVO.setBusinessType(BooleanEnum.TRUE.getValue());
                        usedInfos.add(usedAttributeVO);
                    });
                });
            }
            if (hasLink) {
                List<OsLinkTypeVO> usedLinks = linkTypeVOS.stream().filter(linkTypeVO -> !CollectionUtils.isEmpty(linkTypeVO.getAttributes()) && linkTypeVO.getAttributes().stream().anyMatch(s -> attribute.getId().equalsIgnoreCase(s.getId()))).collect(Collectors.toList());
                if (!CollectionUtils.isEmpty(usedLinks)) {
                    usedLinks.stream().forEach(link -> {
                        link.getAttributes().stream().filter(s -> attribute.getId().equalsIgnoreCase(s.getId())).forEach(attrInBtm -> {
                            OsUsedAttributeVO usedAttributeVO = new OsUsedAttributeVO();
                            usedAttributeVO.setId(attrInBtm.getId());
                            usedAttributeVO.setName(attrInBtm.getName());
                            usedAttributeVO.setPkBtmType(link.getId());
                            usedAttributeVO.setBusinessType(BooleanEnum.FASLE.getValue());
                            usedInfos.add(usedAttributeVO);
                        });
                    });
                }
            }
        });
        return usedInfos;
    }
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„业务类型映射
     *
     * @return key æ˜¯ä¸šåŠ¡çš„è‹±æ–‡åç§°çš„å°å†™
     */
    @Override
    @VciUnLog
    public Map<String, OsBtmTypeVO> selectAllBtmMap() {
        return Optional.ofNullable(selectAllBtm()).orElseGet(() -> new ArrayList<OsBtmTypeVO>()).stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(), t -> t, (o1, o2) -> o1));
    }
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„业务类型映射
     *
     * @return key æ˜¯ä¸šåŠ¡çš„è‹±æ–‡åç§°çš„å°å†™
     */
    @Override
    @VciUnLog
    public Map<String, OsBtmTypeVO> selectAllBtmMap(Map<String, OsAttributeVO> attributeVOMap) {
        return Optional.ofNullable(selectAllBtm(attributeVOMap)).orElseGet(() -> new ArrayList<OsBtmTypeVO>()).stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(), t -> t, (o1, o2) -> o1));
    }
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„业务类型
     *
     * @return ä¸šåŠ¡ç±»åž‹å¯¹è±¡
     */
    @Override
    @VciUnLog
    public List<OsBtmTypeVO> selectAllBtm() {
        try {
            return btmDO2VOs(Arrays.stream(platformClientUtil.getBtmService().getBizTypes("")).collect(Collectors.toList()),null);
        } catch (PLException e) {
            throw new RuntimeException(e);
        }
    }
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„业务类型
     *
     * @return ä¸šåŠ¡ç±»åž‹å¯¹è±¡
     */
    @Override
    @VciUnLog
    public List<OsBtmTypeVO> selectAllBtm(Map<String, OsAttributeVO> attributeVOMap) {
        try {
            return btmDO2VOs(Arrays.stream(platformClientUtil.getBtmService().getBizTypes("")).collect(Collectors.toList()),attributeVOMap);
        } catch (PLException e) {
            throw new RuntimeException(e);
        }
    }
    /**
     * æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     *
     * @param btmItems æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
     */
    @Override
    public List<OsBtmTypeVO> btmDO2VOs(Collection<BizType> btmItems,Map<String, OsAttributeVO> attributeVOMap) {
        List<OsBtmTypeVO> VOS = new ArrayList<>();
        Optional.ofNullable(btmItems).orElseGet(() -> new ArrayList<>()).parallelStream().forEach(btmItem -> {
            OsBtmTypeVO vo = btmDO2VO(btmItem,attributeVOMap);
            VOS.add(vo);
        });
        return VOS;
    }
    /**
     * ä½¿ç”¨ç¼–号获取业务类型
     *
     * @param btmIds ç¼–号
     * @return ä¸šåŠ¡ç±»åž‹
     */
    @Override
    public List<OsBtmTypeVO> listBtmByIds(Collection<String> btmIds) {
        if (CollectionUtils.isEmpty(btmIds)) {
            return null;
        }
        BtmDataFetcher btmDataFetcher = new BtmDataFetcher();
        List<OsBtmTypeVO> btmTypeVOS = new ArrayList<>();
        btmIds.stream().forEach(id -> {
            OsBtmTypeVO btmType = btmDataFetcher.getBtmType(id);
            btmTypeVOS.add(btmType);
        });
        return btmTypeVOS;
    }
    private class BtmDataFetcher {
        //业务类型
        private Map<String, BizType> btmTypeVOMap = new HashMap<String, BizType>();
        public BtmDataFetcher() {
            initBtmDataFetcher();
        }
        private void initBtmDataFetcher(){
            try {
                BizType[] bizTypes = platformClientUtil.getBtmService().getBizTypes("");
                //List<OsBtmTypeVO> osBtmTypeVOS = btmDO2VOs(Arrays.asList(bizTypes), null);
                if(Func.isNotEmpty(bizTypes)){
                    btmTypeVOMap = Arrays.stream(bizTypes).collect(Collectors.toMap(btm -> btm.name, btm -> btm));
                }
            }catch (Exception e){
                e.printStackTrace();
            }
        }
        /**
         * èŽ·å–ä¸šåŠ¡ç±»åž‹
         * @param id
         * @return
         */
        public OsBtmTypeVO getBtmType(String id) {
            BizType bizType = btmTypeVOMap.get(id);
            if(Func.isEmpty(bizType)){
                return null;
            }
            //获取的时候才赚VO对象,这样避免一次性全部Btm转VO太慢的问题
            return btmDO2VO(bizType,null);
        }
    }
    /**
     * æ ¹æ®ä¸šåŠ¡ç±»åž‹èŽ·å–åŒ…å«çš„å±žæ€§--不包含基础属性
     *
     * @param btmId ä¸šåŠ¡ç±»åž‹çš„ç¼–å·
     * @return å±žæ€§çš„内容
     */
    @Override
    public List<OsBtmTypeAttributeVO> listAttributeByBtmId(String btmId) {
        VciBaseUtil.alertNotNull(btmId, "业务类型的编号");
        BizType[] bizTypes = new BizType[0];
        try {
            bizTypes = platformClientUtil.getBtmService().getBizTypes(btmId);
        } catch (PLException e) {
            throw WebUtil.getVciBaseException(e);
        }
        if (Func.isEmpty(bizTypes)) {
            return new ArrayList<>();
        }
        BizType bizType = bizTypes[0];
        OsBtmTypeVO btmTypeVO = btmDO2VO(bizType,null);
        List<OsBtmTypeAttributeVO> attributes = btmTypeVO.getAttributes();
        if (attributes == null) {
            attributes = new ArrayList<>();
        }
        return attributes.stream().sorted(((o1, o2) -> o1.getId().toLowerCase(Locale.ROOT).compareTo(o2.getId().toLowerCase(Locale.ROOT)))).collect(Collectors.toList());
    }
}
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WebEnumServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,280 @@
package com.vci.web.service.impl;
import com.vci.constant.EnumIdConstant;
import com.vci.corba.common.PLException;
import com.vci.corba.omd.etm.EnumItem;
import com.vci.corba.omd.etm.EnumType;
import com.vci.pagemodel.KeyValue;
import com.vci.pagemodel.OsEnumItemVO;
import com.vci.pagemodel.OsEnumVO;
import com.vci.pagemodel.OsStatusVO;
import com.vci.starter.web.annotation.log.VciUnLog;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.util.VciDateUtil;
import com.vci.web.service.WebEnumServiceI;
import com.vci.web.service.WebLifeCycleServiceI;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.web.util.HtmlUtils;
import java.util.*;
import java.util.stream.Collectors;
import static com.vci.constant.EnumIdConstant.LC_STATUS_SUBFIX;
/**
 * @Description æžšä¸¾æœåŠ¡
 * @Author dangsn
 * @Date 2024/11/28 11:18
 */
@Service
public class WebEnumServiceImpl implements WebEnumServiceI {
    /**
     * æ—¥å¿—
     */
    private Logger logger = LoggerFactory.getLogger(getClass());
    /**
     * ç”¨æˆ·æ–°å¢žæ•°æ®çš„æ—¶å€™å¯ä»¥æŸ¥çœ‹çš„密级
     */
    public static final String MY_DATA_SECRET = "myDataSecret";
    /**
     * å¹³å°è°ƒç”¨å®¢æˆ·ç«¯
     */
    @Autowired
    private PlatformClientUtil platformClientUtil;
    /**
     * ç”Ÿå‘½å‘¨æœŸ
     */
    @Autowired
    private WebLifeCycleServiceI lifeCycleService;
    /**
     * èŽ·å–æžšä¸¾çš„å†…å®¹
     * @param enumCode æžšä¸¾çš„编号(英文名称)
     * @return key是英文值,value是中文文本
     */
    @Override
    public List<KeyValue> getEnum(String enumCode) throws VciBaseException {
        if(StringUtils.isEmpty(enumCode)){
            return null;
        }
        enumCode = HtmlUtils.htmlUnescape(enumCode);
        if(enumCode.endsWith(LC_STATUS_SUBFIX)){
            List<OsStatusVO> statusVOS = lifeCycleService.listStatusById(enumCode.replace(LC_STATUS_SUBFIX, ""));
            if(CollectionUtils.isEmpty(statusVOS)){
                return new ArrayList<>();
            }
            List<KeyValue> keyValueList = new ArrayList<>();
            statusVOS.stream().forEach(statusVO->{
                KeyValue kv = new KeyValue();
                kv.setKey(statusVO.getId());
                kv.setValue(statusVO.getName());
                kv.setAttributes(VciBaseUtil.objectToMap(statusVO));
                keyValueList.add(kv);
            });
            return keyValueList;
        }
        return enumItem2KV(getEnumItemById(enumCode));
    }
    /**
     * èŽ·å–æžšä¸¾çš„ä¸­æ–‡æ–‡æœ¬
     * @param enumCode æžšä¸¾çš„编号(英文名称)
     * @param enumKey æžšä¸¾çš„英文值,区分大小写
     */
    @Override
    public String getValue(String enumCode, String enumKey){
        List<KeyValue> allKV = getEnum(enumCode);
        if(allKV.size()>0){
            for(KeyValue kv : allKV){
                if(kv.getKey().equalsIgnoreCase(enumKey)){
                    return kv.getValue();
                }
            }
        }
        return "";
    }
    /**
     * æžšä¸¾çš„æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     *
     * @param enumType æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
     */
    @Override
    public OsEnumVO enumDO2VO(EnumType enumType) {
        OsEnumVO enumVO = new OsEnumVO();
        if(enumType!=null){
            enumVO.setOid(enumType.oid);
            enumVO.setCreator(enumType.creator);
            enumVO.setLastModifier(enumType.modifier);
            enumVO.setId(enumType.name);
            enumVO.setName(enumType.label);
            enumVO.setEnumValueDataType(enumType.type);
            enumVO.setEnumValueDataTypeText("String".equalsIgnoreCase(enumType.type) ? "字符串":"整型");
            enumVO.setLength((int) enumType.length);
            try {
                enumVO.setLastModifyTime(new Date(enumType.createTime));
            } catch (Exception e) {
                e.printStackTrace();
            }
            try {
                enumVO.setCreateTime(new Date(enumType.createTime));
            } catch (Exception e) {
                e.printStackTrace();
            }
            try {
                enumVO.setTs(VciDateUtil.str2Date(enumType.ts,VciDateUtil.DateTimeMillFormat));
            } catch (Exception e) {
                e.printStackTrace();
            }
            //枚举项处理
            List<OsEnumItemVO> itemVOS = new ArrayList<>();
            Map<String,String> itemVOMap = new HashMap<>();
            if(enumType.items!=null && enumType.items.length > 0){
                for(int i = 0 ; i < enumType.items.length ; i ++){
                    OsEnumItemVO enumItemVO = new OsEnumItemVO();
                    EnumItem enumChild = enumType.items[i];
                    enumItemVO.setValue(enumChild.value);
                    enumItemVO.setName(enumChild.name);
                    enumItemVO.setDescription(enumChild.description);
                    itemVOS.add(enumItemVO);
                    itemVOMap.put(enumChild.value,enumChild.name);
                }
            }
            enumVO.setItems(itemVOS);
            enumVO.setItemMaps(itemVOMap);
        }
        return enumVO;
    }
    /**
     * æžšä¸¾æ˜Žç»†è½¬æ¢ä¸ºKV
     *
     * @param enumItemVO æžšä¸¾æ˜Žç»†æ˜¾ç¤ºå¯¹è±¡
     * @return KV
     */
    @Override
    public List<KeyValue> enumItem2KV(Collection<OsEnumItemVO> enumItemVO) {
        List<KeyValue> keyValueList = new ArrayList<>();
        if(!CollectionUtils.isEmpty(enumItemVO)){
            enumItemVO.forEach(itemVO->{
                KeyValue keyValue = new KeyValue();
                keyValue.setKey(itemVO.getValue());
                keyValue.setValue(itemVO.getName());
                keyValueList.add(keyValue);
            });
        }
        return keyValueList;
    }
    /**
     * ä½¿ç”¨ç¼–号获取枚举明细
     * @param enumCode ç¼–号
     * @return æ˜Žç»†
     * @throws VciBaseException è°ƒç”¨æœåŠ¡ç«¯å‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚å¸¸
     */
    private List<OsEnumItemVO> getEnumItemById(String enumCode)  throws VciBaseException{
        if(StringUtils.isBlank(enumCode)){
            return  null;
        }
        Map<String, OsEnumVO> enumVOMap = selectAllEnumMap();
        if(MY_DATA_SECRET.equalsIgnoreCase(enumCode)){
            //当前用户
            OsEnumVO enumVO = enumVOMap.getOrDefault(EnumIdConstant.DATASECRET_ENUMNAME, null);
            int userSecret = WebUtil.getInt(WebUtil.getCurrentUserSessionInfoNotException().getUserSecret());
            List<OsEnumItemVO> itemVOS = new ArrayList<>();
            if(enumVO!=null && !CollectionUtils.isEmpty(enumVO.getItems())){
                itemVOS = enumVO.getItems().stream().filter(item->WebUtil.getInt(item.getValue()) <= userSecret).collect(Collectors.toList());
            }
            return itemVOS;
        }else{
            return enumVOMap.getOrDefault(enumCode.toLowerCase(),new OsEnumVO()).getItems();
        }
    }
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„æžšä¸¾æ˜ å°„
     *
     * @return key是枚举的英文名称
     */
    @Override
    @VciUnLog
    public Map<String, OsEnumVO> selectAllEnumMap() {
        return Optional.ofNullable(selectAllEnum()).orElseGet(()->new ArrayList<>()).stream().collect(Collectors.toMap(s->s.getId().toLowerCase(),t->t,(o1,o2)->o1));
    }
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„æžšä¸¾
     *
     * @return æžšä¸¾çš„æ˜¾ç¤ºå¯¹è±¡
     */
    @Override
    @VciUnLog
    public List<OsEnumVO> selectAllEnum() {
        //后面两个参数居然完全没有作用
        try {
            return enumDO2VOs(Arrays.stream(platformClientUtil.getEnumService().getEnumTypes("",1,1)).collect(Collectors.toList()));
        } catch (PLException vciError) {
            throw WebUtil.getVciBaseException(vciError);
        }
    }
    /**
     * æžšä¸¾çš„æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     *
     * @param enumItems æžšä¸¾çš„对象
     * @return æ˜¾ç¤ºå¯¹è±¡
     */
    @Override
    public List<OsEnumVO> enumDO2VOs(Collection<EnumType> enumItems) {
        List<OsEnumVO> enumVOS = new ArrayList<>();
        Optional.ofNullable(enumItems).orElseGet(()->new ArrayList<>()).stream().forEach(enumItem -> {
            OsEnumVO enumVO = enumDO2VO(enumItem);
            enumVOS.add(enumVO);
        });
        return enumVOS;
    }
    /**
     * èŽ·å–æžšä¸¾çš„æ˜ å°„
     *
     * @param enumCode æžšä¸¾çš„=编号
     * @return æžšä¸¾çš„值映射
     */
    @Override
    public Map<String, String> getEnumValueMap(String enumCode) {
        if(StringUtils.isBlank(enumCode)){
            return  null;
        }
        Map<String, OsEnumVO> enumVOMap = selectAllEnumMap();
        if(MY_DATA_SECRET.equalsIgnoreCase(enumCode)){
            //当前用户
            OsEnumVO enumVO = enumVOMap.getOrDefault(EnumIdConstant.DATASECRET_ENUMNAME, null);
            int userSecret = WebUtil.getInt(WebUtil.getCurrentUserSessionInfoNotException().getUserSecret());
            Map<String,String> itemVOMap = new HashMap<>();
            if(enumVO!=null && !CollectionUtils.isEmpty(enumVO.getItemMaps())){
                enumVO.getItemMaps().forEach((key,value)->{
                    if(WebUtil.getInt(key) <= userSecret){
                        itemVOMap.put(key,value);
                    }
                });
            }
            return itemVOMap;
        }else{
            return enumVOMap.getOrDefault(enumCode.toLowerCase(),new OsEnumVO()).getItemMaps();
        }
    }
}
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WebHomeTaskServiceImpl.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebHomeTaskServiceImpl.java ÐÞ¸Ä
@@ -1,15 +1,15 @@
package com.vci.web.service.impl;
import com.vci.dto.WebHomeTaskActionDTO;
import com.vci.model.WebHomeTaskActionDO;
import com.vci.pagemodel.WebHomeTaskActionVO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.pagemodel.SessionInfo;
import com.vci.starter.web.util.BeanUtil;
import com.vci.starter.web.util.BeanUtilForVCI;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.dto.WebHomeTaskActionDTO;
import com.vci.model.WebHomeTaskActionDO;
import com.vci.pagemodel.WebHomeTaskActionVO;
import com.vci.web.service.WebBoServiceI;
import com.vci.web.service.WebHomeTaskServiceI;
import com.vci.web.util.WebUtil;
@@ -19,7 +19,9 @@
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@@ -60,7 +62,7 @@
        if(!CollectionUtils.isEmpty(allActions)){
            allActions.stream().forEach(action->{
                WebHomeTaskActionVO taskActionVO = new WebHomeTaskActionVO();
                BeanUtil.convert(action,taskActionVO);
                BeanUtilForVCI.convert(action,taskActionVO);
                actionVOS.add(taskActionVO);
            });
        }
@@ -84,7 +86,7 @@
    public void addAction(WebHomeTaskActionDTO action){
        WebUtil.alertNotNull(action,"要添加的信息为空",action.getId(),"菜单的主键",action.getName(),"菜单的名称",action.getCountUrl(),"调用的地址");
        WebHomeTaskActionDO actionDO = new WebHomeTaskActionDO();
        BeanUtil.convert(action,actionDO);
        BeanUtilForVCI.convert(action,actionDO);
        actionDO.setOid(VciBaseUtil.getPk());
        boService.addSave(actionDO);
    }
@@ -98,7 +100,7 @@
    public void editAction(WebHomeTaskActionDTO action)  {
        WebUtil.alertNotNull(action,"要修改的信息为空",action.getOid(),"主键",action.getTs(),"时间戳");
        WebHomeTaskActionDO actionDO = boService.selectByOid(action.getOid(),WebHomeTaskActionDO.class);
        BeanUtil.convert(action,actionDO);
        BeanUtilForVCI.convert(action,actionDO);
        boService.editSave(actionDO);
    }
@@ -134,7 +136,7 @@
            List<WebHomeTaskActionVO> taskActionVOS = new ArrayList<>();
            dataGrid.getData().forEach(action->{
                WebHomeTaskActionVO taskActionVO = new WebHomeTaskActionVO();
                BeanUtil.convert((WebHomeTaskActionDO)action,taskActionVO);
                BeanUtilForVCI.convert(action,taskActionVO);
                taskActionVOS.add(taskActionVO);
            });
            dataGrid.setData(taskActionVOS);
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WebLifeCycleServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,409 @@
package com.vci.web.service.impl;
import com.vci.corba.common.PLException;
import com.vci.corba.omd.data.BusinessObject;
import com.vci.corba.omd.lcm.Bound;
import com.vci.corba.omd.lcm.LifeCycle;
import com.vci.corba.omd.lcm.TransitionVO;
import com.vci.corba.omd.lcm.TransitionVOEvent;
import com.vci.pagemodel.*;
import com.vci.starter.web.annotation.log.VciUnLog;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.util.Lcm.Func;
import com.vci.starter.web.util.VciDateUtil;
import com.vci.web.service.WebLifeCycleServiceI;
import com.vci.web.service.WebStatusServiceI;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
import static com.vci.constant.FrameWorkBusLangCodeConstant.DATA_ID_NOT_EXIST;
import static com.vci.constant.WebLangCodeConstant.LIFE_CYCLE_ROUTER_NULL;
import static com.vci.constant.WebLangCodeConstant.LIFE_CYCLE_TRANS_ERROR;
/**
 * @Description ç”Ÿå‘½å‘¨æœŸæœåŠ¡
 * @Author dangsn
 * @Date 2024/11/28 10:39
 */
@Service
public class WebLifeCycleServiceImpl implements WebLifeCycleServiceI {
    /**
     * æ—¥å¿—
     */
    private Logger logger = LoggerFactory.getLogger(getClass());
    /**
     * å¹³å°å®¢æˆ·ç«¯
     */
    @Resource
    private PlatformClientUtil platformClientUtil;
    /**
     * ç”Ÿå‘½å‘¨æœŸæœåŠ¡
     */
    @Resource
    private WebStatusServiceI statusServiceI;
    /**
     * è·ƒè¿ç”Ÿå‘½å‘¨æœŸçŠ¶æ€ï¼Œæ³¨æ„è°ƒç”¨æ­¤æ–¹æ³•å°±ä¼šè¢«æŒä¹…åŒ–ï¼Œä¸å—äº‹åŠ¡æŽ§åˆ¶
     * @param bo ä¸šåŠ¡ç±»åž‹çš„æ•°æ®å¯¹è±¡
     * @param targetStatus ç›®æ ‡çš„生命周期状态,不区分大小
     * @throws VciBaseException å¦‚果目标生命周期和当前生命周期状态没有连接线时抛出异常
     */
    @Override
    public void transStatus(BusinessObject bo, String targetStatus) {
        WebUtil.alertNotNull(bo,"业务数据对象",bo.lctId,"生命周期编码",bo.lcStatus,"当前生命周期状态",targetStatus,"目标生命周期状态");
        try {
            OsLifeCycleLineVO transVO = getTransVO(bo.lctId, bo.lcStatus, targetStatus);
            if(transVO!=null) {
                doTransVO(bo, transVO);
            }else{
                if(!targetStatus.equalsIgnoreCase(bo.lcStatus)){
                    //状态相同的时候。,不抛出异常
                    throw new VciBaseException(LIFE_CYCLE_ROUTER_NULL,new String[]{bo.lcStatus,targetStatus});
                }
            }
        } catch (Exception e) {
            throw new VciBaseException("跃迁生命周期状态失败!", new Object[]{}, e);
        }
    }
    /**
     * æ‰¹é‡è·ƒè¿ç”Ÿå‘½å‘¨æœŸçŠ¶æ€ï¼Œè¿™äº›æ•°æ®ä¸­çš„å½“å‰çŠ¶æ€å¿…é¡»éƒ½æ˜¯ä¸€æ ·ï¼Œæˆ–è€…æ˜¯å½“å‰çŠ¶æ€éƒ½å¯ä»¥è¿žæŽ¥åˆ°ç›®æ ‡çŠ¶æ€
     * @param cboList ä¸šåŠ¡ç±»åž‹å¯¹è±¡æ•°æ®
     * @param targetStatus  ç›®æ ‡çŠ¶æ€ï¼Œä¸åŒºåˆ†å¤§å°å†™
     * @throws VciBaseException è½¬æ¢ç”Ÿå‘½å‘¨æœŸå‡ºé”™çš„æ—¶å€™æŠ›å‡ºå¼‚常
     */
    @Override
    public void transCboStatus(List<BusinessObject> cboList,String targetStatus){
        WebUtil.alertNotNull(cboList,"业务数据对象",targetStatus,"目标对象");
        BusinessObject[] bos = new BusinessObject[cboList.size()];
        for(int i = 0 ; i < cboList.size() ; i ++){
            bos[i] = cboList.get(i);
        }
        transStatus(bos, targetStatus);
    }
    /**
     * æ‰¹é‡è·ƒè¿ç”Ÿå‘½å‘¨æœŸçŠ¶æ€ï¼Œè¿™äº›æ•°æ®ä¸­çš„å½“å‰çŠ¶æ€å¿…é¡»éƒ½æ˜¯ä¸€æ ·ï¼Œæˆ–è€…æ˜¯å½“å‰çŠ¶æ€éƒ½å¯ä»¥è¿žæŽ¥åˆ°ç›®æ ‡çŠ¶æ€
     * @param bos ä¸šåŠ¡ç±»åž‹å¯¹è±¡æ•°æ®
     * @param targetStatus  ç›®æ ‡çŠ¶æ€ï¼Œä¸åŒºåˆ†å¤§å°å†™
     * @throws VciBaseException è½¬æ¢ç”Ÿå‘½å‘¨æœŸå‡ºé”™çš„æ—¶å€™æŠ›å‡ºå¼‚常
     */
    @Override
    public void transStatus(BusinessObject[] bos, String targetStatus){
        WebUtil.alertNotNull(bos,"业务数据对象",targetStatus,"目标对象");
        List<OsLifeCycleLineVO> transVOList = new ArrayList<>();
        List<BusinessObject> transBOs = new ArrayList<>();
        for(int i = 0 ; i < bos.length ; i ++){
            BusinessObject bo = bos[i];
            WebUtil.alertNotNull(bo,"业务数据对象",bo.lctId,"生命周期编码",bo.lcStatus,"当前生命周期状态");
            OsLifeCycleLineVO transVO = getTransVO(bo.lctId, bo.lcStatus, targetStatus);
            if(transVO!=null){
                transVOList.add(transVO);
                transBOs.add(bo);
            }else{
                if(!targetStatus.equalsIgnoreCase(bo.lcStatus)){
                    throw new VciBaseException("不存在从【{0}】状态到【{1}】状态的生命周期连接线,请联系管理员进行配置",new String[]{bo.lcStatus, targetStatus} );
                }
            }
        }
        if(!CollectionUtils.isEmpty(transBOs)) {
            batchTransVo(transBOs.toArray(new BusinessObject[0]), transVOList.toArray(new OsLifeCycleLineVO[0]));
        }
    }
    /**
     * èŽ·å–è¿žæŽ¥çº¿
     * @param lcid ç”Ÿå‘½å‘¨æœŸçš„编号
     * @param currentStatus å½“前的状态
     * @param targetStatus ç›®æ ‡çš„状态
     * @return è¿žæŽ¥çº¿
     * @throws VciBaseException è¯»å–出错的时候会抛出异常
     */
    @Override
    public OsLifeCycleLineVO getTransVO(String lcid, String currentStatus,String targetStatus){
        WebUtil.alertNotNull(lcid,"生命周期编码",currentStatus,"当前状态",targetStatus,"目标状态");
        OsLifeCycleVO life = getLifeCycleById(lcid);
        if(life == null ){
            throw new VciBaseException(DATA_ID_NOT_EXIST,new String[]{lcid});
        }
        if(CollectionUtils.isEmpty(life.getLines())){
            throw new VciBaseException(LIFE_CYCLE_ROUTER_NULL,new String[]{lcid});
        }
        return Optional.ofNullable(life.getLines()).orElseGet(()->new ArrayList<>()).stream().filter(s->s.getSourceLifeStatus().equalsIgnoreCase(currentStatus) && s.getTargetLifeStatus().equalsIgnoreCase(targetStatus)).findFirst().orElseGet(()->null);
    }
    /**
     * è·ƒè¿ä¸šåŠ¡ç±»åž‹çš„ç”Ÿå‘½å‘¨æœŸçŠ¶æ€
     * @param obj ä¸šåŠ¡ç±»åž‹æ•°æ®å¯¹è±¡
     * @param lineVO è·ƒè¿è·¯ç”±
     * @throws VciBaseException è·ƒè¿å‡ºé”™çš„æ˜¯ä¼šæŠ›å‡ºå¼‚常
     */
    @Override
    public void doTransVO(BusinessObject obj,OsLifeCycleLineVO lineVO) throws VciBaseException {
        if(lineVO!=null){
            try {
                TransitionVO transitionVO = lifeCycleLineVO2DO(lineVO);
                platformClientUtil.getBOFService().transferBusinessObject(obj, transitionVO.destination);
            } catch (PLException e) {
                throw WebUtil.getVciBaseException(e);
            }
        }else{
            throw new VciBaseException(LIFE_CYCLE_ROUTER_NULL);
        }
    }
    /**
     * æ‰¹é‡æ‰§è¡Œè·ƒè¿æ“ä½œ
     * @param bos ä¸šåŠ¡ç±»åž‹æ•°æ®
     * @param vos è·ƒè¿å¯¹è±¡
     * @throws VciBaseException è·ƒè¿å‡ºé”™çš„æ˜¯ä¼šæŠ›å‡ºå¼‚常
     */
    @Override
    public void batchTransVo(BusinessObject[] bos,OsLifeCycleLineVO[] vos){
        batchTransVo(bos,vos,null);
    }
    /**
     * æ‰¹é‡æ‰§è¡Œè·ƒè¿æ“ä½œï¼Œè¦æ±‚必须是同一个业务类型下的
     * @param bos ä¸šåŠ¡ç±»åž‹æ•°æ®å¯¹è±¡
     * @param lineVOs è·ƒè¿å¯¹è±¡
     * @param releaseStatus å‘布状态,如果目标状态是发布状态时传递这个值
     * @throws VciBaseException  è·ƒè¿å‡ºé”™çš„æ˜¯ä¼šæŠ›å‡ºå¼‚常
     */
    @Override
    public void batchTransVo(BusinessObject[] bos,OsLifeCycleLineVO[] lineVOs,String[] releaseStatus){
        if(bos!=null && lineVOs != null && lineVOs.length == bos.length){
            try {
                if(releaseStatus == null){
                    releaseStatus = new String[lineVOs.length];
                    for(int i = 0 ; i < lineVOs.length ; i ++ ){
                        releaseStatus[i] = "";
                    }
                }
                TransitionVO[] vos = new TransitionVO[lineVOs.length];
                for(int i = 0 ; i < lineVOs.length; i ++){
                    vos[i] = lifeCycleLineVO2DO(lineVOs[i]);
                }
                platformClientUtil.getBOFService().batchTransferBusinessObjectAndRelease(
                        bos, vos, releaseStatus);
            } catch (PLException e) {
                throw WebUtil.getVciBaseException(e);
            }
        }else{
            if(bos == null){
                throw new VciBaseException(LIFE_CYCLE_TRANS_ERROR,new String[]{"业务类型数据为空"});
            }else if(lineVOs ==null){
                throw new VciBaseException(LIFE_CYCLE_TRANS_ERROR,new String[]{"跃迁路由为空"});
            }else{
                throw new VciBaseException(LIFE_CYCLE_TRANS_ERROR,new String[]{"跃迁路由和业务类型数据长度不相同"});
            }
        }
    }
    /**
     * è¿žæŽ¥çº¿è½¬æ¢ä¸ºå¹³å°çš„对象
     * @param lineVO è¿žæŽ¥çº¿å¯¹è±¡
     * @return å¹³å°çš„连接线对象
     */
    private TransitionVO lifeCycleLineVO2DO(OsLifeCycleLineVO lineVO) throws PLException {
        TransitionVO transitionVO = new TransitionVO();
        transitionVO.id = lineVO.getOid();
        transitionVO.source = lineVO.getSourceLifeStatus();
        transitionVO.destination = lineVO.getTargetLifeStatus();
        transitionVO.connect = lineVO.getName() == null?"":lineVO.getName();
        //加事件
        TransitionVOEvent[] events;
        if(lineVO.getEvents() == null || lineVO.getEvents().length == 0){
            events = new TransitionVOEvent[0];
        }else{
            events = new TransitionVOEvent[lineVO.getEvents().length];
            for (int j = 0; j < lineVO.getEvents().length; j++) {
                OsLifeCycleLineEventVO eventVO = lineVO.getEvents()[j];
                TransitionVOEvent event = new TransitionVOEvent();
                event.id = eventVO.getOid();
                event.name = Func.isBlank(eventVO.getEventFullName()) ?
                        platformClientUtil.getLifeCycleService().getLCEventValueByKey(eventVO.getOid()):eventVO.getEventFullName();
                events[j] = event;
            }
        }
        transitionVO.transitionVOEvents = events;
        return transitionVO;
    }
    /**
     * é€šè¿‡ç¼–号获取生命周期状态对象,
     *
     * @param lctId ç”Ÿå‘½å‘¨æœŸç¼–号
     * @return æ˜¾ç¤ºå¯¹è±¡
     */
    @Override
    public OsLifeCycleVO getLifeCycleById(String lctId){
        WebUtil.alertNotNull(lctId,"业务类型编号");
        return selectAllLifeCycleMap().getOrDefault(lctId,null);
    }
    /**
     * æŸ¥è¯¢ç”Ÿå‘½å‘¨æœŸçš„æ˜ å°„
     * @return key是生命周期的编号, value是生命周期的对象
     * @throws VciBaseException æŸ¥è¯¢å‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    @Override
    @VciUnLog
    public Map<String,OsLifeCycleVO> selectAllLifeCycleMap(){
        return Optional.ofNullable(selectAllLifeCycle()).orElseGet(()->new ArrayList<>()).stream().collect(Collectors.toMap(s->s.getId(), t->t,(o1, o2)->o1));
    }
    /**
     * æŸ¥è¯¢æ‰€æœ‰ç”Ÿå‘½å‘¨æœŸçŠ¶æ€
     *
     * @return ç”Ÿå‘½å‘¨æœŸçŠ¶æ€çš„å¯¹è±¡
     * @throws VciBaseException æŸ¥è¯¢çš„æ—¶å€™å‡ºé”™çš„æ—¶å€™
     */
    @Override
    @VciUnLog
    public List<OsLifeCycleVO> selectAllLifeCycle(){
        try {
            LifeCycle[] lifeCyles = platformClientUtil.getLifeCycleService().getLifeCycles();
            return lifeCycleDO2VOs(Arrays.stream(lifeCyles).collect(Collectors.toList()));
        } catch (PLException vciError) {
            if(logger.isErrorEnabled()){
                logger.error(vciError.code,vciError);
            }
            throw WebUtil.getVciBaseException(vciError);
        }
    }
    /**
     * ç”Ÿå‘½å‘¨æœŸçš„æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param lifeCycles æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
     */
    @Override
    public List<OsLifeCycleVO> lifeCycleDO2VOs(Collection<LifeCycle> lifeCycles){
        List<OsLifeCycleVO> lifeCycleVOS = new ArrayList<>();
        Optional.ofNullable(lifeCycles).orElseGet(()->new ArrayList<>()).stream().forEach(lifeCyle -> {
            OsLifeCycleVO lifeCycleVO = lifeCycleDO2VO(lifeCyle);
            lifeCycleVOS.add(lifeCycleVO);
        });
        return lifeCycleVOS;
    }
    /**
     * ç”Ÿå‘½å‘¨æœŸçš„æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param lifeCycle æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
     */
    @Override
    public OsLifeCycleVO lifeCycleDO2VO(LifeCycle lifeCycle){
        OsLifeCycleVO life = new OsLifeCycleVO();
        Map<String, OsStatusVO> statusVOMap = statusServiceI.selectAllStatusMap();
        if(lifeCycle !=null) {
            try {
                life.setCreateTime(new Date(lifeCycle.createTime));
            } catch (Exception e) {
                e.printStackTrace();
            }
            life.setCreator(lifeCycle.creator);
            life.setDescription(lifeCycle.description);
            life.setId(lifeCycle.name);
            life.setLastModifier(lifeCycle.modifier);
            try {
                life.setLastModifyTime(new Date(lifeCycle.modifyTime));
            } catch (Exception e) {
                e.printStackTrace();
            }
            life.setOid(lifeCycle.oid);
            Bound[] bounds = lifeCycle.bounds;
            if(bounds != null && bounds.length>0){
                List<OsLifeCycleLineBoundVO> boundVOList = new ArrayList<>();
                Arrays.stream(bounds).forEach(bound->{
                    OsLifeCycleLineBoundVO boundVO = new OsLifeCycleLineBoundVO();
                    boundVO.setId(bound.id);
                    boundVO.setName(bound.name);
                    boundVO.setCellx(bound.cellx);
                    boundVO.setCelly(bound.celly);
                    boundVO.setCellh(bound.cellh);
                    boundVO.setCellw(bound.cellw);
                    boundVO.setCellicon(bound.cellicon);
                    boundVOList.add(boundVO);
                });
                life.setBounds(boundVOList.toArray(new OsLifeCycleLineBoundVO[boundVOList.size()]));
            }else{
                life.setBounds(new OsLifeCycleLineBoundVO[0]);
            }
            List<OsLifeCycleLineVO> lineVOS = new ArrayList<>();
            if(lifeCycle.routes!=null && lifeCycle.routes.length>0){
                Arrays.stream(lifeCycle.routes).forEach(route->{
                    OsLifeCycleLineVO lineVO = new OsLifeCycleLineVO();
                    lineVO.setSourceLifeStatus(route.source);
                    lineVO.setSourceLifeStatusName(statusVOMap.getOrDefault(route.source,new OsStatusVO()).getName());
                    lineVO.setTargetLifeStatus(route.destination);
                    lineVO.setTargetLifeStatusName(statusVOMap.getOrDefault(route.destination,new OsStatusVO()).getName());
                    lineVO.setOid(route.id);
                    lineVO.setName(route.connect);
                    if(route.transitionVOEvents ==null || route.transitionVOEvents.length == 0){
                        lineVO.setEvents(new OsLifeCycleLineEventVO[0]);
                    }else {
                        OsLifeCycleLineEventVO[] eventVOs = new OsLifeCycleLineEventVO[route.transitionVOEvents.length];
                        for (int i = 0; i < route.transitionVOEvents.length; i++) {
                            com.vci.corba.omd.lcm.TransitionVOEvent event = route.transitionVOEvents[i];
                            OsLifeCycleLineEventVO eventVO = new OsLifeCycleLineEventVO();
                            eventVO.setOid(event.id);
                            eventVO.setEventFullName(event.name);
                            eventVOs[i] = eventVO;
                        }
                        lineVO.setEvents(eventVOs);
                    }
                    lineVOS.add(lineVO);
                });
            }
            life.setLines(lineVOS);
            life.setStartStatus(lifeCycle.startState);
            life.setStartStatusName(statusVOMap.getOrDefault(lifeCycle.startState,new OsStatusVO()).getName());
            life.setName(lifeCycle.tag);
            try {
                life.setTs(VciDateUtil.str2Date(lifeCycle.ts,VciDateUtil.DateTimeMillFormat));
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return life;
    }
    /**
     * ä½¿ç”¨ç”Ÿå‘½å‘¨æœŸçš„编号获取包含的状态显示对象
     *
     * @param lifeCycleId ç”Ÿå‘½å‘¨æœŸçš„编号
     * @return çŠ¶æ€çš„æ˜¾ç¤ºå¯¹è±¡
     */
    @Override
    public List<OsStatusVO> listStatusById(String lifeCycleId) {
        OsLifeCycleVO lifeCycleVO = getLifeCycleById(lifeCycleId);
        if(lifeCycleVO == null || StringUtils.isBlank(lifeCycleVO.getOid())){
            return new ArrayList<>();
        }
        Set<String> hasStatusIdSet = new HashSet<>();
        lifeCycleVO.getLines().stream().forEach(lineVO->{
            hasStatusIdSet.add(lineVO.getSourceLifeStatus());
            hasStatusIdSet.add(lineVO.getTargetLifeStatus());
        });
        Map<String, OsStatusVO> statusVOMap = statusServiceI.selectAllStatusMap();
        List<OsStatusVO> statusVOList = new ArrayList<>();
        hasStatusIdSet.stream().forEach(statusId->{
            statusVOList.add(statusVOMap.getOrDefault(statusId,new OsStatusVO()));
        });
        return statusVOList;
    }
}
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WebLinkTypeServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,164 @@
package com.vci.web.service.impl;
import com.vci.corba.common.PLException;
import com.vci.corba.omd.ltm.LinkType;
import com.vci.pagemodel.OsAttributeVO;
import com.vci.pagemodel.OsBtmTypeVO;
import com.vci.pagemodel.OsLinkTypeAttributeVO;
import com.vci.pagemodel.OsLinkTypeVO;
import com.vci.starter.web.annotation.log.VciUnLog;
import com.vci.starter.web.util.BeanUtilForVCI;
import com.vci.starter.web.util.VciDateUtil;
import com.vci.web.service.WebAttributeServiceI;
import com.vci.web.service.WebBtmServiceI;
import com.vci.web.service.WebEnumServiceI;
import com.vci.web.service.WebLinkTypeServiceI;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
/**
 * @Description é“¾æŽ¥ç±»åž‹æœåŠ¡
 * @Author dangsn
 * @Date 2024/11/28 11:42
 */
@Service
public class WebLinkTypeServiceImpl implements WebLinkTypeServiceI {
    /**
     * æ—¥å¿—
     */
    private Logger logger = LoggerFactory.getLogger(getClass());
    /**
     * å¹³å°çš„调用工具类
     */
    @Resource
    private PlatformClientUtil platformClientUtil;
    /**
     * ä¸šåŠ¡ç±»åž‹æœåŠ¡
     */
    @Resource
    private WebBtmServiceI btmService;
    /**
     * æžšä¸¾çš„æœåŠ¡
     */
    @Resource
    private WebEnumServiceI enumService;
    /**
     * å±žæ€§çš„æœåŠ¡
     */
    @Resource
    private WebAttributeServiceI attributeService;
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„链接类型
     *
     * @return é“¾æŽ¥ç±»åž‹å¯¹è±¡
     */
    @Override
    @VciUnLog
    public List<OsLinkTypeVO> selectAllLink() {
        try {
            return linkTypeDO2VOs(Arrays.stream(platformClientUtil.getLinkTypeService().getLinkTypes()).collect(Collectors.toList()));
        } catch (PLException vciError) {
            throw WebUtil.getVciBaseException(vciError);
        }
    }
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„业务类型映射
     *
     * @return key æ˜¯ä¸šåŠ¡çš„è‹±æ–‡åç§°çš„å°å†™
     */
    @Override
    @VciUnLog
    public Map<String, OsLinkTypeVO> selectAllLinkMap() {
        return Optional.ofNullable(selectAllLink()).orElseGet(()->new ArrayList<>()).stream().collect(Collectors.toMap(s->s.getId().toLowerCase(), t->t,(o1, o2)->o1));
    }
    /**
     * æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     *
     * @param linkTypes æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
     */
    @Override
    public List<OsLinkTypeVO> linkTypeDO2VOs(Collection<LinkType> linkTypes) {
        List<OsLinkTypeVO> VOS = new ArrayList<>();
        Optional.ofNullable(linkTypes).orElseGet(()->new ArrayList<>()).stream().forEach(linkType -> {
            OsLinkTypeVO vo = linkTypeDO2VO(linkType);
            VOS.add(vo);
        });
        return VOS;
    }
    /**
     * æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     *
     * @param linkType æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
     */
    @Override
    public OsLinkTypeVO linkTypeDO2VO(LinkType linkType) {
        OsLinkTypeVO vo = new OsLinkTypeVO();
        if(linkType !=null){
            vo.setOid(linkType.oid);
            vo.setCreator(linkType.creator);
            vo.setLastModifier(linkType.modifier);
            try {
                vo.setCreateTime(VciDateUtil.long2Date(linkType.createTime));
                vo.setLastModifyTime(VciDateUtil.long2Date(linkType.modifyTime));
                vo.setTs(VciDateUtil.long2Date(linkType.ts));
            } catch (Exception e) {
                e.printStackTrace();
            }
            vo.setDescription(linkType.description);
            vo.setId(linkType.name);
            vo.setName(linkType.tag);
            vo.setFromBtmTypeVOS(btmService.listBtmByIds(Arrays.stream(linkType.btmItemsFrom).collect(Collectors.toSet())));
            if(!CollectionUtils.isEmpty(vo.getFromBtmTypeVOS())){
                vo.setFromBtmType(Arrays.stream(linkType.btmItemsFrom).collect(Collectors.joining(",")));
                vo.setFromBtmTypeName(vo.getFromBtmTypeVOS().stream().map(OsBtmTypeVO::getName).collect(Collectors.joining(",")));
            }
            vo.setToBtmTypeVOS(btmService.listBtmByIds(Arrays.stream(linkType.btmItemsTo).collect(Collectors.toSet())));
            if(!CollectionUtils.isEmpty(vo.getToBtmTypeVOS())){
                vo.setToBtmType(Arrays.stream(linkType.btmItemsTo).collect(Collectors.joining(",")));
                vo.setToBtmTypeName(vo.getToBtmTypeVOS().stream().map(OsBtmTypeVO::getName).collect(Collectors.joining(",")));
            }
            vo.setImplClass(linkType.implClass);
            vo.setShape(linkType.shape);
            List<OsAttributeVO> attributeVOS = attributeService.listAttrByIds(Arrays.stream(linkType.attributes).collect(Collectors.toList()));
            List<OsLinkTypeAttributeVO> linkTypeAttributeVOS = new ArrayList<>();
            Optional.ofNullable(attributeVOS).orElseGet(()->new ArrayList<>()).stream().forEach(attributeVO->{
                OsLinkTypeAttributeVO linkTypeAttributeVO = new OsLinkTypeAttributeVO();
                BeanUtilForVCI.convert(attributeVO,linkTypeAttributeVO);
                linkTypeAttributeVO.setPkLinkType(vo.getOid());
                if(StringUtils.isNotBlank(attributeVO.getBtmTypeId())){
                    linkTypeAttributeVO.setReferFlag(true);
                    linkTypeAttributeVO.setReferBtmTypeId(attributeVO.getBtmTypeId());
                }
                if(StringUtils.isNotBlank(attributeVO.getEnumId())){
                    linkTypeAttributeVO.setEnumFlag(true);
                    linkTypeAttributeVO.setEnumItemMap(enumService.getEnumValueMap(linkTypeAttributeVO.getEnumId()));
                }
                linkTypeAttributeVOS.add(linkTypeAttributeVO);
            });
            vo.setAttributes(linkTypeAttributeVOS);
        }
        return vo;
    }
}
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WebLoServiceImpl.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebLoServiceImpl.java ÐÞ¸Ä
@@ -12,6 +12,7 @@
import com.vci.corba.query.ObjectQueryService;
import com.vci.corba.query.data.BOAndLO;
import com.vci.omd.utils.ObjectTool;
import com.vci.query.UILinkTypeDataQuery;
import com.vci.starter.web.constant.QueryOptionConstant;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.DataGrid;
@@ -19,7 +20,6 @@
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.util.VciDateUtil;
import com.vci.web.properties.WebProperties;
import com.vci.web.query.UILinkTypeDataQuery;
import com.vci.web.service.WebBoServiceI;
import com.vci.web.service.WebLoServiceI;
import com.vci.web.util.PlatformClientUtil;
@@ -42,21 +42,22 @@
 */
@Service
public class WebLoServiceImpl implements WebLoServiceI {
    /**
     * æ—¥å¿—对象
     */
    private Logger logger = LoggerFactory.getLogger(getClass());
    /**
     * å¤šè¯­è¨€å‰ç¼€
     */
    private final String msgCodePrefix = "com.vci.web.loService.";
    /**
     * æ—¥å¿—对象
     */
    private Logger logger = LoggerFactory.getLogger(getClass());
    @Autowired
    private WebBoServiceI boService;
    /**
     *
     */
    @Autowired
    private WebProperties webProperties;
@@ -75,24 +76,17 @@
        LO_BASE_FIELD_MAP.put("oid","oid");
        LO_BASE_FIELD_MAP.put("creator","creator");
        LO_BASE_FIELD_MAP.put("createTime","createTime");
        //LO_BASE_FIELD_MAP.put("lastModifier","lastModifier");
        //LO_BASE_FIELD_MAP.put("lastModifyTime","lastModifyTime");
        LO_BASE_FIELD_MAP.put("modifier","lastModifier");
        LO_BASE_FIELD_MAP.put("modifyTime","lastModifyTime");
        LO_BASE_FIELD_MAP.put("fromOid","f_oid");
        //LO_BASE_FIELD_MAP.put("fromRevisionOid","f_revisionoid");
        LO_BASE_FIELD_MAP.put("fromRevOid","f_revisionoid");
        LO_BASE_FIELD_MAP.put("fromNameOid","f_nameoid");
        //LO_BASE_FIELD_MAP.put("fromBTMName","f_btwname");
        LO_BASE_FIELD_MAP.put("fromBTName","f_btwname");
        //LO_BASE_FIELD_MAP.put("toRevisionOid","t_revisionoid");
        LO_BASE_FIELD_MAP.put("toRevOid","t_revisionoid");
        LO_BASE_FIELD_MAP.put("toNameOid","t_nameoid");
        //LO_BASE_FIELD_MAP.put("toBTMName","t_btwname");
        LO_BASE_FIELD_MAP.put("toBTName","t_btwname");
        LO_BASE_FIELD_MAP.put("toOid","t_oid");
        LO_BASE_FIELD_MAP.put("ts","ts");
        //LO_BASE_FIELD_MAP.put("linkTypeName","linkTypeName");
        LO_BASE_FIELD_MAP.put("ltName","linkTypeName");
    }
@@ -170,7 +164,7 @@
                String[] sort = ph.getSort().split(",");
                String[] order = ph.getOrder().split(",");
                if(sort.length != order.length){
                    throw new VciBaseException(msgCodePrefix + ".sortlengtherror",new Object[]{sort.length,order.length});
                    throw new VciBaseException(msgCodePrefix + "sortLengthError",new Object[]{sort.length,order.length});
                }
                List<OrderInfo> orderInfoList = new ArrayList<OrderInfo>();
                for(int i = 0 ; i < sort.length ;i++){
@@ -249,24 +243,12 @@
                }
                return rtnOBJs;
            }
        } catch (PLException e) {
//            logger.error(e.error_code,e);
//            throw WebUtil.getVciBaseException(e);
        } catch (Exception e) {
            logger.error("查询连接类型失败:",e);
            throw new VciBaseException("查询链接类型失败:", new Object[]{}, e);
        }
        return rtnOBJs;
    }
//
//    @Override
//    public Map<String, BusinessObject> queryLinkedCbo(LinkObject[] lo,
//            boolean isDirection) throws VciBaseException {
//        LinkObject[] clos = new LinkObject[lo.length];
//        for(int i =0 ; i < lo.length; i ++){
//            LinkObject clo = new LinkObject();
//            clo = lo[i];
//            clos[i] = clo;
//        }
//        return queryLinkedCbo(clos,isDirection);
//    }
    @Override
    public Map<String, BusinessObject> queryLinkedCbo(List los,
@@ -457,7 +439,7 @@
        WebUtil.alertNotNull(loName,"链接");
        return null;
        //todo åœ¨å¹³å°é‡Œé¢éœ€è¦ä¼ å…¥å¯¹è±¡ï¼ŒçŽ°åœ¨æ˜¯å­—ç¬¦ä¸²ï¼Œéœ€è¦çœ‹å¹³å°å¦‚ä½•å¤„ç†
//            return loOperation.createLinkObject(loName,WebUtil.getCurrentUserId());
        //return loOperation.createLinkObject(loName,WebUtil.getCurrentUserId());
    }
    /**
@@ -528,7 +510,7 @@
     * @return é“¾æŽ¥ç±»åž‹å’Œå…³è”çš„to端
     */
    @Override
    public List<com.vci.corba.query.data.BOAndLO> queryCLOAndBOBySchema(UILinkTypeDataQuery linkTypeDataQuery) {
    public List<BOAndLO> queryCLOAndBOBySchema(UILinkTypeDataQuery linkTypeDataQuery) {
        VciBaseUtil.alertNotNull(linkTypeDataQuery,"链接类型查询对象",linkTypeDataQuery.getQueryTemplateName(),"查询模板的名称");
        QueryTemplate qt = boService.getQtByName(linkTypeDataQuery.getQueryTemplateName(),linkTypeDataQuery.getReplaceMap());
        return queryCLOAndBOByQueryTemplate(qt,linkTypeDataQuery);
@@ -540,7 +522,7 @@
     * @param linkTypeDataQuery é“¾æŽ¥ç±»åž‹çš„æŸ¥è¯¢å¯¹è±¡
     * @return é“¾æŽ¥ç±»åž‹å’Œä¸šåŠ¡ç±»åž‹
     */
    private List<com.vci.corba.query.data.BOAndLO> queryCLOAndBOByQueryTemplate(QueryTemplate qt,UILinkTypeDataQuery linkTypeDataQuery){
    private List<BOAndLO> queryCLOAndBOByQueryTemplate(QueryTemplate qt,UILinkTypeDataQuery linkTypeDataQuery){
        if(StringUtils.isNotBlank(linkTypeDataQuery.getToBtmType()) && StringUtils.isBlank(qt.getBtmType())) {
            qt.setBtmType(linkTypeDataQuery.getToBtmType());
        }
@@ -588,7 +570,7 @@
        }
        boService.setPageAndOrderToQT(qt,linkTypeDataQuery.getPageHelper());
        try {
            com.vci.corba.query.data.BOAndLO[] bos = platformClientUtil.getQueryService().getBOAndLOS(qt.getId(), OQTool.qtTOXMl(qt).asXML(),linkTypeDataQuery.getParentOid()==null?"":linkTypeDataQuery.getParentOid());
            BOAndLO[] bos = platformClientUtil.getQueryService().getBOAndLOS(qt.getId(), OQTool.qtTOXMl(qt).asXML(),linkTypeDataQuery.getParentOid()==null?"":linkTypeDataQuery.getParentOid());
            return Arrays.stream(bos).collect(Collectors.toList());
        } catch (PLException e) {
//            logger.error(e.error_code,e);
@@ -602,7 +584,7 @@
     * @return é“¾æŽ¥å¯¹è±¡å’Œto端业务对象
     */
    @Override
    public List<com.vci.corba.query.data.BOAndLO> queryCLOAndBoByLinkType(UILinkTypeDataQuery linkTypeDataQuery){
    public List<BOAndLO> queryCLOAndBoByLinkType(UILinkTypeDataQuery linkTypeDataQuery){
        VciBaseUtil.alertNotNull(linkTypeDataQuery,"链接类型查询对象",linkTypeDataQuery.getLinkType(),"链接类型的名称");
        QueryTemplate qt = null;
        if(StringUtils.isBlank(linkTypeDataQuery.getQueryTemplateName())){
@@ -831,4 +813,48 @@
        }
    }
    /**
     * é“¾æŽ¥ç±»åž‹
     *
     * @param clo            é“¾æŽ¥ç±»åž‹
     * @param attributeName  å±žæ€§åç§°
     * @param attributeValue å±žæ€§çš„值
     */
    @Override
    public void setAttribute(LinkObject clo, String attributeName, String attributeValue) {
        AttributeValue[] attrValues = clo.newAttrValList;
        ArrayList<AttributeValue> attrValList = new ArrayList();
        AttributeValue attrVal;
        int i;
        if (attrValues != null && attrValues.length > 0) {
            AttributeValue[] var9 = attrValues;
            i = attrValues.length;
            for(int var7 = 0; var7 < i; ++var7) {
                attrVal = var9[var7];
                attrValList.add(attrVal);
            }
        }
        attrVal = null;
        boolean isExist = false;
        for(i = 0; i < attrValList.size(); ++i) {
            attrVal = attrValList.get(i);
            if (attrVal.attrName.toUpperCase().equals(attributeName.toUpperCase())) {
                attrVal.attrVal = attributeValue;
                isExist = true;
                break;
            }
        }
        if (!isExist) {
            attrVal = new AttributeValue();
            attrVal.attrName = attributeName.toUpperCase();
            attrVal.attrVal = attributeValue;
            attrValList.add(attrVal);
        }
        clo.newAttrValList = attrValList.toArray(new AttributeValue[attrValList.size()]);
    }
}
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WebProcessCommandServiceImpl.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebProcessCommandServiceImpl.java ÐÞ¸Ä
@@ -1,5 +1,7 @@
package com.vci.web.service.impl;
import com.vci.bo.FlowNoticeInfo;
import com.vci.constant.WFVariablesKeyConstant;
import com.vci.corba.common.PLException;
import com.vci.corba.common.data.UserEntityInfo;
import com.vci.corba.omd.data.BusinessObject;
@@ -7,6 +9,7 @@
import com.vci.corba.workflow.data.FlowInstanceInfo;
import com.vci.corba.workflow.data.MapTransfersInfo;
import com.vci.corba.workflow.data.TasksAssignedInfo;
import com.vci.dto.ProcessStartConfigDTO;
import com.vci.dto.ProcessTemplateVO;
import com.vci.dto.VciFileObjectDTO;
import com.vci.omd.utils.ObjectTool;
@@ -14,23 +17,19 @@
import com.vci.pagemodel.ProcessOutcomeVO;
import com.vci.pagemodel.ProcessTaskVO;
import com.vci.pagemodel.ProcessUserVO;
import com.vci.starter.web.annotation.FlowNotifyAfter;
import com.vci.starter.web.annotation.FlowNotifyBefore;
import com.vci.starter.web.annotation.FlowNotifyWeb;
import com.vci.starter.web.constant.QueryOptionConstant;
import com.vci.starter.web.enumpck.DataSecretEnum;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.pagemodel.SessionInfo;
import com.vci.starter.web.util.BusAnnotationUtil;
import com.vci.starter.web.util.LangBaseUtil;
import com.vci.starter.web.util.VciDateUtil;
import com.vci.web.annotation.FlowNotifyAfter;
import com.vci.web.annotation.FlowNotifyBefore;
import com.vci.web.annotation.FlowNotifyWeb;
import com.vci.bo.FlowNoticeInfo;
import com.vci.constant.WFVariablesKeyConstant;
import com.vci.web.dao.WebProcessDaoI;
import com.vci.dto.ProcessStartConfigDTO;
import com.vci.web.properties.WebProperties;
import com.vci.web.service.*;
import com.vci.web.util.BusAnnotationUtil;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
@@ -69,11 +68,7 @@
    private WebProcessDaoI processDao;
    @Autowired
    private OsLifeCycleServiceI lifeCycleService;
    @Autowired
    private WebProperties webProperties;
    private WebLifeCycleServiceI lifeCycleService;
    /**
     * æ–‡ä»¶ä¸Šä¼ æœåŠ¡
@@ -261,7 +256,11 @@
            throw WebUtil.getVciBaseException(e);
        }
        if (StringUtils.isNotBlank(config.getStartStatus())) {
            lifeCycleService.transCboStatus(allCbo, config.getStartStatus());
            try {
                lifeCycleService.transCboStatus(allCbo, config.getStartStatus());
            } catch (Exception e) {
                throw new VciBaseException("启动流程时,批量跃迁生命周期状态失败!", new Object[]{}, e);
            }
        }
        callAfter(processInstanceId,null,null,currentTime);
    }
@@ -634,10 +633,19 @@
        }
        List<Map> mapList = boService.cbos2Map(workItemCbos);
        callBefore(mapList,"suspend",note,currentTime);
        lifeCycleService.transCboStatus(needUpdateCbos, "Suspended");
        try {
            lifeCycleService.transCboStatus(needUpdateCbos, "Suspended");
        } catch (Exception e) {
            throw new VciBaseException("挂起流程时,批量跃迁生命周期状态失败!", new Object[]{}, e);
        }
        callAfter(null,null,mapList,currentTime);
    }
    /**
     * æ¢å¤æµç¨‹
     * @param executionId æµç¨‹ä¸»é”®
     * @throws VciBaseException
     */
    @Override
    public void resumeProcess(String executionId) throws VciBaseException {
        WebUtil.alertNotNull(executionId, "流程执行实例的主键");
@@ -674,7 +682,11 @@
        }
        callBefore(null,"resume","",currentTime);
        lifeCycleService.transCboStatus(needUpdateCbos, "Executing");
        try {
            lifeCycleService.transCboStatus(needUpdateCbos, "Executing");
        } catch (Exception e) {
            throw new VciBaseException("恢复流程时,批量跃迁生命周期状态失败!", new Object[]{}, e);
        }
        callAfter(null,boService.cbos2Map(workItemCbos),null,currentTime);
    }
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WebProcessDefineServiceImpl.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebProcessDefineServiceImpl.java ÐÞ¸Ä
@@ -1,10 +1,10 @@
package com.vci.web.service.impl;
import com.vci.constant.FileTypeConstants;
import com.vci.constant.WFVariablesKeyConstant;
import com.vci.corba.omd.data.LinkObject;
import com.vci.dto.ProcessTemplateVO;
import com.vci.frameworkcore.compatibility.OrgDeptQueryServiceI;
import com.vci.frameworkcore.compatibility.SmRoleQueryServiceI;
import com.vci.frameworkcore.compatibility.SmUserQueryServiceI;
import com.vci.model.WFProcessClassifyDO;
import com.vci.pagemodel.*;
import com.vci.starter.web.enumpck.DataSecretEnum;
import com.vci.starter.web.enumpck.UserSecretEnum;
@@ -13,13 +13,9 @@
import com.vci.starter.web.util.Md5;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.constant.FileTypeConstants;
import com.vci.constant.WFVariablesKeyConstant;
import com.vci.web.dao.WebProcessDaoI;
import com.vci.model.WFProcessClassifyDO;
import com.vci.web.properties.WebProperties;
import com.vci.web.service.*;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
import org.dom4j.Document;
@@ -49,17 +45,9 @@
    
    @Autowired
    private WebProcessDaoI processDao;
    @Autowired
    private WebProperties webProperties;
    @Autowired
    private WebProcessCommandServiceI proCmdService;
    @Autowired
    private PlatformClientUtil platformClientUtil;
    /**
     * ä¸šåŠ¡æ•°æ®æœåŠ¡
@@ -67,16 +55,18 @@
    @Autowired
    private WebBoServiceI boService;
    /**
     * è§’色服务
     */
    @Autowired
    private SmRoleQueryServiceI roleQueryService;
    @Autowired
    private OrgDeptQueryServiceI deptQueryServiceI;
    @Autowired
    private SmUserQueryServiceI userQueryServiceI;
    @Autowired
    private WebSecretServiceI secretService;
@@ -85,11 +75,6 @@
     */
    @Autowired
    private VciFileObjectServiceI fileObjectService;
    @Autowired
    private OsEnumServiceI enumService;
    
    private final String msgCodePrefix = "com.vci.web.flow.";
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WebPwdStrategyQueryServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,230 @@
package com.vci.web.service.impl;
import com.vci.corba.common.PLException;
import com.vci.corba.omd.data.BusinessObject;
import com.vci.model.SmPasswordStrategyDO;
import com.vci.omd.utils.ObjectTool;
import com.vci.pagemodel.SmPasswordStrategyVO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.util.BeanUtilForVCI;
import com.vci.starter.web.util.Lcm.Func;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.service.SmUserQueryServiceI;
import com.vci.web.service.WebBoServiceI;
import com.vci.web.service.WebPwdStrategyQueryServiceI;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import static com.vci.constant.FrameWorkBusLangCodeConstant.DATA_OID_NOT_EXIST;
/**
 * @Description å¯†ç ç­–略查询
 * @Author dangsn
 * @Date 2024/11/29 11:23
 */
@Service
public class WebPwdStrategyQueryServiceImpl implements WebPwdStrategyQueryServiceI {
    /**
     * æ—¥å¿—
     */
    private Logger logger = LoggerFactory.getLogger(getClass());
    /**
     * å¹³å°è°ƒç”¨å®¢æˆ·ç«¯
     */
    @Autowired
    private PlatformClientUtil platformClientUtil;
    /**
     * ä¸šåŠ¡æ•°æ®æœåŠ¡
     */
    @Autowired
    private WebBoServiceI boService;
    /**
     * ç”¨æˆ·æŸ¥è¯¢æœåŠ¡
     */
    @Autowired
    private SmUserQueryServiceI smUserQueryService;
    /**
     * èŽ·å–é»˜è®¤å¯†ç ç­–ç•¥
     * @return
     */
    public SmPasswordStrategyVO getPasswordStrategyVOByDefault(){
        //获取默认的
        VciQueryWrapperForDO queryWrapperForDO = new VciQueryWrapperForDO(null, SmPasswordStrategyDO.class);
        queryWrapperForDO.eq("plisdefault","1");
        List<BusinessObject> cboList = boService.queryBySql(queryWrapperForDO.getSelectFieldSql() + " from plpasswordstrategy " +
                queryWrapperForDO.getTableNick() + queryWrapperForDO.getLinkTableSql() +
                (StringUtils.isBlank(queryWrapperForDO.getWhereSql()) ? "" : (" where " + queryWrapperForDO.getWhereSql())), null);
        if(!CollectionUtils.isEmpty(cboList)){
            SmPasswordStrategyDO passwordStrategyDO = new SmPasswordStrategyDO();
            WebUtil.copyValueToObjectFromCbos(cboList.get(0),passwordStrategyDO);
            return pwdStrategyDO2VO(passwordStrategyDO);
        }
        return null;
    }
    /**
     * å¯†ç ç­–ç•¥do对象转vo对象
     * @param smPasswordStrategyDO
     * @return
     */
    private SmPasswordStrategyVO pwdStrategyDO2VO(SmPasswordStrategyDO smPasswordStrategyDO){
        SmPasswordStrategyVO passwordStrategyVO = new SmPasswordStrategyVO();
        BeanUtilForVCI.convert(smPasswordStrategyDO,passwordStrategyVO);
        return passwordStrategyVO;
    }
    /**
     * æ ¹æ®ç”¨æˆ·çš„主键,获取用户的密码安全策略
     * @param userOid ç”¨æˆ·çš„主键
     * @return å¯†ç å®‰å…¨ç­–略的显示对象,如果不存在则会返回Null
     * @throws VciBaseException å‚数为空或者数据库查询出错的时候会抛出异常
     */
    @Override
    public SmPasswordStrategyVO getPasswordStrategyVOByUserOid(String userOid) throws PLException {
        WebUtil.alertNotNull(userOid,"用户的主键");
        if(!smUserQueryService.checkUserExist(null,userOid)){
            throw new VciBaseException(DATA_OID_NOT_EXIST);
        }
        String sql = "select plpasswordstrategyuid,pluseruid from pluserpasswordstrategy where pluseruid = '"+ userOid +"'";
        List<BusinessObject> cbos = boService.queryBySql(sql, null);
        if(Func.isNotEmpty(cbos)){
            return getPasswordStrategyVOByOid(ObjectTool.getNewBOAttributeValue(cbos.get(0), "plpasswordstrategyuid"));
        }
        return null;
    }
    /**
     * æ‰¹é‡æ ¹æ®ç”¨æˆ·çš„主键来获取密码策略
     * @param userOidCollection ç”¨æˆ·ä¸»é”®é›†åˆ
     * @return å¯†ç ç­–略的显示对象,key是用户主键,value是这个用户关联的密码策略
     */
    @Override
    public Map<String, SmPasswordStrategyVO> batchSmPwdStrategyByUserOids(Collection<String> userOidCollection) {
        if(CollectionUtils.isEmpty(userOidCollection)){
            return new HashMap<>();
        }
        Map<String,SmPasswordStrategyVO> smPasswordStrategyVOMap = new HashMap<>();
        Map<String,String> userPasswordStrategyVOMap = new HashMap<>();
        Map<String/*用户id*/, SmPasswordStrategyVO/*密码策略*/> returnMap = new HashMap<>();
        WebUtil.switchCollectionForOracleIn(userOidCollection).stream().forEach(userOids->{
            //查询密码策略关联信息,key为用户oid:value为密码策略oid
            Map<String, String> userPwdStrategyMap = mapUserPwdStrategy(userOids);
            userPasswordStrategyVOMap.putAll(userPwdStrategyMap);
            //查询密码策略,key为密码策略主键:value为密码策略
            smPasswordStrategyVOMap.putAll(mapPasswordStrategyVOMapByOid(userPwdStrategyMap.values()));
        });
        //查询默认的密码策略
        SmPasswordStrategyVO passwordStrategyVOByDefault = getPasswordStrategyVOByDefault();
        //循环用户id,查询是否有符合条件的oid
        userOidCollection.stream().forEach(oid->{
            SmPasswordStrategyVO smPasswordStrategyVO;
            //通过用户oid没获取到密码策略oid,说明没有给当前用户设置策略,直接返默认的密码策略
            String pwdStrategyId = userPasswordStrategyVOMap.get(oid);
            if(Func.isNotBlank(pwdStrategyId)){
                //通过密码策略oid去map中取密码策略
                smPasswordStrategyVO = smPasswordStrategyVOMap.get(pwdStrategyId);
            }else {
                smPasswordStrategyVO = passwordStrategyVOByDefault;
            }
            returnMap.put(oid,smPasswordStrategyVO);
        });
        return returnMap;
    }
    /**
     * æ ¹æ®ç”¨æˆ·ä¸»é”®æŸ¥è¯¢å¯†ç ç­–略关联表中的密码策略主键
     * @param userOids
     * @return key为用户oid:value为密码策略oid
     */
    private Map<String,String> mapUserPwdStrategy(Collection<String> userOids){
        Map<String,String> userPwdStrategyMap = new HashMap<>();
        WebUtil.switchCollectionForOracleIn(userOids).stream().forEach(userOidSplit->{
            //查关联表sql
            String sql = "select plpasswordstrategyuid,pluseruid from pluserpasswordstrategy where pluseruid in (" + WebUtil.toInSql(userOidSplit.toArray(new String[0])) + ")";
            List<BusinessObject> cbos = boService.queryBySql(sql, null);
            cbos.stream().forEach(cbo->{
                String pluseruid = ObjectTool.getNewBOAttributeValue(cbo, "pluseruid");
                String plpasswordstrategyuid = ObjectTool.getNewBOAttributeValue(cbo, "plpasswordstrategyuid");
                userPwdStrategyMap.put(pluseruid,plpasswordstrategyuid);
            });
        });
        return userPwdStrategyMap;
    }
    /**
     * æ ¹æ®ä¸»é”®æŸ¥è¯¢å¯†ç ç­–ç•¥map对象
     * @param oidList
     * @return key为密码策略主键 value为密码策略
     */
    @Override
    public Map<String, SmPasswordStrategyVO> mapPasswordStrategyVOMapByOid(Collection<String> oidList) {
        VciQueryWrapperForDO queryWrapperForDO = new VciQueryWrapperForDO(null, SmPasswordStrategyDO.class);
        queryWrapperForDO.in("oid",oidList.stream().collect(Collectors.joining(",")));
        List<BusinessObject> cboList = boService.queryBySql(queryWrapperForDO.getSelectFieldSql() + " from plpasswordstrategy " +
                queryWrapperForDO.getTableNick() + queryWrapperForDO.getLinkTableSql() +
                (StringUtils.isBlank(queryWrapperForDO.getWhereSql()) ? "" : (" where " + queryWrapperForDO.getWhereSql())), null);
        Map<String,SmPasswordStrategyVO> smPasswordStrategyVOMap = new HashMap<>();
        if(Func.isEmpty(cboList)){
            return new HashMap<>();
        }
        cboList.stream().forEach(item->{
            SmPasswordStrategyDO passwordStrategyDO = new SmPasswordStrategyDO();
            WebUtil.copyValueToObjectFromCbos(item,passwordStrategyDO);
            SmPasswordStrategyVO passwordStrategyVO = new SmPasswordStrategyVO();
            BeanUtilForVCI.convert(passwordStrategyDO,passwordStrategyVO);
            smPasswordStrategyVOMap.put(passwordStrategyVO.getOid(),passwordStrategyVO);
        });
        return smPasswordStrategyVOMap;
    }
    /**
     * ä½¿ç”¨ä¸»é”®èŽ·å–å¯†ç ç­–ç•¥
     * @param oid ä¸»é”®
     * @return å¯†ç ç­–略显示对象
     */
    public SmPasswordStrategyVO getPasswordStrategyVOByOid(String oid){
        VciQueryWrapperForDO queryWrapperForDO = new VciQueryWrapperForDO(null, SmPasswordStrategyDO.class);
        queryWrapperForDO.eq("oid",oid.trim());
        List<BusinessObject> cboList = boService.queryBySql(queryWrapperForDO.getSelectFieldSql() + " from plpasswordstrategy " +
                queryWrapperForDO.getTableNick() + queryWrapperForDO.getLinkTableSql() +
                (StringUtils.isBlank(queryWrapperForDO.getWhereSql()) ? "" : (" where " + queryWrapperForDO.getWhereSql())), null);
        if(!CollectionUtils.isEmpty(cboList)){
            SmPasswordStrategyDO passwordStrategyDO = new SmPasswordStrategyDO();
            WebUtil.copyValueToObjectFromCbos(cboList.get(0),passwordStrategyDO);
            SmPasswordStrategyVO passwordStrategyVO = new SmPasswordStrategyVO();
            BeanUtilForVCI.convert(passwordStrategyDO,passwordStrategyVO);
            return passwordStrategyVO;
        }else{
            //获取默认的
            queryWrapperForDO = new VciQueryWrapperForDO(null, SmPasswordStrategyDO.class);
            queryWrapperForDO.eq("plisdefault","1");
            cboList = boService.queryBySql(queryWrapperForDO.getSelectFieldSql() + " from plpasswordstrategy " +
                    queryWrapperForDO.getTableNick() + queryWrapperForDO.getLinkTableSql() +
                    (StringUtils.isBlank(queryWrapperForDO.getWhereSql()) ? "" : (" where " + queryWrapperForDO.getWhereSql())), null);
            if(!CollectionUtils.isEmpty(cboList)){
                SmPasswordStrategyDO passwordStrategyDO = new SmPasswordStrategyDO();
                WebUtil.copyValueToObjectFromCbos(cboList.get(0),passwordStrategyDO);
                return pwdStrategyDO2VO(passwordStrategyDO);
            }
        }
        return null;
    }
}
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WebRevisionRuleServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,126 @@
package com.vci.web.service.impl;
import com.vci.corba.common.PLException;
import com.vci.corba.omd.vrm.VersionRule;
import com.vci.pagemodel.OsRevisionRuleVO;
import com.vci.starter.web.annotation.log.VciUnLog;
import com.vci.starter.web.util.VciDateUtil;
import com.vci.web.service.WebRevisionRuleServiceI;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
/**
 * @Description ç‰ˆæœ¬è§„则服务
 * @Author dangsn
 * @Date 2024/11/28 14:20
 */
@Service
public class WebRevisionRuleServiceImpl implements WebRevisionRuleServiceI {
    /**
     * æ—¥å¿—
     */
    private Logger logger = LoggerFactory.getLogger(getClass());
    /**
     * å¹³å°è°ƒç”¨å®¢æˆ·ç«¯
     */
    @Autowired
    private PlatformClientUtil platformClientUtil;
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„版本规则
     *
     * @return ç‰ˆæœ¬å¯¹è±¡
     */
    @Override
    public List<OsRevisionRuleVO> selectAllRevision() {
        try {
            return revisionRuleDO2VOs(Arrays.stream(platformClientUtil.getVersionService().getVersionRules()).collect(Collectors.toList()));
        } catch (PLException e) {
            throw WebUtil.getVciBaseException(e);
        }
    }
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„版本规则映射
     *
     * @return key æ˜¯ç‰ˆæœ¬çš„英文名称
     */
    @Override
    @VciUnLog
    public Map<String, OsRevisionRuleVO> selectAllRevisionMap() {
        return Optional.ofNullable(selectAllRevision()).orElseGet(()->new ArrayList<>()).stream().collect(Collectors.toMap(s->s.getId().toLowerCase(), t->t,(o1, o2)->o1));
    }
    /**
     * ä½¿ç”¨ç¼–号获取规则的值
     *
     * @param id ç¼–号
     * @return æ˜¾ç¤ºå¯¹è±¡
     */
    @Override
    public OsRevisionRuleVO getRevisionRuleById(String id) {
        if(StringUtils.isNotBlank(id)){
            return selectAllRevisionMap().getOrDefault(id.toLowerCase().trim(),null);
        }
        return null;
    }
    /**
     * æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     *
     * @param versionRules æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
     */
    @Override
    public List<OsRevisionRuleVO> revisionRuleDO2VOs(Collection<VersionRule> versionRules) {
        List<OsRevisionRuleVO> ruleVOS = new ArrayList<>();
        Optional.ofNullable(versionRules).orElseGet(()->new ArrayList<>()).stream().forEach(versionRule -> {
            OsRevisionRuleVO ruleVO = revisionRuleDO2VO(versionRule);
            ruleVOS.add(ruleVO);
        });
        return ruleVOS;
    }
    /**
     * æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     *
     * @param versionRule æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
     */
    @Override
    public OsRevisionRuleVO revisionRuleDO2VO(VersionRule versionRule) {
        OsRevisionRuleVO ruleVO = new OsRevisionRuleVO();
        if(versionRule !=null){
            ruleVO.setOid(versionRule.oid);
            ruleVO.setCreator(versionRule.creator);
            ruleVO.setLastModifier(versionRule.modifier);
            try {
                ruleVO.setCreateTime(VciDateUtil.long2Date(versionRule.createTime));
                ruleVO.setLastModifyTime(VciDateUtil.long2Date(versionRule.modifyTime));
                ruleVO.setTs(VciDateUtil.str2Date(versionRule.ts,VciDateUtil.DateTimeMillFormat));
            } catch (Exception e) {
                e.printStackTrace();
            }
            ruleVO.setDescription(versionRule.description);
            ruleVO.setId(versionRule.name);
            ruleVO.setName(versionRule.tag);
            ruleVO.setStepLength(WebUtil.getInt(versionRule.stepLength));
            ruleVO.setJumpCharacter(versionRule.jumpCharacter);
            ruleVO.setPrefixion(versionRule.prefixion);
            ruleVO.setSuffix(versionRule.suffix);
            ruleVO.setInitialValue(versionRule.initialValue);
            //associated暂时没有使用
        }
        return ruleVO;
    }
}
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WebSecretServiceImpl.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebSecretServiceImpl.java ÐÞ¸Ä
@@ -1,18 +1,18 @@
package com.vci.web.service.impl;
import com.vci.constant.EnumIdConstant;
import com.vci.corba.omd.data.BusinessObject;
import com.vci.frameworkcore.compatibility.SmUserQueryServiceI;
import com.vci.pagemodel.SmUserVO;
import com.vci.omd.utils.ObjectTool;
import com.vci.pagemodel.KeyValue;
import com.vci.pagemodel.SmUserVO;
import com.vci.starter.web.enumpck.DataSecretEnum;
import com.vci.starter.web.enumpck.UserSecretEnum;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.constant.EnumIdConstant;
import com.vci.pagemodel.KeyValue;
import com.vci.web.properties.WebProperties;
import com.vci.web.service.OsEnumServiceI;
import com.vci.web.service.SmUserQueryServiceI;
import com.vci.web.service.WebBoServiceI;
import com.vci.web.service.WebEnumServiceI;
import com.vci.web.service.WebSecretServiceI;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
@@ -43,7 +43,7 @@
     */
    @Autowired(required = false)
    @Lazy
    private OsEnumServiceI enumService;
    private WebEnumServiceI enumService;
    /**
     * ç”¨æˆ·æŸ¥è¯¢æœåŠ¡
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WebStatusServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,109 @@
package com.vci.web.service.impl;
import com.vci.corba.common.PLException;
import com.vci.corba.omd.stm.StatePool;
import com.vci.pagemodel.OsStatusVO;
import com.vci.starter.web.annotation.log.VciUnLog;
import com.vci.starter.web.util.VciDateUtil;
import com.vci.web.service.WebStatusServiceI;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
/**
 * @Description çŠ¶æ€æ± æœåŠ¡
 * @Author dangsn
 * @Date 2024/11/28 10:52
 */
@Service
public class WebStatusServiceImpl implements WebStatusServiceI {
    /**
     * æ—¥å¿—
     */
    private Logger logger = LoggerFactory.getLogger(getClass());
    /**
     * å¹³å°å®¢æˆ·ç«¯
     */
    @Resource
    private PlatformClientUtil platformClientUtil;
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„状态
     *
     * @return çŠ¶æ€çš„æ˜¾ç¤ºå¯¹è±¡
     */
    @Override
    @VciUnLog
    public List<OsStatusVO> selectAllStatus() {
        try {
            return statusDO2VOs(Arrays.stream(platformClientUtil.getStatePoolService().getStatePools()).collect(Collectors.toList()));
        } catch (PLException vciError) {
            throw WebUtil.getVciBaseException(vciError);
        }
    }
    /**
     * æŸ¥è¯¢å…¨éƒ¨çš„状态映射
     * @return key是状态的英文名称
     */
    @Override
    @VciUnLog
    public Map<String, OsStatusVO> selectAllStatusMap(){
        return Optional.ofNullable(selectAllStatus()).orElseGet(()->new ArrayList<>()).stream().collect(Collectors.toMap(s->s.getId(), t->t,(o1, o2)->o1));
    }
    /**
     * æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     *
     * @param statePool çŠ¶æ€æ± çš„æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
     */
    @Override
    public OsStatusVO statusDO2VO(StatePool statePool) {
        OsStatusVO statusVO = new OsStatusVO();
        if(statePool!=null){
            statusVO.setOid(statePool.oid);
            statusVO.setCreator(statePool.creator);
            statusVO.setImagePath(statePool.imagePath);
            statusVO.setLastModifier(statePool.modifier);
            try {
                statusVO.setCreateTime(new Date(statePool.createTime));
                statusVO.setLastModifyTime(new Date(statePool.modifyTime));
                statusVO.setTs(VciDateUtil.str2Date(statePool.ts,VciDateUtil.DateTimeMillFormat));
            } catch (Exception e) {
                e.printStackTrace();
            }
            statusVO.setDescription(statePool.description);
            statusVO.setId(statePool.name);
            statusVO.setName(statePool.tag);
        }
        return statusVO;
    }
    /**
     * æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     *
     * @param statePools çŠ¶æ€æ± çš„æ•°æ®å¯¹è±¡ é›†åˆ
     * @return æ˜¾ç¤ºå¯¹è±¡
     */
    @Override
    public List<OsStatusVO> statusDO2VOs(Collection<StatePool> statePools) {
        List<OsStatusVO> statusVOS = new ArrayList<>();
        if(!CollectionUtils.isEmpty(statePools)){
            statePools.stream().forEach(statePool -> {
                OsStatusVO statusVO = statusDO2VO(statePool);
                statusVOS.add(statusVO);
            });
        }
        return statusVOS;
    }
}
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/util/OsScanAnnotationTool.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/OsScanAnnotationTool.java ÐÞ¸Ä
@@ -1,5 +1,7 @@
package com.vci.web.util;
import com.vci.bo.BtmOrLinkProcessAttributeInfo;
import com.vci.constant.FieldConstant;
import com.vci.dto.*;
import com.vci.starter.web.annotation.*;
import com.vci.starter.web.enumpck.BaseEnum;
@@ -8,14 +10,10 @@
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.util.ApplicationContextProvider;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.bo.BtmOrLinkProcessAttributeInfo;
import com.vci.constant.FieldConstant;
import com.vci.web.service.WebBtmIOServiceI;
import org.apache.commons.lang3.StringUtils;
import org.reflections.Reflections;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
@@ -34,13 +32,6 @@
 */
@Component
public class OsScanAnnotationTool {
    /**
     * å¯¼å…¥çš„æœåŠ¡
     */
    @Autowired
    private WebBtmIOServiceI btmIOService;
    /**
     * æ—¥å¿—
@@ -292,7 +283,8 @@
        //链接类型
        btmTypeExportDTO.setLinkTypeDTOList(linkTypeDTOMap.values());
        //执行导入的
        btmIOService.importBtmTypes(btmTypeExportDTO);
        //先暂时给注释掉,等需要时,再放开
        //btmIOService.importBtmTypes(btmTypeExportDTO);
    }
    /**
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/util/PinyinCommon.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/PinyinCommon.java ÐÞ¸Ä
@@ -17,7 +17,7 @@
 * @version:  
   
 */
    public class PinyinCommon {
public class PinyinCommon {
    
    /**
     * å¾—到 å…¨æ‹¼
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/util/PlatformClientUtil.java
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/util/WebUtil.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/WebUtil.java ÐÞ¸Ä
@@ -78,10 +78,9 @@
                return errContent;
            }
            if (e instanceof PLException ) {
//                String error_code = ((VCIError) e).error_code;
//                String[] error_message = ((VCIError) e).error_message;
//                return MessageUtils.get(error_code, error_message);
                return null;
                String error_code = ((PLException) e).code;
                String[] error_message = ((PLException) e).messages;
                return MessageUtils.get(error_code, error_message);
            } else if(e instanceof VciBaseException || e.getClass().getSuperclass().equals(VciBaseException.class)){
                return LangBaseUtil.getErrorMsg(e);
            }else if (e instanceof VciException){
@@ -1266,24 +1265,24 @@
     * @param lo é“¾æŽ¥ç±»åž‹
     * @param map map
     */
    public static void copyValueToMapFromLos(com.vci.corba.omd.data.LinkObject lo,Map<String,String> map){
    public static void copyValueToMapFromLos(LinkObject lo,Map<String,String> map){
        if(lo!=null){
            WebLoServiceImpl.LO_BASE_FIELD_MAP.forEach((field,attr)->{
            WebLoServiceImpl.LO_BASE_FIELD_MAP.forEach((field, attr)->{
                map.put(attr.toLowerCase(),getValueFromFieldForCbo(getFieldForObject(field,lo),lo));
            });
            //先把所有的字段映射找到
            com.vci.corba.omd.data.AttributeValue[] newAList = lo.newAttrValList;
            com.vci.corba.omd.data.AttributeValue[] hisAList = lo.hisAttrValList;
            AttributeValue[] newAList = lo.newAttrValList;
            AttributeValue[] hisAList = lo.hisAttrValList;
            if(hisAList!=null&&hisAList.length>0){
                for(int i = 0 ; i < hisAList.length;i++){
                    com.vci.corba.omd.data.AttributeValue av = hisAList[i];
                    AttributeValue av = hisAList[i];
                    String attrName = av.attrName.toLowerCase();
                    map.put(attrName, av.attrVal);
                }
            }
            if(newAList!=null&&newAList.length>0){
                for(int i = 0 ; i < newAList.length;i++){
                    com.vci.corba.omd.data.AttributeValue av = newAList[i];
                    AttributeValue av = newAList[i];
                    String attrName = av.attrName.toLowerCase();
                    map.put(attrName, av.attrVal);
                }
@@ -1494,19 +1493,8 @@
     * @param e å¼‚常对象
     * @return base异常对象
     */
//    public static VciBaseException getVciBaseException(PLException e){
////        return new VciBaseException(e.error_code, e.error_message);
//        return null;
//    }
    /**
     * è½¬æ¢å¼‚常
     * @param e å¼‚常对象
     * @return base异常对象
     */
    public static VciBaseException getVciBaseException(PLException e){
        return new VciBaseException(e.code, new java.lang.String[]{e.getMessage()});
//        return null;
    }
    /**
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/util/file/VciZipUtil.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/file/VciZipUtil.java ÐÞ¸Ä
@@ -3,10 +3,6 @@
import com.vci.properties.VciFileTransProperties;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.util.LangBaseUtil;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.tools.zip.ZipEntry;
@@ -14,6 +10,10 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
/**
 * @author ludc
 * @date 2024/7/16 14:27
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/util/file/clientutil/VciFileDocClassifyClientUtil.java
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/util/file/clientutil/VciFileServerClientUtil.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/file/clientutil/VciFileServerClientUtil.java ÐÞ¸Ä
@@ -12,7 +12,7 @@
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.util.BeanUtil;
import com.vci.starter.web.util.BeanUtilForVCI;
import com.vci.starter.web.util.LangBaseUtil;
import com.vci.starter.web.util.LocalFileUtil;
import com.vci.starter.web.util.VciBaseUtil;
@@ -210,7 +210,7 @@
            while(var11.hasNext()) {
                File file = (File)var11.next();
                VciFileObjectDTO tempDTO = new VciFileObjectDTO();
                BeanUtil.convert(fileObjectDTO, tempDTO);
                BeanUtilForVCI.convert(fileObjectDTO, tempDTO);
                tempDTO.setFileExtension(this.getFileExtension(file.getName()));
                tempDTO.setName(this.getFileNameNoExtension(file.getName()));
                tempDTO.setId(this.getFileNameNoExtension(file.getName()));
@@ -771,13 +771,13 @@
    public VciFileObjectDTO fileObjectVO2DTO(VciFileObjectVO fileObjectVO) {
        VciFileObjectDTO fileObjectDTO = new VciFileObjectDTO();
        BeanUtil.convert(fileObjectVO, fileObjectDTO);
        BeanUtilForVCI.convert(fileObjectVO, fileObjectDTO);
        return fileObjectDTO;
    }
    public VciFileObjectDTO fileObjectVO2DTOForUpdate(VciFileObjectVO fileObjectVO) {
        VciFileObjectDTO fileObjectDTO = new VciFileObjectDTO();
        BeanUtil.convert(fileObjectVO, fileObjectDTO);
        BeanUtilForVCI.convert(fileObjectVO, fileObjectDTO);
        fileObjectDTO.setFileOid(fileObjectVO.getOid());
        fileObjectDTO.setUpdateFileFlag(true);
        return fileObjectDTO;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/resources/application-dev.yml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,102 @@
#####应用基本配置
app:
  name: web
  group: åŒ—京宏博远达科技有限公司
  description: å¹³å°B/S客户端
  private-token-key: vciweb20210212
###tomcat相关的配置
server:
  port: 12000
  servlet:
    context-path: /web
  tomcat:
    uri-encoding: UTF-8
###log4j2的配置,需要哪个包下的文件开启某个等级,就直接xxxxx: yy这样方式
logging:
  config: "classpath:log4j2-spring-dev.xml"
  level:
    com.vci: debug
  root: info
#缓存
spring:
  # redis配置
  redis:  ###### redis é…ç½®
    enabled: true  #true,启用redi,false不启用,默认false,配置文件没有这些默认不启用redis
    host: localhost  # ip地址
    database: 2  # redis数据库  0-15
    port: 6379  # ç«¯å£å·
    password: foobared # æ— å¯†ç ä¸å¡«
    timeout: 30000s   # è¿žæŽ¥è¶…æ—¶æ—¶é—´ ï¼ˆé»˜è®¤1天)
    lettuce:
      shutdown-timeout: 100ms # å…³é—­è¶…æ—¶æ—¶é—´ é»˜è®¤ 100ms
      pool: # lettuce è¿žæŽ¥æ± 
        max-active: 8 # è¿žæŽ¥æ± æœ€å¤§è¿žæŽ¥æ•° é»˜è®¤ 8(-1 ï¼šè¡¨ç¤ºæ²¡æœ‰é™åˆ¶ï¼‰
        max-wait: 60000ms # è¿žæŽ¥æ± æœ€å¤§é˜»å¡žç­‰å¾…æ—¶é—´ é»˜è®¤-1ms ï¼ˆ-1 :表示没有限制) è¿™é‡Œè®¾ç½®1分钟
        max-idle: 8 # æœ€å¤§ç©ºé—²è¿žæŽ¥  é»˜è®¤ 8
        min-idle: 0 # æœ€å°ç©ºé—²è¿žæŽ¥  é»˜è®¤ 0
  resources:
    chain:
      cache: false
      strategy:
        content:
          enabled: true
          paths: /**
  cache:
    type: ehcache
  servlet:
    multipart:
      enabled: true
      ###单个文件大小:50M
      max-file-size: 52428800
      ###总上传的文件大小:50M
      max-request-size: 52428800
  mvc:
    view:
      suffix: .html
#平台相关配置
plt:
  #人员信息录入时,是否需要密级字段
  export-secret-grade: false
###业务项目的配置,注意spring家族读取配置时,大写字母需要转换为-的方式,而feign需要大小写完全相同
session:
  session-info-storage-type: "database"
  database-platform: oracle
  clear-session-on-start: false
  ###是否开启用户在线检查
  checkSessionTimeout: false
  ###客户端判断超时轮询时间,单位为秒
  sessionInterval: 10
  ###客户端最大存在时间,单位为分钟
  sessionIdlTime: 30
  ###超时提醒时间,单位为分钟
  sessionRemind: 3
##web配置
vciweb:
    debug: true
#文件预览配置
file-preview:
  enabled: true
  preview-service-url: "http://dev.yunkeruida.top:28090/vciFilePreview/ajaxPreview.html"
  preview-system-key: plt2020
#feign地址
feign:
  #扫描工具服务
  scanServiceUrl: ""
  #平台服务
  pltServiceUrl: ""
  #文件服务
  fileServiceUrl: ""
#springmvc配置
vcispringmvc:
  enabled: true
  #不校验安全的链接地址
  un-check-urls:
  #不更新请求时间的链接地址
  un-storage-request-time-urls:
Source/plt-web/plt-web-parent/plt-web-permission/src/main/resources/application-prod.yml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,101 @@
#####应用基本配置
app:
  name: web
  group: åŒ—京宏博远达科技有限公司
  description: å¹³å°B/S客户端
  private-token-key: vciweb20210212
###tomcat相关的配置
server:
  port: 12000
  servlet:
    context-path: /web
  tomcat:
    uri-encoding: UTF-8
###log4j2的配置,需要哪个包下的文件开启某个等级,就直接xxxxx: yy这样方式
logging:
  config: "classpath:log4j2-spring-prod.xml"
  level:
    com.vci: debug
  root: info
#缓存
spring:
  # redis配置
  redis:  ###### redis é…ç½®
    enabled: true  #true,启用redi,false不启用,默认false,配置文件没有这些默认不启用redis
    host: localhost  # ip地址
    database: 2  # redis数据库  0-15
    port: 6379  # ç«¯å£å·
    password: foobared # æ— å¯†ç ä¸å¡«
    timeout: 30000s   # è¿žæŽ¥è¶…æ—¶æ—¶é—´ ï¼ˆé»˜è®¤1天)
    lettuce:
      shutdown-timeout: 100ms # å…³é—­è¶…æ—¶æ—¶é—´ é»˜è®¤ 100ms
      pool: # lettuce è¿žæŽ¥æ± 
        max-active: 8 # è¿žæŽ¥æ± æœ€å¤§è¿žæŽ¥æ•° é»˜è®¤ 8(-1 ï¼šè¡¨ç¤ºæ²¡æœ‰é™åˆ¶ï¼‰
        max-wait: 60000ms # è¿žæŽ¥æ± æœ€å¤§é˜»å¡žç­‰å¾…æ—¶é—´ é»˜è®¤-1ms ï¼ˆ-1 :表示没有限制) è¿™é‡Œè®¾ç½®1分钟
        max-idle: 8 # æœ€å¤§ç©ºé—²è¿žæŽ¥  é»˜è®¤ 8
        min-idle: 0 # æœ€å°ç©ºé—²è¿žæŽ¥  é»˜è®¤ 0
  resources:
    chain:
      cache: false
      strategy:
        content:
          enabled: true
          paths: /**
  cache:
    type: ehcache
  servlet:
    multipart:
      enabled: true
      ###单个文件大小:50M
      max-file-size: 52428800
      ###总上传的文件大小:50M
      max-request-size: 52428800
  mvc:
    view:
      suffix: .html
#平台相关配置
plt:
  #人员信息录入时,是否需要密级字段
  export-secret-grade: false
###业务项目的配置,注意spring家族读取配置时,大写字母需要转换为-的方式,而feign需要大小写完全相同
session:
  session-info-storage-type: "database"
  database-platform: oracle
  clear-session-on-start: false
  ###是否开启用户在线检查
  checkSessionTimeout: false
  ###客户端判断超时轮询时间,单位为秒
  sessionInterval: 10
  ###客户端最大存在时间,单位为分钟
  sessionIdlTime: 30
  ###超时提醒时间,单位为分钟
  sessionRemind: 3
##web配置
vciweb:
  debug: true
#文件预览配置
file-preview:
  enabled: true
  preview-service-url: "http://dev.yunkeruida.top:28090/vciFilePreview/ajaxPreview.html"
  preview-system-key: plt2020
#feign地址
feign:
  #扫描工具服务
  scanServiceUrl: ""
  #平台服务
  pltServiceUrl: ""
  #文件服务
  fileServiceUrl: ""
#springmvc配置
vcispringmvc:
  enabled: true
  #不校验安全的链接地址
  un-check-urls:
  #不更新请求时间的链接地址
  un-storage-request-time-urls:
Source/plt-web/plt-web-parent/plt-web-permission/src/main/resources/application.yml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
spring:
  profiles:
    active: dev
    include: web
  messages:
    encoding: UTF-8
    basename: i18n/messages
Source/plt-web/plt-web-parent/plt-web-permission/src/main/resources/codeTemplate/Controller.java.vm
Source/plt-web/plt-web-parent/plt-web-permission/src/main/resources/codeTemplate/DO.java.vm
Source/plt-web/plt-web-parent/plt-web-permission/src/main/resources/codeTemplate/DTO.java.vm
Source/plt-web/plt-web-parent/plt-web-permission/src/main/resources/codeTemplate/Mapper.impl.java.vm
Source/plt-web/plt-web-parent/plt-web-permission/src/main/resources/codeTemplate/Mapper.java.vm
Source/plt-web/plt-web-parent/plt-web-permission/src/main/resources/codeTemplate/Mapper.xml.vm
Source/plt-web/plt-web-parent/plt-web-permission/src/main/resources/codeTemplate/PO.java.vm
Source/plt-web/plt-web-parent/plt-web-permission/src/main/resources/codeTemplate/Service.impl.java.vm
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/resources/codeTemplate/Service.impl.java.vm ÐÞ¸Ä
@@ -8,6 +8,7 @@
#if(${lcStatusFullClassName} !="")
import ${lcStatusFullClassName};
#end
import com.vci.lcstatuspck.FrameworkDataLCStatus;
import com.vci.starter.revision.service.RevisionModelUtil;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.*;
@@ -24,7 +25,6 @@
import java.util.*;
import com.vci.web.service.WebBoServiceI;
import com.vci.frameworkcore.lcstatuspck.*;
import com.vci.pagemodel.BatchCBO;
import static com.vci.constant.FrameWorkLangCodeConstant.*;
import static com.vci.frameworkcore.constant.FrameWorkDefaultValueConstant.*;
Source/plt-web/plt-web-parent/plt-web-permission/src/main/resources/codeTemplate/Service.java.vm
Source/plt-web/plt-web-parent/plt-web-permission/src/main/resources/codeTemplate/VO.java.vm
Source/plt-web/plt-web-parent/plt-web-permission/src/main/resources/codeTemplate/ui.js.vm
Source/plt-web/plt-web-parent/plt-web-permission/src/main/resources/compatibility_field_map.yml
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/resources/compatibility_field_map.yml ÐÞ¸Ä
@@ -1,5 +1,5 @@
compatibility:
    user-table-field-map: {"oid":"pluid","id":"plusername","name":"pltruename","password":"plpassword","usertype":"plusertype","email":"plemail","description":"pldesc","creator":"plcreateuser","createtime":"plcreatetime","lastmodifier":"plupdateuser","lastmodifytime":"plupdatetime",secretgrade":"plsecretgrade"}
    user-table-field-map: {"oid":"pluid","id":"plusername","name":"pltruename","password":"plpassword","usertype":"plusertype","email":"plemail","description":"pldesc","creator":"plcreateuser","createtime":"plcreatetime","lastmodifier":"plupdateuser","lastmodifytime":"plupdatetime","secretgrade":"plsecretgrade"}
    role-table-field-map: {"oid:":"pluid","name":"plname","description":"pldesc","creator":"plcreateuser","createtime":"plcreatetime","lastmodifier":"plupdateuser","lastmodifytime":"plupdatetime"}
    dept-table-field-map: {"oid":"pluid","id":"plnum","name":"plname","pkfatherdepartment":"plparentuid","description":"pldesc","creator":"plcreateuser","createtime":"plcreatetime","lastmodifier":"plupdateuser","lastmodifytime":"plupdatetime"}
    function-table-field-map: {"oid":"ploid","id":"plmoduleno","name":"plname","logname":"plaliasname","parentfunctionid":"plparentid"}
Source/plt-web/plt-web-parent/plt-web-permission/src/main/resources/log4j2-spring-dev.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,91 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--Configuration后面的status,这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,你会看到log4j2内部各种详细输出-->
<!--monitorInterval:Log4j2 è‡ªåŠ¨æ£€æµ‹ä¿®æ”¹é…ç½®æ–‡ä»¶å’Œé‡æ–°é…ç½®æœ¬èº«ï¼Œè®¾ç½®é—´éš”ç§’æ•°-->
<configuration monitorInterval="5" status="debug">
    <!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
    <!--变量配置-->
    <Properties>
        <!-- æ ¼å¼åŒ–输出:%date表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %msg:日志消息,%n是换行符-->
        <!-- %logger{36} è¡¨ç¤º Logger åå­—最长36个字符 -->
<!--        <property name="LOG_PATTERN" value="%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" />-->
        <property name="LOG_PATTERN" value="[TRACEID:%X{logTraceId}] %d{HH:mm:ss.SSS} %-5level %logger{-1} - %msg%xEx%n"/>
        <!-- å®šä¹‰æ—¥å¿—存储的路径,不要配置相对路径 -->
        <property name="FILE_PATH" value="./logs/web" />
        <property name="FILE_NAME" value="web" />
    </Properties>
    <appenders>
        <console name="Console" target="SYSTEM_OUT">
            <!--输出日志的格式-->
            <PatternLayout pattern="${LOG_PATTERN}"/>
            <!--控制台只输出level及其以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
            <ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY"/>
        </console>
        <!--文件会打印出所有信息,这个log每次运行程序会自动清空,由append属性决定,适合临时测试用-->
        <File name="Filelog" fileName="${FILE_PATH}/web.log" append="false">
            <PatternLayout pattern="${LOG_PATTERN}"/>
        </File>
        <!-- è¿™ä¸ªä¼šæ‰“印出所有的info及以下级别的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->
        <RollingFile name="RollingFileInfo" fileName="${FILE_PATH}/info.log" filePattern="${FILE_PATH}/${FILE_NAME}-INFO-%d{yyyy-MM-dd HH-mm}_%i.log.gz">
            <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
            <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="${LOG_PATTERN}"/>
            <Policies>
                <!--interval属性用来指定多久滚动一次,默认是1 hour-->
                <TimeBasedTriggeringPolicy interval="1"/>
                <SizeBasedTriggeringPolicy size="10MB"/>
            </Policies>
            <!-- DefaultRolloverStrategy同一文件夹下15个文件开始覆盖 ä¸è®¾ç½®ï¼Œåˆ™é»˜è®¤ä¸ºæœ€å¤šåŒä¸€æ–‡ä»¶å¤¹ä¸‹7个文件开始覆盖-->
            <DefaultRolloverStrategy max="15"/>
        </RollingFile>
        <!-- è¿™ä¸ªä¼šæ‰“印出所有的warn及以下级别的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->
        <RollingFile name="RollingFileWarn" fileName="${FILE_PATH}/warn.log" filePattern="${FILE_PATH}/${FILE_NAME}-WARN-%d{yyyy-MM-dd HH-mm}_%i.log.gz">
            <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
            <ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="${LOG_PATTERN}"/>
            <Policies>
                <!--interval属性用来指定多久滚动一次,默认是1 hour-->
                <TimeBasedTriggeringPolicy interval="1"/>
                <SizeBasedTriggeringPolicy size="10MB"/>
            </Policies>
            <!-- DefaultRolloverStrategy同一文件夹下15个文件开始覆盖 ä¸è®¾ç½®ï¼Œåˆ™é»˜è®¤ä¸ºæœ€å¤šåŒä¸€æ–‡ä»¶å¤¹ä¸‹7个文件开始覆盖-->
            <DefaultRolloverStrategy max="15"/>
        </RollingFile>
        <!-- è¿™ä¸ªä¼šæ‰“印出所有的error及以下级别的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->
        <RollingFile name="RollingFileError" fileName="${FILE_PATH}/error.log" filePattern="${FILE_PATH}/${FILE_NAME}-ERROR-%d{yyyy-MM-dd HH-mm}_%i.log.gz">
            <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
            <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="${LOG_PATTERN}"/>
            <Policies>
                <!--interval属性用来指定多久滚动一次,默认是1 hour-->
                <TimeBasedTriggeringPolicy interval="1"/>
                <SizeBasedTriggeringPolicy size="10MB"/>
            </Policies>
            <!-- DefaultRolloverStrategy同一文件夹下15个文件开始覆盖 ä¸è®¾ç½®ï¼Œåˆ™é»˜è®¤ä¸ºæœ€å¤šåŒä¸€æ–‡ä»¶å¤¹ä¸‹7个文件开始覆盖-->
            <DefaultRolloverStrategy max="15"/>
        </RollingFile>
    </appenders>
    <!--Logger节点用来单独指定日志的形式,比如要为指定包下的class指定不同的日志级别等。-->
    <!--然后定义loggers,只有定义了logger并引入的appender,appender才会生效-->
    <loggers>
        <!--监控系统信息-->
        <!--若是additivity设为false,则 å­Logger åªä¼šåœ¨è‡ªå·±çš„appender里输出,而不会在 çˆ¶Logger çš„appender里输出。-->
        <Logger name="org.springframework" level="debug" additivity="false">
            <AppenderRef ref="Console"/>
        </Logger>
        <!--日志级别-->
        <root level="info">
            <appender-ref ref="Console"/>
            <appender-ref ref="Filelog"/>
            <appender-ref ref="RollingFileInfo"/>
            <appender-ref ref="RollingFileWarn"/>
            <appender-ref ref="RollingFileError"/>
        </root>
    </loggers>
</configuration>
Source/plt-web/plt-web-parent/plt-web-permission/src/main/resources/log4j2-spring-prod.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,95 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--Configuration后面的status,这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,你会看到log4j2内部各种详细输出-->
<!--monitorInterval:Log4j2 è‡ªåŠ¨æ£€æµ‹ä¿®æ”¹é…ç½®æ–‡ä»¶å’Œé‡æ–°é…ç½®æœ¬èº«ï¼Œè®¾ç½®é—´éš”ç§’æ•°-->
<configuration monitorInterval="5" status="debug">
    <!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
    <!--变量配置-->
    <Properties>
        <!-- æ ¼å¼åŒ–输出:%date表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %msg:日志消息,%n是换行符-->
        <!-- %logger{36} è¡¨ç¤º Logger åå­—最长36个字符 -->
<!--        <property name="LOG_PATTERN" value="%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" />-->
        <property name="LOG_PATTERN" value="[TRACEID:%X{logTraceId}] %d{HH:mm:ss.SSS} %-5level %class{-1}.%M()/%L - %msg%xEx%n"/>
        <!-- å®šä¹‰æ—¥å¿—存储的路径,不要配置相对路径 -->
        <property name="FILE_PATH" value="./../logs/web" />
        <property name="FILE_NAME" value="web" />
    </Properties>
    <appenders>
        <console name="Console" target="SYSTEM_OUT">
            <!--输出日志的格式-->
            <PatternLayout pattern="${LOG_PATTERN}"/>
            <!--控制台只输出level及其以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
            <ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY"/>
        </console>
        <!--文件会打印出所有信息,这个log每次运行程序会自动清空,由append属性决定,适合临时测试用-->
        <File name="Filelog" fileName="${FILE_PATH}/web.log" append="false">
            <PatternLayout pattern="${LOG_PATTERN}"/>
        </File>
        <!-- è¿™ä¸ªä¼šæ‰“印出所有的info及以下级别的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->
        <RollingFile name="RollingFileInfo" fileName="${FILE_PATH}/info.log" filePattern="${FILE_PATH}/${FILE_NAME}-INFO-%d{yyyy-MM-dd}_%i.log.gz">
            <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
            <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="${LOG_PATTERN}"/>
            <Policies>
                <!--interval属性用来指定多久滚动一次,默认是1 hour-->
                <TimeBasedTriggeringPolicy interval="1"/>
                <SizeBasedTriggeringPolicy size="10MB"/>
            </Policies>
            <!-- DefaultRolloverStrategy同一文件夹下15个文件开始覆盖 ä¸è®¾ç½®ï¼Œåˆ™é»˜è®¤ä¸ºæœ€å¤šåŒä¸€æ–‡ä»¶å¤¹ä¸‹7个文件开始覆盖-->
            <DefaultRolloverStrategy max="15"/>
        </RollingFile>
        <!-- è¿™ä¸ªä¼šæ‰“印出所有的warn及以下级别的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->
        <RollingFile name="RollingFileWarn" fileName="${FILE_PATH}/warn.log" filePattern="${FILE_PATH}/${FILE_NAME}-WARN-%d{yyyy-MM-dd}_%i.log.gz">
            <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
            <ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="${LOG_PATTERN}"/>
            <Policies>
                <!--interval属性用来指定多久滚动一次,默认是1 hour-->
                <TimeBasedTriggeringPolicy interval="1"/>
                <SizeBasedTriggeringPolicy size="10MB"/>
            </Policies>
            <!-- DefaultRolloverStrategy同一文件夹下15个文件开始覆盖 ä¸è®¾ç½®ï¼Œåˆ™é»˜è®¤ä¸ºæœ€å¤šåŒä¸€æ–‡ä»¶å¤¹ä¸‹7个文件开始覆盖-->
            <DefaultRolloverStrategy max="15"/>
        </RollingFile>
        <!-- è¿™ä¸ªä¼šæ‰“印出所有的error及以下级别的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->
        <RollingFile name="RollingFileError" fileName="${FILE_PATH}/error.log" filePattern="${FILE_PATH}/${FILE_NAME}-ERROR-%d{yyyy-MM-dd}_%i.log.gz">
            <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
            <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="${LOG_PATTERN}"/>
            <Policies>
                <!--interval属性用来指定多久滚动一次,默认是1 hour-->
                <TimeBasedTriggeringPolicy interval="1"/>
                <SizeBasedTriggeringPolicy size="10MB"/>
            </Policies>
            <!-- DefaultRolloverStrategy同一文件夹下15个文件开始覆盖 ä¸è®¾ç½®ï¼Œåˆ™é»˜è®¤ä¸ºæœ€å¤šåŒä¸€æ–‡ä»¶å¤¹ä¸‹7个文件开始覆盖-->
            <DefaultRolloverStrategy max="15"/>
        </RollingFile>
    </appenders>
    <!--Logger节点用来单独指定日志的形式,比如要为指定包下的class指定不同的日志级别等。-->
    <!--然后定义loggers,只有定义了logger并引入的appender,appender才会生效-->
    <loggers>
        <!--过滤掉spring和mybatis的一些无用的DEBUG信息-->
        <logger name="org.mybatis" level="info" additivity="false">
            <AppenderRef ref="Console"/>
        </logger>
        <!--监控系统信息-->
        <!--若是additivity设为false,则 å­Logger åªä¼šåœ¨è‡ªå·±çš„appender里输出,而不会在 çˆ¶Logger çš„appender里输出。-->
        <Logger name="org.springframework" level="info" additivity="false">
            <AppenderRef ref="Console"/>
        </Logger>
        <!--日志级别-->
        <root level="info">
            <appender-ref ref="Console"/>
            <appender-ref ref="Filelog"/>
            <appender-ref ref="RollingFileInfo"/>
            <appender-ref ref="RollingFileWarn"/>
            <appender-ref ref="RollingFileError"/>
        </root>
    </loggers>
</configuration>
Source/plt-web/plt-web-parent/plt-web/pom.xml
@@ -12,6 +12,7 @@
    <artifactId>plt-web</artifactId>
    <dependencies>
        <!--平台的包-->
        <dependency>
            <groupId>com.vci</groupId>
            <artifactId>plt-web-base</artifactId>
@@ -33,24 +34,20 @@
        <dependency>
            <groupId>com.vci</groupId>
            <artifactId>plt-web-api</artifactId>
            <version>2024.1-SNAPSHOT</version>
            <exclusions>
                <exclusion>
                    <groupId>com.vci</groupId>
                    <artifactId>plt-web-base</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.vci</groupId>
            <artifactId>plt-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>com.vci</groupId>
            <artifactId>plt-web-permission</artifactId>
        </dependency>
        <dependency>
            <groupId>eu.bitwalker</groupId>
            <artifactId>UserAgentUtils</artifactId>
            <version>1.20</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.github.jsqlparser/jsqlparser -->
        <dependency>
            <groupId>com.github.jsqlparser</groupId>
            <artifactId>jsqlparser</artifactId>
            <version>4.9</version>
        </dependency>
        <!--开启 cache ç¼“å­˜ -->
@@ -72,45 +69,11 @@
            <artifactId>xstream</artifactId>
            <version>1.4.10</version>
        </dependency>
        <dependency><!--代码生成器所需模板-->
            <artifactId>velocity</artifactId>
            <groupId>org.apache.velocity</groupId>
            <version>1.7</version>
        </dependency>
        <dependency>
            <groupId>com.vci</groupId>
            <artifactId>plt-starter</artifactId>
            <version>${platform.version}</version>
        </dependency>
        <dependency>
            <groupId>org.reflections</groupId>
            <artifactId>reflections</artifactId>
            <version>0.9.11</version>
        </dependency>
    </dependencies>
    <build>
        <finalName>plt-web</finalName>
        <plugins>
<!--            <plugin>-->
<!--                <groupId>org.apache.maven.plugins</groupId>-->
<!--                <artifactId>maven-jar-plugin</artifactId>-->
<!--                <configuration>-->
<!--                    <archive>-->
<!--                        <manifest>-->
<!--                            <addClasspath>false</addClasspath>-->
<!--                            <classpathPrefix>lib/</classpathPrefix>-->
<!--                            <useUniqueVersions>false</useUniqueVersions>-->
<!--                        </manifest>-->
<!--                    </archive>-->
<!--                    <excludes>-->
<!--                        <exclude>application-prod.yml</exclude>-->
<!--                        <exclude>application-db.yml</exclude>-->
<!--                        <exclude>properties/conf.properties</exclude>-->
<!--                    </excludes>-->
<!--                </configuration>-->
<!--            </plugin>-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
@@ -124,7 +87,6 @@
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/lib</outputDirectory>
<!--                            <excludeGroupIds>com.vci.platform</excludeGroupIds>-->
                        </configuration>
                    </execution>
                </executions>
@@ -147,35 +109,6 @@
                    </excludes>
                </configuration>
            </plugin>
            <!--            <plugin>-->
            <!--                <groupId>org.springframework.boot</groupId>-->
            <!--                <artifactId>spring-boot-maven-plugin</artifactId>-->
            <!--                <configuration>-->
            <!--                    &lt;!&ndash;重写包含依赖,包含不存在的依赖,jar里没有pom里的依赖&ndash;&gt;-->
            <!--                    <includes>-->
            <!--                        <include>-->
            <!--                            <groupId>null</groupId>-->
            <!--                            <artifactId>null</artifactId>-->
            <!--                        </include>-->
            <!--                    </includes>-->
            <!--                    <layout>ZIP</layout>-->
            <!--                    &lt;!&ndash;使用外部配置文件,jar包里没有资源文件&ndash;&gt;-->
            <!--                    <addResources>true</addResources>-->
            <!--                </configuration>-->
            <!--                <executions>-->
            <!--                    <execution>-->
            <!--                        <goals>-->
            <!--                            <goal>repackage</goal>-->
            <!--                        </goals>-->
            <!--                        <configuration>-->
            <!--                            &lt;!&ndash;配置jar包特殊标识 é…ç½®åŽï¼Œä¿ç•™åŽŸæ–‡ä»¶ï¼Œç”Ÿæˆæ–°æ–‡ä»¶ *-run.jar &ndash;&gt;-->
            <!--                            &lt;!&ndash;配置jar包特殊标识 ä¸é…ç½®ï¼ŒåŽŸæ–‡ä»¶å‘½åä¸º *.jar.original,生成新文件 *.jar &ndash;&gt;-->
            <!--                            &lt;!&ndash;<classifier>run</classifier>&ndash;&gt;-->
            <!--                        </configuration>-->
            <!--                    </execution>-->
            <!--                </executions>-->
            <!--            </plugin>-->
        </plugins>
    </build>
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/enumpck/DataObjectEnum.java
ÎļþÒÑɾ³ý
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/test/DataTestController.java
ÎļþÒÑɾ³ý
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/HMSysModConfigController.java
@@ -5,11 +5,10 @@
import com.vci.corba.framework.data.FuncOperationInfo;
import com.vci.corba.framework.data.OperateInfo;
import com.vci.dto.RoleInfoDTO;
import com.vci.dto.RoleRightDTO;
import com.vci.dto.RoleRightParamDTO;
import com.vci.dto.RoleRightParamDTOS;
import com.vci.frameworkcore.compatibility.ISmFunctionQueryService;
import com.vci.frameworkcore.compatibility.SmHMSysModConfigServiceI;
import com.vci.web.service.ISmFunctionQueryService;
import com.vci.web.service.SmHMSysModConfigServiceI;
import com.vci.pagemodel.AppConfigDetailInfoVO;
import com.vci.pagemodel.ExpExcelConditionVO;
import com.vci.pagemodel.MenuVO;
@@ -18,7 +17,7 @@
import com.vci.starter.web.util.ControllerUtil;
import com.vci.starter.web.util.LocalFileUtil;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.util.Func;
import com.vci.starter.web.util.Lcm.Func;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/LogBasicController.java
@@ -7,7 +7,7 @@
import com.vci.starter.web.util.ControllerUtil;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.service.LogBasicServiceI;
import com.vci.web.util.Func;
import com.vci.starter.web.util.Lcm.Func;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/LoginController.java
ÎļþÒÑɾ³ý
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsAttributeController.java
@@ -2,7 +2,6 @@
import com.vci.constant.FrameWorkLangCodeConstant;
import com.vci.dto.OsAttributeDTO;
import com.vci.starter.web.annotation.controller.VciUnCheckRight;
import com.vci.starter.web.annotation.log.VciBusinessLog;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseQueryObject;
@@ -14,7 +13,7 @@
import com.vci.starter.web.util.LocalFileUtil;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.service.OsAttributeServiceI;
import com.vci.web.util.Func;
import com.vci.starter.web.util.Lcm.Func;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsDataAuthController.java
@@ -2,23 +2,15 @@
import com.vci.corba.common.PLException;
import com.vci.corba.framework.data.GrandValue;
import com.vci.dto.OsPvolumeDTO;
import com.vci.starter.web.annotation.log.VciBusinessLog;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.util.ControllerUtil;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.service.OsDataAuthServiceI;
import com.vci.web.util.Func;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
/**
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsLifeCycleController.java
@@ -2,7 +2,6 @@
import com.vci.constant.FrameWorkLangCodeConstant;
import com.vci.dto.OsLifeCycleDTO;
import com.vci.starter.web.annotation.controller.VciUnCheckRight;
import com.vci.starter.web.annotation.log.VciBusinessLog;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseQueryObject;
@@ -14,7 +13,7 @@
import com.vci.starter.web.util.LocalFileUtil;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.service.OsLifeCycleServiceI;
import com.vci.web.util.Func;
import com.vci.starter.web.util.Lcm.Func;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsLinkTypeController.java
@@ -1,17 +1,14 @@
package com.vci.web.controller;
import com.vci.constant.FrameWorkLangCodeConstant;
import com.vci.corba.common.PLException;
import com.vci.corba.omd.ltm.LinkType;
import com.vci.pagemodel.OsBtmTypeAttributeVO;
import com.vci.pagemodel.OsLinkTypeAttributeVO;
import com.vci.pagemodel.OsLinkTypeVO;
import com.vci.starter.web.annotation.controller.VciUnCheckRight;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseQueryObject;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.util.LocalFileUtil;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.service.OsLinkTypeServiceI;
import org.apache.commons.lang3.StringUtils;
@@ -23,13 +20,10 @@
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.text.ParseException;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsLoginController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,186 @@
package com.vci.web.controller;
import com.vci.bo.LoginResultBO;
import com.vci.dto.LoginUserDTO;
import com.vci.starter.web.annotation.controller.VciUnCheckRight;
import com.vci.starter.web.annotation.log.VciBusinessLog;
import com.vci.starter.web.constant.TokenKeyConstant;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.pagemodel.RequestClientInfo;
import com.vci.starter.web.pagemodel.SessionInfo;
import com.vci.starter.web.util.MessageUtils;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.util.WebThreadLocalUtil;
import com.vci.web.service.OsLoginServiceI;
import eu.bitwalker.useragentutils.*;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import java.util.Locale;
import java.util.Map;
/**
 * ç™»å½•控制器
 * @author weidy
 * @date 2021-1-28
 */
@Controller
@RequestMapping("/framework/loginController")
@VciBusinessLog(modelName="登录服务")
public class OsLoginController {
    /**
     * ç™»å½•服务
     */
    @Autowired
    private OsLoginServiceI loginService;
    /**
     * æ—¥å¿—
     */
    private Logger logger = LoggerFactory.getLogger(getClass());
    /**
     * ç™»å½•,这个地方主要是为了登录后单独的业务
     * @param userDTO ç”¨æˆ·çš„对象
     * @param request è¯·æ±‚对象
     * @param clientInfo å®¢æˆ·ç«¯çš„信息
     * @return æ‰§è¡Œç»“æžœ
     */
    @VciBusinessLog(operateName="登录")
    @PostMapping(value = "/login")
    @ResponseBody
    @VciUnCheckRight()
    public BaseResult login(LoginUserDTO userDTO, HttpServletRequest request, RequestClientInfo clientInfo){
        VciBaseUtil.alertNotNull(userDTO,"用户对象",clientInfo,"请求客户端信息");
        try {
            wrapperBrowserInfo(clientInfo,request);
            LoginResultBO loginResultBO = loginService.login(userDTO,clientInfo);
            if(loginResultBO.isSuccess()){
                return BaseResult.success(loginResultBO);
            }else{
                BaseResult result = BaseResult.fail(loginResultBO.getFailMsg());
                result.setCode(200);//状态码不是200前端无法获取到obj中的信息
                if(StringUtils.isBlank(loginResultBO.getFailMsg())){
                    result.setMsg(MessageUtils.get(loginResultBO.getFailCode(),loginResultBO.getFailMsgArray()));
                }
                result.setObj(loginResultBO);
                return result;
            }
        }catch (Exception e){
            e.printStackTrace();
            String msg = "调用登录方法时出现错误,原因:"+VciBaseUtil.getExceptionMessage(e);
            logger.error(msg);
            return BaseResult.fail(msg);
        }
    }
    /**
     * èŽ·å–å®¢æˆ·ç«¯è¯·æ±‚ä¿¡æ¯,为了隔绝在server层使用request
     * @param request è¯·æ±‚对象
     * @param clientInfo å®¢æˆ·ç«¯ä¿¡æ¯
     */
    private void wrapperBrowserInfo(RequestClientInfo clientInfo,HttpServletRequest request) {
        UserAgent userAgent = UserAgent.parseUserAgentString(request.getHeader("User-Agent"));
        if(StringUtils.isBlank(clientInfo.getIpaddress())){
            //找IP地址
            clientInfo.setIpaddress(getIpAddressFromRequest(request));
        }
        if(userAgent !=null) {
            Browser browser = userAgent.getBrowser();
            OperatingSystem os = userAgent.getOperatingSystem();
            clientInfo.setOsversion(os != null ? os.getName() : "");
            clientInfo.setBrowser(browser != null ? browser.getName() : "IE");
            String version = "";
            if (browser != null) {
                Version version1 = browser.getVersion(request.getHeader("User-Agent"));
                if (version1 != null) {
                    version = version1.getVersion();
                }
            }
            clientInfo.setBrowserversion(version);
            if (os != null) {
                clientInfo.setRequestType(os.getDeviceType().getName());
                if (DeviceType.COMPUTER.getName().equals(clientInfo.getRequestType())) {
                    clientInfo.setRequestType("browser");
                }
            }
            Locale loc = Locale.getDefault();
            clientInfo.setCountry(loc.getCountry());
            clientInfo.setLanguage(loc.toLanguageTag());
            Map<String,String> map = System.getenv();
            clientInfo.setMachine(map.get("COMPUTERNAME"));
            clientInfo.setOsUser(map.get("USERNAME"));
        }
    }
    /**
     * ä»Žè¯·æ±‚中获取ip地址,为了隔绝在server层使用request
     * @param request è¯·æ±‚对象
     * @return ip地址,没有找到默认为127.0.0.1
     */
    private String getIpAddressFromRequest(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) {
            //0:0:0:0:0:0:0:1是本机在访问
            ip = "127.0.0.1";
        }
        return ip;
    }
    /**
     * èŽ·å–ç”¨æˆ·çš„ä¼šè¯ä¿¡æ¯
     * @return success为true表示获取成功,否则msg是错误信息,obj属性是获取的会话对象信息
     */
    @VciUnCheckRight
    @PostMapping("/getSessionInfo")
    @ResponseBody
    public BaseResult getSessionInfo(){
        BaseResult<SessionInfo> json = new BaseResult<>();
        SessionInfo sessionInfo = WebThreadLocalUtil.getCurrentUserSessionInfoInThread();
        if(sessionInfo != null){
            json = json.success(sessionInfo);
        }
        return json;
    }
    /**
     * æ‰§è¡Œé€€å‡º
     * @param request è¯·æ±‚对象
     * @return success为true表示退出成功,前端不需要判断结果
     */
    @VciUnCheckRight
    @PostMapping("/logout")
    @ResponseBody
    public BaseResult logout(HttpServletRequest request){
        String userToken = request.getHeader(TokenKeyConstant.USER_TOKEN_KEY);
        loginService.logout(userToken);
        return BaseResult.success();
    }
}
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsPvolumesController.java
@@ -1,26 +1,21 @@
package com.vci.web.controller;
import com.vci.corba.common.PLException;
import com.vci.corba.framework.data.PvolumeInfo;
import com.vci.dto.*;
import com.vci.starter.web.annotation.log.VciBusinessLog;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.util.ControllerUtil;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.service.OsActionServiceI;
import com.vci.web.service.OsPvolumesServiceI;
import com.vci.web.util.Func;
import com.vci.starter.web.util.Lcm.Func;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
/**
 * æ–‡ä»¶æŸœç®¡ç†çš„æŽ§åˆ¶å™¨
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsQueryTemplateController.java
@@ -10,7 +10,7 @@
import com.vci.starter.web.util.LocalFileUtil;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.service.OsQuereyTemplateServiceI;
import com.vci.web.util.Func;
import com.vci.starter.web.util.Lcm.Func;
import org.apache.commons.lang3.StringUtils;
import org.dom4j.DocumentException;
import org.slf4j.Logger;
@@ -24,7 +24,6 @@
import java.io.IOException;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsRevisionRuleController.java
@@ -2,8 +2,6 @@
import com.vci.constant.FrameWorkLangCodeConstant;
import com.vci.dto.OsRevisionRuleDTO;
import com.vci.pagemodel.OsRevisionRuleVO;
import com.vci.starter.web.annotation.controller.VciUnCheckRight;
import com.vci.starter.web.annotation.log.VciBusinessLog;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseResult;
@@ -11,7 +9,7 @@
import com.vci.starter.web.util.LocalFileUtil;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.service.OsRevisionRuleServiceI;
import com.vci.web.util.Func;
import com.vci.starter.web.util.Lcm.Func;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/SmFunctionController.java
@@ -1,15 +1,13 @@
package com.vci.web.controller;
import com.vci.corba.common.PLException;
import com.vci.frameworkcore.compatibility.ISmFunctionQueryService;
import com.vci.frameworkcore.enumpck.ResourceControlTypeEnum;
import com.vci.web.service.ISmFunctionQueryService;
import com.vci.web.enumpck.ResourceControlTypeEnum;
import com.vci.pagemodel.MenuVO;
import com.vci.pagemodel.SmFunctionVO;
import com.vci.starter.web.annotation.controller.VciUnCheckRight;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.*;
import com.vci.pagemodel.UIContentVO;
import com.vci.starter.web.util.VciBaseUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/SmPwdStrategyQueryController.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/controller/SmPwdStrategyQueryController.java ÐÞ¸Ä
@@ -1,9 +1,8 @@
package com.vci.frameworkcore.controller;
package com.vci.web.controller;
import com.vci.dto.SmPasswordStrategyDTO;
import com.vci.frameworkcore.compatibility.SmPwdStrategyQueryServiceI;
import com.vci.web.service.SmPwdStrategyQueryServiceI;
import com.vci.pagemodel.SmPasswordStrategyVO;
import com.vci.starter.web.annotation.controller.VciUnCheckRight;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseQueryObject;
import com.vci.starter.web.pagemodel.BaseResult;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/UIManagerController.java
@@ -20,7 +20,7 @@
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.service.OsBtmServiceI;
import com.vci.web.service.UIManagerServiceI;
import com.vci.web.util.Func;
import com.vci.starter.web.util.Lcm.Func;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -33,7 +33,6 @@
import java.io.IOException;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/VciOsStatusController.java
@@ -1,7 +1,6 @@
package com.vci.web.controller;
import com.vci.constant.FrameWorkLangCodeConstant;
import com.vci.dto.OsAttributeDTO;
import com.vci.starter.web.annotation.controller.VciUnCheckRight;
import com.vci.starter.web.annotation.log.VciBusinessLog;
import com.vci.starter.web.exception.VciBaseException;
@@ -15,7 +14,7 @@
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.service.OsLifeCycleServiceI;
import com.vci.web.service.OsStatusServiceI;
import com.vci.web.util.Func;
import com.vci.starter.web.util.Lcm.Func;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebBtmTypeController.java
@@ -1,11 +1,11 @@
package com.vci.web.controller;
import com.vci.corba.common.PLException;
import com.vci.corba.omd.btm.BizType;
import com.vci.corba.omd.ltm.LinkType;
import com.vci.dto.OsBtmTypeDTO;
import com.vci.model.IndexObject;
import com.vci.starter.web.annotation.controller.VciUnCheckRight;
import com.vci.pagemodel.OsBtmTypeAttributeVO;
import com.vci.pagemodel.OsBtmTypeVO;
import com.vci.pagemodel.OsERVO;
import com.vci.starter.web.annotation.log.VciBusinessLog;
import com.vci.starter.web.enumpck.BooleanEnum;
import com.vci.starter.web.exception.VciBaseException;
@@ -13,18 +13,14 @@
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.pagemodel.Tree;
import com.vci.starter.web.util.BeanUtil;
import com.vci.starter.web.util.BeanUtilForVCI;
import com.vci.starter.web.util.ControllerUtil;
import com.vci.starter.web.util.LangBaseUtil;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.pagemodel.OsBtmTypeAttributeVO;
import com.vci.pagemodel.OsBtmTypeVO;
import com.vci.pagemodel.OsERVO;
import com.vci.web.service.OsAttributeServiceI;
import com.vci.web.service.OsBtmServiceI;
import com.vci.web.service.OsLinkTypeServiceI;
import com.vci.web.service.WebBtmIOServiceI;
import feign.Param;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -41,7 +37,6 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import static com.vci.constant.FrameWorkBusLangCodeConstant.DATA_OID_NOT_EXIST;
@@ -480,7 +475,7 @@
            List<OsBtmTypeAttributeVO> finalBoAttrs = boAttrs;
            attributeService.getDefaultAttributeVOs().stream().forEach(attr->{
                OsBtmTypeAttributeVO attributeVO = new OsBtmTypeAttributeVO();
                BeanUtil.convert(attr,attributeVO);
                BeanUtilForVCI.convert(attr,attributeVO);
                attributeVO.setAttributeLength(attr.getAttrLength());
                attributeVO.setAttributeDataType(attr.getAttributeDataType());
                attributeVO.setReferBtmTypeId(attr.getBtmTypeId());
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebDataRightController.java
@@ -102,15 +102,13 @@
        if(StringUtils.isBlank(boData.getNameOid())){
            throw new PLException("没有获取到数据的项主键",new String[0]);
        }
        if(StringUtils.isBlank(boData.getBtmname())){
        if(StringUtils.isBlank(boData.getBtmName())){
            throw new PLException("没有获取到数据的业务类型",new String[0]);
        }
        cbo.oid = boData.getOid();
        cbo.revisionid = boData.getRevisionOid();
        cbo.nameoid = boData.getNameOid();
        cbo.btName = boData.getBtmname();
//        selectedObject.setMasterObject(cbo);
//        return selectedObject;
        cbo.btName = boData.getBtmName();
        return null;
    }
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebEnumController.java
@@ -2,7 +2,6 @@
import com.vci.constant.FrameWorkLangCodeConstant;
import com.vci.dto.OsEnumDTO;
import com.vci.starter.web.annotation.controller.VciUnCheckRight;
import com.vci.starter.web.annotation.log.VciBusinessLog;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseQueryObject;
@@ -12,11 +11,10 @@
import com.vci.pagemodel.OsEnumItemVO;
import com.vci.pagemodel.OsEnumVO;
import com.vci.starter.web.util.ControllerUtil;
import com.vci.starter.web.util.LangBaseUtil;
import com.vci.starter.web.util.LocalFileUtil;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.service.OsEnumServiceI;
import com.vci.web.util.Func;
import com.vci.starter.web.util.Lcm.Func;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -29,7 +27,6 @@
import java.io.IOException;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebOnlineUserController.java
ÎļþÒÑɾ³ý
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebPortalVIController.java
@@ -17,7 +17,7 @@
import com.vci.starter.web.util.LocalFileUtil;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.enumpck.ItemDblEnum;
import com.vci.web.enumpck.ItemTypeEnum;
import com.vci.enumpck.UI.ItemTypeEnum;
import com.vci.web.service.OsPortalVIServiceI;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebUIController.java
@@ -1,14 +1,12 @@
package com.vci.web.controller;
import com.vci.corba.common.PLException;
import com.vci.starter.web.annotation.controller.VciUnCheckRight;
import com.vci.starter.web.annotation.log.VciBusinessLog;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.pagemodel.UIContentVO;
import com.vci.pagemodel.UIFormDefineVO;
import com.vci.pagemodel.UITableDefineVO;
import com.vci.starter.web.annotation.controller.VciUnCheckRight;
import com.vci.starter.web.annotation.log.VciBusinessLog;
import com.vci.web.service.UIEngineServiceI;
import com.vci.web.service.impl.WebInitServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -29,12 +27,6 @@
     */
    @Autowired
    private UIEngineServiceI uiService;
    /**
     * åˆå§‹åŒ–
     */
    @Autowired
    private WebInitServiceImpl initService;
    /**
     * èŽ·å–UI上下文的定义
@@ -69,18 +61,6 @@
    @GetMapping("/getTableDefineById")
    public UITableDefineVO getTableDefineById(String btmType,String id) throws PLException {
        return uiService.getTableById(btmType,id);
    }
    /**
     * æ¸…除缓存
     * @return æ‰§è¡Œç»“æžœ
     */
    @GetMapping("/clearCache")
    public BaseResult clearCache(){
        //服务端那个,一言难尽
        initService.clearAllCache();
        initService.initServerCache();
        return BaseResult.success();
    }
    
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebUIDataController.java
@@ -12,9 +12,9 @@
import com.vci.pagemodel.ReferConfigVO;
import com.vci.pagemodel.UIFormDataVO;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.query.UIDataGridQuery;
import com.vci.web.query.UIFormQuery;
import com.vci.web.query.UITreeQuery;
import com.vci.query.UIDataGridQuery;
import com.vci.query.UIFormQuery;
import com.vci.query.UITreeQuery;
import com.vci.web.service.UIDataServiceI;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/enumpck/ActionEnum.java
@@ -1,6 +1,8 @@
package com.vci.web.enumpck;
import com.vci.pagemodel.KeyValue;
import com.vci.starter.web.enumpck.BaseEnum;
import java.util.ArrayList;
import java.util.List;
/**
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/enumpck/CombinationEnum.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/enumpck/CombinationEnum.java ÐÞ¸Ä
@@ -1,11 +1,8 @@
package com.vci.frameworkcore.enumpck;
//import com.vci.frameworkcore.constant.FrameWorkEnumConstant;
//import com.vci.starter.web.annotation.VciEnum;
package com.vci.web.enumpck;
import com.vci.starter.web.annotation.VciEnum;
import com.vci.starter.web.enumpck.BaseEnum;
import com.vci.web.util.Func;
import com.vci.starter.web.util.Lcm.Func;
import java.util.List;
import java.util.Objects;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/enumpck/ControlType.java
@@ -1,5 +1,8 @@
package com.vci.web.enumpck;
/**
 * è¾“入框枚举
 */
public enum ControlType {
    Text,
    TextBtn,
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/enumpck/ItemDblEnum.java
@@ -6,6 +6,9 @@
import java.util.ArrayList;
import java.util.List;
/**
 * çª—口枚举
 */
public enum ItemDblEnum implements BaseEnum {
    EDIT_PANEL("0","修改页面"),
    CUSTOM_PANEL("1","自定义页面"),
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/enumpck/ResourceControlTypeEnum.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/enumpck/ResourceControlTypeEnum.java ÐÞ¸Ä
@@ -1,7 +1,4 @@
package com.vci.frameworkcore.enumpck;
//import com.vci.frameworkcore.constant.FrameWorkEnumConstant;
//import com.vci.starter.web.annotation.VciEnum;
package com.vci.web.enumpck;
import com.vci.starter.web.annotation.VciEnum;
import com.vci.starter.web.enumpck.BaseEnum;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/initTask/OsInitTaskComponet.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,67 @@
package com.vci.web.initTask;
import com.alibaba.fastjson.JSONObject;
import com.vci.pagemodel.OsAttributeVO;
import com.vci.starter.web.util.LocalFileUtil;
import com.vci.web.service.OsAttributeServiceI;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.util.List;
import java.util.Locale;
import java.util.stream.Collectors;
/**
 * @Description å¹³å°åˆå§‹è¯ä»»åŠ¡
 * @Author dangsn
 * @Date 2024/11/28 15:38
 */
@Component
public class OsInitTaskComponet implements ApplicationRunner {
    /**
     * æ—¥å¿—对象
     */
    private Logger logger = LoggerFactory.getLogger(getClass());
    /**
     * å±žæ€§çš„æœåŠ¡
     */
    @Autowired
    private OsAttributeServiceI attributeService;
    @Override
    public void run(ApplicationArguments args) throws Exception {
        //初始化默认的属性
        initDefaultAttribute();
    }
    /**
     * åˆå§‹åŒ–默认的属性
     */
    private void initDefaultAttribute() {
        try {
            String attrJson = LocalFileUtil.readContentForFileInJar("DefaultAttribute.json");
            if (StringUtils.isBlank(attrJson)) {
                logger.info("没有读取到classpath*:DefaultAttribute.json文件的内容");
                return;
            }
            List<OsAttributeVO> attributeVOS = JSONObject.parseArray(attrJson, OsAttributeVO.class);
            if(!CollectionUtils.isEmpty(attributeVOS)){
                attributeService.setDefaultAttributeVOs(attributeVOS.stream().sorted(((o1, o2) -> o1.getId().compareTo(o2.getId()))).collect(Collectors.toList()));
                attributeService.setDefaultAttributeVOMap(attributeVOS.stream().collect(Collectors.toMap(s->s.getId().toLowerCase(Locale.ROOT), t->t)));
            }
            logger.info("读取默认属性完成");
        }catch (Throwable e){
            logger.error("读取classpath*:DefaultAttribute.json的内容并转换的时候出错了",e);
        }
    }
}
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/lifeCycle/ReleaseDataLCStatus.java
ÎļþÒÑɾ³ý
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/other/AllActionThreadLocal.java
@@ -1,6 +1,7 @@
package com.vci.web.other;
import com.vci.pagemodel.UIActionVO;
import java.util.Map;
public class AllActionThreadLocal {
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/other/BdSelectInputCharAspect.java
@@ -1,8 +1,8 @@
package com.vci.web.other;
import com.vci.web.annotation.BdSelectInput;
import com.vci.web.dao.BdSelectInputCharDaoI;
import com.vci.model.BdSelectInputCharDO;
import com.vci.starter.web.annotation.BdSelectInput;
import com.vci.web.dao.BdSelectInputCharDaoI;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
import org.aspectj.lang.JoinPoint;
@@ -15,7 +15,6 @@
import org.springframework.core.DefaultParameterNameDiscoverer;
import org.springframework.core.ParameterNameDiscoverer;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.lang.reflect.Method;
@@ -48,7 +47,7 @@
    /**
     * æ‰€æœ‰çš„BdSelectInput注解的
     */
    @Pointcut("execution(public * com.vci..*.*(..)) && @target(com.vci.web.annotation.BdSelectInput) ")
    @Pointcut("execution(public * com.vci..*.*(..)) && @target(com.vci.starter.web.annotation.BdSelectInput) ")
    public void selectInputChar(){
    }
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/other/BtmQTExportData.java
@@ -1,7 +1,6 @@
package com.vci.web.other;
import com.vci.corba.omd.btm.BizType;
import com.vci.corba.omd.ltm.LinkType;
import com.vci.corba.omd.qtm.QTD;
import com.vci.corba.omd.qtm.QTInfo;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/other/ExportBeans.java
@@ -1,12 +1,13 @@
package com.vci.web.other;
import com.vci.corba.portal.data.PLAction;
import com.vci.corba.portal.data.PLActionCls;
import com.vci.corba.portal.data.PLActionParam;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map.Entry;
import com.vci.corba.portal.data.PLAction;
import com.vci.corba.portal.data.PLActionCls;
import com.vci.corba.portal.data.PLActionParam;
public class ExportBeans implements Serializable{
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/other/FlowNoticeExample.java
@@ -1,9 +1,9 @@
package com.vci.web.other;
import com.vci.web.annotation.FlowNotifyAfter;
import com.vci.web.annotation.FlowNotifyBefore;
import com.vci.web.annotation.FlowNotifyWeb;
import com.vci.bo.FlowNoticeInfo;
import com.vci.starter.web.annotation.FlowNotifyAfter;
import com.vci.starter.web.annotation.FlowNotifyBefore;
import com.vci.starter.web.annotation.FlowNotifyWeb;
/**
 * æµç¨‹é€šçŸ¥çš„示例
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/other/LinkQTExportData.java
@@ -1,15 +1,12 @@
package com.vci.web.other;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
import com.vci.corba.omd.ltm.LinkType;
import com.vci.corba.omd.qtm.QTD;
import com.vci.corba.omd.qtm.QTInfo;
import com.vci.corba.common.PLException;
import com.vci.web.util.PlatformClientUtil;
import org.springframework.beans.factory.annotation.Autowired;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
/**
 * æŸ¥è¯¢æ¨¡æ¿å¯¼å‡ºæ•°æ®ç±»ï¼šå¯åºåˆ—化为模板文件,同时也兼导出数据控制类
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/other/WorkFlowEndedNotice.java
@@ -1,11 +1,11 @@
package com.vci.web.other;
import com.vci.bo.FlowNoticeInfo;
import com.vci.corba.common.PLException;
import com.vci.corba.omd.data.BusinessObject;
import com.vci.omd.utils.ObjectTool;
import com.vci.web.annotation.FlowNotifyBefore;
import com.vci.web.annotation.FlowNotifyWeb;
import com.vci.bo.FlowNoticeInfo;
import com.vci.starter.web.annotation.FlowNotifyBefore;
import com.vci.starter.web.annotation.FlowNotifyWeb;
import com.vci.web.service.WebBoServiceI;
import com.vci.web.util.PlatformClientUtil;
import org.apache.commons.lang3.StringUtils;
@@ -13,7 +13,9 @@
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * Description: æµç¨‹ç»ˆæ­¢æ—¶ï¼Œæ¢å¤CodeAllCode状态
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/BdSelectInputCharServiceI.java
@@ -1,15 +1,19 @@
package com.vci.web.service;
import com.vci.pagemodel.BdSelectInputCharVO;
import com.vci.dto.BdSelectInputCharDTO;
import com.vci.model.BdSelectInputCharDO;
import com.vci.pagemodel.BdSelectInputCharVO;
import com.vci.pagemodel.KeyValue;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.*;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.pagemodel.SessionInfo;
import java.util.*;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
 * å¯è¾“可选内容服务接口
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/ISmFunctionQueryService.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/ISmFunctionQueryService.java ÐÞ¸Ä
@@ -1,11 +1,10 @@
package com.vci.frameworkcore.compatibility;
package com.vci.web.service;
import com.vci.common.exception.VciException;
import com.vci.corba.common.PLException;
import com.vci.dto.RoleInfoDTO;
import com.vci.dto.RoleRightDTO;
import com.vci.dto.RoleRightParamDTO;
import com.vci.frameworkcore.enumpck.ResourceControlTypeEnum;
import com.vci.web.enumpck.ResourceControlTypeEnum;
import com.vci.pagemodel.MenuVO;
import com.vci.pagemodel.SmFunctionVO;
import com.vci.starter.web.exception.VciBaseException;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsActionServiceI.java
@@ -3,11 +3,9 @@
import com.vci.corba.common.PLException;
import com.vci.dto.*;
import com.vci.starter.web.pagemodel.BaseResult;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.List;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsAttributeServiceI.java
@@ -3,9 +3,8 @@
import com.vci.corba.common.PLException;
import com.vci.corba.omd.atm.AttributeDef;
import com.vci.dto.OsAttributeDTO;
import com.vci.starter.web.pagemodel.*;
import com.vci.pagemodel.OsAttributeVO;
import org.springframework.web.multipart.MultipartFile;
import com.vci.starter.web.pagemodel.*;
import java.io.File;
import java.util.Collection;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsBaseServiceI.java
@@ -1,6 +1,5 @@
package com.vci.web.service;
import com.vci.corba.common.PLException;
import com.vci.corba.omd.data.BusinessObject;
import com.vci.starter.web.pagemodel.BaseQueryObject;
import com.vci.starter.web.pagemodel.DataGrid;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsEnumServiceI.java
@@ -1,17 +1,17 @@
package com.vci.web.service;
import com.vci.corba.common.PLException;
import com.vci.corba.omd.etm.EnumType;
import com.vci.dto.OsEnumDTO;
import com.vci.pagemodel.KeyValue;
import com.vci.pagemodel.OsEnumItemVO;
import com.vci.pagemodel.OsEnumVO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.pagemodel.KeyValue;
import com.vci.pagemodel.OsEnumItemVO;
import com.vci.pagemodel.OsEnumVO;
import java.io.File;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsLifeCycleServiceI.java
@@ -36,7 +36,7 @@
     * @param targetStatus ç›®æ ‡çš„生命周期状态,不区分大小
     * @throws VciBaseException å¦‚果目标生命周期和当前生命周期状态没有连接线时抛出异常
     */
    void transStatus(com.vci.corba.omd.data.BusinessObject bo, String targetStatus) throws VciBaseException;
    void transStatus(BusinessObject bo, String targetStatus) throws VciBaseException;
    
    /**
     * æ‰¹é‡è·ƒè¿ç”Ÿå‘½å‘¨æœŸçŠ¶æ€ï¼Œè¿™äº›æ•°æ®ä¸­çš„å½“å‰çŠ¶æ€å¿…é¡»éƒ½æ˜¯ä¸€æ ·ã€‚æˆ–è€…æ˜¯å½“å‰çŠ¶æ€éƒ½å¯ä»¥è¿žæŽ¥åˆ°ç›®æ ‡çŠ¶æ€
@@ -44,7 +44,7 @@
     * @param targetStatus ç›®æ ‡çŠ¶æ€ï¼Œä¸åŒºåˆ†å¤§å°å†™
     * @throws VciBaseException è½¬æ¢ç”Ÿå‘½å‘¨æœŸå‡ºé”™çš„æ—¶å€™æŠ›å‡ºå¼‚常
     */
    void transStatus(List<com.vci.corba.omd.data.BusinessObject> boList, String targetStatus) throws VciBaseException;
    void transStatus(List<BusinessObject> boList, String targetStatus) throws VciBaseException;
    
    /**
     * æ‰¹é‡è·ƒè¿ç”Ÿå‘½å‘¨æœŸçŠ¶æ€ï¼Œè¿™äº›æ•°æ®ä¸­çš„å½“å‰çŠ¶æ€å¿…é¡»éƒ½æ˜¯ä¸€æ ·ï¼Œæˆ–è€…æ˜¯å½“å‰çŠ¶æ€éƒ½å¯ä»¥è¿žæŽ¥åˆ°ç›®æ ‡çŠ¶æ€
@@ -52,7 +52,7 @@
     * @param targetStatus  ç›®æ ‡çŠ¶æ€ï¼Œä¸åŒºåˆ†å¤§å°å†™
     * @throws VciBaseException è½¬æ¢ç”Ÿå‘½å‘¨æœŸå‡ºé”™çš„æ—¶å€™æŠ›å‡ºå¼‚常
     */
    void transStatus(com.vci.corba.omd.data.BusinessObject[] bos, String targetStatus) throws VciBaseException;
    void transStatus(BusinessObject[] bos, String targetStatus) throws VciBaseException;
    
    /**
     * æ‰¹é‡è·ƒè¿ç”Ÿå‘½å‘¨æœŸçŠ¶æ€ï¼Œè¿™äº›æ•°æ®ä¸­çš„å½“å‰çŠ¶æ€å¿…é¡»éƒ½æ˜¯ä¸€æ ·ï¼Œæˆ–è€…æ˜¯å½“å‰çŠ¶æ€éƒ½å¯ä»¥è¿žæŽ¥åˆ°ç›®æ ‡çŠ¶æ€
@@ -120,7 +120,7 @@
     * @param lineVO è·ƒè¿è·¯ç”±
     * @throws VciBaseException è·ƒè¿å‡ºé”™çš„æ˜¯ä¼šæŠ›å‡ºå¼‚常
     */
    void doTransVO(com.vci.corba.omd.data.BusinessObject obj, OsLifeCycleLineVO lineVO) throws VciBaseException;
    void doTransVO(BusinessObject obj, OsLifeCycleLineVO lineVO) throws VciBaseException;
    /**
     * æ‰¹é‡æ‰§è¡Œè·ƒè¿æ“ä½œï¼Œè¦æ±‚必须是同一个业务类型下的
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsLinkTypeServiceI.java
@@ -2,12 +2,12 @@
import com.vci.corba.common.PLException;
import com.vci.corba.omd.ltm.LinkType;
import com.vci.starter.web.pagemodel.BaseQueryObject;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.pagemodel.OsBtmTypeAttributeVO;
import com.vci.pagemodel.OsLinkTypeAttributeVO;
import com.vci.pagemodel.OsLinkTypeVO;
import com.vci.starter.web.pagemodel.BaseQueryObject;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.pagemodel.DataGrid;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsLoginServiceI.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/LoginServiceI.java ÐÞ¸Ä
@@ -1,17 +1,16 @@
package com.vci.web.service;
import com.vci.corba.common.PLException;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.RequestClientInfo;
import com.vci.bo.LoginResultBO;
import com.vci.dto.LoginUserDTO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.RequestClientInfo;
/**
 * ç™»å½•和退出服务
 * @author weidy
 * @date 2020/1/29
 */
public interface LoginServiceI {
public interface OsLoginServiceI {
    /**
     * ç™»å½•
@@ -21,15 +20,6 @@
     * @throws VciBaseException ç™»å½•失败的时候抛出异常
     */
    LoginResultBO login(LoginUserDTO userDTO, RequestClientInfo clientInfo) throws Exception;
    /**
     * å•点登录
     * @param userDTO ç™»å½•信息
     * @param clientInfo è¯·æ±‚的客户端的信息
     * @return ç™»å½•的结果对象
     * @throws VciBaseException ç™»å½•失败的时候抛出异常
     */
    LoginResultBO singleLogin(LoginUserDTO userDTO, RequestClientInfo clientInfo) throws Exception;
    /**
     * é€€å‡ºç³»ç»Ÿ
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsPortalVIServiceI.java
@@ -1,4 +1,5 @@
package com.vci.web.service;
import com.vci.corba.common.PLException;
import com.vci.corba.portal.data.PortalVI;
import com.vci.dto.ClonePortalVIDTOList;
@@ -9,10 +10,8 @@
import com.vci.starter.web.pagemodel.BaseQueryObject;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.pagemodel.DataGrid;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import java.util.Collection;
import java.util.List;
import java.util.Map;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsPvolumesServiceI.java
@@ -2,7 +2,7 @@
import com.vci.corba.common.PLException;
import com.vci.corba.framework.data.PvolumeInfo;
import com.vci.dto.*;
import com.vci.dto.OsPvolumeDTO;
import com.vci.starter.web.pagemodel.BaseResult;
import java.util.List;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsStatusServiceI.java
@@ -2,11 +2,11 @@
import com.vci.corba.common.PLException;
import com.vci.corba.omd.stm.StatePool;
import com.vci.dto.OsStatusDTO;
import com.vci.pagemodel.OsStatusVO;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.dto.OsStatusDTO;
import com.vci.pagemodel.OsStatusVO;
import java.io.File;
import java.util.Collection;
@@ -25,14 +25,14 @@
     * @param statePool çŠ¶æ€æ± çš„æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
     */
    OsStatusVO statusDO2VO(com.vci.corba.omd.stm.StatePool statePool);
    OsStatusVO statusDO2VO(StatePool statePool);
    /**
     * æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param statePools çŠ¶æ€æ± çš„æ•°æ®å¯¹è±¡ é›†åˆ
     * @return æ˜¾ç¤ºå¯¹è±¡
     */
    List<OsStatusVO> statusDO2VOs(Collection<com.vci.corba.omd.stm.StatePool> statePools);
    List<OsStatusVO> statusDO2VOs(Collection<StatePool> statePools);
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„状态
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/SmHMSysModConfigServiceI.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmHMSysModConfigServiceI.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.frameworkcore.compatibility;
package com.vci.web.service;
import com.vci.common.exception.VciException;
import com.vci.corba.common.PLException;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/SmPwdStrategyQueryServiceI.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmPwdStrategyQueryServiceI.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.frameworkcore.compatibility;
package com.vci.web.service;
import com.vci.dto.SmPasswordStrategyDTO;
import com.vci.corba.common.PLException;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIDataServiceI.java
@@ -6,16 +6,16 @@
import com.vci.corba.omd.data.RevisionDataInfo;
import com.vci.corba.omd.data.VersionDataInfo;
import com.vci.dto.*;
import com.vci.pagemodel.OsBtmTypeVO;
import com.vci.pagemodel.ReferConfigVO;
import com.vci.pagemodel.UIFormDataVO;
import com.vci.query.UIDataGridQuery;
import com.vci.query.UIFormQuery;
import com.vci.query.UITreeQuery;
import com.vci.starter.web.enumpck.VciChangeDocumentTypeEnum;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.model.BaseModel;
import com.vci.starter.web.pagemodel.*;
import com.vci.pagemodel.OsBtmTypeVO;
import com.vci.pagemodel.ReferConfigVO;
import com.vci.pagemodel.UIFormDataVO;
import com.vci.web.query.UIDataGridQuery;
import com.vci.web.query.UIFormQuery;
import com.vci.web.query.UITreeQuery;
import java.util.Collection;
import java.util.List;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIEngineServiceI.java
@@ -1,10 +1,10 @@
package com.vci.web.service;
import com.vci.corba.common.PLException;
import com.vci.corba.portal.data.PLAction;
import com.vci.corba.portal.data.PLTabButton;
import com.vci.corba.portal.data.PLUILayout;
import com.vci.corba.portal.data.PortalVI;
import com.vci.corba.portal.data.PLAction;
import com.vci.pagemodel.*;
import java.util.Collection;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIManagerServiceI.java
@@ -4,18 +4,20 @@
import com.vci.corba.omd.btm.BizType;
import com.vci.corba.omd.ltm.LinkType;
import com.vci.corba.omd.qtm.QTInfo;
import com.vci.corba.portal.data.PLUILayout;
import com.vci.corba.portal.data.PLTabPage;
import com.vci.corba.portal.data.PLUILayout;
import com.vci.corba.portal.data.PortalVI;
import com.vci.pagemodel.*;
import com.vci.dto.UIAuthorDTO;
import com.vci.pagemodel.PLDefinationVO;
import com.vci.pagemodel.PLTabButtonVO;
import com.vci.pagemodel.PLUILayoutCloneVO;
import com.vci.pagemodel.UICloneVO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseQueryObject;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.dto.UIAuthorDTO;
import com.vci.starter.web.pagemodel.Tree;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.util.List;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/WebBtmIOServiceI.java
@@ -1,8 +1,8 @@
package com.vci.web.service;
import com.vci.corba.omd.btm.BizType;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.dto.OsBtmTypeExportDTO;
import com.vci.starter.web.exception.VciBaseException;
import java.util.Collection;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/BdSelectInputCharServiceImpl.java
@@ -1,5 +1,10 @@
package com.vci.web.service.impl;
import com.vci.dto.BdSelectInputCharDTO;
import com.vci.model.BdSelectInputCharDO;
import com.vci.pagemodel.BatchCBO;
import com.vci.pagemodel.BdSelectInputCharVO;
import com.vci.pagemodel.KeyValue;
import com.vci.starter.revision.service.RevisionModelUtil;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseResult;
@@ -9,11 +14,6 @@
import com.vci.starter.web.util.BeanUtilForVCI;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.dao.BdSelectInputCharDaoI;
import com.vci.dto.BdSelectInputCharDTO;
import com.vci.model.BdSelectInputCharDO;
import com.vci.pagemodel.BatchCBO;
import com.vci.pagemodel.BdSelectInputCharVO;
import com.vci.pagemodel.KeyValue;
import com.vci.web.service.BdSelectInputCharServiceI;
import com.vci.web.service.WebBoServiceI;
import com.vci.web.util.WebUtil;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/LogBasicServiceImpl.java
@@ -1,4 +1,5 @@
package com.vci.web.service.impl;
import com.vci.client.common.objects.UserObject;
import com.vci.corba.common.PLException;
import com.vci.corba.common.data.UserEntityInfo;
@@ -9,7 +10,7 @@
import com.vci.dto.LogInfoDTO;
import com.vci.dto.LogPeriodInfoDTO;
import com.vci.dto.LogQueryCriteriaDTO;
import com.vci.frameworkcore.compatibility.SmUserQueryServiceI;
import com.vci.web.service.SmUserQueryServiceI;
import com.vci.starter.poi.bo.WriteExcelData;
import com.vci.starter.poi.bo.WriteExcelOption;
import com.vci.starter.poi.util.ExcelUtil;
@@ -18,8 +19,10 @@
import com.vci.starter.web.util.LangBaseUtil;
import com.vci.starter.web.util.LocalFileUtil;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.service.*;
import com.vci.web.util.*;
import com.vci.web.service.LogBasicServiceI;
import com.vci.starter.web.util.Lcm.Func;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsActionServiceImpl.java
@@ -1,4 +1,5 @@
package com.vci.web.service.impl;
import cn.hutool.core.io.FileUtil;
import com.vci.constant.FrameWorkLangCodeConstant;
import com.vci.corba.common.PLException;
@@ -19,8 +20,11 @@
import com.vci.web.enumpck.PlTypetypeEnum;
import com.vci.web.other.ExportActionLogBean;
import com.vci.web.other.ExportBeans;
import com.vci.web.service.*;
import com.vci.web.util.*;
import com.vci.web.service.OsActionServiceI;
import com.vci.starter.web.util.Lcm.Func;
import com.vci.web.util.PinyinCommon;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsAttributeServiceImpl.java
@@ -4,20 +4,17 @@
import com.vci.client.common.datatype.VTInteger;
import com.vci.client.common.datatype.VTLong;
import com.vci.client.common.datatype.VTString;
import com.vci.client.mw.ClientSessionUtility;
import com.vci.common.utility.ObjectUtility;
import com.vci.corba.common.PLException;
import com.vci.corba.omd.atm.AttributeDef;
import com.vci.corba.omd.ltm.LinkType;
import com.vci.corba.omd.vrm.VersionRule;
import com.vci.dto.OsAttributeDTO;
import com.vci.dto.OsEnumDTO;
import com.vci.dto.OsEnumItemDTO;
import com.vci.enumpck.UI.ItemTypeEnum;
import com.vci.model.OsAttributeDO;
import com.vci.omd.dataType.VTDataType;
import com.vci.omd.objects.OtherInfo;
import com.vci.pagemodel.*;
import com.vci.pagemodel.OsAttributeVO;
import com.vci.pagemodel.OsEnumVO;
import com.vci.po.OsAttributePO;
import com.vci.po.OsEnumPO;
import com.vci.starter.poi.bo.ReadExcelOption;
import com.vci.starter.poi.bo.WriteExcelData;
import com.vci.starter.poi.bo.WriteExcelOption;
@@ -28,15 +25,12 @@
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.*;
import com.vci.starter.web.util.*;
import com.vci.model.OsAttributeDO;
import com.vci.web.enumpck.ItemTypeEnum;
import com.vci.web.enumpck.PortalVITypeFlag;
import com.vci.web.properties.UsedNames;
import com.vci.web.service.OsAttributeServiceI;
import com.vci.web.service.OsBaseServiceI;
import com.vci.web.service.OsEnumServiceI;
import com.vci.web.service.OsLinkTypeServiceI;
import com.vci.web.util.Func;
import com.vci.starter.web.util.Lcm.Func;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
@@ -47,17 +41,12 @@
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile;
import javax.swing.*;
import java.awt.*;
import java.io.File;
import java.util.*;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
//import static com.vci.client.omd.attribpool.ui.VTDataTypePanel.*;
import static com.vci.omd.constants.AttributeConstants.*;
/**
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsBtmServiceImpl.java
@@ -6,10 +6,8 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import com.vci.client.common.oq.OQTool;
import com.vci.client.common.providers.ClientServiceProvider;
import com.vci.client.mw.ClientSessionUtility;
import com.vci.common.qt.object.Condition;
import com.vci.common.qt.object.QueryTemplate;
import com.vci.common.utility.ObjectUtility;
import com.vci.constant.FrameWorkLangCodeConstant;
import com.vci.corba.common.PLException;
import com.vci.corba.omd.atm.AttributeDef;
@@ -22,9 +20,7 @@
import com.vci.corba.omd.ltm.LinkType;
import com.vci.corba.omd.stm.StatePool;
import com.vci.corba.omd.vrm.VersionRule;
import com.vci.corba.portal.data.PLUILayout;
import com.vci.dto.OsBtmTypeDTO;
import com.vci.dto.OsBtmTypeLinkAttributesDTO;
import com.vci.model.IndexObject;
import com.vci.omd.constants.AttributeConstants;
import com.vci.omd.constants.FileObjectType;
@@ -32,14 +28,12 @@
import com.vci.omd.utils.ObjectTool;
import com.vci.pagemodel.*;
import com.vci.po.OsBtmTypePO;
import com.vci.po.OsLinkTypePO;
import com.vci.starter.poi.bo.ReadExcelOption;
import com.vci.starter.poi.bo.WriteExcelData;
import com.vci.starter.poi.bo.WriteExcelOption;
import com.vci.starter.poi.constant.ExcelLangCodeConstant;
import com.vci.starter.poi.util.ExcelUtil;
import com.vci.starter.web.annotation.log.VciUnLog;
import com.vci.starter.web.constant.QueryOptionConstant;
import com.vci.starter.web.enumpck.BooleanEnum;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseResult;
@@ -47,9 +41,12 @@
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.pagemodel.Tree;
import com.vci.starter.web.util.*;
import com.vci.starter.web.util.BeanUtil;
import com.vci.starter.web.util.Lcm.ConcurrentDateFormat;
import com.vci.starter.web.util.Lcm.DateUtil;
import com.vci.starter.web.util.Lcm.Func;
import com.vci.web.service.*;
import com.vci.web.util.*;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -60,7 +57,6 @@
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import javax.swing.*;
import java.io.File;
import java.io.IOException;
import java.text.ParseException;
@@ -257,7 +253,7 @@
            List<OsBtmTypeAttributeVO> btmTypeAttributeVOS = new ArrayList<>();
            Optional.ofNullable(attributeVOS).orElseGet(() -> new ArrayList<>()).stream().forEach(attributeVO -> {
                OsBtmTypeAttributeVO btmTypeAttributeVO = new OsBtmTypeAttributeVO();
                BeanUtil.convert(attributeVO, btmTypeAttributeVO);
                BeanUtilForVCI.convert(attributeVO, btmTypeAttributeVO);
                btmTypeAttributeVO.setPkBtmType(vo.getOid());
                btmTypeAttributeVO.setBtmTypeId(vo.getId());
                btmTypeAttributeVO.setAttributeDataType(attributeVO.getAttributeDataType());
@@ -451,7 +447,7 @@
            List<OsBtmTypeAttributeVO> finalAttrVOs = attrVOs;
            defaultAttributeVOs.stream().forEach(attr -> {
                OsBtmTypeAttributeVO attributeVO = new OsBtmTypeAttributeVO();
                BeanUtil.convert(attr, attributeVO);
                BeanUtilForVCI.convert(attr, attributeVO);
                attributeVO.setAttributeDataType(attr.getAttributeDataType());
                attributeVO.setAttributeLength(attr.getAttrLength());
                attributeVO.setReferBtmTypeId(attr.getBtmTypeId());
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsDataAuthServiceImpl.java
@@ -14,12 +14,10 @@
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.web.service.OsDataAuthServiceI;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
/**
 * æ•°æ®æƒé™çš„æŽ§åˆ¶å™¨
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsEnumServiceImpl.java
@@ -1,17 +1,18 @@
package com.vci.web.service.impl;
import com.alibaba.fastjson.JSON;
import com.vci.client.common.providers.ClientServiceProvider;
import com.vci.constant.EnumIdConstant;
import com.vci.corba.common.PLException;
import com.vci.corba.omd.atm.AttributeDef;
import com.vci.corba.omd.data.BusinessObject;
import com.vci.corba.omd.etm.EnumItem;
import com.vci.corba.omd.etm.EnumType;
import com.vci.dto.OsEnumDTO;
import com.vci.dto.OsEnumItemDTO;
import com.vci.omd.objects.OtherInfo;
import com.vci.omd.utils.ObjectTool;
import com.vci.pagemodel.*;
import com.vci.pagemodel.KeyValue;
import com.vci.pagemodel.OsEnumItemVO;
import com.vci.pagemodel.OsEnumVO;
import com.vci.pagemodel.OsStatusVO;
import com.vci.po.OsEnumPO;
import com.vci.starter.poi.bo.ReadExcelOption;
import com.vci.starter.poi.bo.WriteExcelData;
@@ -25,11 +26,10 @@
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.*;
import com.vci.constant.EnumIdConstant;
import com.vci.web.service.OsEnumServiceI;
import com.vci.web.service.OsLifeCycleServiceI;
import com.vci.web.service.WebBoServiceI;
import com.vci.web.util.Func;
import com.vci.starter.web.util.Lcm.Func;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsLifeCycleServiceImpl.java
@@ -6,7 +6,8 @@
import com.vci.corba.omd.lcm.LifeCycle;
import com.vci.corba.omd.lcm.TransitionVO;
import com.vci.corba.omd.lcm.TransitionVOEvent;
import com.vci.dto.*;
import com.vci.dto.OsLifeCycleDTO;
import com.vci.model.OsLifeCycleDO;
import com.vci.pagemodel.*;
import com.vci.po.OsLifeCyclePO;
import com.vci.starter.poi.bo.ReadExcelOption;
@@ -20,11 +21,10 @@
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.util.*;
import com.vci.model.OsLifeCycleDO;
import com.vci.starter.web.util.Lcm.Func;
import com.vci.web.service.OsLifeCycleServiceI;
import com.vci.web.service.OsStatusServiceI;
import com.vci.web.service.WebBoServiceI;
import com.vci.web.util.Func;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
@@ -36,7 +36,6 @@
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.swing.*;
import java.io.File;
import java.util.*;
import java.util.stream.Collectors;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsLinkTypeServiceImpl.java
@@ -11,13 +11,10 @@
import com.vci.corba.omd.btm.BizType;
import com.vci.corba.omd.data.BusinessObject;
import com.vci.corba.omd.ltm.LinkType;
import com.vci.corba.omd.ltm.LinkTypeServicePrx;
import com.vci.dto.OsAttributeDTO;
import com.vci.model.OsLinkTypeDO;
import com.vci.omd.constants.AttributeConstants;
import com.vci.omd.constants.LinkTypeConstants;
import com.vci.omd.utils.ObjectTool;
import com.vci.pagemodel.*;
import com.vci.po.OsAttributePO;
import com.vci.po.OsLinkTypePO;
import com.vci.starter.poi.bo.ReadExcelOption;
import com.vci.starter.poi.bo.WriteExcelData;
@@ -25,19 +22,16 @@
import com.vci.starter.poi.constant.ExcelLangCodeConstant;
import com.vci.starter.poi.util.ExcelUtil;
import com.vci.starter.web.annotation.log.VciUnLog;
import com.vci.starter.web.enumpck.ResultCodeEnum;
import com.vci.starter.web.enumpck.VciFieldTypeEnum;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseQueryObject;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.util.*;
import com.vci.model.OsLinkTypeDO;
import com.vci.starter.web.util.Lcm.Func;
import com.vci.web.service.*;
import com.vci.web.util.Func;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import javafx.scene.shape.HLineTo;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -48,11 +42,11 @@
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.io.File;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
@@ -197,7 +191,7 @@
            List<OsLinkTypeAttributeVO> linkTypeAttributeVOS = new ArrayList<>();
            Optional.ofNullable(attributeVOS).orElseGet(()->new ArrayList<>()).stream().forEach(attributeVO->{
                OsLinkTypeAttributeVO linkTypeAttributeVO = new OsLinkTypeAttributeVO();
                BeanUtil.convert(attributeVO,linkTypeAttributeVO);
                BeanUtilForVCI.convert(attributeVO,linkTypeAttributeVO);
                linkTypeAttributeVO.setPkLinkType(vo.getOid());
                if(StringUtils.isNotBlank(attributeVO.getBtmTypeId())){
                    linkTypeAttributeVO.setReferFlag(true);
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsLoginServiceImpl.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/LoginServiceImpl.java ÐÞ¸Ä
@@ -1,21 +1,17 @@
package com.vci.web.service.impl;
import com.vci.bo.LoginResultBO;
import com.vci.constant.CacheNameConstant;
import com.vci.corba.common.PLException;
import com.vci.corba.framework.data.DeptInfo;
import com.vci.corba.framework.data.LoginResult;
import com.vci.corba.framework.data.LoginState;
import com.vci.corba.framework.data.MachineInfo;
import com.vci.frameworkcore.ajaxTask.SmUserUnLockTask;
import com.vci.frameworkcore.ajaxTask.SmUserUnLockTaskManager;
import com.vci.frameworkcore.compatibility.ISmFunctionQueryService;
import com.vci.frameworkcore.compatibility.SmPwdStrategyQueryServiceI;
import com.vci.frameworkcore.compatibility.SmUserQueryServiceI;
import com.vci.frameworkcore.enumpck.ResourceControlTypeEnum;
import com.vci.frameworkcore.lcstatuspck.FrameworkDataLCStatus;
import com.vci.dto.LoginUserDTO;
import com.vci.lcstatuspck.FrameworkDataLCStatus;
import com.vci.pagemodel.SmFunctionVO;
import com.vci.pagemodel.SmPasswordStrategyVO;
import com.vci.pagemodel.SmUserVO;
import com.vci.frameworkcore.properties.VciSecurityManageProperties;
import com.vci.starter.web.annotation.bus.VciLoginAfter;
import com.vci.starter.web.annotation.bus.VciLogoutBefore;
import com.vci.starter.web.annotation.bus.VciLogoutPlugin;
@@ -25,15 +21,21 @@
import com.vci.starter.web.pagemodel.RequestClientInfo;
import com.vci.starter.web.pagemodel.SessionInfo;
import com.vci.starter.web.pagemodel.TokenVO;
import com.vci.starter.web.util.*;
import com.vci.bo.LoginResultBO;
import com.vci.constant.CacheNameConstant;
import com.vci.dto.LoginUserDTO;
import com.vci.web.properties.WebProperties;
import com.vci.starter.web.redis.RedisService;
import com.vci.web.service.LoginServiceI;
import com.vci.web.util.Func;
import com.vci.starter.web.util.ApplicationContextProvider;
import com.vci.starter.web.util.Lcm.Func;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.util.VciDateUtil;
import com.vci.starter.web.util.WebThreadLocalUtil;
import com.vci.web.ajaxTask.SmUserUnLockTask;
import com.vci.web.ajaxTask.SmUserUnLockTaskManager;
import com.vci.web.enumpck.ResourceControlTypeEnum;
import com.vci.web.properties.VciSecurityManageProperties;
import com.vci.web.properties.WebProperties;
import com.vci.web.service.ISmFunctionQueryService;
import com.vci.web.service.OsLoginServiceI;
import com.vci.web.service.SmPwdStrategyQueryServiceI;
import com.vci.web.service.SmUserQueryServiceI;
import com.vci.web.util.PlatformClientUtil;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
@@ -55,7 +57,7 @@
 * @date 2020/1/29
 */
@Service
public class LoginServiceImpl implements LoginServiceI {
public class OsLoginServiceImpl implements OsLoginServiceI {
    /**
     * æ—¥å¿—
@@ -286,223 +288,6 @@
        return loginResult;
    }
    /**
     * ç™»å½•_废弃方法,主要用来备份
     * @param userDTO ç”¨æˆ·çš„æ•°æ®ä¼ è¾“对象
     * @param clientInfo å®¢æˆ·ç«¯çš„信息
     * @param checkPassword æ˜¯å¦æ ¡éªŒå¯†ç 
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException å‚数错误,用户不能登录等会抛出异常
     */
    private LoginResultBO login_old(LoginUserDTO userDTO, RequestClientInfo clientInfo, boolean checkPassword/*单点登录不需要校验密码*/) throws VciBaseException, PLException {
        LoginResultBO loginResult = new LoginResultBO();
        loginResult.setSuccess(false);
        //1.判断用户的基本信息
        VciBaseUtil.alertNotNull(userDTO, "登录信息", userDTO.getUserId(), "用户账号");
        if (checkPassword) {
            VciBaseUtil.alertNotNull(userDTO.getPassword(), "登录密码");
        }
        //2、判断单设备登录,是否已经登录了
        String userIdTokenKey = CacheNameConstant.cacheKey(CacheNameConstant.USERID_TOKEN_KEY, userDTO.getUserId().trim());
        if(redisService.hasKey(userIdTokenKey) && !userDTO.isForceLogin() && securityManageProperties.isUserOneLogin()){
            loginResult.setFailCode(USER_IS_LOGINED);
            loginResult.setFailMsg("当前用户已经在其他地方登录!");
            return loginResult;
        }
        //说明已经登录了,那应该取消原来的登录
        if (redisService.hasKey(userIdTokenKey) && userDTO.isForceLogin() && securityManageProperties.isUserOneLogin()) {
            String tokenKey = redisService.getCacheObject(userIdTokenKey);
            redisService.deleteObject(tokenKey);
            redisService.deleteObject(userIdTokenKey);
        }
        //3.获取用户的对象(对象中包含角色部门还有密码策略信息)
        SmUserVO user = getUserByUserId(userDTO.getUserId().trim());
        if (user == null || StringUtils.isBlank(user.getOid())) {
            loginResult.setFailCode(USER_NOT_FOUND);
            loginResult.setFailMsgArray(new String[]{userDTO.getUserId()});
            return loginResult;
        }
        //3、判断密码是否正确
        if (checkPassword) {
            boolean passwordIsEqual = userQueryService.checkPasswordEqual(userDTO.getPassword(), user.getName());
            if (!passwordIsEqual) {
                if (logger.isDebugEnabled()) {
                    logger.debug("{}密码不正确", user.getId());
                }
            }
        }
        //4、调用平台登录接口,进行登录
        MachineInfo machine = getMachieInfo(clientInfo);
        machine.country = clientInfo.getCountry();
        machine.language = clientInfo.getLanguage();
        machine.osUser = clientInfo.getOsUser();
        machine.machine = clientInfo.getMachine();
        String token = null;
        try {
            LoginResult chkRes = platformClientUtil.getFrameworkService().checkLogin(userDTO.getUserId(),userDTO.getPassword(), machine);
            loginResult.setFailCode(getErrorCode(chkRes));
            loginResult.setFailMsgArray(new String[]{userDTO.getUserId(), String.valueOf(chkRes.auxInfo)});
            if(chkRes.state == LoginState.Error || chkRes.state == LoginState.Locked || chkRes.state == LoginState.Freeze){
                return loginResult;
            }
            token = chkRes.token;
        } catch (Exception e) {
            loginResult.setFailCode(SYSTEM_ERROR);
            loginResult.setFailMsgArray(new String[]{userDTO.getUserId()});
            return loginResult;
        }
        if(StringUtils.isBlank(token)){
            loginResult.setFailMsg(TOKEN_EMPTY);
            loginResult.setFailMsgArray(new String[]{userDTO.getUserId()});
            return loginResult;
        }
        //如果用户已经被停用和锁定,不能登录
        if (FrameworkDataLCStatus.DISABLED.getValue().equals(user.getLcStatus())) {
            loginResult.setFailCode(USER_IS_DISABLED);
            loginResult.setFailMsgArray(new String[]{userDTO.getUserId()});
            return loginResult;
        }
        if (userQueryService.checkUserLock(user, user.getPwdWrongCount())) {
            loginResult.setFailCode(USER_IS_LOCK);
            loginResult.setFailMsgArray(new String[]{userDTO.getUserId()});
            return loginResult;
        }
        //如果用户的失效日期已经超过了当前时间,不能登录
        //只有新平台的用户才判断失效
        /*if (user.getDisabledate() != null) {
            //2021版本才有这个属性的值,当前这个没有这个值
            Date disableDate = VciDateUtil.addOrSubDate(user.getDisabledate(), Calendar.DATE, 1);
            if (disableDate != null && disableDate.getTime() < System.currentTimeMillis()) {
                loginResult.setFailCode(USER_MORE_THAN_DISABLE_DATE);
                loginResult.setFailMsgArray(new String[]{userDTO.getUserId()});
                return loginResult;
            }
        }*/
        //当前用户没有配置就查询默认的密码策略
        SmPasswordStrategyVO passwordStrategyVO = pwdStrategyQueryService.getPasswordStrategyVOByUserOid(user.getOid());
        if (checkPassword) {
            //前端需要先md5一次,然后后台再MD5一次,
            if (logger.isDebugEnabled()) {
                logger.debug("{}密码不正确", user.getId());
            }
            //只要数据没有问题就不存在密码策略为空的情况
            if (passwordStrategyVO == null) {
                //可能数据问题没有设置密码策略
                passwordStrategyVO = new SmPasswordStrategyVO();
                passwordStrategyVO.setRetryTime(6);
                passwordStrategyVO.setLockTime(30);
            }
            //判断密码错误次数是否达到上限
            if (passwordStrategyVO.getRetryTime() <= (user.getPwdWrongCount() + 1)) {
                user.setLockFlag(true);
                updateUserPwdWrongCount(user.getOid(), user.getPwdWrongCount() + 1);
                addUserToUnLock(userDTO.getUserId(), passwordStrategyVO.getLockTime());
                //updateUserPwdWrongCount(user.getOid(), user.getPwdWrongCount() + 1);
                loginResult.setFailCode(USER_PWD_LOCK);
                loginResult.setFailMsgArray(new String[]{userDTO.getUserId(), passwordStrategyVO.getLockTime() + ""});
                return loginResult;
            } else {
                //还没有到锁定的次数
                updateUserPwdWrongCount(user.getOid(), user.getPwdWrongCount() + 1);
                //5, è¿™æ˜¯ç¬¬ä¸€æ¬¡é”™è¯¯ï¼Œå‰©ä¸‹çš„æ˜¯ 5- ï¼ˆ0+1)
                loginResult.setFailCode(USER_PWD_NOT_EQUAL);
                loginResult.setFailMsgArray(new String[]{userDTO.getUserId(), (passwordStrategyVO.getRetryTime() - (user.getPwdWrongCount() + 1)) + ""});
                return loginResult;
            }
        }
        //检查是否该修改密码
        if (!clientInfo.isSso() && checkPassword) {
            //最后修改时间 + å¤±æ•ˆæ—¶é—´ï¼Œå¤§äºŽç­‰äºŽå½“前日期,则需要马上修改密码
            Date currentDay = null;
            try {
                currentDay = VciDateUtil.getNow(VciDateUtil.DateFormat);
            } catch (Throwable e) {
                if (logger.isErrorEnabled()) {
                    logger.error("获取当前日期", e);
                }
            }
            if (currentDay != null && passwordStrategyVO != null && passwordStrategyVO.getValidDay() != null) {
                Date inValidDay = null;
                if (user.getLastModifyPasswordTime() == null) {
                    //从来没有登录过
                    loginResult.setMustChangePassword(true);
                } else {
                    inValidDay = VciDateUtil.addOrSubDate(user.getLastModifyPasswordTime(), Calendar.DATE, passwordStrategyVO.getValidDay());
                    if (inValidDay.getTime() <= (currentDay).getTime()) {
                        loginResult.setMustChangePassword(true);
                    }
                }
                if (!loginResult.isMustChangePassword()) {
                    if (VciDateUtil.addOrSubDate(inValidDay, Calendar.DATE, -(passwordStrategyVO.getRemindDay())).getTime()
                            <= (currentDay).getTime()) {
                        //您的密码还有{0}天过期,请及时修改密码
                        long remainDay = VciDateUtil.getDaySub(inValidDay, currentDay);
                        loginResult.setPasswordInfo(MessageFormat.format(PASSWORD_REMAIN_DAY, new String[]{String.valueOf(remainDay)}));
                    }
                }
            }
        }
        //说明密码正确的
        if (logger.isDebugEnabled()) {
            logger.debug("{}的密码正确", user.getId());
        }
        user.setLastLoginTime(new Date());
        user.setPwdWrongCount(0);
        SessionInfo sessionInfo = new SessionInfo();
        sessionInfo.setToken(token);
        //初始化平台的token
        sessionForLogin.initInvocationInfo(sessionInfo);
        //拷贝用户的新到session会话中
        copyUser2SessionInfo(user, sessionInfo, userDTO.getLangCode());
        //拷贝请求信息到session会话中
        copyRequest2SessionInfo(clientInfo, sessionInfo);
        //获取人员所属的部门信息
        try {
            DeptInfo deptInfo = platformClientUtil.getFrameworkService().fetchDeptByUserId(user.getOid());
            sessionInfo.setDeptOid(deptInfo.id);
            sessionInfo.setDeptName(deptInfo.name);
            sessionInfo.setDeptNum(deptInfo.num);
        } catch (PLException e) {
            throw new VciBaseException("获取用户所属部门失败:"+e.getMessage());
        }
        /** //查询所有的角色
         List<SmRoleVO> roleVOList = roleQueryService.listRoleByUserOid(user.getOid(), null);
         if (!CollectionUtils.isEmpty(roleVOList)) {
         Map<String, String> roleOidNameMap = roleVOList.stream().collect(Collectors.toMap(s -> s.getOid(), t -> t.getName()));
         sessionInfo.setRolesName(roleOidNameMap);
         } else {
         sessionInfo.setRolesName(new HashMap());
         }
         //查询所有的权限
         List<SmFunctionVO> functionVOList = functionQueryService.listFunctionByUserOid(user.getOid(), null, ResourceControlTypeEnum.BS);
         if (!CollectionUtils.isEmpty(functionVOList)) {
         List<String> functionOidList = functionVOList.stream().map(s -> s.getOid()).collect(Collectors.toList());
         sessionInfo.setFunctionOids(functionOidList);
         } else {
         sessionInfo.setFunctionOids(new ArrayList());
         }*/
        //添加到会话信息
        TokenVO tokenVO = saveSessionInfo(sessionInfo);
        loginResult.setTokenVO(tokenVO);
        loginResult.setSuccess(true);
        return loginResult;
    }
    private MachineInfo getMachieInfo(RequestClientInfo clientInfo) {
        MachineInfo machine = new MachineInfo();
        machine.country = clientInfo.getCountry();
@@ -519,19 +304,6 @@
     */
    private SmUserVO getUserByUserId(String userId) {
        return userQueryService.getUserByUserId(userId);
    }
    /**
     * å•点登录
     *
     * @param userDTO    ç™»å½•信息
     * @param clientInfo è¯·æ±‚的客户端的信息
     * @return ç™»å½•的结果对象
     * @throws VciBaseException ç™»å½•失败的时候抛出异常
     */
    @Override
    public LoginResultBO singleLogin(LoginUserDTO userDTO, RequestClientInfo clientInfo) throws Exception {
        return login(userDTO,clientInfo,false);
    }
    /**
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java
@@ -11,7 +11,9 @@
import com.vci.corba.portal.PortalService.GetPagePortalVIArrayByPageInfoResult;
import com.vci.corba.portal.data.PortalVI;
import com.vci.dto.*;
import com.vci.model.*;
import com.vci.enumpck.UI.ItemTypeEnum;
import com.vci.model.PRMDO;
import com.vci.model.PRMItemDO;
import com.vci.pagemodel.*;
import com.vci.po.PortalVIPO;
import com.vci.po.QTDPO;
@@ -25,12 +27,8 @@
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.util.LocalFileUtil;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.word.bo.WordMergeStartTableDataBO;
import com.vci.starter.word.util.WordUtil;
import com.vci.web.enumpck.ItemTypeEnum;
import com.vci.web.enumpck.PortalVIType;
import com.vci.web.enumpck.PortalVITypeFlag;
import com.vci.web.other.BtmQTExportData;
import com.vci.web.service.OsAttributeServiceI;
import com.vci.web.service.OsPortalVIServiceI;
import com.vci.web.service.OsQuereyTemplateServiceI;
@@ -44,11 +42,12 @@
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Function;
import java.util.stream.Collectors;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPvolumesServiceImpl.java
@@ -3,7 +3,7 @@
import com.vci.corba.common.PLException;
import com.vci.corba.common.data.UserEntityInfo;
import com.vci.corba.framework.data.PvolumeInfo;
import com.vci.dto.*;
import com.vci.dto.OsPvolumeDTO;
import com.vci.starter.poi.bo.WriteExcelData;
import com.vci.starter.poi.bo.WriteExcelOption;
import com.vci.starter.poi.util.ExcelUtil;
@@ -14,14 +14,14 @@
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.util.WebThreadLocalUtil;
import com.vci.web.service.OsPvolumesServiceI;
import com.vci.web.util.Func;
import com.vci.starter.web.util.Lcm.Func;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.io.*;
import java.io.File;
import java.util.*;
import java.util.stream.Collectors;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsQueryTemplateImpl.java
@@ -1,11 +1,8 @@
package com.vci.web.service.impl;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.ZipUtil;
import com.alibaba.fastjson.JSONObject;
import com.vci.client.ClientSession;
import com.vci.client.common.oq.OQTool;
import com.vci.client.common.providers.ClientServiceProvider;
import com.vci.common.qt.object.*;
import com.vci.constant.FrameWorkLangCodeConstant;
import com.vci.corba.common.PLException;
@@ -19,42 +16,31 @@
import com.vci.dto.*;
import com.vci.omd.constants.SystemAttribute;
import com.vci.omd.objects.OtherInfo;
import com.vci.po.OsLinkTypePO;
import com.vci.starter.poi.bo.ReadExcelOption;
import com.vci.starter.poi.bo.WriteExcelData;
import com.vci.starter.poi.bo.WriteExcelOption;
import com.vci.starter.poi.constant.ExcelLangCodeConstant;
import com.vci.starter.poi.util.ExcelUtil;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.pagemodel.Tree;
import com.vci.starter.web.util.*;
import com.vci.starter.web.util.ControllerUtil;
import com.vci.starter.web.util.Lcm.DateUtil;
import com.vci.starter.web.util.Lcm.Func;
import com.vci.starter.web.util.LocalFileUtil;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.other.BtmQTExportData;
import com.vci.web.other.LinkQTExportData;
import com.vci.web.service.*;
import com.vci.web.util.DateUtil;
import com.vci.web.util.Func;
import com.vci.web.service.OsQuereyTemplateServiceI;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.jdesktop.swingx.JXDatePicker;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import javax.swing.*;
import java.awt.*;
import java.io.*;
import java.util.*;
import java.util.List;
import java.util.stream.Collectors;
/**
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsRevisionRuleServiceImpl.java
@@ -1,17 +1,9 @@
package com.vci.web.service.impl;
import com.vci.client.mw.ClientSessionUtility;
import com.vci.corba.common.PLException;
import com.vci.corba.omd.stm.StatePool;
import com.vci.corba.omd.vrm.VersionRule;
import com.vci.dto.OsAttributeDTO;
import com.vci.dto.OsRevisionRuleDTO;
import com.vci.dto.OsStatusDTO;
import com.vci.pagemodel.OsAttributeVO;
import com.vci.pagemodel.OsEnumVO;
import com.vci.pagemodel.OsStatusVO;
import com.vci.po.OsAttributePO;
import com.vci.po.OsEnumPO;
import com.vci.pagemodel.OsRevisionRuleVO;
import com.vci.po.OsRevisionRulePO;
import com.vci.starter.poi.bo.ReadExcelOption;
import com.vci.starter.poi.bo.WriteExcelData;
@@ -22,9 +14,8 @@
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.util.*;
import com.vci.pagemodel.OsRevisionRuleVO;
import com.vci.web.service.OsRevisionRuleServiceI;
import com.vci.web.util.Func;
import com.vci.starter.web.util.Lcm.Func;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
@@ -36,11 +27,8 @@
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.swing.*;
import java.awt.*;
import java.io.File;
import java.util.*;
import java.util.List;
import java.util.stream.Collectors;
/**
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsStatusServiceImpl.java
@@ -2,6 +2,9 @@
import com.vci.corba.common.PLException;
import com.vci.corba.omd.stm.StatePool;
import com.vci.dto.OsStatusDTO;
import com.vci.model.OsStatusDO;
import com.vci.pagemodel.OsStatusVO;
import com.vci.po.OsStatusPO;
import com.vci.starter.poi.bo.ReadExcelOption;
import com.vci.starter.poi.bo.WriteExcelData;
@@ -15,13 +18,10 @@
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.*;
import com.vci.dto.OsStatusDTO;
import com.vci.model.OsStatusDO;
import com.vci.pagemodel.OsStatusVO;
import com.vci.starter.web.util.Lcm.Func;
import com.vci.web.service.OsLifeCycleServiceI;
import com.vci.web.service.OsStatusServiceI;
import com.vci.web.service.WebBoServiceI;
import com.vci.web.util.Func;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsTypeActionServiceImpl.java
@@ -1,22 +1,19 @@
package com.vci.web.service.impl;
import com.vci.client.mw.ClientContextVariable;
import com.vci.common.utility.ObjectUtility;
import com.vci.corba.common.PLException;
import com.vci.corba.portal.data.PLAction;
import com.vci.corba.portal.data.PLTypeAction;
import com.vci.dto.PLActionDTO;
import com.vci.dto.PLTypeActionDTO;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.service.OsTypeActionServiceI;
import com.vci.web.util.Func;
import com.vci.starter.web.util.Lcm.Func;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.UITools;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/SecretGradeServiceImpl.java
@@ -1,7 +1,5 @@
package com.vci.web.service.impl;
import com.vci.client.common.providers.ClientServiceProvider;
import com.vci.common.exception.VciException;
import com.vci.corba.common.PLException;
import com.vci.corba.common.data.UserEntityInfo;
import com.vci.corba.framework.data.AppConfigCategoryInfo;
@@ -18,7 +16,6 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.swing.*;
import java.util.HashMap;
import java.util.Map;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/SmFavFunctionServiceImpl.java
@@ -1,12 +1,12 @@
package com.vci.web.service.impl;
import com.vci.constant.FrameWorkBtmTypeConstant;
import com.vci.frameworkcore.compatibility.ISmFunctionQueryService;
import com.vci.model.SmFavFunctionDO;
import com.vci.pagemodel.SmFunctionVO;
import com.vci.starter.revision.service.RevisionModelUtil;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.model.SmFavFunctionDO;
import com.vci.web.service.ISmFunctionQueryService;
import com.vci.web.service.SmFavFunctionServiceI;
import com.vci.web.service.WebBoServiceI;
import com.vci.web.util.WebUtil;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/SmFunctionQueryServicePlatformImpl.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmFunctionQueryServicePlatformImpl.java ÐÞ¸Ä
@@ -1,43 +1,35 @@
package com.vci.frameworkcore.compatibility.impl;
package com.vci.web.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.JSONReader;
import com.vci.client.ClientSession;
import com.vci.client.common.objects.RoleObject;
import com.vci.common.exception.VciException;
import com.vci.common.locale.LocaleDisplay;
import com.vci.corba.common.PLException;
import com.vci.corba.common.data.UserEntityInfo;
import com.vci.corba.framework.data.*;
import com.vci.corba.omd.data.BusinessObject;
import com.vci.corba.portal.data.PLUILayout;
import com.vci.dto.RoleInfoDTO;
import com.vci.dto.RoleRightDTO;
import com.vci.dto.RoleRightParamDTO;
import com.vci.frameworkcore.compatibility.ISmFunctionQueryService;
import com.vci.frameworkcore.enumpck.ResourceControlTypeEnum;
import com.vci.model.RoleRightDO;
import com.vci.model.SmFunctionForPlatform1;
import com.vci.model.SmRoleForPlatform1;
import com.vci.omd.utils.ObjectTool;
import com.vci.pagemodel.MenuVO;
import com.vci.pagemodel.SmFunctionVO;
import com.vci.omd.utils.ObjectTool;
import com.vci.pagemodel.UIContentVO;
import com.vci.starter.web.constant.QueryOptionConstant;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.*;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.pagemodel.UIContentVO;
import com.vci.web.enumpck.ResourceControlTypeEnum;
import com.vci.web.properties.JsonConfigReader;
import com.vci.web.service.ISmFunctionQueryService;
import com.vci.web.service.UIEngineServiceI;
import com.vci.web.service.WebBoServiceI;
import com.vci.web.util.Func;
import com.vci.starter.web.util.Lcm.Func;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.RightControlUtil;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
import org.apache.el.stream.Stream;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/SmHMSysModConfigServiceImpl.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmHMSysModConfigServiceImpl.java ÐÞ¸Ä
@@ -1,12 +1,12 @@
package com.vci.frameworkcore.compatibility.impl;
package com.vci.web.service.impl;
import com.vci.common.exception.VciException;
import com.vci.common.utility.ObjectUtility;
import com.vci.corba.common.PLException;
import com.vci.corba.common.data.UserEntityInfo;
import com.vci.corba.framework.data.*;
import com.vci.frameworkcore.compatibility.SmHMSysModConfigServiceI;
import com.vci.pagemodel.*;
import com.vci.pagemodel.ExpExcelConditionVO;
import com.vci.pagemodel.MenuVO;
import com.vci.starter.poi.bo.SheetDataSet;
import com.vci.starter.poi.bo.SheetRowData;
import com.vci.starter.poi.bo.WriteExcelData;
@@ -16,11 +16,12 @@
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.pagemodel.SessionInfo;
import com.vci.starter.web.redis.RedisService;
import com.vci.starter.web.util.LocalFileUtil;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.util.WebThreadLocalUtil;
import com.vci.starter.web.redis.RedisService;
import com.vci.web.util.Func;
import com.vci.web.service.SmHMSysModConfigServiceI;
import com.vci.starter.web.util.Lcm.Func;
import com.vci.web.util.PlatformClientUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -28,7 +29,10 @@
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.*;
import java.util.stream.Collectors;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/SmOperationServiceImpl.java
@@ -2,8 +2,8 @@
import com.vci.corba.omd.data.BusinessObject;
import com.vci.omd.utils.ObjectTool;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.pagemodel.SmOperationVO;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.service.SmOperationServiceI;
import com.vci.web.service.WebBoServiceI;
import org.springframework.beans.factory.annotation.Autowired;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/SmPwdStrategyQueryServiceImpl.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmPwdStrategyQueryServiceImpl.java ÐÞ¸Ä
@@ -1,27 +1,27 @@
package com.vci.frameworkcore.compatibility.impl;
package com.vci.web.service.impl;
import com.vci.dto.SmPasswordStrategyDTO;
import com.vci.corba.common.PLException;
import com.vci.corba.common.data.UserEntityInfo;
import com.vci.corba.framework.data.PasswordStrategyInfo;
import com.vci.corba.omd.data.BusinessObject;
import com.vci.frameworkcore.compatibility.SmPwdStrategyQueryServiceI;
import com.vci.frameworkcore.compatibility.SmUserQueryServiceI;
import com.vci.frameworkcore.enumpck.CombinationEnum;
import com.vci.dto.SmPasswordStrategyDTO;
import com.vci.model.SmPasswordStrategyDO;
import com.vci.model.SmPasswordStrategyForPlatform1;
import com.vci.pagemodel.SmPasswordStrategyVO;
import com.vci.omd.utils.ObjectTool;
import com.vci.pagemodel.SmPasswordStrategyVO;
import com.vci.starter.web.util.BeanUtilForVCI;
import com.vci.web.service.SmUserQueryServiceI;
import com.vci.starter.web.constant.QueryOptionConstant;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.BeanUtil;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.util.WebThreadLocalUtil;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.enumpck.CombinationEnum;
import com.vci.web.service.SmPwdStrategyQueryServiceI;
import com.vci.web.service.WebBoServiceI;
import com.vci.web.util.Func;
import com.vci.starter.web.util.Lcm.Func;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
@@ -456,7 +456,7 @@
            SmPasswordStrategyDO passwordStrategyDO = new SmPasswordStrategyDO();
            WebUtil.copyValueToObjectFromCbos(item,passwordStrategyDO);
            SmPasswordStrategyVO passwordStrategyVO = new SmPasswordStrategyVO();
            BeanUtil.convert(passwordStrategyDO,passwordStrategyVO);
            BeanUtilForVCI.convert(passwordStrategyDO,passwordStrategyVO);
            smPasswordStrategyVOMap.put(passwordStrategyVO.getOid(),passwordStrategyVO);
        });
        return smPasswordStrategyVOMap;
@@ -477,7 +477,7 @@
            SmPasswordStrategyDO passwordStrategyDO = new SmPasswordStrategyDO();
            WebUtil.copyValueToObjectFromCbos(cboList.get(0),passwordStrategyDO);
            SmPasswordStrategyVO passwordStrategyVO = new SmPasswordStrategyVO();
            BeanUtil.convert(passwordStrategyDO,passwordStrategyVO);
            BeanUtilForVCI.convert(passwordStrategyDO,passwordStrategyVO);
            return passwordStrategyVO;
        }else{
            //获取默认的
@@ -518,7 +518,7 @@
     */
    private SmPasswordStrategyVO pwdStrategyDO2VO(SmPasswordStrategyDO smPasswordStrategyDO){
        SmPasswordStrategyVO passwordStrategyVO = new SmPasswordStrategyVO();
        BeanUtil.convert(smPasswordStrategyDO,passwordStrategyVO);
        BeanUtilForVCI.convert(smPasswordStrategyDO,passwordStrategyVO);
        return passwordStrategyVO;
    }
@@ -605,7 +605,7 @@
            SmPasswordStrategyDO passwordStrategyDO = new SmPasswordStrategyDO();
            WebUtil.copyValueToObjectFromCbos(item,passwordStrategyDO);
            SmPasswordStrategyVO passwordStrategyVO = new SmPasswordStrategyVO();
            BeanUtil.convert(passwordStrategyDO,passwordStrategyVO);
            BeanUtilForVCI.convert(passwordStrategyDO,passwordStrategyVO);
            smPasswordStrategyVOList.add(passwordStrategyVO);
        });
        return smPasswordStrategyVOList;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/SmSessionForLoginImpl.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmSessionForLoginImpl.java ÐÞ¸Ä
@@ -1,6 +1,7 @@
package com.vci.frameworkcore.compatibility.impl;
package com.vci.web.service.impl;
import com.vci.client.mw.ClientSessionUtility;
import com.vci.constant.CacheNameConstant;
import com.vci.corba.common.PLException;
import com.vci.corba.common.data.InvocationInfo;
import com.vci.corba.omd.data.AttributeValue;
@@ -10,10 +11,9 @@
import com.vci.starter.web.interceptor.VciSessionForLoginI;
import com.vci.starter.web.pagemodel.SessionInfo;
import com.vci.starter.web.pagemodel.TokenVO;
import com.vci.starter.web.util.*;
import com.vci.constant.CacheNameConstant;
import com.vci.web.properties.WebProperties;
import com.vci.starter.web.redis.RedisService;
import com.vci.starter.web.util.*;
import com.vci.web.properties.WebProperties;
import com.vci.web.service.WebBoServiceI;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIDataServiceImpl.java
@@ -4,16 +4,23 @@
import com.vci.common.qt.object.QueryTemplate;
import com.vci.corba.common.PLException;
import com.vci.corba.framework.data.UserInfo;
import com.vci.corba.omd.data.*;
import com.vci.corba.omd.data.BusinessObject;
import com.vci.corba.omd.data.LinkObject;
import com.vci.corba.omd.data.RevisionDataInfo;
import com.vci.corba.omd.data.VersionDataInfo;
import com.vci.corba.omd.lcm.LifeCycle;
import com.vci.corba.omd.ltm.LinkType;
import com.vci.corba.omd.qtm.QTInfo;
import com.vci.corba.query.data.BOAndLO;
import com.vci.dto.*;
import com.vci.frameworkcore.lcstatuspck.FrameworkDataLCStatus;
import com.vci.frameworkcore.lcstatuspck.ReleaseDataLCStatus;
import com.vci.lcstatuspck.FrameworkDataLCStatus;
import com.vci.lcstatuspck.ReleaseDataLCStatus;
import com.vci.omd.utils.ObjectTool;
import com.vci.pagemodel.*;
import com.vci.query.UIDataGridQuery;
import com.vci.query.UIFormQuery;
import com.vci.query.UILinkTypeDataQuery;
import com.vci.query.UITreeQuery;
import com.vci.starter.revision.bo.TreeWrapperOptions;
import com.vci.starter.web.annotation.bus.VciChangeDataAfter;
import com.vci.starter.web.annotation.bus.VciChangeDataBefore;
@@ -25,16 +32,12 @@
import com.vci.starter.web.model.BaseModel;
import com.vci.starter.web.pagemodel.*;
import com.vci.starter.web.util.*;
import com.vci.starter.web.util.Lcm.Func;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.enumpck.DeleteTypeEnum;
import com.vci.web.enumpck.UIFieldTypeEnum;
import com.vci.web.enumpck.UITreeLoadTypeEnum;
import com.vci.web.query.UIDataGridQuery;
import com.vci.web.query.UIFormQuery;
import com.vci.web.query.UILinkTypeDataQuery;
import com.vci.web.query.UITreeQuery;
import com.vci.web.service.*;
import com.vci.web.util.Func;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
@@ -49,6 +52,7 @@
import java.util.stream.Collectors;
import static com.vci.constant.FrameWorkBusLangCodeConstant.DATA_OID_NOT_EXIST;
/**
 * UI上的数据查询
@@ -874,7 +878,7 @@
        if((baseModelDTOList == null || CollectionUtils.isEmpty(baseModelDTOList.getDataList())) && (baseLinkModelDTOList == null || CollectionUtils.isEmpty(baseLinkModelDTOList.getDataList()))){
            return BaseResult.success();
        }
        String btmType = (baseModelDTOList !=null && !CollectionUtils.isEmpty(baseModelDTOList.getDataList()))? baseModelDTOList.getDataList().get(0).getBtmname():null;
        String btmType = (baseModelDTOList !=null && !CollectionUtils.isEmpty(baseModelDTOList.getDataList()))? baseModelDTOList.getDataList().get(0).getBtmName():null;
        String linkType = (baseLinkModelDTOList !=null && !CollectionUtils.isEmpty(baseLinkModelDTOList.getDataList()))?baseLinkModelDTOList.getDataList().get(0).getLinkType():null;
        if(StringUtils.isNotBlank(preEvent)){
            //前置事件
@@ -1084,7 +1088,7 @@
    public BaseModelDTOList formData2DTOList(FormDataDTO formDataDTO){
        BaseModelDTOList modelDTOList = new BaseModelDTOList();
        BaseModelDTO modelDTO = new BaseModelDTO();
        BeanUtil.convert((BaseModelDTO)formDataDTO,modelDTO);
        BeanUtilForVCI.convert(formDataDTO,modelDTO);
        modelDTO.setData(formDataDTO.getData());
        List<BaseModelDTO> modelDTOS = new ArrayList<>();
        modelDTOS.add(modelDTO);
@@ -1102,7 +1106,7 @@
        BaseLinkModelDTOList modelDTOList = new BaseLinkModelDTOList();
        BaseLinkModelDTO modelDTO = new BaseLinkModelDTO();
        modelDTO.setData(formLinkDataDTO.getData());
        BeanUtil.convert((BaseLinkModelDTO)formLinkDataDTO,modelDTO);
        BeanUtilForVCI.convert(formLinkDataDTO,modelDTO);
        List<BaseLinkModelDTO> linkModelDTOS = new ArrayList<>();
        linkModelDTOS.add(modelDTO);
        modelDTOList.setDataList(linkModelDTOS);
@@ -1121,7 +1125,7 @@
        modelDTOS.stream().findAny().orElseGet(()->null);
        formDataDTOList.getFormDataDTOS().forEach(formDataDTO -> {
            BaseModelDTO modelDTO = new BaseModelDTO();
            BeanUtil.convert((BaseModelDTO)formDataDTO,modelDTO);
            BeanUtilForVCI.convert((BaseModelDTO)formDataDTO,modelDTO);
            modelDTO.setData(formDataDTO.getData());
            modelDTOS.add(modelDTO);
        });
@@ -1140,7 +1144,7 @@
        List<BaseLinkModelDTO> modelDTOS = new ArrayList<>();
        formLinkDataDTOList.getDataDTOList().forEach(formDataDTO -> {
            BaseLinkModelDTO modelDTO = new BaseLinkModelDTO();
            BeanUtil.convert((BaseLinkModelDTO)formDataDTO,modelDTO);
            BeanUtilForVCI.convert((BaseLinkModelDTO)formDataDTO,modelDTO);
            modelDTO.setData(formDataDTO.getData());
            modelDTOS.add(modelDTO);
        });
@@ -1158,8 +1162,8 @@
    @Override
    public BaseResult<Map<String, Object>> addSave(FormDataDTO formDataDTO) throws VciBaseException, PLException {
        //首先判断对象是否为空
        VciBaseUtil.alertNotNull(formDataDTO,"添加的数据对象",formDataDTO.getBtmname(),"业务类型的名称",formDataDTO.getFormDefineId(),"表单定义的编号");
        UIFormDefineVO formDefineVO = uiEngineService.getFormById(formDataDTO.getBtmname(), formDataDTO.getFormDefineId());
        VciBaseUtil.alertNotNull(formDataDTO,"添加的数据对象",formDataDTO.getBtmName(),"业务类型的名称",formDataDTO.getFormDefineId(),"表单定义的编号");
        UIFormDefineVO formDefineVO = uiEngineService.getFormById(formDataDTO.getBtmName(), formDataDTO.getFormDefineId());
        String preEvent = formDataDTO.getPreEvent();
        BaseModelDTOList modelDTOList = formData2DTOList(formDataDTO);
        BaseResult beforeResult = callPreEvent(modelDTOList, null,preEvent, VciChangeDocumentTypeEnum.ADD);
@@ -1268,7 +1272,7 @@
        baseModel.setOid(cbo.oid);
        baseModel.setNameOid(cbo.nameoid);
        baseModel.setRevisionOid(cbo.revisionid);
        baseModel.setBtmname(cbo.btName);
        baseModel.setBtmName(cbo.btName);
        baseModel.setLastR(String.valueOf(cbo.isLastR));
        baseModel.setLastV(String.valueOf(cbo.isLastV));
        baseModel.setFirstR(String.valueOf(cbo.isFirstR));
@@ -1425,7 +1429,7 @@
        VciBaseUtil.alertNotNull(formDataDTOList,"要添加的数据",formDataDTOList.getFormDataDTOS(),"要添加的数据");
        //首先判断对象是否为空
        FormDataDTO firstFormDataDTO = formDataDTOList.getFormDataDTOS().stream().findFirst().get();
        UIFormDefineVO formDefineVO = uiEngineService.getFormById(firstFormDataDTO.getBtmname(), firstFormDataDTO.getId());
        UIFormDefineVO formDefineVO = uiEngineService.getFormById(firstFormDataDTO.getBtmName(), firstFormDataDTO.getId());
        String preEvent = firstFormDataDTO.getPreEvent();
        BaseModelDTOList modelDTOList = formDataList2DTOList(formDataDTOList);
        BaseResult beforeResult = callPreEvent(modelDTOList, null, preEvent, VciChangeDocumentTypeEnum.ADD);
@@ -1462,7 +1466,7 @@
        }
        if(!CollectionUtils.isEmpty(releasedFileOids)){
            releasedFileOids.forEach((oid,fileOids)->{
                fileObjectService.releasedFile(firstFormDataDTO.getBtmname(),oid,fileOids);
                fileObjectService.releasedFile(firstFormDataDTO.getBtmName(),oid,fileOids);
            });
        }
        //后置事件
@@ -1493,8 +1497,8 @@
    @Override
    public BaseResult<Map<String, Object>> editSave(FormDataDTO formDataDTO) throws VciBaseException, PLException {
        //首先判断对象是否为空
        VciBaseUtil.alertNotNull(formDataDTO,"修改的数据对象",formDataDTO.getBtmname(),"业务类型的名称",formDataDTO.getFormDefineId(),"表单定义的编号");
        UIFormDefineVO formDefineVO = uiEngineService.getFormById(formDataDTO.getBtmname(), formDataDTO.getFormDefineId());
        VciBaseUtil.alertNotNull(formDataDTO,"修改的数据对象",formDataDTO.getBtmName(),"业务类型的名称",formDataDTO.getFormDefineId(),"表单定义的编号");
        UIFormDefineVO formDefineVO = uiEngineService.getFormById(formDataDTO.getBtmName(), formDataDTO.getFormDefineId());
        String preEvent = formDataDTO.getPreEvent();
        BaseModelDTOList modelDTOList = formData2DTOList(formDataDTO);
        BaseResult beforeResult = callPreEvent(modelDTOList,null, preEvent, VciChangeDocumentTypeEnum.EDIT);
@@ -1538,8 +1542,8 @@
    @Override
    public BaseResult<Map<String, Object>> upRevision(FormDataDTO formDataDTO) throws VciBaseException, PLException {
        //首先判断对象是否为空
        VciBaseUtil.alertNotNull(formDataDTO,"修改的数据对象",formDataDTO.getBtmname(),"业务类型的名称",formDataDTO.getFormDefineId(),"表单定义的编号",formDataDTO.getCopyFromVersion(),"老版本的主键");
        UIFormDefineVO formDefineVO = uiEngineService.getFormById(formDataDTO.getBtmname(), formDataDTO.getFormDefineId());
        VciBaseUtil.alertNotNull(formDataDTO,"修改的数据对象",formDataDTO.getBtmName(),"业务类型的名称",formDataDTO.getFormDefineId(),"表单定义的编号",formDataDTO.getCopyFromVersion(),"老版本的主键");
        UIFormDefineVO formDefineVO = uiEngineService.getFormById(formDataDTO.getBtmName(), formDataDTO.getFormDefineId());
        String preEvent = formDataDTO.getPreEvent();
        BaseModelDTOList modelDTOList = formData2DTOList(formDataDTO);
        BaseResult beforeResult = callPreEvent(modelDTOList, null,preEvent, VciChangeDocumentTypeEnum.UPREVISION);
@@ -1552,7 +1556,7 @@
        Map<String,String> conditionMap = WebUtil.getOidQuery(formDataDTO.getCopyFromVersion());
        conditionMap.put("ts", VciDateUtil.date2Str(ts,VciDateUtil.DateTimeMillFormat));
        conditionMap.put("oid",formDataDTO.getCopyFromVersion());
        businessObjects = boService.queryCBO(formDataDTO.getBtmname(), conditionMap);
        businessObjects = boService.queryCBO(formDataDTO.getBtmName(), conditionMap);
        if(businessObjects.size() ==0){
            throw new VciBaseException("数据不是最新的,建议您刷新后重新操作");
        }
@@ -1599,7 +1603,7 @@
        VciBaseUtil.alertNotNull(formDataDTOList,"要修改的数据",formDataDTOList.getFormDataDTOS(),"要修改的数据");
        //首先判断对象是否为空
        FormDataDTO firstFormDataDTO = formDataDTOList.getFormDataDTOS().stream().findFirst().get();
        UIFormDefineVO formDefineVO = uiEngineService.getFormById(firstFormDataDTO.getBtmname(), firstFormDataDTO.getId());
        UIFormDefineVO formDefineVO = uiEngineService.getFormById(firstFormDataDTO.getBtmName(), firstFormDataDTO.getId());
        String preEvent = firstFormDataDTO.getPreEvent();
        BaseModelDTOList modelDTOList = formDataList2DTOList(formDataDTOList);
        BaseResult beforeResult = callPreEvent(modelDTOList,null, preEvent, VciChangeDocumentTypeEnum.EDIT);
@@ -1629,7 +1633,7 @@
        }
        if(!CollectionUtils.isEmpty(releasedFileOids)){
            releasedFileOids.forEach((oid,fileOids)->{
                fileObjectService.releasedFile(firstFormDataDTO.getBtmname(),oid,fileOids);
                fileObjectService.releasedFile(firstFormDataDTO.getBtmName(),oid,fileOids);
            });
        }
        //后置事件
@@ -1654,7 +1658,7 @@
    @Override
    public BaseResult batchDelete(DeleteDataDTO deleteDataDTO) throws VciBaseException, PLException {
        VciBaseUtil.alertNotNull(deleteDataDTO,"数据传输对象",deleteDataDTO.getDataList(),"数据传输对象");
        String btmName = deleteDataDTO.getDataList().get(0).getBtmname();
        String btmName = deleteDataDTO.getDataList().get(0).getBtmName();
        List<String> oidList = deleteDataDTO.getDataList().stream().map(BaseModelDTO::getOid).collect(Collectors.toList());
        //看看级联删除。只有自己引用自己的时候可以级联删除
        List<BusinessObject> cbo = null;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIEngineServiceImpl.java
@@ -10,7 +10,10 @@
import com.vci.pagemodel.*;
import com.vci.starter.web.annotation.log.VciUnLog;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.util.*;
import com.vci.starter.web.util.BeanUtilForVCI;
import com.vci.starter.web.util.LangBaseUtil;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.util.VciDateUtil;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.enumpck.UIComponentDisplayTypeEnum;
import com.vci.web.enumpck.UIComponentTypeEnum;
@@ -660,7 +663,7 @@
                        && !UIFieldTypeEnum.CUSTOM.getValue().equalsIgnoreCase(s.getFieldType())).forEach(fieldVO->{
                    //列表里面不放edit,而查询里面需要放edit
                    UITableFieldVO queryFieldVO = new UITableFieldVO();
                    BeanUtil.convert(fieldVO,queryFieldVO);
                    BeanUtilForVCI.convert(fieldVO,queryFieldVO);
                    canQueryFields.add(queryFieldVO);
                });
                tableDefineVO.setSeniorQueryColumns(canQueryFields);
@@ -928,7 +931,7 @@
                        List<UIComponentVO> southCompVO = componentVOs.stream().filter(s->!s.getOid().equals(firstCompVO.getOid())).collect(Collectors.toList());
                        UILayoutVO centerVO = new UILayoutVO();
                        BeanUtil.convert(layoutVO,centerVO);
                        BeanUtilForVCI.convert(layoutVO,centerVO);
                        centerVO.setOid(centerVO.getOid() + "_center");
                        centerVO.setLayoutAreaType(UILayoutAreaTypeEnum.CENTER.getValue());
                        centerVO.setOrderNum(0);
@@ -946,7 +949,7 @@
                        //其余的作为south
                        if(!CollectionUtils.isEmpty(southCompVO)) {
                            UILayoutVO southVO = new UILayoutVO();
                            BeanUtil.convert(layoutVO, southVO);
                            BeanUtilForVCI.convert(layoutVO, southVO);
                            southVO.setOid(centerVO.getOid() + "_south");
                            southVO.setLayoutAreaType(UILayoutAreaTypeEnum.SOUTH.getValue());
                            southVO.setOrderNum(0);
@@ -1316,7 +1319,7 @@
                if(tableDefineVO != null) {
                    UITreeTableDefineVO treeTableDefineVO = new UITreeTableDefineVO();
                    BeanUtil.convert(tableDefineVO, treeTableDefineVO);
                    BeanUtilForVCI.convert(tableDefineVO, treeTableDefineVO);
                    if(isLink){
                        treeTableDefineVO.setTreeCurrentField("t_oid");
                        treeTableDefineVO.setTreeParentField("f_oid");
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java
@@ -1,7 +1,5 @@
package com.vci.web.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.vci.common.utility.ObjectUtility;
import com.vci.corba.common.PLException;
import com.vci.corba.common.data.UserEntityInfo;
@@ -19,36 +17,32 @@
import com.vci.starter.poi.util.ExcelUtil;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.*;
import com.vci.starter.web.pagemodel.BaseQueryObject;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.pagemodel.SessionInfo;
import com.vci.starter.web.util.*;
import com.vci.starter.web.redis.RedisService;
import com.vci.starter.web.util.*;
import com.vci.starter.web.util.Lcm.BeanUtil;
import com.vci.starter.web.util.Lcm.CollectionUtil;
import com.vci.starter.web.util.Lcm.Func;
import com.vci.web.service.OsBtmServiceI;
import com.vci.web.service.UIManagerServiceI;
import com.vci.web.util.*;
import com.vci.web.util.BeanUtil;
import com.vci.web.utility.UIDataFetcher;
import org.apache.commons.lang3.StringUtils;
import com.vci.web.util.Func;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.RightControlUtil;
import com.vci.web.util.UITools;
import com.vci.web.utility.UIDataFetcher;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.swing.tree.TreePath;
import java.io.File;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
import java.util.regex.Pattern;
import java.util.stream.Stream;
import java.util.stream.Collectors;
/**
 * UI定义服务界面相关接口
@@ -1766,7 +1760,7 @@
    @Override
    public boolean authorizedUI(UIAuthorDTO uiAuthorDTO) throws Exception {
        boolean res=false;
        if(uiAuthorDTO==null||CollectionUtil.isEmpty(uiAuthorDTO.getSelectTreeList())){
        if(uiAuthorDTO==null|| CollectionUtil.isEmpty(uiAuthorDTO.getSelectTreeList())){
            throw  new VciBaseException("请选择节点进行授权!");
        }
        BaseQueryObject treeQueryObject=new BaseQueryObject();
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebBtmIOServiceImpl.java
@@ -21,7 +21,8 @@
import com.vci.starter.web.constant.FrameWorkLcStatusConstant;
import com.vci.starter.web.enumpck.VciFieldTypeEnum;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.util.BeanUtil;
import com.vci.starter.web.util.BeanUtilForVCI;
import com.vci.starter.web.util.Lcm.Func;
import com.vci.starter.web.util.LocalFileUtil;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.util.VciDateUtil;
@@ -29,7 +30,6 @@
import com.vci.starter.word.util.WordUtil;
import com.vci.web.properties.OsDDLExportWordFieldProperties;
import com.vci.web.service.*;
import com.vci.web.util.Func;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
@@ -801,7 +801,7 @@
                List<OsBtmTypeAttributeVO> attributes = new ArrayList<>();
                linkAttributes.stream().forEach(t -> {
                    OsBtmTypeAttributeVO attributeVO = new OsBtmTypeAttributeVO();
                    BeanUtil.convert(t,attributeVO);
                    BeanUtilForVCI.convert(t,attributeVO);
                    attributeVO.setPkBtmType(t.getPkLinkType());
                    attributes.add(attributeVO);
                });
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebInitServiceImpl.java
ÎļþÒÑɾ³ý
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebLogServiceImpl.java
@@ -1,9 +1,9 @@
package com.vci.web.service.impl;
import com.vci.bo.VciLogObjectBO;
import com.vci.corba.common.data.UserEntityInfo;
import com.vci.starter.web.pagemodel.SessionInfo;
import com.vci.starter.web.util.WebThreadLocalUtil;
import com.vci.bo.VciLogObjectBO;
import com.vci.web.service.WebLogServiceI;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/BusAnnotationUtil.java
ÎļþÒÑɾ³ý
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/RightControlUtil.java
@@ -1,6 +1,5 @@
package com.vci.web.util;
import com.vci.client.common.objects.RoleObject;
import com.vci.common.exception.VciException;
import com.vci.corba.common.PLException;
import com.vci.corba.framework.data.FunctionInfo;
import com.vci.corba.framework.data.RoleInfo;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/UITools.java
@@ -1,10 +1,9 @@
package com.vci.web.util;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import com.vci.corba.portal.data.PLPageDefination;
import com.vci.client.common.providers.ClientServiceProvider;
import com.vci.common.portal.constants.PLDefinationConstants;
import com.vci.common.portal.constants.PRMConstants;
import com.vci.corba.portal.PortalServicePrx;
import com.vci.model.PLDefination;
import com.vci.model.PRMDO;
import com.vci.model.PRMItemDO;
@@ -14,10 +13,9 @@
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import com.vci.client.common.providers.ClientServiceProvider;
import com.vci.common.portal.constants.PLDefinationConstants;
import com.vci.common.portal.constants.PRMConstants;
import com.vci.corba.portal.PortalServicePrx;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
Source/plt-web/plt-web-parent/plt-web/src/main/resources/application-dev.yml
@@ -6,7 +6,7 @@
  private-token-key: vciweb20210212
###tomcat相关的配置
server:
  port: 12005
  port: 12000
  servlet:
    context-path: /web
  tomcat:
@@ -17,23 +17,6 @@
  level:
    com.vci: debug
  root: info
###本项目的配置,注意spring家族读取配置时,大写字母需要转换为-的方式,而feign需要大小写完全相同
session:
     session-info-storage-type: "database"
     database-platform: oracle
     clear-session-on-start: false
     ###是否开启用户在线检查
     checkSessionTimeout: false
     ###客户端判断超时轮询时间,单位为秒
     sessionInterval: 10
     ###客户端最大存在时间,单位为分钟
     sessionIdlTime: 30
     ###超时提醒时间,单位为分钟
     sessionRemind: 3
user-table-compatibility: "platform1"
#受2021版本的部分接口的影响,下面的内容需要配置,
vciPlatform:
  objectServiceUrl: ""
#缓存
spring:
  # redis配置
@@ -42,7 +25,7 @@
    host: localhost  # ip地址
    database: 2  # redis数据库  0-15
    port: 6379  # ç«¯å£å·
    password: foobared # æ— å¯†ç ä¸å¡«
    password: 123456 # æ— å¯†ç ä¸å¡«
    timeout: 30000s   # è¿žæŽ¥è¶…æ—¶æ—¶é—´ ï¼ˆé»˜è®¤1天)
    lettuce:
      shutdown-timeout: 100ms # å…³é—­è¶…æ—¶æ—¶é—´ é»˜è®¤ 100ms
@@ -70,15 +53,46 @@
  mvc:
    view:
      suffix: .html
#平台相关配置
plt:
  #人员信息录入时,是否需要密级字段
  export-secret-grade: false
###业务项目的配置,注意spring家族读取配置时,大写字母需要转换为-的方式,而feign需要大小写完全相同
session:
  session-info-storage-type: "database"
  database-platform: oracle
  clear-session-on-start: false
  ###是否开启用户在线检查
  checkSessionTimeout: false
  ###客户端判断超时轮询时间,单位为秒
  sessionInterval: 10
  ###客户端最大存在时间,单位为分钟
  sessionIdlTime: 30
  ###超时提醒时间,单位为分钟
  sessionRemind: 3
##web配置
vciweb:
    debug: true
#文件预览配置
file-preview:
  enabled: true
  preview-service-url: "http://dev.yunkeruida.top:28090/vciFilePreview/ajaxPreview.html"
  preview-system-key: plt2020
#feign地址
feign:
  #扫描工具服务
  scanServiceUrl: ""
  #平台服务
  pltServiceUrl: ""
  #文件服务
  fileServiceUrl: ""
#springmvc配置
vcispringmvc:
  enabled: true
  #不校验安全的链接地址
Source/plt-web/plt-web-parent/plt-web/src/main/resources/application-prod.yml
@@ -9,13 +9,57 @@
  port: 12000
  servlet:
    context-path: /web
  tomcat:
    uri-encoding: UTF-8
###log4j2的配置,需要哪个包下的文件开启某个等级,就直接xxxxx: yy这样方式
logging:
  config: "classpath:log4j2-spring-prod.xml"
  level:
    com.vci: debug
  root: info
###本项目的配置,注意spring家族读取配置时,大写字母需要转换为-的方式,而feign需要大小写完全相同
#缓存
spring:
  # redis配置
  redis:  ###### redis é…ç½®
    enabled: true  #true,启用redi,false不启用,默认false,配置文件没有这些默认不启用redis
    host: localhost  # ip地址
    database: 2  # redis数据库  0-15
    port: 6379  # ç«¯å£å·
    password: foobared # æ— å¯†ç ä¸å¡«
    timeout: 30000s   # è¿žæŽ¥è¶…æ—¶æ—¶é—´ ï¼ˆé»˜è®¤1天)
    lettuce:
      shutdown-timeout: 100ms # å…³é—­è¶…æ—¶æ—¶é—´ é»˜è®¤ 100ms
      pool: # lettuce è¿žæŽ¥æ± 
        max-active: 8 # è¿žæŽ¥æ± æœ€å¤§è¿žæŽ¥æ•° é»˜è®¤ 8(-1 ï¼šè¡¨ç¤ºæ²¡æœ‰é™åˆ¶ï¼‰
        max-wait: 60000ms # è¿žæŽ¥æ± æœ€å¤§é˜»å¡žç­‰å¾…æ—¶é—´ é»˜è®¤-1ms ï¼ˆ-1 :表示没有限制) è¿™é‡Œè®¾ç½®1分钟
        max-idle: 8 # æœ€å¤§ç©ºé—²è¿žæŽ¥  é»˜è®¤ 8
        min-idle: 0 # æœ€å°ç©ºé—²è¿žæŽ¥  é»˜è®¤ 0
  resources:
    chain:
      cache: false
      strategy:
        content:
          enabled: true
          paths: /**
  cache:
    type: ehcache
  servlet:
    multipart:
      enabled: true
      ###单个文件大小:50M
      max-file-size: 52428800
      ###总上传的文件大小:50M
      max-request-size: 52428800
  mvc:
    view:
      suffix: .html
#平台相关配置
plt:
  #人员信息录入时,是否需要密级字段
  export-secret-grade: false
###业务项目的配置,注意spring家族读取配置时,大写字母需要转换为-的方式,而feign需要大小写完全相同
session:
  session-info-storage-type: "database"
  database-platform: oracle
@@ -28,44 +72,30 @@
  sessionIdlTime: 30
  ###超时提醒时间,单位为分钟
  sessionRemind: 3
###兼容性,必须设置为这个
user-table-compatibility: "platform1"
#缓存配置
###corba的配置
jacorb:
  client:
    enabled: true
    url: "corbaloc::localhost:30000/NameService"
    instanceIdentity: "platform-sf"
#受2021版本的部分接口的影响,下面的内容需要配置,
vciPlatform:
  objectServiceUrl: "2"
#缓存
spring:
  # redis配置
  redis: ###### redis é…ç½®
    enabled: false  #true,启用redi,false不启用,默认false,配置文件没有这些默认不启用redis
    host: vciserver  # ip地址
    database: 0  # redis数据库  0-15
    port: 6379  # ç«¯å£å·
    password: vcitest # æ— å¯†ç ä¸å¡«
    timeout: 30000s   # è¿žæŽ¥è¶…æ—¶æ—¶é—´ ï¼ˆé»˜è®¤1天)
    lettuce:
      shutdown-timeout: 100ms # å…³é—­è¶…æ—¶æ—¶é—´ é»˜è®¤ 100ms
      pool: # lettuce è¿žæŽ¥æ± 
        max-active: 8 # è¿žæŽ¥æ± æœ€å¤§è¿žæŽ¥æ•° é»˜è®¤ 8(-1 ï¼šè¡¨ç¤ºæ²¡æœ‰é™åˆ¶ï¼‰
        max-wait: 60000ms # è¿žæŽ¥æ± æœ€å¤§é˜»å¡žç­‰å¾…æ—¶é—´ é»˜è®¤-1ms ï¼ˆ-1 :表示没有限制) è¿™é‡Œè®¾ç½®1分钟
        max-idle: 8 # æœ€å¤§ç©ºé—²è¿žæŽ¥  é»˜è®¤ 8
        min-idle: 0 # æœ€å°ç©ºé—²è¿žæŽ¥  é»˜è®¤ 0
  cache:
    type: ehcache
  config:
    location:
  mvc:
    view:
      suffix: ".html"
##web配置
vciweb:
  debug: true
cors:
#文件预览配置
file-preview:
  enabled: true
  preview-service-url: "http://dev.yunkeruida.top:28090/vciFilePreview/ajaxPreview.html"
  preview-system-key: plt2020
#feign地址
feign:
  #扫描工具服务
  scanServiceUrl: ""
  #平台服务
  pltServiceUrl: ""
  #文件服务
  fileServiceUrl: ""
#springmvc配置
vcispringmvc:
  enabled: true
  #不校验安全的链接地址
  un-check-urls:
  #不更新请求时间的链接地址
  un-storage-request-time-urls:
Source/plt-web/plt-web-parent/plt-web/src/main/resources/i18n/messages.properties
@@ -86,10 +86,6 @@
com.vci.base.lifecycle.noroute=\u751F\u547D\u5468\u671F\u6CA1\u6709\u4EFB\u4F55\u72B6\u6001
lifeCycleTransError=\u751F\u547D\u5468\u671F\u8DC3\u8FC1\u5931\u8D25,{0}
#####\u6D41\u7A0B\u76F8\u5173
com.vci.web.flow.taskOidOrProcessOidNotNull=\u6D41\u7A0B\u4EFB\u52A1\u6216\u8005\u6D41\u7A0B\u6267\u884C\u5B9E\u4F8B\u4E0D\u5B58\u5728
###\u6587\u4EF6\u76F8\u5173
fileUploadSecretError=\u6587\u4EF6\u6807\u5BC6\u8D85\u8FC7\u4E86\u7528\u6237\u7684\u5BC6\u7EA7\uFF0C\u7528\u6237\u5BC6\u7EA7{0}\uFF0C\u6587\u4EF6\u6807\u5BC6{1}
fileUploadDataSecretError=\u6587\u4EF6\u6807\u5BC6\u8D85\u8FC7\u4E86\u6570\u636E\u7684\u5BC6\u7EA7\uFF0C\u6570\u636E\u5BC6\u7EA7{0},\u6587\u4EF6\u6807\u5BC6{1}
@@ -108,5 +104,12 @@
cellValueCanNotNullForReg=\u5355\u5143\u683C\u7684\u5185\u5BB9\u4E0D\u7B26\u5408\u6B63\u5219\u8868\u8FBE\u5F0F\u8981\u6C42\uFF0C\u5217\u540D{0},\u884C\u6570{1}
cellNotDateFormate=\u5355\u5143\u683C\u4E0D\u662F\u6709\u6548\u7684\u4E8B\u4EF6\u683C\u5F0F,\u5217\u540D{0},\u884C\u6570{1}
###\u6D41\u7A0B\u76F8\u5173###
com.vci.web.flow.processTemplateNotExist=\u6D41\u7A0B\u6A21\u677F[{0}]\u4E0D\u5B58\u5728\uFF0C\u8BF7\u67E5\u8BC1
com.vci.web.flow.typeNotExist=\u6D41\u7A0B\u6A21\u677F\u5206\u7C7B[{0}]\u4E0D\u5B58\u5728\uFF0C\u8BF7\u67E5\u8BC1
com.vci.web.flow.deployIdNotExist=\u6D41\u7A0B\u90E8\u7F72ID[{0}]\u4E0D\u5B58\u5728
com.vci.web.flow.doTaskTypeError=\u6D41\u7A0B\u4EFB\u52A1\u7C7B\u578B[{0}]\u9519\u8BEF
com.vci.web.flow.taskOidOrProcessOidNotNull=\u6D41\u7A0B\u4EFB\u52A1\u6216\u8005\u6D41\u7A0B\u6267\u884C\u5B9E\u4F8B\u4E0D\u5B58\u5728
###\u4E1A\u52A1####
com.vci.web.flow.processTemplateNotExist=\u6D41\u7A0B\u6A21\u677F\u4E0D\u5B58\u5728\uFF0C\u8BF7\u67E5\u8BC1
com.vci.web.loService.sortLengthError=\u6392\u5E8F\u5B57\u6BB5\u957F\u5EA6\u9519\u8BEF
Source/plt-web/plt-web-parent/plt-web/src/main/resources/i18n/messages_zh_CN.properties
@@ -85,10 +85,6 @@
com.vci.base.lifecycle.noexistlife=\u751F\u547D\u5468\u671F\u4E0D\u5B58\u5728
com.vci.base.lifecycle.noroute=\u751F\u547D\u5468\u671F\u6CA1\u6709\u4EFB\u4F55\u72B6\u6001
#####\u6D41\u7A0B\u76F8\u5173
com.vci.web.flow.taskOidOrProcessOidNotNull=\u6D41\u7A0B\u4EFB\u52A1\u6216\u8005\u6D41\u7A0B\u6267\u884C\u5B9E\u4F8B\u4E0D\u5B58\u5728
###\u6587\u4EF6\u76F8\u5173
fileUploadSecretError=\u6587\u4EF6\u6807\u5BC6\u8D85\u8FC7\u4E86\u7528\u6237\u7684\u5BC6\u7EA7\uFF0C\u7528\u6237\u5BC6\u7EA7{0}\uFF0C\u6587\u4EF6\u6807\u5BC6{1}
fileUploadDataSecretError=\u6587\u4EF6\u6807\u5BC6\u8D85\u8FC7\u4E86\u6570\u636E\u7684\u5BC6\u7EA7\uFF0C\u6570\u636E\u5BC6\u7EA7{0},\u6587\u4EF6\u6807\u5BC6{1}
@@ -107,5 +103,12 @@
cellValueCanNotNullForReg=\u5355\u5143\u683C\u7684\u5185\u5BB9\u4E0D\u7B26\u5408\u6B63\u5219\u8868\u8FBE\u5F0F\u8981\u6C42\uFF0C\u5217\u540D{0},\u884C\u6570{1}
cellNotDateFormate=\u5355\u5143\u683C\u4E0D\u662F\u6709\u6548\u7684\u4E8B\u4EF6\u683C\u5F0F,\u5217\u540D{0},\u884C\u6570{1}
#####\u6D41\u7A0B\u76F8\u5173####
com.vci.web.flow.processTemplateNotExist=\u6D41\u7A0B\u6A21\u677F[{0}]\u4E0D\u5B58\u5728\uFF0C\u8BF7\u67E5\u8BC1
com.vci.web.flow.typeNotExist=\u6D41\u7A0B\u6A21\u677F\u5206\u7C7B[{0}]\u4E0D\u5B58\u5728\uFF0C\u8BF7\u67E5\u8BC1
com.vci.web.flow.deployIdNotExist=\u6D41\u7A0B\u90E8\u7F72ID[{0}]\u4E0D\u5B58\u5728
com.vci.web.flow.doTaskTypeError=\u6D41\u7A0B\u4EFB\u52A1\u7C7B\u578B[{0}]\u9519\u8BEF
com.vci.web.flow.taskOidOrProcessOidNotNull=\u6D41\u7A0B\u4EFB\u52A1\u6216\u8005\u6D41\u7A0B\u6267\u884C\u5B9E\u4F8B\u4E0D\u5B58\u5728
###\u4E1A\u52A1####
com.vci.web.flow.processTemplateNotExist=\u6D41\u7A0B\u6A21\u677F\u4E0D\u5B58\u5728\uFF0C\u8BF7\u67E5\u8BC1
com.vci.web.loService.sortLengthError=\u6392\u5E8F\u5B57\u6BB5\u957F\u5EA6\u9519\u8BEF
Source/plt-web/plt-web-parent/plt-web/src/main/resources/properties/corba.properties
ÎļþÒÑɾ³ý
Source/plt-web/plt-web-parent/plt-web/src/main/resources/properties/iceClient.properties
@@ -1 +1 @@
Endpoints=default -h localhost -p 4601
Endpoints=default -h localhost -p 4061
Source/plt-web/plt-web-parent/pom.xml
@@ -14,6 +14,7 @@
        <module>plt-starter</module>
        <module>plt-web-base</module>
        <module>plt-web-api</module>
        <module>plt-web-permission</module>
    </modules>
    <properties>
@@ -152,9 +153,19 @@
            </dependency>
            <dependency>
                <groupId>com.vci</groupId>
                <artifactId>plt-web-api</artifactId>
                <version>2024.1-SNAPSHOT</version>
            </dependency>
            <dependency>
                <groupId>com.vci</groupId>
                <artifactId>plt-web-base</artifactId>
                <version>2024.1-SNAPSHOT</version>
            </dependency>
            <dependency>
                <groupId>com.vci</groupId>
                <artifactId>plt-web-permission</artifactId>
                <version>2024.1-SNAPSHOT</version>
            </dependency>
            <!--spring相关-->
            <dependency>
Source/plt-web/plt-web-ui/src/api/system/user/api.js
@@ -131,3 +131,13 @@
  });
}
//获取用户,数据授权页面选择用户
export function listUserByUserType(params) {
  return request({
    url: "/api/userQueryController/listUserByUserType",
    method: "get",
    params
  });
}
Source/plt-web/plt-web-ui/src/store/modules/user.js
@@ -2,7 +2,7 @@
import {Message} from 'element-ui'
import {setStore, getStore} from '@/util/store'
import {isURL, validatenull} from '@/util/validate'
import {deepClone,queryStringToObject} from '@/util/util'
import {deepClone, queryStringToObject} from '@/util/util'
import website from '@/config/website'
import {loginByUsername, loginBySocial, loginBySso, getUserInfo, logout, refreshToken, getButtons} from '@/api/user'
import {getTopMenu, getRoutes} from '@/api/system/menu'
@@ -38,7 +38,7 @@
    item.pathValue = item.path;
    item.path = '/' + item.code;
    item.query = {}; // åˆå§‹åŒ– item.query
    if(item.pathValue.indexOf('?')!=-1) {
    if (item.pathValue.indexOf('?') != -1) {
      item.query = queryStringToObject(item.pathValue)
    }
    if (item.children && item.children.length > 0) {
@@ -63,8 +63,8 @@
    //根据用户名登录
    LoginByUsername({commit}, userInfo) {
      return new Promise((resolve, reject) => {
        let passwordDes = func.encryptData(userInfo.password,'daliantan0v0vcip')
        loginByUsername(userInfo.deptId, userInfo.roleId, userInfo.username,passwordDes, userInfo.type, userInfo.key,).then(res => {
        let passwordDes = func.encryptData(userInfo.password, 'daliantan0v0vcip')
        loginByUsername(userInfo.deptId, userInfo.roleId, userInfo.username, passwordDes, userInfo.type, userInfo.key,).then(res => {
          const data = res.data;
          if (data.obj.failCode === 'loginSuccess') {
            commit('SET_TOKEN', data.obj.tokenVO.accessToken);
@@ -210,7 +210,7 @@
      return new Promise((resolve, reject) => {
        getUserInfo().then((res) => {
          const data = res.data.data;
          console.log('user',res)
          console.log('user', res)
          // commit('SET_USER_INFO', data.roles);
          resolve(data);
        }).catch(err => {
@@ -296,8 +296,20 @@
    SET_ROLES: (state, roles) => {
      state.roles = roles;
    },
    SET_PERMISSION: (state, permission) => {
      let permission_new = {};
      permission.forEach(item => {
        let children = {};
        if (item.children && item.children.length > 0) {
          item.children.forEach(child => {
            Vue.set(children, child.code, true);
          });
        }
        Vue.set(permission_new, item.code, children);
      });
      state.permission = permission_new;
      setStore({name: "permission", content: permission_new});
    },
  }
}
export default user
Source/plt-web/plt-web-ui/src/util/func.js
@@ -4,6 +4,38 @@
import CryptoJS from 'crypto-js'
export default class func {
  static getSvgList() {
    const fs = require('fs');
    const path = require('path');
    // æŒ‡å®šæ–‡ä»¶å¤¹è·¯å¾„
    const directoryPath = "../config/svg"; // ä¿®æ”¹ä¸ºä½ çš„æ–‡ä»¶å¤¹è·¯å¾„
    // å­˜å‚¨ .svg æ–‡ä»¶è·¯å¾„的数组
    let svgFiles = [];
    // è¯»å–文件夹
    fs.readdir(directoryPath, (err, files) => {
      if (err) {
        return console.error('无法读取目录: ' + err);
      }
      // éåŽ†æ–‡ä»¶
      files.forEach(file => {
        // æ£€æŸ¥æ–‡ä»¶åŽç¼€å
        if (path.extname(file).toLowerCase() === '.svg') {
          // æž„建文件的完整路径
          const filePath = path.join(directoryPath, file);
          svgFiles.push(filePath);
        }
      });
      // è¾“出结果
      console.log(JSON.stringify(svgFiles, null, 2));
    });
  }
  /**
   * å•选表格行
   * æ—¶é—´æˆ³æ ¼å¼åŒ–
@@ -92,9 +124,9 @@
   */
  static isEmptyObject(obj) {
    if(obj){
    if (obj) {
      return Object.keys(obj).length === 0;
    }else {
    } else {
      return true;
    }
  }
Source/plt-web/plt-web-ui/src/views/authority/ui/dataAuthorization/dataView.vue
@@ -53,7 +53,7 @@
                      :formData="form"
                      @getFormData="getFormData">
          </basic-form>
          <el-container v-if="!readOnly">
          <el-container v-if="!readOnly && (form.ruleType=='1' || form.ruleType=='3')">
            <el-aside style="width:350px">
              <fieldset>
                <legend>&nbsp;候选条件&nbsp;</legend>
@@ -91,13 +91,13 @@
      </el-tab-pane>
      <el-tab-pane>
        <span slot="label"><i class="el-icon-s-tools"></i> æ“ä½œ</span>
        <fieldset :style="'width:99.5%;height: '+(height/2+20)+'px;margin-bottom:10px;'">
        <fieldset :style="'width:99.5%;height: '+(height-10)+'px;margin-bottom:10px;'">
          <legend>&nbsp;一般操作 </legend>
          <div>
            <avue-checkbox :disabled="readOnly" key="actionCheck" :all="!readOnly" v-model="actionForm" placeholder="请选择内容" :dic="actionDic"></avue-checkbox>
          </div>
        </fieldset>
        <fieldset :style="'width:99.5%;height: '+(height/2-30)+'px;'">
        <fieldset v-if="0" :style="'width:99.5%;height: '+(height/2-30)+'px;'">
          <legend>&nbsp;关系和跃迁 </legend>
          <div>
            <avue-checkbox :disabled="readOnly" key="linkActionCheck" :all="!readOnly" v-model="linkactionForm" placeholder="请选择内容" :dic="linkactionDic"></avue-checkbox>
@@ -123,6 +123,7 @@
import formQueryDialog from "@/views/modelingMenu/queryTemplate/linkTypeQuery/formQueryDialog.vue";
import {queryTemplateListByAttr} from "@/api/queryTemplate/queryDefine";
import {getCriteria} from "@/api/queryTemplate/linkTypeQuery";
import {listUserByUserType} from "@/api/system/user/api";
import {listUserByRoleOid, listUserUnInRoleOid, saveRight} from "@/api/system/role/api";
export default {
@@ -135,7 +136,7 @@
      default: {}
    },
    //选中行数据
    data: {
    selectRow: {
      type: Object,
      default: {}
    },
@@ -147,7 +148,7 @@
      type: Number,
      default: 400
    },
    actionDic:{
    actionMap:{
      type: Object,
      default: {}
    }
@@ -172,6 +173,7 @@
        height: this.height-80,
        tip:false,
        size:'mini',
        highlightCurrentRow:true,
        column: [{
          label: ' åˆ†ç±»',
          prop: 'type',
@@ -199,6 +201,8 @@
        tip:false,
        showHeader:false,
        size:'mini',
        highlightCurrentRow:true,
        align:'left',
        column: [{
          label: '名称',
          prop: 'name'
@@ -206,7 +210,7 @@
      },
      formItems:[{
        label: '规则名称',
        prop: 'qtName',
        prop: 'ruleName',
        type: 'input',
        span:8,
        labelWidth: 100,
@@ -218,31 +222,47 @@
        }]
      }, {
        label: '规则类型',
        prop: 'version',
        prop: 'ruleType',
        type: 'select',
        span:6,
        labelWidth:110,
        disabled:this.readOnly,
        dicData: [{
          label: '全部允许',
          value: 1
          value: '0'
        }, {
          label: '允许权限',
          value: 2
          value: '1',
          disabled:true
        }, {
          label: '全部拒绝',
          value: 3
          value: '2'
        }, {
          label: '拒绝权限',
          value: 7
          value: '3',
          disabled:true
        }],
        value: 1
        value: '0'
      }],
      form:{
        btmName:'',
        qtName: '',
        levelFlag:0,//0:普通查询模板; 1:高级查询模板"
        queryTemplate:{}
        queryTemplate:{},//客体中查询条件
        "ID": "",//数据的ID
        "roles": "",//显示到授权主体界面,角色名称,多个使用逗号分隔
        "userGroups": "",//显示到授权主体界面,部门名称,多个使用逗号分隔
        "users": "",//显示到授权主体界面,用户名称,多个使用逗号分隔
        "expToSQL": "",//此处为允许权限或拒绝权限需填充的数据,暂时不做处理,为空字符串即可
        "identifier": "terminology_query",//业务类型(terminology)+下划线(_)+操作区的一般操作的按钮英文名称(query),多个按钮的话是多条数据不是使用逗号分隔
        "isGrand": 49, //此处为操作区的一般操作的按钮是否为选择情况,未选中值为48,选中为49,这里是将0和1转为了byte值,所以为48,49
        "lexpToSQL": "",//此处为允许权限或拒绝权限需填充的数据,暂时不做处理,为空字符串即可
        "lruleText": "",//此处为允许权限或拒绝权限需填充的数据,暂时不做处理,为空字符串即可
        "lseniorRuleText": "",//此处为允许权限或拒绝权限需填充的数据,暂时不做处理,为空字符串即可
        "ruleName": "assssss",//规则名称
        "ruleText": "",//此处为允许权限或拒绝权限需填充的数据,暂时不做处理,为空字符串即可
        "ruleType": "2",//0全部允许,1允许权限,2全部拒绝,3拒绝权限,由于暂时只做全部允许与全部拒绝,所以暂时可以不用管
        "seniorRuleText": "",//此处为允许权限或拒绝权限需填充的数据,暂时不做处理,为空字符串即可
      },
      radioForm:0,
      radioDic:[{
@@ -289,24 +309,59 @@
      actionForm:[],//一般操作选中值
      actionDic:[],//一般操作选中项
      linkactionForm:[],//关系和跃迁选中值
      linkactionDic:[{
        label:'选项111',
        value:0
      },{
        label:'选项222',
        value:1
      }]//关系和跃迁选中项
      linkactionDic:[]//关系和跃迁选中项
    }
  },
  created() {
    listUserByUserType().then(res => {
      if(typeof res.data == 'string'){
        res.data=eval('('+res.data +')')
      }
      // ç»„装好穿梭框可用数据
      this.leftUserData = res.data.data.map(item => {
        return {
          name: item.name + `(${item.id})`,
          oid: item.oid
        }
      })
      this.rightUserData = [];
    })
  },
  watch: {
    data:{
    selectRow:{
      handler(val) {
        if(val && val.oid){
          this.getTemp(true);
          this.getTemp(false)
        this.authData=[];
        if(val && val.rules){
          //this.getTemp(true);
          //this.getTemp(false)
          //构建授权主体数据
          if(val.rules.users){
            val.rules.users.split(',').forEach((item,i)=>{
              if(item){
                this.authData.push({
                  name:'{'+item+', '+item+', user}'
                })
              }
            })
          }
          if(val.rules.roles){
            val.rules.roles.split(',').forEach((item,i)=>{
              if(item){
                this.authData.push({
                  name:'{'+item+', '+item+', role}'
                })
              }
            })
          }
          if(val.rules.userGroups){
            val.rules.userGroups.split(',').forEach((item,i)=>{
              if(item){
                this.authData.push({
                  name:'{'+item+', '+item+', userGroup}'
                })
              }
            })
          }
        }
      },
      immediate: true,
@@ -314,13 +369,15 @@
    },
    actionMap:{
      handler(val) {
        this.actionDic=[{
          label:'选项1',
          value:0
        },{
          label:'选项2',
          value:1
        }];
        this.actionDic=[];
        if(val){
          for(var i in val){
            this.actionDic.push({
              label:i,
              value:val[i]
            })
          }
        };
      },
      immediate: true,
      deep: true
@@ -329,24 +386,7 @@
  methods: {
    //选中用户
    userHandler(){
      Promise.all([
        listUserUnInRoleOid({pkRole: this.selectList.oid}),
        listUserByRoleOid({pkRole: this.selectList.oid})
      ]).then(([unInRoleRes, byRoleRes]) => {
        if (unInRoleRes.data.code === 200 && byRoleRes.data.code === 200) {
          const leftData = [...unInRoleRes.data.data, ...byRoleRes.data.data];
          // ç»„装好穿梭框可用数据
          this.leftUserData = leftData.map(item => {
            return {
              name: item.name + `(${item.id})`,
              oid: item.oid
            }
          })
          this.rightUserData = byRoleRes.data.data.map(item => item.oid);
          this.$refs.usertransfer.visible = true;
        }
      });
      this.$refs.usertransfer.visible = true;
    },
    // é€‰ä¸­ç”¨æˆ·ç©¿æ¢­æ¡†å›žå¡«
Source/plt-web/plt-web-ui/src/views/authority/ui/dataAuthorization/index.vue
@@ -26,16 +26,16 @@
          :option="option"
          :table-loading="tableLoading"
          @refresh-change="handleRefresh"
          @selection-change="selectChange"
          @row-click="rowClickHandler">
          @current-row-change="rowClickHandler">
          <template slot="menuLeft">
            <el-button icon="el-icon-plus" size="small" type="primary" @click="addHandler">添加</el-button>
            <el-button icon="el-icon-plus" size="small" type="primary" @click="editHandler">修改</el-button>
            <el-button icon="el-icon-delete" plain size="small" type="danger" @click="delHandler">删除</el-button>
            <el-button icon="el-icon-view" plain size="small" type="primary" @click="chekView">查看授权结果</el-button>
          </template>
        </avue-crud>
        <div style="margin-top: 15px;">
          <data-view key="dataView" :btmNode="nodeRow" :data="viewData" :actionDic="actionMap" :readOnly="true" :height="clientHeight-260-220"></data-view>
          <data-view key="dataView" :btmNode="nodeRow" :selectRow="selectRow" :actionMap="actionMap" :readOnly="true" :height="clientHeight-260-220"></data-view>
        </div>
        <!-- æ–°å¢ž && ç¼–辑 -->
        <el-dialog
@@ -47,7 +47,7 @@
          width="70%"
          @close="addDialogClose">
            <div>
              <data-view ref="editView" key="editView" :btmNode="nodeRow" :data="viewData" :actionDic="actionMap" :readOnly="false" :height="clientHeight-340"></data-view>
              <data-view ref="editView" key="editView" :btmNode="nodeRow" :selectRow="selectRow" :actionMap="actionMap" :readOnly="false" :height="clientHeight-340"></data-view>
            </div>
            <span slot="footer" class="dialog-footer">
               <el-button size="small" type="primary" @click="addDialogSavaHandler">ç¡® å®š</el-button>
@@ -107,10 +107,11 @@
      nodeRow: {},
      treeData: [],
      tableLoading: false,
      selectList: [],
      selectRow: {},
      option: {
        ...basicOption,
        height:280,
        highlightCurrentRow:true,
        addBtn: false,
        editBtn: false,
        delBtn: false,
@@ -118,27 +119,32 @@
        columnBtn:false,
        gridBtn:false,
        tip: false,
        align: 'left',
        index:false,
        selection:false,
        menu:false,
        column: [
          {
            label: '规则名称',
            prop: 'plCode',
            overHidden: true
          },
          {
            label: '规则类型',
            prop: 'plName',
            overHidden: true
          }
        ]
        align:'center',
        column: [{
          label: '规则名称',
          prop: 0,
          overHidden: true
        },{
          label: '规则类型',
          prop: 1,
          overHidden: true
        }]
      },
      data: [],
      viewData:{},
      title: '',
      visible: false,
      form:{},
      actionMap:{}
      actionMap:{},
      switchDic:[{
        label:'',
        value:false
      },{
        label:'',
        value:true
      }]
    }
  },
  created() {
@@ -163,13 +169,40 @@
      }
    },
    getTableList() {
      getData({
        'typeName': this.nodeRow.attributes.name,
      }).then(res => {
      getData(this.nodeRow.attributes.name).then(res => {
        /*if(typeof res.data == 'string'){
          res.data=eval('('+res.data +')')
        }*/
        if(res.data.obj.tableHeader){
          this.option.column=[ {
            label: '规则名称',
            prop: 0,
            overHidden: true
          },{
              label: '规则类型',
              prop: 1,
              overHidden: true
            }];
          res.data.obj.tableHeader.forEach((item,i)=>{
            if(i<=1) return;
            if(i=='rules') return;
            this.option.column.push({
              label: item,
              prop: i,
              overHidden: true,
              width:'auto',
              html:true,
              formatter:(val)=> {
                return '<label class="el-checkbox is-disabled ' + (val[i] == true ? 'is-checked' : '') + '"><span class="el-checkbox__input is-disabled ' + (val[i] == true ? 'is-checked' : '') + '"><span class="el-checkbox__inner"></span><input type="checkbox" aria-hidden="false" class="el-checkbox__original" value="' + val[i] + '"></span></label>'
              }
            })
          })
        }
        this.data = res.data.obj.rowList;
        this.$refs.crud.clearSelection();
        this.tableLoading = false;
        this.actionMap=res.data.obj.actionMap
        this.actionMap=res.data.obj.actionMap;
        this.selectRow={}
      })
    },
    handleRefresh() {
@@ -177,41 +210,16 @@
    },
    // è¡Œç‚¹å‡»
    rowClickHandler(row) {
      func.rowClickHandler(
        row,
        this.$refs.crud,
        this.lastIndex,
        (newIndex) => {
          this.lastIndex = newIndex;
        },
        () => {
          this.selectList = [row];
        }
      );
      this.getViewData(row)
    },
    // é€‰æ‹©æ¡†
    selectChange(row) {
      this.selectList = row;
    },
    //获取下方数据
    getViewData(row){
      this.viewData={
        oid:row.plOId
      };
      this.selectRow=row
    },
    // æŸ¥çœ‹æŽˆæƒç»“æžœ
    chekView() {
      if (this.selectList.length <= 0) {
        this.$message.warning('请至少选择一条数据');
        return;
      }
      if (this.selectList.length > 1) {
        this.$message.warning('只能选择一条数据进行查看');
      if (this.selectRow=={}) {
        this.$message.warning('请选择一条数据');
        return;
      }
      getUsedEnumList({enumName: this.selectList[0].id}).then(res => {
      getUsedEnumList({enumName: this.selectRow.id}).then(res => {
        if (res.data.code === 200) {
          this.checkViewVisible = true;
          this.checkViewData = res.data.data;
Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formQueryDialog.vue
@@ -364,23 +364,30 @@
          let list = [];
          let that = this;
          let getValue = function (queryTemplate, item) {
            for (let key in queryTemplate.condition.cIMap) {
              if (queryTemplate.condition.cIMap[key].leaf) {
                item.clause += '.' + queryTemplate.condition.cIMap[key].leafInfo.clause;
                if (queryTemplate.condition.cIMap[key].leafInfo.value.queryTemplate) {
                  getValue(queryTemplate.condition.cIMap[key].leafInfo.value.queryTemplate, item)
                } else {
                  //item.ordinaryValue = queryTemplate.condition.cIMap[key].leafInfo.value.ordinaryValue;
                  item.type = queryTemplate.condition.cIMap[key].leafInfo.type;
                  if (['VTInteger', 'VTDouble', 'VTLong'].includes(item.type)) {
                    item.operatorDic = that.operatorIntDic;
                  } else if (['VTDateTime', 'VTDate', 'VTTime'].includes(item.type)) {
                    item.operatorDic = that.operatorDateDic;
            if(queryTemplate.id.indexOf('qt_')==0){
              item.clause += '.' + queryTemplate.condition.cIMap['ci1'].leafInfo.clause;
              item.ordinaryValue = queryTemplate.condition.cIMap['ci1'].leafInfo.value.ordinaryValue;
              item.type = queryTemplate.condition.cIMap['ci1'].leafInfo.type;
            }else {
              item.ordinaryValue = queryTemplate.id+';'+queryTemplate.clauseList.join(',');
              /*for (let key in queryTemplate.condition.cIMap) {
                if (queryTemplate.condition.cIMap[key].leaf) {
                  item.clause += '.' + queryTemplate.condition.cIMap[key].leafInfo.clause;
                  if (queryTemplate.condition.cIMap[key].leafInfo.value.queryTemplate) {
                    getValue(queryTemplate.condition.cIMap[key].leafInfo.value.queryTemplate, item)
                  } else {
                    item.operatorDic = that.operatorDic;
                    item.ordinaryValue = queryTemplate.condition.cIMap[key].leafInfo.value.ordinaryValue;
                    item.type = queryTemplate.condition.cIMap[key].leafInfo.type;
                  }
                }
              }
              }*/
            }
            if (['VTInteger', 'VTDouble', 'VTLong'].includes(item.type)) {
              item.operatorDic = that.operatorIntDic;
            } else if (['VTDateTime', 'VTDate', 'VTTime'].includes(item.type)) {
              item.operatorDic = that.operatorDateDic;
            } else {
              item.operatorDic = that.operatorDic;
            }
          }
          for (let key in val.cIMap) {
@@ -394,19 +401,7 @@
                operatorDic: []
              }
              if (this.queryCondition.cIMap[key].leafInfo.value.queryTemplate) {
                item.ordinaryValue = this.queryCondition.cIMap[key].leafInfo.value.queryTemplate.id+';'+this.queryCondition.cIMap[key].leafInfo.value.queryTemplate.clauseList.join(',');
                if(this.queryCondition.cIMap[key].leafInfo.value.queryTemplate.id.indexOf('qt_')==0){
                  getValue(this.queryCondition.cIMap[key].leafInfo.value.queryTemplate, item)
                }else {
                  item.type = this.queryCondition.cIMap[key].leafInfo.type;
                  if (['VTInteger', 'VTDouble', 'VTLong'].includes(item.type)) {
                    item.operatorDic = that.operatorIntDic;
                  } else if (['VTDateTime', 'VTDate', 'VTTime'].includes(item.type)) {
                    item.operatorDic = that.operatorDateDic;
                  } else {
                    item.operatorDic = that.operatorDic;
                  }
                }
              } else {
                item.ordinaryValue = this.queryCondition.cIMap[key].leafInfo.value.ordinaryValue;
                item.type = this.queryCondition.cIMap[key].leafInfo.type;
Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/components/formDialog.vue
@@ -1549,8 +1549,8 @@
  font-size: 14px
}
.formItemMargin {
  margin: 10px 0 10px 0;
}
//.formItemMargin {
//  margin: 10px 0 10px 0;
//}
</style>
Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/index.vue
@@ -56,6 +56,52 @@
        <span v-else-if="form.searchTarger === '1'">源对象</span>
        <span v-else-if="form.searchTarger === '2'">目标对象</span>
      </template>
      <template slot="extAttrLabel" slot-scope="{}">
        <el-tooltip placement="top">
          <div slot="content">示例:ext1:xx;ext2;ext3:xx;ext4:xxx;extn:xxx;
            <br/>1、用英交半角分号:分隔各组值;
            <br/>2、每组用英交半角冒号:分隔单一扩展属性名称及属性值;
            <br/>3、可以定义任意组,但总字符长度不得超过4000;
            <br/>4、输入时,不要敲回车换行;
          </div>
          <span>扩展属性 <i class="el-icon-warning" style="color:red;"></i> </span>
        </el-tooltip>
      </template>
      <template slot="uiParserLabel" slot-scope="{}">
        <el-tooltip placement="top">
          <div slot="content">示例:java_cs;xxx.java_bs;xxx.net_cs;xxxx.net_bs;xxx.mobile_cs;xx.mobile_bs;xxx;
            <br/>1、用英文半角分号;分割各组值;(这里结尾的是中文字符的分号)
            <br/>2、每组用英文半角冒号:分隔单一扩展属性名称及属性值;
            <br/>3、其中的xxx是各种解析类的完整类型名称(完全限定名);
            <br/>4、输入时,不要敲回车换行;
          </div>
          <span>UI解析类型 <i class="el-icon-warning" style="color:red;"></i> </span>
        </el-tooltip>
      </template>
      <template slot="templateIdForm" slot-scope="{}">
        <el-select v-model="form.templateId" filterable placeholder="请选择">
          <el-option
            v-for="item in templateIdList"
            :key="item.viName"
            :label="item.viName"
            :value="item.viName">
          </el-option>
        </el-select>
      </template>
      <template slot="queryTemplateNameForm" slot-scope="{}">
        <el-select v-model="form.queryTemplateName" filterable placeholder="请选择">
          <el-option
            v-for="item in queryTemplateNameList"
            :key="item.qtName"
            :label="item.qtName"
            :value="item.qtName">
          </el-option>
        </el-select>
      </template>
    </avue-crud>
    <el-dialog
      v-dialogDrag
@@ -216,7 +262,9 @@
  delPageDefination,
  joinBtn,
  exitBtn,
  updatePageDefination
  updatePageDefination,
  getPortalVIDatasByPage,
  getQTInfoDatasByPage
} from "@/api/UI/uiDefine";
import actionDialog from '@/views/modelingMenu/ui/Aciton/components/dialog';
import cloneDialog from "@/views/modelingMenu/ui/uiDefine/rightRegion/cloneDialog";
@@ -240,6 +288,9 @@
  name: "index",
  data() {
    return {
      queryTemplateNameList:[],
      templateIdList: [],
      searchTargerChangeFlag: false,
      formBtnOid: '',
      sourceBtnOid: '',
      sourceOId: '',
@@ -248,7 +299,7 @@
      eventOption: {
        ...basicOption,
        addBtn: false,
        // editBtn: false,
        editBtn: false,
        delBtn: false,
        refreshBtn: false,
        highlightCurrentRow: true,
@@ -392,12 +443,13 @@
            ],
          },
          {
            label: 'UI解析类型',
            label: '',
            prop: 'uiParser',
            hide: true,
            labelWidth: 100,
          },
          {
            label: '扩展属性',
            label: '',
            prop: 'extAttr',
            hide: true,
          },
@@ -442,7 +494,7 @@
              // list.forEach(item => {
              //   this.form[item] = "";
              // })
              this.form.searchTarger = '1'
              // this.form.searchTarger = '1'
              const searchTarger = this.option.column.find(item => item.prop === 'searchTarger');  // èŽ·å–æœç´¢ç±»åž‹é…ç½®é¡¹
              searchTarger.display = true; // åˆ‡æ¢é»˜è®¤å±•示搜索类型
              // æ¨¡æ¿ç±»åž‹ä¸ºè¡¨æ ¼
@@ -469,7 +521,7 @@
            dicData: [
              {
                label: '不显示',
                value: '3'
                value: '1'
              },
              {
                label: '显示角色',
@@ -477,7 +529,7 @@
              },
              {
                label: '显示Folder',
                value: '1',
                value: '3',
              },
            ],
          },
@@ -507,11 +559,16 @@
                const obj = this.option.group[0].column.find(item => item.prop === 'linkType');
                obj.display = val.value !== '1';
              }
              // åˆ‡æ¢æ¸…空模板类型
              const list = ['showType', 'linkType', 'templateId', 'SubUILayout', 'queryTemplateName', 'searchObjType'];
              // list.forEach(item => {
              //   this.form[item] = '';
              // })
              if (this.searchTargerChangeFlag) {
                // åˆ‡æ¢æ¸…空模板类型
                const list = ['showType', 'linkType', 'templateId', 'SubUILayout', 'queryTemplateName', 'searchObjType', 'bsCustQueryCLsOrUrl', 'csCustQueryCLsOrUrl'];
                list.forEach(item => {
                  this.form[item] = '';
                })
              } else {
                this.searchTargerChangeFlag = true;
              }
            }
          },
          {
@@ -530,10 +587,23 @@
                label: '源对象',
                prop: 'showType',
                type: 'select',
                cascader: ['linkType', 'templateId', 'SubUILayout', 'searchObjType', 'queryTemplateName'],
                cascader: ['linkType', 'SubUILayout', 'searchObjType'],
                placeholder: "请输入内容",
                dicUrl: '/api/uiManagerController/getBtmDatasByPage?page=1&limit=-1',
                filterable: true,
                change: (val) => {
                  if (val.value) {
                    let params = {
                      'conditionMap[selectBtmType]': this.form.searchTarger === '1' ? this.form.showType : this.form.linkType
                    }
                    getPortalVIDatasByPage(1, -1, params).then(res => {
                      this.templateIdList = res.data.data;
                    })
                    getQTInfoDatasByPage(1, -1, params).then(res => {
                      this.queryTemplateNameList = res.data.data;
                    })
                  }
                },
                props: {
                  label: 'name',
                  value: 'name',
@@ -559,14 +629,25 @@
                  desc: 'tag'
                },
                dicUrl: '/api/uiManagerController/getLinkDatasByPage?page=1&limit=-1&conditionMap[selectBtmType]={{key}}',
                change:(val) => {
                  if (val.value) {
                    let params = {
                      'conditionMap[selectBtmType]': val.value
                    }
                    getPortalVIDatasByPage(1, -1, params).then(res => {
                      this.templateIdList = res.data.data;
                    })
                    getQTInfoDatasByPage(1, -1, params).then(res => {
                      this.queryTemplateNameList = res.data.data;
                    })
                  }
                }
              },
              {
                label: '选择模板',
                prop: 'templateId',
                display: false,
                type: 'select',
                filterable: true,
                dicUrl: '/api/uiManagerController/getPortalVIDatasByPage?page=1&limit=-1&conditionMap[selectBtmType]={{key}}',
                formslot: true,
                rules: [
                  {
                    required: true,
@@ -574,11 +655,6 @@
                    trigger: 'submit'
                  }
                ],
                props: {
                  label: 'viName',
                  value: 'viName',
                  desc: 'viType'
                },
              },
              {
                label: 'UI定义',
@@ -627,14 +703,8 @@
                label: '查询模板',
                prop: 'queryTemplateName',
                type: 'select',
                filterable: true,
                display: false,
                props: {
                  label: 'qtName',
                  value: 'qtName',
                  desc: 'btmName'
                },
                dicUrl: '/api/uiManagerController/getQTInfoDatasByPage?page=1&limit=-1&conditionMap[selectBtmType]={{key}}',
                formslot: true,
              },
              {
                label: '控制路径',
@@ -690,6 +760,20 @@
                prop: 'showAbs',
                display: false,
                labelWidth: 135,
                span: 12
              },
              {
                label: 'B/S自定义查询',
                prop: 'bsCustQueryCLsOrUrl',
                display: false,
                labelWidth: 115,
                span: 12
              },
              {
                label: 'C/S自定义查询',
                prop: 'csCustQueryCLsOrUrl',
                display: false,
                labelWidth: 115,
                span: 12
              },
            ]
@@ -779,21 +863,11 @@
    // å¢žåŠ 
    addClickHandler() {
      console.log(this.sourceData);
      if (!this.sourceData || !this.sourceData.plOId) {
        this.$message.error('请在上方选择一条数据后进行添加');
        return;
      }
      this.$refs.crud.rowAdd();
    },
    // ç¼–辑打开表单前
    beforeOpen(done, type) {
      // if (type === 'edit') {
      //   console.log('edit');
      //   this.form.showType = 'Ludc';
      // }
      done();
    },
    // å¢žåŠ å…³é—­å¯¹è¯æ¡† æ¸…空event数组
@@ -818,13 +892,12 @@
          };
        });
      }
      this.searchTargerChangeFlag = false;
      this.$refs.crud.rowEdit(row);
      console.log(this.form);
    },
    // åˆ é™¤
    rowDeleteHandler(row) {
      console.log(row);
      this.$confirm('您确定要删除所选择的数据吗?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
@@ -853,13 +926,11 @@
        row.SubUIObjType = row.showType;
        row.showType = "";
      }
      console.log(this.sourceData);
      const params = {
        ...row,
        tabPageOId: this.sourceData.plOId
      }
      addPageDefination(params).then(res => {
        console.log(res);
        if (res.data.code === 200) {
          this.$message.success(res.data.obj);
          this.getTableList();
@@ -870,18 +941,16 @@
      })
    },
    rowUpdateHandler(row,index,done,loading){
    rowUpdateHandler(row, index, done, loading) {
      if (row.templateType === '6') {
        row.SubUIObjType = row.showType;
        row.showType = "";
      }
      console.log(this.sourceData);
      const params = {
        ...row,
        tabPageOId: this.sourceData.plOId
      }
      updatePageDefination(params).then(res => {
        console.log(res);
        if (res.data.code === 200) {
          this.$message.success(res.data.obj);
          this.getTableList();
@@ -943,7 +1012,7 @@
    // æ¨¡æ¿ç±»åž‹ä¸ºè¡¨æ ¼
    templateTypeTable(val) {
      if (!val) return;
      this.updateDisplay(val, ['showType', 'templateId', 'queryTemplateName']);
      this.updateDisplay(val, ['showType', 'templateId', 'queryTemplateName', 'bsCustQueryCLsOrUrl', 'csCustQueryCLsOrUrl']);
    },
    // æ¨¡æ¿ç±»åž‹ä¸ºè‡ªå®šä¹‰æ¨¡æ¿
@@ -957,13 +1026,13 @@
    // æ¨¡æ¿ç±»åž‹ä¸ºæ ‘表
    templateTypeTreeTable(val) {
      if (!val) return;
      this.updateDisplay(val, ['showType', 'templateId', 'queryTemplateName', 'expandCols', 'expandMode']);
      this.updateDisplay(val, ['showType', 'templateId', 'queryTemplateName', 'expandCols', 'expandMode', 'bsCustQueryCLsOrUrl', 'csCustQueryCLsOrUrl']);
    },
    // æ¨¡æ¿ç±»åž‹ä¸ºè¡¨å•
    templateTypeForm(val) {
      if (!val) return;
      this.updateDisplay(val, ['showType', 'templateId', 'queryTemplateName']);
      this.updateDisplay(val, ['showType', 'templateId', 'queryTemplateName', 'bsCustQueryCLsOrUrl', 'csCustQueryCLsOrUrl']);
    },
    // æ¨¡æ¿ç±»åž‹ä¸ºæ ‘
@@ -971,7 +1040,7 @@
      if (!val) return;
      const searchTarger = this.option.column.find(item => item.prop === 'searchTarger');  // èŽ·å–æœç´¢ç±»åž‹é…ç½®é¡¹
      searchTarger.display = false; // ä¸å±•示搜索类型
      this.updateDisplay(val, ['showType', 'queryTemplateName', 'rootContent', 'showAbs', 'showLinkAbs', 'separator', 'expandMode', 'linkType']);
      this.updateDisplay(val, ['showType', 'queryTemplateName', 'rootContent', 'showAbs', 'showLinkAbs', 'separator', 'expandMode', 'linkType', 'bsCustQueryCLsOrUrl', 'csCustQueryCLsOrUrl']);
    },
    // æ¨¡æ¿ç±»åž‹ä¸ºUI定义
@@ -979,7 +1048,7 @@
      if (!val) return;
      const searchTarger = this.option.column.find(item => item.prop === 'searchTarger');  // èŽ·å–æœç´¢ç±»åž‹é…ç½®é¡¹
      searchTarger.display = false; // ä¸å±•示搜索类型
      this.updateDisplay(val, ['showType', 'SubUILayout', 'searchType', 'searchObjType', 'queryTemplateName']);
      this.updateDisplay(val, ['showType', 'SubUILayout', 'searchType', 'searchObjType', 'queryTemplateName', 'bsCustQueryCLsOrUrl', 'csCustQueryCLsOrUrl']);
    },
    // æŸ¥æ‰¾æ•°ç»„中对象索引
@@ -1013,7 +1082,6 @@
        this.$message.error('请选择一条数据');
        return;
      }
      console.log(this.selectList);
      this.btnDesignVisible = true;
      this.formBtnOid = this.selectList[0].id;
      this.getTabBtnTree();
@@ -1059,7 +1127,7 @@
    // æŒ‰é’®è®¾è®¡ä¿¡æ¯å‚数信息修改
    paramsRowEditHandler(row) {
      this.$refs.paramsCrud.rowEdit(row,row.$index);
      this.$refs.paramsCrud.rowEdit(row, row.$index);
    },
    // æŒ‰é’®è®¾è®¡å‚数信息添加按钮
@@ -1069,7 +1137,6 @@
    // æŒ‰é’®è®¾è®¡å‚数信息修改保存
    paramsRowUpdate(row, index, done, loading) {
      console.log(row,index);
      this.paramsData.splice(index, 1, row);
      done();
    },
@@ -1179,7 +1246,6 @@
        type: 'warning'
      }).then(() => {
        deleteTabButton(this.nodeTreeRow).then(res => {
          // console.log(res);
          if (res.data.code === 200) {
            this.$message.success('删除成功');
            this.getTabBtnTree();
@@ -1222,7 +1288,6 @@
    // æ‰“开克隆对话框
    rowCloneHandler(row) {
      console.log(row);
      this.fromOid = this.sourceData.plOId;
      this.sourceOId = row.id;
      this.$refs.cloneDialog.openDialog(row);
@@ -1240,7 +1305,6 @@
        return;
      }
      joinBtn(this.nodeTreeRow).then(res => {
        // console.log(res);
        if (res.data.code === 200) {
          this.$message.success(res.data.obj);
          this.getTabBtnTree();
@@ -1254,7 +1318,6 @@
        this.$message.error('请选择节点进行修改');
        return;
      }
      if (this.nodeTreeRow.oId === "parentNode") {
        this.$message.error('顶层节点不允许调整');
        return;
Source/plt-web/plt-web-ui/src/views/system/role/index.vue
@@ -190,7 +190,6 @@
    rowSaveHandler(row, done, loading) {
      delete row.roleClassifyText;
      addRole(row).then(res => {
        console.log(res)
        if (res.data.code === 200) {
          this.$message.success(res.data.obj);
          this.getTableList();
@@ -213,7 +212,6 @@
        }
      }).catch(err => {
        loading();
        console.log(err);
      });
    },
@@ -325,7 +323,6 @@
        return;
      }
      listUserByRoleOid({pkRole: this.selectList[0].oid}).then(res => {
        console.log(res)
        if (res.data.code === 200) {
          const data = res.data.data;
          this.countData = data.map(item => {
@@ -338,8 +335,6 @@
          });
          this.statisticsVisible = true;
        }
      }).catch(err => {
        console.log(err)
      })
    },
Source/plt-web/plt-web-ui/src/views/wel/index.vue
@@ -10,7 +10,7 @@
    <el-row>
      <el-col :span="16" style="height: 560px">
        <basic-container>
          <el-collapse v-model="activeNames" @change="handleChange">
          <el-collapse v-model="activeNames">
            <el-collapse-item name="1" title="欢迎使用PLT-WEB平台">
              <div>
                1、北京宏博远达科技有限公司(以下简称“宏博远达”)长期专注于制造业信息化建设,为客户提供企业信息化整体解决方案及相关软件研发、咨询及实施服务。宏博远达客户群体涵盖航空、航天、船舶、兵器、汽车、通用机械、电子等制造行业,通过与客户深度合作,承担了多项国家级软件研发与技术服务项目,拥有多项具有自主知识产权的软件产品。
@@ -18,7 +18,9 @@
              <div>
                2、为了给客户提供更多的技术创新能力及相应的企业级管理支撑平台,宏博远达研发了具有自主知识产权的企业级信息化整体解决方案,同时针对客户的特定需求,提供了高度可定制的专业应用。为了进一步提升技术服务能力,宏博远达投入专门力量在前沿技术方面进行探索,在企业私有云计算和大数据等领域不断取得突破。随着新一代业务与管理技术平台的推出,更增强了公司为客户提供高质量、全方位、深层次服务的技术能力。
              </div>
              <div>3、宏博远达一直秉承“用智慧为客户创造价值”的宗旨,愿以“诚信负责”的态度和专业化的服务,在企业信息化发展的道路上,与客户一起成长,共同见证成功!</div>
              <div>
                3、宏博远达一直秉承“用智慧为客户创造价值”的宗旨,愿以“诚信负责”的态度和专业化的服务,在企业信息化发展的道路上,与客户一起成长,共同见证成功!
              </div>
            </el-collapse-item>
            <el-collapse-item name="2" title="服务计划制定">
@@ -57,8 +59,11 @@
              <span>说明文档</span>
              <el-divider direction="vertical"/>
              <span><el-link href="https://bladex.vip" target="_blank"
                             type="primary">https://bladex.vip</el-link></span>
              <span>
                <el-link href="https://bladex.vip" target="_blank"
                         type="primary">https://bladex.vip
                </el-link>
              </span>
              <el-divider content-position="right"><i class="el-icon-star-off"/></el-divider>
            </div>
@@ -82,6 +87,7 @@
import 'echarts/lib/chart/pie' // å¯¼å…¥æŸ±çŠ¶å›¾ç»„ä»¶
import 'echarts/lib/component/tooltip'
import 'echarts/lib/component/legend'
import func from "@/util/func";
export default {
  name: "wel",
@@ -147,10 +153,6 @@
    this.getLogHandler();
  },
  methods: {
    handleChange(val) {
      window.console.log(val);
    },
    getLogHandler() {
      this.loading = true;