dangsn
2024-12-03 d0ae279ff3b83358d1c07f4481a041c4ad335026
提取业务系统使用的功能,独立出一个单独的模块
已修改82个文件
已删除9个文件
已重命名174个文件
已添加29个文件
9375 ■■■■■ 文件已修改
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/BaseResult.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/pagemodel/BaseTree.java 223 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/pagemodel/Tree.java 182 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/pagemodel/UIDataTree.java 395 ●●●●● 补丁 | 查看 | 原始文档 | 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 5 ●●●●● 补丁 | 查看 | 原始文档 | 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 28 ●●●● 补丁 | 查看 | 原始文档 | 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 46 ●●●●● 补丁 | 查看 | 原始文档 | 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 24 ●●●● 补丁 | 查看 | 原始文档 | 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 57 ●●●●● 补丁 | 查看 | 原始文档 | 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 174 ●●●● 补丁 | 查看 | 原始文档 | 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 140 ●●●● 补丁 | 查看 | 原始文档 | 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 103 ●●●●● 补丁 | 查看 | 原始文档 | 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 345 ●●●●● 补丁 | 查看 | 原始文档 | 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 87 ●●●●● 补丁 | 查看 | 原始文档 | 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 193 ●●●●● 补丁 | 查看 | 原始文档 | 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/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/OsDataAuthServiceI.java 30 ●●●●● 补丁 | 查看 | 原始文档 | 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 16 ●●●● 补丁 | 查看 | 原始文档 | 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 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsDataAuthServiceImpl.java 313 ●●●●● 补丁 | 查看 | 原始文档 | 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 37 ●●●●● 补丁 | 查看 | 原始文档 | 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 27 ●●●●● 补丁 | 查看 | 原始文档 | 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 224 ●●●●● 补丁 | 查看 | 原始文档 | 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 28 ●●●●● 补丁 | 查看 | 原始文档 | 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-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/BaseResult.java
@@ -90,7 +90,7 @@
    /**
     * æ ‘的数据
     */
    private Collection<Tree> treeData;
    private Collection<BaseTree> treeData;
    public Object[] getMsgObjs() {
        return msgObjs;
@@ -196,11 +196,11 @@
        this.data = data;
    }
    public Collection<Tree> getTreeData() {
    public Collection<BaseTree> getTreeData() {
        return treeData;
    }
    public void setTreeData(Collection<Tree> treeData) {
    public void setTreeData(Collection<BaseTree> treeData) {
        this.treeData = treeData;
    }
@@ -411,7 +411,7 @@
     * @param treeList æ ‘节点集合
     * @return ç»Ÿä¸€æ•°æ®å¯¹è±¡
     */
    public static BaseResult tree(Collection<Tree> treeList){
    public static BaseResult tree(Collection<? extends BaseTree> treeList){
        BaseResult baseResult = new BaseResult<>();
        baseResult.setCode(ResultCodeEnum.SUCCESS.code);
        baseResult.setSuccess(true);
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/pagemodel/BaseTree.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,223 @@
package com.vci.starter.web.pagemodel;
/**
 * @author ludc
 * @date 2024/11/27 16:53
 */
public class BaseTree implements java.io.Serializable{
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     * @serial åºåˆ—化值
     */
    private static final long serialVersionUID = 6886695271635257122L;
    /**
     * ä¸»é”®
     */
    private String oid;
    /**
     * æ˜¾ç¤ºæ–‡æœ¬
     */
    private String text;
    /**
     * ç¼–号
     */
    private String id;
    /**
     * æ˜¯å¦å¶å­
     */
    private boolean leaf = false;
    /**
     * æ˜¯å¦æ˜¾ç¤ºå¤é€‰æ¡†
     */
    private boolean showCheckbox = false;
    /**
     * æ˜¯å¦é»˜è®¤é€‰ä¸­
     */
    private boolean checked = false;
    /**
     * å±‚级
     */
    private  int level;
    /**
     * å›¾æ ‡
     */
    private String icon;
    /**
     * å›¾æ ‡æ ·å¼
     */
    private String iconCls;
    /**
     * ä¸Šçº§èŠ‚ç‚¹
     */
    private String parentId;
    /**
     * ä¸Šçº§èŠ‚ç‚¹çš„åç§°
     */
    private String parentName;
    /**
     * ä¸Šçº§èŠ‚ç‚¹çš„ä¸šåŠ¡ç±»åž‹
     */
    private String parentBtmName;
    /**
     * æ˜¯å¦å±•å¼€
     */
    private boolean expanded = false;
    /**
     * é“¾æŽ¥
     */
    private String href;//layui和extjs使用href,easyui使用url,统一href
    /**
     * æŽ’序索引
     */
    private String index;
    /**
     * å½“前数据对象
     */
    private Object data;
    public void setOid(String oid) {
        this.oid = oid;
    }
    public void setText(String text) {
        this.text = text;
    }
    public void setId(String id) {
        this.id = id;
    }
    public void setLeaf(boolean leaf) {
        this.leaf = leaf;
    }
    public void setShowCheckbox(boolean showCheckbox) {
        this.showCheckbox = showCheckbox;
    }
    public void setChecked(boolean checked) {
        this.checked = checked;
    }
    public void setLevel(int level) {
        this.level = level;
    }
    public void setIcon(String icon) {
        this.icon = icon;
    }
    public void setIconCls(String iconCls) {
        this.iconCls = iconCls;
    }
    public void setParentId(String parentId) {
        this.parentId = parentId;
    }
    public void setParentName(String parentName) {
        this.parentName = parentName;
    }
    public void setParentBtmName(String parentBtmName) {
        this.parentBtmName = parentBtmName;
    }
    public void setExpanded(boolean expanded) {
        this.expanded = expanded;
    }
    public void setHref(String href) {
        this.href = href;
    }
    public void setIndex(String index) {
        this.index = index;
    }
    public void setData(Object data) {
        this.data = data;
    }
    public String getOid() {
        return oid;
    }
    public String getText() {
        return text;
    }
    public String getId() {
        return id;
    }
    public boolean isLeaf() {
        return leaf;
    }
    public boolean isShowCheckbox() {
        return showCheckbox;
    }
    public boolean isChecked() {
        return checked;
    }
    public int getLevel() {
        return level;
    }
    public String getIcon() {
        return icon;
    }
    public String getIconCls() {
        return iconCls;
    }
    public String getParentId() {
        return parentId;
    }
    public String getParentName() {
        return parentName;
    }
    public String getParentBtmName() {
        return parentBtmName;
    }
    public boolean isExpanded() {
        return expanded;
    }
    public String getHref() {
        return href;
    }
    public String getIndex() {
        return index;
    }
    public Object getData() {
        return data;
    }
}
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/pagemodel/Tree.java
@@ -12,7 +12,7 @@
 * @author weidy
 *
 */
public class Tree implements java.io.Serializable{
public class Tree extends BaseTree implements java.io.Serializable{
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
@@ -48,93 +48,22 @@
        setData(o);
    }
    /**
     * ä¸»é”®
     */
    private String oid;
    /**
     * æ˜¾ç¤ºæ–‡æœ¬
     */
    private String text;
    /**
     * ç¼–号
     */
    private String id;
    /**
     * æ˜¯å¦å¶å­
     */
    private boolean leaf = false;
    /**
     * æ˜¯å¦æ˜¾ç¤ºå¤é€‰æ¡†
     */
    private boolean showCheckbox = false;
    /**
     * æ˜¯å¦é»˜è®¤é€‰ä¸­
     */
    private boolean checked = false;
    /**
     * å­èŠ‚ç‚¹
     */
    private List<Tree> children = new ArrayList<Tree>();
    /**
     * å±‚级
     */
    private  int level;
    /**
     * å›¾æ ‡
     */
    private String icon;
    /**
     * å›¾æ ‡æ ·å¼
     */
    private String iconCls;
    /**
     * ä¸Šçº§èŠ‚ç‚¹
     */
    private String parentId;
    private List<Tree> children = new ArrayList<>();
    /**
     * ä¸Šçº§èŠ‚ç‚¹çš„åç§°
     */
    private String parentName;
    /**
     * ä¸Šçº§èŠ‚ç‚¹çš„ä¸šåŠ¡ç±»åž‹
     */
    private String parentBtmName;
    /**
     * æ˜¯å¦å±•å¼€
     */
    private boolean expanded = false;
    /**
     * é“¾æŽ¥
     */
    private String href;//layui和extjs使用href,easyui使用url,统一href
    /**
     * æŽ’序索引
     */
    private String index;//排序索引
    /***
     * å½“前数据对象
     */
    private Object data;
    /**
     * å…¶ä»–的属性
     */
    private Map<String,String> attributes = new HashMap<String, String>();//使用平台的话,所有的属性都是String的
    private Map<String,String> attributes = new HashMap<>();//使用平台的话,所有的属性都是String的
    /**
     * èŽ·å–ä¸»é”®
     * @return ä¸»é”®çš„值
     */
    public String getOid() {
        return oid;
        return super.getOid();
    }
    /**
@@ -142,7 +71,7 @@
     * @param oid ä¸»é”®çš„值
      */
    public void setOid(String oid) {
        this.oid = oid;
        super.setOid(oid);
    }
    /**
@@ -150,7 +79,7 @@
     * @return æ ‘节点文本
     */
    public String getText() {
        return text;
        return super.getText();
    }
    /**
@@ -158,7 +87,7 @@
     * @param text æ ‘节点文本
     */
    public void setText(String text) {
        this.text = text;
        super.setText(text);
    }
    /**
@@ -166,14 +95,14 @@
     * @param id
     */
    public void setId(String id) {
        this.id = id;
        super.setId(id);
    }
    /**
     * èŽ·å–ç¼–å·
     */
    public String getId() {
        return id;
        return super.getId();
    }
    /**
@@ -181,7 +110,7 @@
     * @return true è¡¨ç¤ºå¶å­èŠ‚ç‚¹
     */
    public boolean isLeaf() {
        return leaf;
        return super.isLeaf();
    }
    /**
@@ -189,7 +118,7 @@
     * @param leaf æ˜¯å¦å¶å­èŠ‚ç‚¹
     */
    public void setLeaf(boolean leaf) {
        this.leaf = leaf;
        super.setLeaf(leaf);
    }
    /**
@@ -197,7 +126,7 @@
     * @return true表示显示
     */
    public boolean isShowCheckbox() {
        return showCheckbox;
        return super.isShowCheckbox();
    }
    /**
@@ -205,7 +134,7 @@
     * @param showCheckbox æ˜¯å¦æ˜¾ç¤ºå¤é€‰æ¡†
     */
    public void setShowCheckbox(boolean showCheckbox) {
        this.showCheckbox = showCheckbox;
        super.setShowCheckbox(showCheckbox);
    }
    /**
@@ -213,7 +142,7 @@
     * @return true表示需要自动勾选
     */
    public boolean isChecked() {
        return checked;
        return super.isChecked();
    }
    /**
@@ -221,7 +150,7 @@
     * @param checked æ˜¯å¦è‡ªåЍ勾选
     */
    public void setChecked(boolean checked) {
        this.checked = checked;
        super.setChecked(checked);
    }
    /**
@@ -229,7 +158,7 @@
     * @return å­èŠ‚ç‚¹åˆ—è¡¨
     */
    public List<Tree> getChildren() {
        return children;
        return this.children;
    }
    /**
@@ -245,7 +174,7 @@
     * @return å›¾æ ‡
     */
    public String getIcon() {
        return icon;
        return super.getIcon();
    }
    /**
@@ -253,7 +182,7 @@
     * @param icon å›¾æ ‡
     */
    public void setIcon(String icon) {
        this.icon = icon;
        super.setIcon(icon);
    }
    /**
@@ -261,7 +190,7 @@
     * @return css类的名称
     */
    public String getIconCls() {
        return iconCls;
        return super.getIconCls();
    }
    /**
@@ -269,7 +198,7 @@
     * @param iconCls css类的名称
     */
    public void setIconCls(String iconCls) {
        this.iconCls = iconCls;
        super.setIconCls(iconCls);
    }
    /**
@@ -277,7 +206,7 @@
     * @return ä¸Šçº§èŠ‚ç‚¹çš„oid
     */
    public String getParentId() {
        return parentId;
        return super.getParentId();
    }
    /**
@@ -285,7 +214,7 @@
     * @param parentId ä¸Šçº§èŠ‚ç‚¹çš„oid
     */
    public void setParentId(String parentId) {
        this.parentId = parentId;
        super.setParentId(parentId);
    }
    /**
@@ -293,7 +222,7 @@
     * @return true表示自动展开
     */
    public boolean isExpanded() {
        return expanded;
        return super.isExpanded();
    }
    /**
@@ -301,7 +230,7 @@
     * @param expanded æ˜¯å¦è‡ªåЍ展开
     */
    public void setExpanded(boolean expanded) {
        this.expanded = expanded;
        super.setExpanded(expanded);
    }
    /**
@@ -309,7 +238,7 @@
     * @return é“¾æŽ¥åœ°å€
     */
    public String getHref() {
        return href;
        return super.getHref();
    }
    /**
@@ -317,7 +246,7 @@
     * @param href é“¾æŽ¥åœ°å€
     */
    public void setHref(String href) {
        this.href = href;
        super.setHref(href);
    }
    /**
@@ -325,7 +254,7 @@
     * @return æŽ’序号
     */
    public String getIndex() {
        return index;
        return super.getIndex();
    }
    /**
@@ -333,7 +262,7 @@
     * @param index æŽ’序号
     */
    public void setIndex(String index) {
        this.index = index;
        super.setIndex(index);
    }
    /**
@@ -357,7 +286,7 @@
     * @return ä¸Šçº§çš„名称
     */
    public String getParentName() {
        return parentName;
        return super.getParentName();
    }
    /**
@@ -365,15 +294,15 @@
     * @param parentName ä¸Šçº§çš„名称
     */
    public void setParentName(String parentName) {
        this.parentName = parentName;
        super.setParentName(parentName);
    }
    public String getParentBtmName() {
        return parentBtmName;
        return super.getParentBtmName();
    }
    public void setParentBtmName(String parentBtmName) {
        this.parentBtmName = parentBtmName;
        super.setParentBtmName(parentBtmName);
    }
    /**
@@ -406,7 +335,7 @@
                if (node.getOid().equalsIgnoreCase(childnode.getParentId())) {
                    childnode.setParentName(node.getText());
                    if(StringUtils.isBlank(childnode.getParentBtmName())){
                        childnode.setParentBtmName(node.getAttributes().getOrDefault("btmname",""));
                        childnode.setParentBtmName((String)node.getAttributes().getOrDefault("btmname",""));
                    }
                    node.getChildren().add(childnode);
                }
@@ -416,7 +345,7 @@
                node.setLeaf(false);
            }else {
                node.setLeaf(true);
            }
            this.getChildren().add(node);
        }
@@ -424,41 +353,42 @@
    public Object getData() {
        return data;
        return super.getData();
    }
    public void setData(Object data) {
        this.data = data;
        super.setData(data);
    }
    public int getLevel() {
        return level;
        return super.getLevel();
    }
    public void setLevel(int level) {
        this.level = level;
        super.setLevel(level);
    }
    @Override
    public String toString() {
        return "Tree{" +
                "oid='" + oid + '\'' +
                ", text='" + text + '\'' +
                ", leaf=" + leaf +
                ", showCheckbox=" + showCheckbox +
                ", checked=" + checked +
                ", children=" + children +
                ", level=" + level +
                ", icon='" + icon + '\'' +
                ", iconCls='" + iconCls + '\'' +
                ", parentId='" + parentId + '\'' +
                ", parentName='" + parentName + '\'' +
                ", parentBtmName='" + parentBtmName + '\'' +
                ", expanded=" + expanded +
                ", href='" + href + '\'' +
                ", index='" + index + '\'' +
                ", data=" + data +
                "oid='" + super.getOid() + '\'' +
                ", text='" + super.getText() + '\'' +
                ", leaf=" + super.isLeaf() +
                ", showCheckbox=" + super.isShowCheckbox() +
                ", checked=" + super.isChecked() +
                ", children=" + this.getChildren() +
                ", level=" + super.getLevel() +
                ", icon='" + super.getIcon() + '\'' +
                ", iconCls='" + super.getIconCls() + '\'' +
                ", parentId='" + super.getParentId() + '\'' +
                ", parentName='" + super.getParentBtmName() + '\'' +
                ", parentBtmName='" + super.getParentBtmName() + '\'' +
                ", expanded=" + super.isExpanded() +
                ", href='" + super.getHref() + '\'' +
                ", index='" + super.getIndex() + '\'' +
                ", data=" + super.getData() +
                ", attributes=" + attributes +
                '}';
    }
}
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/pagemodel/UIDataTree.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,395 @@
package com.vci.starter.web.pagemodel;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * @author ludc
 * @date 2024/11/27 16:34
 */
@Data
public class UIDataTree extends BaseTree implements java.io.Serializable{
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     * @serial åºåˆ—化值
     */
    private static final long serialVersionUID = 6886695271635257212L;
    /**
     * æž„造函数
     */
    public UIDataTree(){
    }
    /**
     * æž„造函数
     * @param oid ä¸»é”®
     * @param text æ ‘节点文本
     */
    public UIDataTree(String oid, String text){
        setOid(oid);
        setText(text);
    }
    /**
     * æž„造函数
     * @param oid ä¸»é”®
     * @param text æ ‘节点文本
     */
    public UIDataTree(String oid, String text,Object o){
        setOid(oid);
        setText(text);
        setData(o);
    }
    /**
     * å…¶ä»–的属性
     */
    private Map<String,Object> attributes = new HashMap<>();
    /**
     * å­èŠ‚ç‚¹
     */
    private List<UIDataTree> children = new ArrayList<>();
    /**
     * èŽ·å–ä¸»é”®
     * @return ä¸»é”®çš„值
     */
    public String getOid() {
        return super.getOid();
    }
    /**
     * è®¾ç½®ä¸»é”®
     * @param oid ä¸»é”®çš„值
     */
    public void setOid(String oid) {
        super.setOid(oid);
    }
    /**
     * èŽ·å–æ ‘èŠ‚ç‚¹æ–‡æœ¬
     * @return æ ‘节点文本
     */
    public String getText() {
        return super.getText();
    }
    /**
     * è®¾ç½®æ ‘节点文本
     * @param text æ ‘节点文本
     */
    public void setText(String text) {
        super.setText(text);
    }
    /**
     * è®¾ç½®ç¼–号
     * @param id
     */
    public void setId(String id) {
        super.setId(id);
    }
    /**
     * èŽ·å–ç¼–å·
     */
    public String getId() {
        return super.getId();
    }
    /**
     * æ˜¯å¦å¶å­èŠ‚ç‚¹
     * @return true è¡¨ç¤ºå¶å­èŠ‚ç‚¹
     */
    public boolean isLeaf() {
        return super.isLeaf();
    }
    /**
     * è®¾ç½®å¶å­èŠ‚ç‚¹
     * @param leaf æ˜¯å¦å¶å­èŠ‚ç‚¹
     */
    public void setLeaf(boolean leaf) {
        super.setLeaf(leaf);
    }
    /**
     * æ˜¯å¦æ˜¾ç¤ºå¤é€‰æ¡†
     * @return true表示显示
     */
    public boolean isShowCheckbox() {
        return super.isShowCheckbox();
    }
    /**
     * è®¾ç½®æ˜¯å¦æ˜¾ç¤ºå¤é€‰æ¡†
     * @param showCheckbox æ˜¯å¦æ˜¾ç¤ºå¤é€‰æ¡†
     */
    public void setShowCheckbox(boolean showCheckbox) {
        super.setShowCheckbox(showCheckbox);
    }
    /**
     * æ˜¯å¦è‡ªåŠ¨å‹¾é€‰ä¸Š
     * @return true表示需要自动勾选
     */
    public boolean isChecked() {
        return super.isChecked();
    }
    /**
     * è®¾ç½®æ˜¯å¦å‹¾é€‰
     * @param checked æ˜¯å¦è‡ªåЍ勾选
     */
    public void setChecked(boolean checked) {
        super.setChecked(checked);
    }
    /**
     * èŽ·å–å­èŠ‚ç‚¹
     * @return å­èŠ‚ç‚¹åˆ—è¡¨
     */
    public List<UIDataTree> getChildren() {
        return this.children;
    }
    /**
     * è®¾ç½®å­èŠ‚ç‚¹
     * @param children å­èŠ‚ç‚¹åˆ—è¡¨
     */
    public void setChildren(List<UIDataTree> children) {
        this.children = children;
    }
    /**
     * èŽ·å–å›¾æ ‡
     * @return å›¾æ ‡
     */
    public String getIcon() {
        return super.getIcon();
    }
    /**
     * è®¾ç½®å›¾æ ‡
     * @param icon å›¾æ ‡
     */
    public void setIcon(String icon) {
        super.setIcon(icon);
    }
    /**
     * èŽ·å–å›¾æ ‡çš„æ˜¾ç¤ºcssç±»
     * @return css类的名称
     */
    public String getIconCls() {
        return super.getIconCls();
    }
    /**
     * è®¾ç½®å›¾æ ‡çš„æ˜¾ç¤ºcssç±»
     * @param iconCls css类的名称
     */
    public void setIconCls(String iconCls) {
        super.setIconCls(iconCls);
    }
    /**
     * èŽ·å–ä¸Šçº§ä¸»é”®
     * @return ä¸Šçº§èŠ‚ç‚¹çš„oid
     */
    public String getParentId() {
        return super.getParentId();
    }
    /**
     * è®¾ç½®ä¸Šçº§ä¸»é”®
     * @param parentId ä¸Šçº§èŠ‚ç‚¹çš„oid
     */
    public void setParentId(String parentId) {
        super.setParentId(parentId);
    }
    /**
     * æ˜¯å¦è‡ªåЍ展开
     * @return true表示自动展开
     */
    public boolean isExpanded() {
        return super.isExpanded();
    }
    /**
     * è®¾ç½®æ˜¯å¦è‡ªåЍ展开
     * @param expanded æ˜¯å¦è‡ªåЍ展开
     */
    public void setExpanded(boolean expanded) {
        super.setExpanded(expanded);
    }
    /**
     * èŽ·å–é“¾æŽ¥åœ°å€
     * @return é“¾æŽ¥åœ°å€
     */
    public String getHref() {
        return super.getHref();
    }
    /**
     * è®¾ç½®é“¾æŽ¥åœ°å€
     * @param href é“¾æŽ¥åœ°å€
     */
    public void setHref(String href) {
        super.setHref(href);
    }
    /**
     * èŽ·å–æŽ’åºå·
     * @return æŽ’序号
     */
    public String getIndex() {
        return super.getIndex();
    }
    /**
     * è®¾ç½®æŽ’序号
     * @param index æŽ’序号
     */
    public void setIndex(String index) {
        super.setIndex(index);
    }
    /**
     * èŽ·å–æ ‘èŠ‚ç‚¹æŒ‡ä»£çš„ä¸šåŠ¡æ•°æ®çš„æ‰€æœ‰å±žæ€§æ˜ å°„
     * @return key表示属性的名称,value表示属性的值
     */
    public Map<String, Object> getAttributes() {
        return attributes;
    }
    /**
     * è®¾ç½®æ ‘节点指代的业务数据的所有属性映射
     * @param attributes key表示属性的名称,value表示属性的值
     */
    public void setAttributes(Map<String, Object> attributes) {
        this.attributes = attributes;
    }
    /**
     * èŽ·å–ä¸Šçº§çš„èŠ‚ç‚¹çš„åç§°
     * @return ä¸Šçº§çš„名称
     */
    public String getParentName() {
        return super.getParentName();
    }
    /**
     * è®¾ç½®ä¸Šçº§èŠ‚ç‚¹çš„åç§°
     * @param parentName ä¸Šçº§çš„名称
     */
    public void setParentName(String parentName) {
        super.setParentName(parentName);
    }
    public String getParentBtmName() {
        return super.getParentBtmName();
    }
    public void setParentBtmName(String parentBtmName) {
        super.setParentBtmName(parentBtmName);
    }
    /**
     * åˆ©ç”¨é€’归将树转换为上下级关系
     * @param rootTree é¡¶å±‚节点
     * @param children å­èŠ‚ç‚¹
     * @return å«æœ‰ä¸Šä¸‹çº§å…³ç³»çš„æ ‘
     */
    public static List<UIDataTree> getChildList(List<UIDataTree> rootTree, List<UIDataTree> children){
        if(rootTree == null ||rootTree.size() == 0){
            if(children !=null && children.size()>0){
                rootTree = children.subList(0, children.size());
            }else{
                return null;
            }
        }
        UIDataTree bt = new UIDataTree();
        bt.findChild(rootTree, children);
        return rootTree;
    }
    /**
     * æŸ¥è¯¢æ ‘的下级
     * @param treenode å½“前节点
     * @param children å…¶ä»–的节点
     */
    public void findChild(List<UIDataTree> treenode, List<UIDataTree> children){
        for (UIDataTree node : treenode) {
            for (UIDataTree childnode : children) {
                if (node.getOid().equalsIgnoreCase(childnode.getParentId())) {
                    childnode.setParentName(node.getText());
                    if(StringUtils.isBlank(childnode.getParentBtmName())){
                        childnode.setParentBtmName((String)node.getAttributes().getOrDefault("btmname",""));
                    }
                    node.getChildren().add(childnode);
                }
            }
            if (node.getChildren().size()>0) {
                findChild(node.getChildren(), children);
                node.setLeaf(false);
            }else {
                node.setLeaf(true);
            }
            this.getChildren().add(node);
        }
    }
    public Object getData() {
        return super.getData();
    }
    public void setData(Object data) {
        super.setData(data);
    }
    public int getLevel() {
        return super.getLevel();
    }
    public void setLevel(int level) {
        super.setLevel(level);
    }
    @Override
    public String toString() {
        return "UIDataTree{" +
                "oid='" + this.getOid() + '\'' +
                ", text='" + this.getText() + '\'' +
                ", leaf=" + this.isLeaf() +
                ", showCheckbox=" + this.isShowCheckbox() +
                ", checked=" + this.isChecked() +
                ", children=" + this.getChildren() +
                ", level=" + this.getLevel() +
                ", icon='" + this.getIcon() + '\'' +
                ", iconCls='" + this.getIconCls() + '\'' +
                ", parentId='" + this.getParentId() + '\'' +
                ", parentName='" + this.getParentBtmName() + '\'' +
                ", parentBtmName='" + this.getParentBtmName() + '\'' +
                ", expanded=" + this.isExpanded() +
                ", href='" + this.getHref() + '\'' +
                ", index='" + this.getIndex() + '\'' +
                ", data=" + this.getData() +
                ", attributes=" + attributes +
                '}';
    }
}
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);
    }
    /**
@@ -1814,7 +1814,6 @@
        return name;
    }
    /**
     * æ ¹æ®ä¸šåŠ¡ç±»åž‹èŽ·å–è¡¨æ ¼åç§°
     * @param btmname ä¸šåŠ¡ç±»åž‹ï¼Œå¹¶ä¸”ä¸èƒ½æ˜¯è§†å›¾
@@ -1878,7 +1877,7 @@
     * @param replaceMap ä½¿ç”¨æ›¿æ¢çš„æ•°æ®æº
     * @return æ›¿æ¢åŽçš„值
     */
    public static String replaceByFreeMarker(String freemarker,Map<String,String> replaceMap){
    public static String replaceByFreeMarker(String freemarker,Map<String,Object> replaceMap){
        if(StringUtils.isBlank(freemarker)){
            return "";
        }
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;
@@ -174,6 +174,25 @@
        }
    }
    /**
     * ä½¿ç”¨å½“前用户的类型查询用户
     * @return
     * @throws VciBaseException
     */
    @RequestMapping(value = "/listUserByUserType",method = RequestMethod.GET)
    public BaseResult<List<SmUserVO>> listUserByUserType() throws VciBaseException{
        try {
            List<SmUserVO> smUserVOList = userQueryService.listUserByUserType();
            return  BaseResult.dataList(smUserVOList);
        }catch (Exception e){
            e.printStackTrace();
            String exceptionMessage = "通过当前用户的类型来获取用户数据时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
            logger.error(exceptionMessage);
            return BaseResult.fail(exceptionMessage);
        }
    }
    /**
     * ä½¿ç”¨è§’色获取不在某个角色下的用户参照列表
     * @param pkRole è§’色的主键,不能为空
@@ -224,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);
@@ -363,6 +382,5 @@
        //老的项目依然是添加try catch,方法里不抛出异常
        //BaseResult.fail("这里返回前端的错误信息");
    }
}
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,6 +269,12 @@
     * @param roleType
     * @return
     */
    List<String> queryUserNameByRoleType(String roleType) throws PLException;
    List<String> queryUserNameByRoleType(String roleType);
    /**
     * ä½¿ç”¨å½“前用户的类型查询用户
     * @return
     * @throws VciBaseException
     */
    List<SmUserVO> listUserByUserType() throws PLException;
}
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;
@@ -105,7 +105,7 @@
     * @return
     * @throws VciBaseException
     */
     List<BusinessObject> queryCBOByScheme(String queryScheme, Map<String, String> conditionMap, Map<String, String> replaceMap) throws VciBaseException;
     List<BusinessObject> queryCBOByScheme(String queryScheme, Map<String, String> conditionMap, Map<String, Object> replaceMap) throws VciBaseException;
    
    /**
     * ä½¿ç”¨æŸ¥è¯¢æ–¹æ¡ˆæ¥æŸ¥è¯¢æ•°æ®ï¼Œè¿”回CBO,支持分页
@@ -116,7 +116,7 @@
     * @return
     * @throws VciBaseException
     */
     List<BusinessObject> queryCBOByScheme(String queryScheme, Map<String, String> conditionMap, Map<String, String> replaceMap, PageHelper ph) throws VciBaseException;
     List<BusinessObject> queryCBOByScheme(String queryScheme, Map<String, String> conditionMap, Map<String, Object> replaceMap, PageHelper ph) throws VciBaseException;
    /**
     * ä½¿ç”¨åå­—获取查询模板
@@ -125,7 +125,7 @@
     * @return æŸ¥è¯¢æ¨¡æ¿
     * @throws VciBaseException æŸ¥è¯¢å‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    QueryTemplate getQtByName(String name, Map<String, String> replaceMap) throws VciBaseException;
    QueryTemplate getQtByName(String name, Map<String, Object> replaceMap) throws VciBaseException;
    /**
     *  ä½¿ç”¨æŸ¥è¯¢æ–¹æ¡ˆæ¥æŸ¥è¯¢æ•°æ®ï¼Œè¿”回CBO,支持自定义查询字段,包括参照和枚举;参照字段使用xxx.yy;枚举字段使用xxx_enumCode
@@ -137,7 +137,7 @@
     * @return
     * @throws VciBaseException
     */
     List<BusinessObject> queryCBOByScheme(String queryScheme, Map<String, String> conditionMap, Map<String, String> replaceMap, PageHelper ph, List<String> clauseList) throws VciBaseException;
     List<BusinessObject> queryCBOByScheme(String queryScheme, Map<String, String> conditionMap, Map<String, Object> replaceMap, PageHelper ph, List<String> clauseList) throws VciBaseException;
    
    /**
     * æŸ¥è¯¢æ•°é‡
@@ -165,7 +165,7 @@
     * @return
     * @throws VciBaseException
     */
     int queryCountByScheme(String queryScheme, Map<String, String> conditionMap, Map<String, String> replaceMap) throws VciBaseException;
     int queryCountByScheme(String queryScheme, Map<String, String> conditionMap, Map<String, Object> replaceMap) throws VciBaseException;
    
    /**
     * ä½¿ç”¨å¯¹è±¡æ¥æŸ¥è¯¢æ•°é‡
@@ -269,7 +269,7 @@
     * @return
     * @throws VciBaseException
     */
     <T> List<T> queryObjectByScheme(String queryScheme, Class<T> c, Map<String, String> conditionMap, PageHelper ph, Map<String, String> replaceMap) throws VciBaseException;
     <T> List<T> queryObjectByScheme(String queryScheme, Class<T> c, Map<String, String> conditionMap, PageHelper ph, Map<String, Object> replaceMap) throws VciBaseException;
    /**
     * ä¿å­˜æ•°æ®ï¼Œå¯ä»¥åœ¨request中设置是否持久化
@@ -409,7 +409,7 @@
     * @return åˆ—表数据,数据是Map形式的,包含分页信息
     * @throws VciBaseException
     */
     DataGrid queryGridByScheme(String queryScheme, Map<String, String> conditionMap, Map<String, String> replaceMap) throws VciBaseException;
     DataGrid queryGridByScheme(String queryScheme, Map<String, String> conditionMap, Map<String, Object> replaceMap) throws VciBaseException;
    
    /**
     * æ ¹æ®æŸ¥è¯¢æ–¹æ¡ˆæ¥æŸ¥è¯¢åˆ—表数据;可以在pageHelper中设置是否查询总数,pageHelper的优先级最大;
@@ -420,7 +420,7 @@
     * @return åˆ—表数据,数据是Map形式的,包含分页信息
     * @throws VciBaseException
     */
     DataGrid queryGridByScheme(String queryScheme, Map<String, String> conditionMap, Map<String, String> replaceMap, PageHelper ph) throws VciBaseException;
     DataGrid queryGridByScheme(String queryScheme, Map<String, String> conditionMap, Map<String, Object> replaceMap, PageHelper ph) throws VciBaseException;
    
    /**
     * æ ¹æ®æŸ¥è¯¢æ–¹æ¡ˆæ¥æŸ¥è¯¢åˆ—表数据,可以自定义查询的列,包括参照和枚举
@@ -432,7 +432,7 @@
     * @return åˆ—表数据,数据是Map形式的,包含分页信息
     * @throws VciBaseException
     */
     DataGrid queryGridByScheme(String queryScheme, Map<String, String> conditionMap, Map<String, String> replaceMap, PageHelper ph, List<String> clauseList) throws VciBaseException;
     DataGrid queryGridByScheme(String queryScheme, Map<String, String> conditionMap, Map<String, Object> replaceMap, PageHelper ph, List<String> clauseList) throws VciBaseException;
    
    /**
     * æŸ¥è¯¢å¯¹è±¡çš„列表数据 
@@ -461,7 +461,7 @@
     * @return åˆ—表数据,数据是对象形式的,包含分页信息
     * @throws VciBaseException
     */
     DataGrid queryGridClassByScheme(String queryScheme, Class c, Map<String, String> conditionMap, Map<String, String> replaceMap) throws VciBaseException;
     DataGrid queryGridClassByScheme(String queryScheme, Class c, Map<String, String> conditionMap, Map<String, Object> replaceMap) throws VciBaseException;
    
    /**
     * é€šè¿‡æŸ¥è¯¢æ–¹æ¡ˆæŸ¥è¯¢å¯¹è±¡çš„列表数据
@@ -472,7 +472,7 @@
     * @return åˆ—表数据,数据是对象形式的,包含分页信息
     * @throws VciBaseException
     */
     DataGrid queryGridClassByScheme(String queryScheme, Class c, Map<String, String> conditionMap, Map<String, String> replaceMap, PageHelper ph) throws VciBaseException;
     DataGrid queryGridClassByScheme(String queryScheme, Class c, Map<String, String> conditionMap, Map<String, Object> replaceMap, PageHelper ph) throws VciBaseException;
    
    /**
     * BusinessObject è½¬ä¸ºHashMap
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,20 +1,17 @@
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;
public interface WebLoServiceI {
    /**
     * æ ¹æ®æŸ¥è¯¢æ¡ä»¶æ¥æŸ¥è¯¢é“¾æŽ¥ç±»åž‹
@@ -118,15 +115,6 @@
     */
     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;
    /**
     * æŸ¥è¯¢é“¾æŽ¥ç±»åž‹æŸç«¯çš„业务类型
     * @param clol é“¾æŽ¥ç±»åž‹
@@ -224,14 +212,14 @@
     * @param linkTypeDataQuery æŸ¥è¯¢å¯¹è±¡
     * @return é“¾æŽ¥ç±»åž‹å’Œå…³è”çš„to端
     */
    List<com.vci.corba.query.data.BOAndLO> queryCLOAndBOBySchema(UILinkTypeDataQuery linkTypeDataQuery) ;
    List<BOAndLO> queryCLOAndBOBySchema(UILinkTypeDataQuery linkTypeDataQuery) ;
    /**
     * ä½¿ç”¨é“¾æŽ¥ç±»åž‹çš„名称查询 é“¾æŽ¥ç±»åž‹çš„to端的业务类型
     * @param linkTypeDataQuery æŸ¥è¯¢çš„对象
     * @return é“¾æŽ¥å¯¹è±¡å’Œto端业务对象
     */
    List<com.vci.corba.query.data.BOAndLO> queryCLOAndBoByLinkType(UILinkTypeDataQuery linkTypeDataQuery);
    List<BOAndLO> queryCLOAndBoByLinkType(UILinkTypeDataQuery linkTypeDataQuery);
    /**
     * æŸ¥è¯¢åˆ—表
@@ -265,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));
@@ -388,7 +387,7 @@
        //专业
        smUserVO.setSpecialties(userInfo.specialties);
        UserLogonInfo lockObj = platformClientUtil.getFrameworkService().fetchUserLogonObj(userInfo.id);
        smUserVO.setLockFlag(lockObj.plWrongNum == 0);
        smUserVO.setLockFlag(lockObj.plWrongNum != 0);
        smUserVO.setCreator(userInfo.createUser);
        smUserVO.setCreateTime(VciDateUtil.long2Date(userInfo.createTime));
        smUserVO.setLastModifier(userInfo.updateUser);
@@ -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;
@@ -1664,4 +1665,19 @@
        return userNameList;
    }
    /**
     * ä½¿ç”¨å½“前用户的类型查询用户
     * @return
     * @throws VciBaseException
     */
    @Override
    public List<SmUserVO> listUserByUserType() throws PLException {
        try {
            UserInfo[] userInfo = platformClientUtil.getFrameworkService().fetchUserInfoByType(Short.parseShort(WebUtil.getCurrentUserSessionInfo().getUsertype()));
            return userInfoArr2VO(userInfo);
        } catch (PLException e) {
            throw new VciBaseException("登录时,获取用户信息失败:"+e.getMessage());
        }
    }
}
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;
@@ -34,10 +33,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;
@@ -48,76 +47,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;
    /**
@@ -893,7 +880,7 @@
     */
    @Override
    public List<BusinessObject> queryCBOByScheme(String queryScheme,
            Map<String, String> conditionMap, Map<String, String> replaceMap)
            Map<String, String> conditionMap, Map<String, Object> replaceMap)
            throws VciBaseException {
        PageHelper ph = new PageHelper(-1);
        return queryCBOByScheme(queryScheme,conditionMap,replaceMap,ph);
@@ -911,7 +898,7 @@
     */
    @Override
    public List<BusinessObject> queryCBOByScheme(String queryScheme,
            Map<String, String> conditionMap, Map<String, String> replaceMap,
            Map<String, String> conditionMap, Map<String, Object> replaceMap,
            PageHelper ph) throws VciBaseException {
        List<String> clauseList = new ArrayList<String>();
        clauseList.add("*");
@@ -926,7 +913,7 @@
     * @throws VciBaseException æŸ¥è¯¢å‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    @Override
    public QueryTemplate getQtByName(String name, Map<String, String> replaceMap) throws VciBaseException{
    public QueryTemplate getQtByName(String name, Map<String, Object> replaceMap) throws VciBaseException{
        QueryTemplate qt = null;
        try{
            VciBaseUtil.alertNotNull(name,"查询模板的名称");
@@ -935,9 +922,10 @@
            //因为之前平台的Tool.replaceQTValues æ²¡æœ‰å¤„理 ${xxx}。, ä¸ºäº†å¿½ç•¥å¤§å°å†™ï¼Œæˆ‘们这里单独处理 weidy@2021-3-10
            //我们转换为小写
            Condition condition = qt.getCondition();
            Map<String,String> replaceLowMap = new HashMap<>();
            Map<String,Object> replaceLowMap = new HashMap<>();
            if(condition !=null && condition.getCIMap()!=null){
                // Map<String, String> systemVarValueMap = VciSystemVarConstants.getSystemVarValueMap();
                //转小写
                if(!CollectionUtils.isEmpty(replaceMap)){
                    replaceMap.forEach((key,value)->{
                        replaceLowMap.put(key.toLowerCase(),value);
@@ -985,7 +973,7 @@
     * @param qt
     * @param replaceLowMap
     */
    private void recurReplaceCiMap(QueryTemplate qt, Map<String,String> replaceLowMap){
    private void recurReplaceCiMap(QueryTemplate qt, Map<String,Object> replaceLowMap){
        //跳出递归
        if(Func.isEmpty(qt)){
            return;
@@ -1009,7 +997,7 @@
                            }
                        }
                    }else if(replaceLowMap.containsKey(value.toLowerCase())){
                        lInfo.getValue().setOrdinaryValue(replaceLowMap.get(value.toLowerCase()));
                        lInfo.getValue().setOrdinaryValue((String) replaceLowMap.get(value.toLowerCase()));
                    }
                }else {
                    recurReplaceCiMap(lInfo.getValue().getQueryTemplate(),replaceLowMap);
@@ -1030,7 +1018,7 @@
     */
    @Override
    public List<BusinessObject> queryCBOByScheme(String queryScheme,
            Map<String, String> conditionMap, Map<String, String> replaceMap,
            Map<String, String> conditionMap, Map<String, Object> replaceMap,
            PageHelper ph, List<String> clauseList) throws VciBaseException {
        QueryTemplate qt = getQtByName(queryScheme,replaceMap);
        return baseQueryCBO(qt,conditionMap,ph,clauseList);
@@ -1134,7 +1122,7 @@
     */
    @Override
    public int queryCountByScheme(String queryScheme,
            Map<String, String> conditionMap, Map<String, String> replaceMap)
            Map<String, String> conditionMap, Map<String, Object> replaceMap)
            throws VciBaseException {
        QueryTemplate qt = getQtByName(queryScheme,replaceMap);
        return baseQueryCount(qt,conditionMap);
@@ -1482,7 +1470,7 @@
    @Override
    public <T> List<T> queryObjectByScheme(String queryScheme, Class<T> c,
            Map<String, String> conditionMap, PageHelper ph,
            Map<String, String> replaceMap) throws VciBaseException {
            Map<String, Object> replaceMap) throws VciBaseException {
        WebUtil.alertNotNull(queryScheme,"查询方案");
        //直接从对象里去查询业务类型的名称
        swapConditionMap(c,conditionMap);
@@ -2108,7 +2096,7 @@
     */
    @Override
    public DataGrid queryGridByScheme(String queryScheme,
            Map<String, String> conditionMap, Map<String, String> replaceMap)
            Map<String, String> conditionMap, Map<String, Object> replaceMap)
            throws VciBaseException {
        return queryGridByScheme(queryScheme,conditionMap,replaceMap,new PageHelper(-1,true),null);
    }
@@ -2124,7 +2112,7 @@
     */
    @Override
    public DataGrid queryGridByScheme(String queryScheme,
            Map<String, String> conditionMap, Map<String, String> replaceMap,
            Map<String, String> conditionMap, Map<String, Object> replaceMap,
            PageHelper ph) throws VciBaseException {
        return queryGridByScheme(queryScheme,conditionMap,replaceMap,ph,null);
    }
@@ -2141,7 +2129,7 @@
     */
    @Override
    public DataGrid queryGridByScheme(String queryScheme,
            Map<String, String> conditionMap, Map<String, String> replaceMap,
            Map<String, String> conditionMap, Map<String, Object> replaceMap,
            PageHelper ph, List<String> clauseList) throws VciBaseException {
        if(ph == null){
            ph = new PageHelper(-1,true);
@@ -2212,7 +2200,7 @@
     */
    @Override
    public DataGrid queryGridClassByScheme(String queryScheme, Class c,
            Map<String, String> conditionMap,Map<String,String> replaceMap) throws VciBaseException {
            Map<String, String> conditionMap,Map<String,Object> replaceMap) throws VciBaseException {
        return queryGridClassByScheme(queryScheme,c,conditionMap,replaceMap,new PageHelper(-1,true));
    }
    
@@ -2227,7 +2215,7 @@
     */
    @Override
    public DataGrid queryGridClassByScheme(String queryScheme, Class c,
            Map<String, String> conditionMap, Map<String,String> replaceMap,PageHelper ph)
            Map<String, String> conditionMap, Map<String,Object> replaceMap,PageHelper ph)
            throws VciBaseException {
        if(ph == null){
            ph = new PageHelper(-1,true);
@@ -2272,9 +2260,13 @@
    public Map cbo2Map(BusinessObject cbo) throws VciBaseException {
        Map<String,String> map = new HashMap<String, String>();
        WebUtil.copyValueToMapFromCbos(cbo, map);
        return map;
        //TODO:20241128 è¿‡æ»¤æŽ‰ç©ºkey和空value
        Map<String, Object> filteredCbo2Map = map.entrySet()
                .stream()
                .filter(entry -> entry.getKey() != null && !entry.getKey().isEmpty() && entry.getValue() != null && !entry.getValue().toString().isEmpty())
                .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
        return filteredCbo2Map;
    }
    /**
     * map转为BusinessObject
@@ -2525,7 +2517,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,
@@ -367,7 +349,12 @@
    public Map clo2Map(LinkObject clo) throws VciBaseException {
        Map<String,String> map = new HashMap<String, String>();
        WebUtil.copyValueToMapFromClos(clo, map);
        return map;
        //TODO:20241128 è¿‡æ»¤æŽ‰ç©ºkey和空value
        Map<String, Object> filteredClo2Map = map.entrySet()
                .stream()
                .filter(entry -> entry.getKey() != null && !entry.getKey().isEmpty() && entry.getValue() != null && !entry.getValue().toString().isEmpty())
                .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
        return filteredClo2Map;
    }
    @Override
@@ -452,7 +439,7 @@
        WebUtil.alertNotNull(loName,"链接");
        return null;
        //todo åœ¨å¹³å°é‡Œé¢éœ€è¦ä¼ å…¥å¯¹è±¡ï¼ŒçŽ°åœ¨æ˜¯å­—ç¬¦ä¸²ï¼Œéœ€è¦çœ‹å¹³å°å¦‚ä½•å¤„ç†
//            return loOperation.createLinkObject(loName,WebUtil.getCurrentUserId());
        //return loOperation.createLinkObject(loName,WebUtil.getCurrentUserId());
    }
    /**
@@ -523,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);
@@ -535,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());
        }
@@ -583,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);
@@ -597,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())){
@@ -826,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
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,87 @@
package com.vci.web.controller;
import com.vci.corba.common.PLException;
import com.vci.corba.framework.data.GrandValue;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.service.OsDataAuthServiceI;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
/**
 * æ•°æ®æƒé™çš„æŽ§åˆ¶å™¨
 * @author yuxc
 * @date 2024-11-25
 */
@RequestMapping("/dataAuthController")
@RestController
public class OsDataAuthController {
    /**
     * æ•°æ®æƒé™æœåŠ¡
     */
    @Autowired
    private OsDataAuthServiceI osDataAuthServiceI;
    /**
     * æ—¥å¿—
     */
    private Logger logger = LoggerFactory.getLogger(getClass());
    /**
     * èŽ·å–å½“å‰ä¸šåŠ¡ç±»åž‹ä¸‹çš„æ•°æ®æƒé™ç›¸å…³ä¿¡æ¯
     * @return æ•°æ®
     */
    @GetMapping("/getData")
    public BaseResult getData(String typeName){
        try {
            return osDataAuthServiceI.getData(typeName);
        } catch (PLException e) {
            BaseResult objectBaseResult = new BaseResult<>();
            objectBaseResult.setCode(Integer.parseInt(e.code));
            objectBaseResult.setMsg(Arrays.toString(e.messages));
            return objectBaseResult;
        }
    }
    /**
     * ä¿å­˜æ•°æ®æƒé™æ•°æ®
     * @return ä¿å­˜ç»“æžœ
     */
    @PostMapping("/saveGrand")
    public BaseResult saveGrand(@RequestBody List<GrandValue> grandValues){
        try {
            return osDataAuthServiceI.saveGrand(grandValues);
        }catch (Exception e){
            e.printStackTrace();
            String exceptionMessage = "保存数据权限时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
            logger.error(exceptionMessage);
            return BaseResult.fail(exceptionMessage);
        }
    }
    /**
     * åˆ é™¤æ•°æ®æƒé™
     * @param typeName ä¸šåŠ¡ç±»åž‹
     * @param ruleName è§„则名称
     * @return åˆ é™¤ç»“æžœ
     */
    @DeleteMapping("/deleteTypeRuleGrand")
    public BaseResult deleteTypeRuleGrand(String typeName,String ruleName){
        try {
            return osDataAuthServiceI.deleteTypeRuleGrand(typeName,ruleName);
        }catch (Exception e){
            e.printStackTrace();
            String exceptionMessage = "删除数据权限时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
            logger.error(exceptionMessage);
            return BaseResult.fail(exceptionMessage);
        }
    }
}
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,193 @@
package com.vci.web.controller;
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.LangBaseUtil;
import com.vci.starter.web.util.MessageUtils;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.util.WebThreadLocalUtil;
import com.vci.bo.LoginResultBO;
import com.vci.dto.LoginUserDTO;
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 org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.security.Principal;
import java.util.Enumeration;
import java.util.HashMap;
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/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/OsDataAuthServiceI.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
package com.vci.web.service;
import com.vci.corba.common.PLException;
import com.vci.corba.framework.data.GrandValue;
import com.vci.starter.web.pagemodel.BaseResult;
import java.util.List;
/**
 * æ•°æ®æƒé™çš„æŽ§åˆ¶å™¨
 * @author yuxc
 * @date 2024-11-25
 */
public interface OsDataAuthServiceI {
    BaseResult getData(String typeName) throws PLException;
    /**
     * ä¿å­˜æ•°æ®æƒé™æ•°æ®
     * @return ä¿å­˜ç»“æžœ
     */
    BaseResult saveGrand(List<GrandValue> grandValues) throws PLException;
    /**
     * åˆ é™¤æ•°æ®æƒé™
     * @param typeName ä¸šåŠ¡ç±»åž‹
     * @param ruleName è§„则名称
     * @return åˆ é™¤ç»“æžœ
     */
    BaseResult deleteTypeRuleGrand(String typeName, String ruleName) throws PLException;
}
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;
@@ -50,7 +50,7 @@
     * @return æ ‘形数据
     * @throws VciBaseException æŸ¥è¯¢å‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    List<Tree> getDataForTree(UITreeQuery treeQuery) throws VciBaseException, PLException;
    List<UIDataTree> getDataForTree(UITreeQuery treeQuery) throws Exception;
    /**
     * èŽ·å–æ ‘å½¢æ•°æ®(根据查询模板查询对象)
@@ -58,7 +58,7 @@
     * @return æ ‘形数据
     * @throws VciBaseException æŸ¥è¯¢å‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    BaseResult getDataByTemp(UITreeQuery treeQuery) throws VciBaseException, PLException;
    BaseResult getDataByTemp(UITreeQuery treeQuery) throws Exception;
    /**
     * è°ƒç”¨å‰ç½®äº‹ä»¶
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;
@@ -245,6 +241,7 @@
            vo.setTableName(VciBaseUtil.getTableName(vo.getId()));
            vo.setInputRevisionFlag(btmItem.revInput);
            vo.setDelimiter(btmItem.delimiter);
            vo.setImageName(btmItem.imageName);
            vo.setfName(btmItem.fName);
            vo.setVersionRule(String.valueOf(btmItem.verRuleName));
            if (StringUtils.isNotBlank(vo.getRevisionRuleId()) || vo.isInputRevisionFlag()) {
@@ -256,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());
@@ -450,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());
@@ -459,7 +456,8 @@
            });
            attrVOs = finalAttrVOs;
        }
        return attrVOs;
        //// TODO: 2024/12/2 Ludc è¿”回值排序
        return attrVOs.stream().sorted(Comparator.comparing(o->o.getId(),String.CASE_INSENSITIVE_ORDER)).collect(Collectors.toList());
    }
    /**
@@ -715,6 +713,7 @@
                tree.setParentName(null);
                tree.setParentId(null);
                tree.setLeaf(true);
                tree.setIcon(osBtmTypeVO.getImageName());
                tree.setId(osBtmTypeVO.getId());
                tree.setText(osBtmTypeVO.getDescription());
                tree.setAttributes(WebUtil.objectToMapString(osBtmTypeVO));
@@ -811,6 +810,7 @@
        bizType.label = dto.getName();
        bizType.fName = dto.getfName();
        bizType.implClass = dto.getImplClass();
        bizType.imageName = dto.getImageName();
        bizType.shape = "";
        bizType.lifeCycle = dto.getLifeCycleId();
        List<String> lcList = Arrays.asList(dto.getSubLifeCycleId().split(","));
@@ -823,14 +823,9 @@
        bizType.revLevel = dto.getRevLevel();
        bizType.revRuleName = dto.getRevisionRuleId();
        bizType.revInput = dto.isInputRevisionFlag();
        bizType.delimiter = (dto.getDelimiter() == null ? "" : dto.getDelimiter());
        bizType.verRuleName = Func.isBlank(dto.getVersionRule()) ? 0 : Short.parseShort(dto.getVersionRule());
        //bizType.imageName = dto.get;
        //List<String> attrIdList = dto.getAttributesDTOList().stream().map(OsBtmTypeLinkAttributesDTO::getId).collect(Collectors.toList());
        bizType.apNameArray = dto.getApNameArray().split(",");//attrIdList.toArray(new String[attrIdList.size()]);
        String userId = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId();
        long timeMillis = System.currentTimeMillis();
@@ -1406,7 +1401,7 @@
        //设置列名
        List<String> columns = new ArrayList<>(
                Arrays.asList("类型名称", "标签", "继承自", "实现类", "描述", "版本规则", "版本号规则",
                        "是否手工输入", "分隔符", "版次号规则", "生命周期", "备选生命周期列表", "属性列表")
                        "是否手工输入", "分隔符", "版次号规则","图标", "生命周期", "备选生命周期列表", "属性列表")
        );
        try {
            new File(excelPath).createNewFile();
@@ -1430,9 +1425,10 @@
                excelDataList.add(new WriteExcelData(i + 1, 7, bizType.revInput));
                excelDataList.add(new WriteExcelData(i + 1, 8, bizType.delimiter));
                excelDataList.add(new WriteExcelData(i + 1, 9, bizType.verRuleName));
                excelDataList.add(new WriteExcelData(i + 1, 10, bizType.lifeCycle));
                excelDataList.add(new WriteExcelData(i + 1, 11, String.join(",", bizType.lifeCycles)));
                excelDataList.add(new WriteExcelData(i + 1, 12, String.join(",", bizType.apNameArray)));
                excelDataList.add(new WriteExcelData(i + 1, 10, bizType.imageName));
                excelDataList.add(new WriteExcelData(i + 1, 11, bizType.lifeCycle));
                excelDataList.add(new WriteExcelData(i + 1, 12, String.join(",", bizType.lifeCycles)));
                excelDataList.add(new WriteExcelData(i + 1, 13, String.join(",", bizType.apNameArray)));
                attributes.addAll(Arrays.asList(bizType.apNameArray));
                i++;
            }
@@ -1549,6 +1545,7 @@
                bizType.revInput = Boolean.parseBoolean(osBtmTypePO.getRevInput().toLowerCase(Locale.ROOT));
                bizType.delimiter = osBtmTypePO.getDelimiter();
                bizType.verRuleName = osBtmTypePO.getVerRuleName();
                bizType.imageName = osBtmTypePO.getImageName();
                bizType.lifeCycle = osBtmTypePO.getLifeCycle();
                bizType.lifeCycles = osBtmTypePO.getLifeCycles().split(",");
                bizType.apNameArray = osBtmTypePO.getApNameArray().split(",");
@@ -1622,6 +1619,7 @@
                tree.setParentName(parentBIzType.getfName());
                tree.setParentId(parentBIzType.getOid());
                tree.setLeaf(true);
                tree.setIcon(bizType.getImageName());
                tree.setText(bizType.getDescription());
                tree.setAttributes(WebUtil.objectToMapString(bizType));
                tree.setChildren(getChildren(osBtmTypeVOS, bizType));
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsDataAuthServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,313 @@
package com.vci.web.service.impl;
import com.vci.common.qt.object.Symbol;
import com.vci.constant.IRightConstant;
import com.vci.corba.common.PLException;
import com.vci.corba.framework.data.GrandValue;
import com.vci.corba.omd.btm.BizType;
import com.vci.corba.omd.lcm.LifeCycle;
import com.vci.corba.omd.lcm.TransitionVO;
import com.vci.corba.omd.ltm.LinkType;
import com.vci.corba.portal.data.PLAction;
import com.vci.dto.OsDataAuthDTO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.web.service.OsDataAuthServiceI;
import com.vci.web.util.PlatformClientUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
/**
 * æ•°æ®æƒé™çš„æŽ§åˆ¶å™¨
 * @author yuxc
 * @date 2024-11-25
 */
@Service
public class OsDataAuthServiceImpl implements OsDataAuthServiceI {
    @Autowired
    private PlatformClientUtil platformClientUtil;
    @Override
    public BaseResult getData(String typeName) throws PLException {
        GrandValue[] grandValues = platformClientUtil.getFrameworkService().queryGrand(typeName);
        // è®¾ç½®Table列头信息
        List<String> tableHeader = new ArrayList<String>();
        //获取表头数据
        getTableHeader(grandValues, tableHeader, typeName);
        //列表数据
        List<Map> rowList = new ArrayList<>();
        //获取列表数据
        getTableData(grandValues, tableHeader, typeName, rowList);
        Map<String, String> actionsMap = getAllActionsByType2(typeName, "business");
        OsDataAuthDTO tableData = new OsDataAuthDTO();
        tableData.setTableHeader(tableHeader);
        tableData.setRowList(rowList);
        tableData.setActionMap(actionsMap);
        return BaseResult.success(tableData);
    }
    /**
     * ä¿å­˜æ•°æ®æƒé™æ•°æ®
     * @return ä¿å­˜ç»“æžœ
     */
    @Override
    public BaseResult saveGrand(List<GrandValue> grandValues) throws PLException {
        boolean isTrue = false;
        isTrue = platformClientUtil.getFrameworkService()
                .deleteTypeRuleGrand(grandValues.get(0).identifier.split("_")[0], grandValues.get(0).ruleName);
        if(!isTrue){
            throw new VciBaseException("数据权限删除失败!");
        }
        // save
        boolean isTrue_add = false;
        try {
            isTrue_add = platformClientUtil.getFrameworkService()
                    .saveGrand(grandValues.toArray(new GrandValue[grandValues.size()]));
        } catch (Exception e) {
            throw new VciBaseException("数据权限保存失败!");
        }
        if (isTrue_add) {
            return BaseResult.success("保存成功!");
        }
        return BaseResult.success("保存失败!");
    }
    /**
     * åˆ é™¤æ•°æ®æƒé™
     * @param typeName ä¸šåŠ¡ç±»åž‹
     * @param ruleName è§„则名称
     * @return åˆ é™¤ç»“æžœ
     */
    @Override
    public BaseResult deleteTypeRuleGrand(String typeName, String ruleName) throws PLException {
        // DataBase
        boolean isTrue = platformClientUtil.getFrameworkService().deleteTypeRuleGrand(typeName,
                    ruleName);
        if (!isTrue) {
            return BaseResult.success("删除失败!");
        }
        return BaseResult.success("删除成功!");
    }
    //add by caill start 2015 12.18 å°†æŸ¥è¯¢å‡ºæ¥çš„action放入到map中
    private Map<String, String> getAllActionsByType2(String typeName, String type) throws PLException {
        Map<String,String> boActions2 = new HashMap<String,String>();
        boActions2.put("查询", "query");
        PLAction[] allActions = platformClientUtil.getUIService().getAllPLActionEntityByType(typeName);
        if (allActions == null || allActions.length == 0) {
            return boActions2;
        }
        for (int i = 0; i < allActions.length; i++) {
            if(allActions[i].plTypeType.equals(type)){
                boActions2.put(allActions[i].plName,allActions[i].plCode);    //将中文显示作为key,英文显示作为value放到map中
            }
        }
        return boActions2;
    }
    private void getTableData(GrandValue[] grandValues, List<String> tableHeader, String typeName, List<Map> rowList) throws PLException {
        // ä¾æ®è§„则名称,规则分类
        Map<String, List<GrandValue>> splitRuleMap = splitRuleByName(grandValues);
        // ä¾æ®è§„则名称
//        int row = 0;
        // è®¾ç½®è§„则记录行数
//        ruleModel.setRowCount(splitRuleMap.size());
        // add by caill start 2016.1.11 å¾—到btm、link、lifeCyles
        LinkType[] links = null;
        LifeCycle lifeCycle = null;
        BizType btm = null;
        try {
            btm = platformClientUtil.getBtmService().getBizTypeByName(typeName);
            links = platformClientUtil.getLinkTypeService().getLinkTypeByBtmName(btm.name, Symbol.FROM);
            LifeCycle[] lifeCyles = platformClientUtil.getLifeCycleService().getLifeCycles();
            for (int m = 0; m < lifeCyles.length; m++) {
                if (lifeCyles[m].name.equals(btm.lifeCycle)) {
                    lifeCycle = lifeCyles[m];
                    break;
                }
            }
        } catch (Throwable e) {
            e.printStackTrace();
        }
        // add by caill end
//        ActionConstants act = new ActionConstants();
        PLAction[] allActions = platformClientUtil.getUIService().getAllPLActionEntityByType(typeName);
//        platformClientUtil.getUIService().getAllPLActionEntityByType(typeName);
        for (Iterator<Map.Entry<String, List<GrandValue>>> iter = splitRuleMap.entrySet().iterator(); iter.hasNext();) {
            Map.Entry<String, List<GrandValue>> entry = iter.next();
            List<GrandValue> rules = entry.getValue();
            Map<Object, Object> columnData = new HashMap<>();
            // å¢žåŠ é¡µé¢ç¼“å­˜
//            ruleModel.setConditionValue(row, rules);
            columnData.put("rules",rules.get(0));
            // add by caill start 2015 12.18 å°†æŸ¥å‡ºçš„action放到map中,注意不要落下“查询”
            Map<String, String> actionMap = new HashMap<String, String>();
            actionMap.put("query", "查询"); // å°†æ“ä½œä¸­çš„query放入actionMap中
            for (int i = 0; i < allActions.length; i++) {
                if (allActions[i].plTypeType.equals("business")) {
                    actionMap.put(allActions[i].plCode, allActions[i].plName); // å°†æ“ä½œæ”¾å…¥actionMap中
                }
            }
            for (int j = 0; j < links.length; j++) {
                for (int i = 0; i < allActions.length; i++) {
                    if (allActions[i].plTypeType.equals("link")) {
                        actionMap.put(links[j].name + "." + allActions[i].plCode,
                                links[j].name + "." + allActions[i].plName);// å°†å…³ç³»æ”¾å…¥actionMap中
                    }
                }
                actionMap.put(links[j].name + "." + "query", links[j].name + "." + "查询"); // å°†å…³ç³»ä¸­çš„query放入actionMap中
            }
            TransitionVO[] transitions = lifeCycle != null ? lifeCycle.routes : new TransitionVO[0];
            for (int j = 0; j < transitions.length; j++) {
                String name = lifeCycle.name + "." + transitions[j].connect;
                actionMap.put(name, name); // å°†è·ƒè¿æ”¾å…¥actionMap中
            }
            // add by caill end
            for (int j = 0; j < rules.size(); j++) {
                // è§„则名和类型
//                ruleModel.setValueAt(rules.get(j).ruleName, row, 0);
                columnData.put(0, rules.get(j).ruleName);
                if (rules.get(j).ruleType.equals(IRightConstant.RULETYPE__HAS)) {
                    columnData.put(1, "允许规则");
                } else if (rules.get(j).ruleType.equals(IRightConstant.RULETYPE__NOTHAS)) {
                    columnData.put(1, "拒绝规则");
                } else if (rules.get(j).ruleType.equals(IRightConstant.RULETYPE_ALL_HAS)) {
                    columnData.put(1, "全部有权");
                } else {
                    columnData.put(1, "全部无权");
                }
                // æŒ‡å®šçš„æ“ä½œèµ‹å€¼
//                TableColumnModel columnModel = funclet.getRightMainPanel().getRuleTable().getColumnModel();
                int start = rules.get(j).identifier.lastIndexOf("_") + 1;
                String op = rules.get(j).identifier.substring(start, rules.get(j).identifier.length());
                // add by caill start 2015.12.18 éåކmap,根据英文名称找到相应的中文名称,并根据中文名称找到对应的列
                String headerName = null;
                Set<String> keys = null;
                if (actionMap.size() > 0) {
                    keys = actionMap.keySet();
                }
                if (keys.size() != 0) {
                    for (Iterator<String> iterator = keys.iterator(); iterator.hasNext();) {
                        String key = iterator.next();
                        if (op.equals(key)) {
                            headerName = actionMap.get(key);
                            break;
                        }
                    }
                }
                int columnIndex = -1;
                if (headerName != null) {
//                    columnIndex = columnModel.getColumnIndex(headerName);
                    columnIndex = tableHeader.indexOf(headerName);
                }
                // add by caill end
                // int columnIndex = columnModel.getColumnIndex(op);
                if (columnIndex >= 0) {
//                    ruleModel.setValueAt(rules.get(j).isGrand == '1' ? true : false, row, columnIndex);
                    columnData.put(columnIndex, rules.get(j).isGrand == '1' ? true : false);
                }
            }
//            ++row;
            rowList.add(columnData);
        }
    }
    private void getTableHeader(GrandValue[] grandValues, List<String> tableHeader, String typeName) throws PLException {
        // æ“ä½œä¿¡æ¯
        List<String> ops = new ArrayList<String>();
        for (int i = 0; i < grandValues.length; i++) {
            int start = grandValues[i].identifier.lastIndexOf("_") + 1;
            String op = grandValues[i].identifier.substring(start, grandValues[i].identifier.length());
            if (!ops.contains(op)) {
                ops.add(op);
            }
        }
        // æ“ä½œä¿¡æ¯
        String[] operations = ops.toArray(new String[ops.size()]);
//        List<String> tablerule = new ArrayList<String>();
        tableHeader.add("规则名称");
        tableHeader.add("规则类型");
        PLAction[] allActions = platformClientUtil.getUIService().getAllPLActionEntityByType(typeName);
        for (int m = 0; m < operations.length; m++) {
            if (allActions != null && allActions.length != 0) {
                for (int i = 0; i < allActions.length; i++) {
                    if (allActions[i].plCode.equals(operations[m])) {
                        tableHeader.add(allActions[i].plName);
                        break;
                    } else if (operations[m].endsWith("." + allActions[i].plCode)) {
                        int index = operations[m].indexOf("." + allActions[i].plCode);
                        StringBuilder sb = new StringBuilder(operations[m]);
                        StringBuilder actionChina = sb.replace(index + 1, operations[m].length(), allActions[i].plName);
                        tableHeader.add(actionChina.toString());
                        break;
                    } else if (operations[m].equals("query")) {
                        tableHeader.add("查询"); // æ³¨æ„ä¸è¦è½ä¸‹å†™æ­»çš„“查询”
                        break;
                    } else if (operations[m].endsWith(".query")) {
                        int index = operations[m].indexOf(".query");
                        StringBuilder sb = new StringBuilder(operations[m]);
                        StringBuilder actionChina = sb.replace(index + 1, operations[m].length(), "查询");
                        tableHeader.add(actionChina.toString());
                        break;
                    }
                }
            } else {
                if (operations[m].equals("query")) {
                    tableHeader.add("查询"); // æ³¨æ„ä¸è¦è½ä¸‹å†™æ­»çš„“查询”
                }
                if (operations[m].endsWith(".query")) {
                    int index = operations[m].indexOf(".query");
                    StringBuilder sb = new StringBuilder(operations[m]);
                    StringBuilder actionChina = sb.replace(index + 1, operations[m].length(), "查询");
                    tableHeader.add(actionChina.toString());
                }
            }
        }
        LifeCycle lifeCycle = null;
        BizType btm = null;
        try {
            btm = platformClientUtil.getBtmService().getBizTypeByName(typeName);
            LifeCycle[] lifeCyles = platformClientUtil.getLifeCycleService().getLifeCycles();
            for (int j = 0; j < lifeCyles.length; j++) {
                if (lifeCyles[j].name.equals(btm.lifeCycle)) {
                    lifeCycle = lifeCyles[j];
                    break;
                }
            }
        } catch (Throwable e) {
            e.printStackTrace();
        }
        TransitionVO[] transitions = lifeCycle != null ? lifeCycle.routes : new TransitionVO[0];
        for (int j = 0; j < transitions.length; j++) {
            tableHeader.add(lifeCycle.name + "." + transitions[j].connect);
        }
    }
    private Map<String, List<GrandValue>> splitRuleByName(GrandValue[] values) {
        Map<String, List<GrandValue>> splitRuleMap = new HashMap<String, List<GrandValue>>();
        for (int i = 0; i < values.length; i++) {
            if (splitRuleMap.get(values[i].ruleName) == null) {
                List<GrandValue> ruleOfOneName = new ArrayList<GrandValue>();
                ruleOfOneName.add(values[i]);
                splitRuleMap.put(values[i].ruleName, ruleOfOneName);
            } else {
                splitRuleMap.get(values[i].ruleName).add(values[i]);
            }
        }
        return splitRuleMap;
    }
}
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;
/**
@@ -98,7 +84,8 @@
        }else {
            qtdArray = platformClientUtil.getQTDService().getBizTypeQTDs(btmName);
        }
        return BaseResult.dataList(Arrays.asList(qtdArray));
        List<QTD> qtdList = Arrays.asList(qtdArray).stream().sorted(Comparator.comparing(s -> s.name,String.CASE_INSENSITIVE_ORDER)).collect(Collectors.toList());
        return BaseResult.dataList(qtdList);
    }
    /**
@@ -195,6 +182,9 @@
    public BaseResult getObjTypeQTs(String btName) throws PLException, DocumentException {
        VciBaseUtil.alertNotNull(btName,"类型名");
        QTInfo[] objTypeQTs = platformClientUtil.getQTDService().getObjTypeQTs(btName);
        if(Func.isEmpty(objTypeQTs)){
            return BaseResult.success();
        }
        List<QTInfoDTO> dtos = new ArrayList<>();
        Map<String, AttributeDef> allSysAttr = Arrays.stream(platformClientUtil.getBtmService().getSysAttributeDefs()).collect(Collectors.toMap(e -> e.name, e -> e));
        allSysAttr.putAll(Arrays.stream(platformClientUtil.getLinkTypeService().getSysAttributeDefs()).collect(Collectors.toMap(e -> e.name, e -> e)));
@@ -216,6 +206,8 @@
            qtInfoDTO.setCreateTimeText(DateFormatUtils.format(new Date(obj.createTime), DateUtil.PATTERN_DATETIME));
            dtos.add(qtInfoDTO);
        }
        //// TODO: 2024/12/2 Ludc è¿”回值排序
        dtos = dtos.stream().sorted(Comparator.comparing(QTInfoDTO::getQtName,String.CASE_INSENSITIVE_ORDER)).collect(Collectors.toList());
        return BaseResult.dataList(dtos);
    }
@@ -1612,8 +1604,9 @@
    @Override
    public BaseResult getAllQTs() throws PLException {
        QTInfo[] allQTs = platformClientUtil.getQTDService().getAllQTs();
        List<QTInfo> allQTList = Arrays.stream(allQTs).sorted(Comparator.comparing(o -> o.qtName, String.CASE_INSENSITIVE_ORDER)).collect(Collectors.toList());
        DataGrid<QTInfo> dataGrid = new DataGrid<>();
        dataGrid.setData(Arrays.asList(allQTs));
        dataGrid.setData(allQTList);
        dataGrid.setTotal(allQTs.length);
        return BaseResult.dataGrid(dataGrid);
    }
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;
@@ -259,6 +259,9 @@
        if(strategy.getRequireCharCount() > strategy.getCombinations().split(",").length){
            throw new VciBaseException("必填种类不能大于所选择的密码组合方式的个数!");
        }
        if(strategy.getRequireCharCount() <= 0){
            throw new VciBaseException("必填种类不能小于等于0!");
        }
        if(strategy.getMaxLength() < strategy.getMinLength()){
            throw new VciBaseException("密码最大长度不能小于最小长度!");
        }
@@ -453,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;
@@ -474,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{
            //获取默认的
@@ -515,7 +518,7 @@
     */
    private SmPasswordStrategyVO pwdStrategyDO2VO(SmPasswordStrategyDO smPasswordStrategyDO){
        SmPasswordStrategyVO passwordStrategyVO = new SmPasswordStrategyVO();
        BeanUtil.convert(smPasswordStrategyDO,passwordStrategyVO);
        BeanUtilForVCI.convert(smPasswordStrategyDO,passwordStrategyVO);
        return passwordStrategyVO;
    }
@@ -602,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
@@ -1,16 +1,26 @@
package com.vci.web.service.impl;
import com.vci.client.common.oq.OQTool;
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.btm.BizType;
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;
@@ -22,19 +32,16 @@
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;
import org.dom4j.DocumentHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -142,7 +149,7 @@
        VciBaseUtil.alertNotNull(dataGridQuery,"查询对象",dataGridQuery.getBtmname(),"业务类型",dataGridQuery.getTableDefineId());
        //先判断查询模板
        UITableDefineVO tableDefineVO = uiEngineService.getComponentByOid(dataGridQuery.getComponentOid(),null).getTableDefineVO();
        String queryTemplate = !CollectionUtils.isEmpty(dataGridQuery.getSourceData())?dataGridQuery.getSourceData().getOrDefault("querytemplate",tableDefineVO.getQueryTemplateName()):tableDefineVO.getQueryTemplateName();
        String queryTemplate = !CollectionUtils.isEmpty(dataGridQuery.getSourceData())? (String) dataGridQuery.getSourceData().getOrDefault("querytemplate",tableDefineVO.getQueryTemplateName()) :tableDefineVO.getQueryTemplateName();
        if(StringUtils.isBlank(queryTemplate)){
            //说明没有设置查询模板,需要看看在这个表格所在的组件有没有设置
            tableDefineVO = uiEngineService.getTableById(dataGridQuery.getBtmname(), dataGridQuery.getTableDefineId());
@@ -187,7 +194,7 @@
        queryFieldList.add("creator_name");
        queryFieldList.add("lastmodifier_name");
        //我们在后台查询业务数据
        Map<String, String> replaceMap = wrapperReplaceMap(dataGridQuery.getSourceData());
        Map<String, Object> replaceMap = wrapperReplaceMap(dataGridQuery.getSourceData());
        if(dataGridQuery.isLinkTypeFlag()){
            UILinkTypeDataQuery linkTypeDataQuery = new UILinkTypeDataQuery();
@@ -220,7 +227,7 @@
    public UIFormDataVO getDataForForm(UIFormQuery formQuery) throws VciBaseException, PLException {
        VciBaseUtil.alertNotNull(formQuery,"表单的查询对象",formQuery.getBtmname(),"业务类型的信息",formQuery.getOid(),"业务数据的主键",formQuery.getFormDefineId(),"表单的定义编号");
        UIFormDefineVO formDefineVO = uiEngineService.getFormById(formQuery.getBtmname(),formQuery.getFormDefineId());
        String queryTemplate = !CollectionUtils.isEmpty(formQuery.getSourceData())?formQuery.getSourceData().getOrDefault("querytemplate",formDefineVO.getQueryTemplateName()):formDefineVO.getQueryTemplateName();
        String queryTemplate = !CollectionUtils.isEmpty(formQuery.getSourceData())? (String) formQuery.getSourceData().getOrDefault("querytemplate",formDefineVO.getQueryTemplateName()) :formDefineVO.getQueryTemplateName();
        Set<String> queryFieldList = formDefineVO.getItems().stream().filter(s->!UIFieldTypeEnum.CUSTOM.getValue().equalsIgnoreCase(s.getType())).map(UIFormItemVO::getField).collect(Collectors.toSet());
        //获取参照
        List<UIFormItemVO> referFieldList = formDefineVO.getItems().stream().filter(s -> UIFieldTypeEnum.REFER.getValue().equalsIgnoreCase(s.getType())).collect(Collectors.toList());
@@ -253,7 +260,7 @@
        queryFieldList.add("creator_name");
        queryFieldList.add("lastmodifier_name");
        Map<String,String> conditionMap = WebUtil.getOidQuery(formQuery.getOid());
        Map<String, String> replaceMap = wrapperReplaceMap(formQuery.getSourceData());
        Map<String, Object> replaceMap = wrapperReplaceMap(formQuery.getSourceData());
        UIFormDataVO formDataVO = new UIFormDataVO();
        replaceMap.put("oid", formQuery.getOid().trim());
        if(!formDefineVO.isLinkTypeFlag()) {
@@ -323,13 +330,14 @@
     * @param sourceDataMap æ¥æºæ•°æ®
     * @return æ›¿æ¢åŽçš„值
     */
    private Map<String,String> wrapperReplaceMap(Map<String,String> sourceDataMap){
        Map<String,String> replaceMap =!CollectionUtils.isEmpty(sourceDataMap)? sourceDataMap:new HashMap<>();
    private Map<String,Object> wrapperReplaceMap(Map<String,Object> sourceDataMap){
        Map<String,Object> replaceMap =!CollectionUtils.isEmpty(sourceDataMap)? sourceDataMap:new HashMap<>();
        if(!replaceMap.containsKey("f_oid")){
            replaceMap.put("f_oid",replaceMap.getOrDefault("oid",""));
        }
        if(replaceMap.get("f_oid").contains(TREE_NODE_ID_SEP)){
            replaceMap.put("f_oid",replaceMap.get("f_oid").split(TREE_NODE_ID_SEP)[1]);
        String fOid = replaceMap.get("f_oid").toString();
        if(fOid.contains(TREE_NODE_ID_SEP)){
            replaceMap.put("f_oid",fOid.split(TREE_NODE_ID_SEP)[1]);
        }
        return replaceMap;
    }
@@ -347,7 +355,7 @@
     * @throws VciBaseException æŸ¥è¯¢å‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    @Override
    public List<Tree> getDataForTree(UITreeQuery treeQuery) throws VciBaseException, PLException {
    public List<UIDataTree> getDataForTree(UITreeQuery treeQuery) throws Exception {
        VciBaseUtil.alertNotNull(treeQuery,"表单的查询对象",treeQuery.getBtmname(),"业务类型的信息",treeQuery.getComponentOid(),"树所在的组件的主键");
        Map<String, OsAttributeVO> attributeVOMap = attrService.selectAllAttributeMap();
        UIComponentVO componentVO = uiEngineService.getComponentByOid(treeQuery.getComponentOid(),attributeVOMap);
@@ -362,7 +370,14 @@
        if(!treeQuery.isLinkTypeFlag() && StringUtils.isBlank(treeQuery.getParentBtmName())){
            treeQuery.setParentBtmName(treeQuery.getBtmname());
        }
        //TODO: æ›¿æ¢æ ‘定义上的正反向查询属性,因为正反向查询是由链接类型查询模板上控制的
        boolean isOrientation = false; //是否反向,使用模板上配置的
        String qtName = treeDefineVO.getQueryTemplateName();
        if(Func.isNotBlank(treeDefineVO.getLinkType()) && Func.isNotBlank(qtName)){
            QTInfo wrapper = platformClientUtil.getQTDService().getQT(qtName);
            QueryTemplate qt = OQTool.getQTByDoc(DocumentHelper.parseText(wrapper.qtText), qtName);
            isOrientation = qt.getDirection().equals("opposite");
        }
        if(treeQuery.getConditionMap() == null){
            treeQuery.setConditionMap(new HashMap<>());
        }
@@ -381,15 +396,15 @@
        if(StringUtils.isNotBlank(treeQuery.getParentOid()) && treeQuery.getParentOid().contains(TREE_NODE_ID_SEP)){
            treeQuery.setParentOid(treeQuery.getParentOid().split(TREE_NODE_ID_SEP)[1]);
        }
        String queryTemplate = StringUtils.isNotBlank(treeQuery.getQueryTemplate())?treeQuery.getQueryTemplate():(!CollectionUtils.isEmpty(treeQuery.getSourceData())?treeQuery.getSourceData().getOrDefault("querytemplate",treeDefineVO.getQueryTemplateName()):treeDefineVO.getQueryTemplateName());
        String valueField = treeQuery.isLinkTypeFlag()?(!treeDefineVO.isOrientation()?"${oid}" + TREE_NODE_ID_SEP + "${t_oid}":"${oid}" + TREE_NODE_ID_SEP + "${f_oid}"):(StringUtils.isNotBlank(treeQuery.getValueField())?treeQuery.getValueField():"oid");
        String queryTemplate = StringUtils.isNotBlank(treeQuery.getQueryTemplate())?treeQuery.getQueryTemplate():(!CollectionUtils.isEmpty(treeQuery.getSourceData())? (String) treeQuery.getSourceData().getOrDefault("querytemplate",treeDefineVO.getQueryTemplateName()) :treeDefineVO.getQueryTemplateName());
        String valueField = treeQuery.isLinkTypeFlag()?(!isOrientation?"${oid}" + TREE_NODE_ID_SEP + "${t_oid}":"${oid}" + TREE_NODE_ID_SEP + "${f_oid}"):(StringUtils.isNotBlank(treeQuery.getValueField())?treeQuery.getValueField():"oid");
        String textField = StringUtils.isNotBlank(treeDefineVO.getTreeNodeExpression())?treeDefineVO.getTreeNodeExpression():(StringUtils.isNotBlank(treeQuery.getTextField())?treeQuery.getTextField():"name");
        List<Tree> rootTreeList = new ArrayList<>();
        List<UIDataTree> rootTreeList = new ArrayList<>();
        List<String> queryFieldList = new ArrayList<>();
        queryFieldList.add("creator_name");
        queryFieldList.add("lastmodifier_name");
        String rootExpress = StringUtils.isNotBlank(treeQuery.getRootExpress())?treeQuery.getRootExpress():treeDefineVO.getRootContent();
        Map<String, String> replaceMap = wrapperReplaceMap(treeQuery.getSourceData());
        Map<String, Object> replaceMap = wrapperReplaceMap(treeQuery.getSourceData());
        if(StringUtils.isBlank(treeDefineVO.getLinkType())){
            //这个是业务类型的自参照
            //以前的平台没有对自参照这种有全部查询的
@@ -461,7 +476,7 @@
            linkTypeDataQuery.setConditionMap(treeQuery.getConditionMap());
            linkTypeDataQuery.setParentOid(treeQuery.getParentOid());
            linkTypeDataQuery.setClauseList(queryFieldList);
            linkTypeDataQuery.setDirection(treeDefineVO.isOrientation());
            linkTypeDataQuery.setDirection(isOrientation);
            linkTypeDataQuery.setToBtmType(treeDefineVO.getBtmType());
            linkTypeDataQuery.setLinkType(treeDefineVO.getLinkType());
            if(UITreeLoadTypeEnum.ALL.getValue().equalsIgnoreCase(treeDefineVO.getLoadType())){
@@ -469,7 +484,7 @@
            }
            if(treeQuery.isQueryRoot()){
                //查询根节点.我们需要判断是否设置了根节点的查询条件
                List<com.vci.corba.query.data.BOAndLO> rootCbos = null;
                List<BOAndLO> rootCbos = null;
                String parentFieldNameAndValue = treeDefineVO.getShowLinkAbs();
                if(StringUtils.isNotBlank(parentFieldNameAndValue)){
                    if(StringUtils.isNotBlank(queryTemplate)){
@@ -491,7 +506,7 @@
                    }
                    if(!CollectionUtils.isEmpty(rootCbos)){
                        if(StringUtils.isBlank(parentFieldName)){
                            if(treeDefineVO.isOrientation()){
                            if(isOrientation){
                                parentFieldName = "t_oid";
                            }else{
                                parentFieldName = "f_oid";
@@ -511,15 +526,15 @@
                    if(CollectionUtils.isEmpty(replaceMap)){
                        throw new VciBaseException("根节点没有配置查询条件,也没有来源数据");
                    }
                    Tree root = new Tree();
                    root.setOid(replaceMap.getOrDefault("oid",replaceMap.getOrDefault("t_oid","")));
                    UIDataTree root = new UIDataTree();
                    root.setOid((String) replaceMap.getOrDefault("oid",replaceMap.getOrDefault("t_oid","")));
                    root.setText(getValueByExpressForBOAndLO(new HashMap<>(),replaceMap,rootExpress));
                    root.setAttributes(replaceMap);
                    root.setIndex("0");
                    rootTreeList.add(root);
                    if(StringUtils.isBlank(parentFieldName)){
                        if(treeDefineVO.isOrientation()){
                        if(isOrientation){
                            parentFieldName = "t_oid";
                        }else{
                            parentFieldName = "f_oid";
@@ -539,7 +554,7 @@
                    if(linkTypeDataQuery.getReplaceMap() == null){
                        linkTypeDataQuery.setReplaceMap(new HashMap<>());
                    }
                    linkTypeDataQuery.getReplaceMap().put(treeDefineVO.isOrientation()?"t_oid":"f_oid",treeQuery.getParentOid());
                    linkTypeDataQuery.getReplaceMap().put(isOrientation?"t_oid":"f_oid",treeQuery.getParentOid());
                }
                return cloAndCbo2Trees(loService.queryCLOAndBoByLinkType(linkTypeDataQuery),valueField,textField,parentFieldName,treeQuery.isShowCheckBox(),treeQuery.getParentOid());
            }
@@ -553,7 +568,7 @@
     * @throws VciBaseException æŸ¥è¯¢å‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    @Override
    public BaseResult getDataByTemp(UITreeQuery treeQuery) throws VciBaseException, PLException {
    public BaseResult getDataByTemp(UITreeQuery treeQuery) throws Exception {
        VciBaseUtil.alertNotNull(treeQuery,"表单的查询对象",treeQuery.getComponentOid(),"当前组件的主键");
        //1、先查询页面定义组件
        Map<String, OsAttributeVO> attributeVOMap = attrService.selectAllAttributeMap();
@@ -563,12 +578,19 @@
        }
        // 2、根据配置的查询模板查询数据(需要考虑全面一点),
        // è¿™å„¿æ ¹æ®å½“前类型来获取是什么类型的查询模板,然后做对应的查询处理
        //TODO: æ›¿æ¢æ ‘定义上的正反向查询属性,因为正反向查询是由链接类型查询模板上控制的
        UITreeDefineVO treeDefineVO = componentVO.getTreeDefineVO();
        String queryTemplate = StringUtils.isNotBlank(treeQuery.getQueryTemplate())?treeQuery.getQueryTemplate():(!CollectionUtils.isEmpty(treeQuery.getSourceData())?treeQuery.getSourceData().getOrDefault("querytemplate",treeDefineVO.getQueryTemplateName()):treeDefineVO.getQueryTemplateName());
        Map<String, String> replaceMap = wrapperReplaceMap(treeQuery.getSourceData());
        boolean isOrientation = false; //是否反向,使用模板上配置的
        String qtName = treeDefineVO.getQueryTemplateName();
        if(Func.isNotBlank(treeDefineVO.getLinkType()) && Func.isNotBlank(qtName)){
            QTInfo wrapper = platformClientUtil.getQTDService().getQT(qtName);
            QueryTemplate qt = OQTool.getQTByDoc(DocumentHelper.parseText(wrapper.qtText), qtName);
            isOrientation = qt.getDirection().equals("opposite");
        }
        String queryTemplate = StringUtils.isNotBlank(treeQuery.getQueryTemplate())?treeQuery.getQueryTemplate():(!CollectionUtils.isEmpty(treeQuery.getSourceData())? (String) treeQuery.getSourceData().getOrDefault("querytemplate",treeDefineVO.getQueryTemplateName()) :treeDefineVO.getQueryTemplateName());
        Map<String, Object> replaceMap = wrapperReplaceMap(treeQuery.getSourceData());
        List<String> queryFieldList = new ArrayList<>();
        String valueField = treeQuery.isLinkTypeFlag()?(!treeDefineVO.isOrientation()?"${oid}" + TREE_NODE_ID_SEP + "${t_oid}":"${oid}" + TREE_NODE_ID_SEP + "${f_oid}"):(StringUtils.isNotBlank(treeQuery.getValueField())?treeQuery.getValueField():"oid");
        String valueField = treeQuery.isLinkTypeFlag()?(!isOrientation?"${oid}" + TREE_NODE_ID_SEP + "${t_oid}":"${oid}" + TREE_NODE_ID_SEP + "${f_oid}"):(StringUtils.isNotBlank(treeQuery.getValueField())?treeQuery.getValueField():"oid");
        String textField = StringUtils.isNotBlank(treeDefineVO.getTreeNodeExpression())?treeDefineVO.getTreeNodeExpression():(StringUtils.isNotBlank(treeQuery.getTextField())?treeQuery.getTextField():"name");
        String rootExpress = StringUtils.isNotBlank(treeQuery.getRootExpress())?treeQuery.getRootExpress():treeDefineVO.getRootContent();
        String parentFieldName = treeQuery.getParentFieldName();
@@ -586,7 +608,7 @@
        List<BusinessObject> rootCbos = boService.queryCBOByScheme(queryTemplate, null, replaceMap);
        //3、根据不同的组件返回不同的数据类型(树、列表、树表、自定义模板、表单等)
        List<Tree> rootTreeList = null;
        List<UIDataTree> rootTreeList = null;
        if(!CollectionUtils.isEmpty(rootCbos)){
            rootTreeList = cbo2Trees(rootCbos,valueField,StringUtils.isBlank(rootExpress)?textField:rootExpress,parentFieldName,treeQuery.isShowCheckBox(),null);
            TreeQueryObject treeQueryObject = new TreeQueryObject();
@@ -609,19 +631,19 @@
     * @param queryFieldList æŸ¥è¯¢çš„字段
     * @param treeQueryObject æ ‘形查询对象,需要valueField和textField,还有parentFieldName,和checkBox
     */
    private void queryTreeForBO(List<Tree> rootTreeList, String queryTemplate,List<String> queryFieldList,TreeQueryObject treeQueryObject) {
        for (Tree rootTree : rootTreeList) {
    private void queryTreeForBO(List<UIDataTree> rootTreeList, String queryTemplate,List<String> queryFieldList,TreeQueryObject treeQueryObject) {
        for (UIDataTree rootTree : rootTreeList) {
            List<BusinessObject> thisChildren = null;
            Map<String,String> sourceDataMap = rootTree.getAttributes();
            Map<String,Object> sourceDataMap = rootTree.getAttributes();
            sourceDataMap.put("f_oid",rootTree.getOid());
            Map<String,String> conditionMap = new HashMap<>();
            conditionMap.put(treeQueryObject.getParentFieldName(),rootTree.getOid());
            if (StringUtils.isNotBlank(queryTemplate)) {
                thisChildren = boService.queryCBOByScheme(queryTemplate, conditionMap, sourceDataMap, null, queryFieldList);
            } else {
                thisChildren = boService.queryCBO(sourceDataMap.getOrDefault("btmname",sourceDataMap.getOrDefault("btmName",treeQueryObject.getParentBtmName())), conditionMap, null, queryFieldList);
                thisChildren = boService.queryCBO((String) sourceDataMap.getOrDefault("btmname",sourceDataMap.getOrDefault("btmName",treeQueryObject.getParentBtmName())), conditionMap, null, queryFieldList);
            }
            List<Tree> childrenTree = cbo2Trees(thisChildren, treeQueryObject.getValueField(), treeQueryObject.getTextField(), treeQueryObject.getParentFieldName(), treeQueryObject.isShowCheckBox(), null);
            List<UIDataTree> childrenTree = cbo2Trees(thisChildren, treeQueryObject.getValueField(), treeQueryObject.getTextField(), treeQueryObject.getParentFieldName(), treeQueryObject.isShowCheckBox(), null);
            rootTree.setChildren(childrenTree);
            if(treeQueryObject.isQueryAllLevel() && !CollectionUtils.isEmpty(childrenTree) ) {
                queryTreeForBO(childrenTree,queryTemplate,queryFieldList,treeQueryObject);
@@ -638,8 +660,8 @@
     * @param textField æ˜¾ç¤ºè¡¨è¾¾å¼
     * @param showCheckBox æ˜¯å¦æ˜¾ç¤ºå¤é€‰æ¡†
     */
    private void queryTreeForLO(List<Tree> rootTreeList, UILinkTypeDataQuery linkTypeDataQuery,String parentFieldName,String valueField,String textField,boolean showCheckBox) {
        for (Tree rootTree : rootTreeList) {
    private void queryTreeForLO(List<UIDataTree> rootTreeList, UILinkTypeDataQuery linkTypeDataQuery,String parentFieldName,String valueField,String textField,boolean showCheckBox) {
        for (UIDataTree rootTree : rootTreeList) {
            Map<String,String> conditionMap = new HashMap<>();
            conditionMap.put(linkTypeDataQuery.isDirection()?"t_oid":"f_oid",rootTree.getOid());
            linkTypeDataQuery.setConditionMap(conditionMap);
@@ -658,18 +680,21 @@
     * @param parentOid ä¸Šçº§çš„主键
     * @return æ ‘
     */
    private List<Tree> cbo2Trees(Collection<BusinessObject> cbos,String valueField,String textField,String parentFieldName,boolean showCheckBox,String parentOid){
    private List<UIDataTree> cbo2Trees(Collection<BusinessObject> cbos,String valueField,String textField,String parentFieldName,boolean showCheckBox,String parentOid){
        final int[] i = {0};
        List<Tree> rootList = new ArrayList<>();
        List<Tree> children = new ArrayList<>();
        List<UIDataTree> rootList = new ArrayList<>();
        List<UIDataTree> children = new ArrayList<>();
        cbos.stream().forEach(cbo->{
            Tree tree = new Tree();
            UIDataTree tree = new UIDataTree();
            tree.setOid(getValueByExpress(cbo,valueField));
            tree.setText(getValueByExpress(cbo,textField));
            if(StringUtils.isNotBlank(parentFieldName)){
                tree.setParentId(ObjectTool.getBOAttributeValue(cbo,parentFieldName));
            }
            tree.setAttributes(boService.cbo2Map(cbo));
            Map<String,Object> cbo2Map = boService.cbo2Map(cbo);
            Map<String, Object> returnMap = new HashMap<>();
            returnMap.put((String) cbo2Map.get("btmname"),cbo2Map);
            tree.setAttributes(returnMap);
            tree.setIndex(i[0] + "");
            i[0]++;
            tree.setChecked(showCheckBox);
@@ -683,7 +708,7 @@
        if(rootList.size() == 0 && children.size() == 0){
            return rootList;
        }
        return Tree.getChildList(rootList,children);
        return UIDataTree.getChildList(rootList,children);
    }
    /**
@@ -696,42 +721,25 @@
     * @param parentOid ä¸Šçº§çš„值
     * @return æ ‘形数据
     */
    public List<Tree> cloAndCbo2Trees(Collection<com.vci.corba.query.data.BOAndLO> boAndLOS,String valueField,String textField,String parentFieldName,boolean showCheckBox,String parentOid){
    public List<UIDataTree> cloAndCbo2Trees(Collection<BOAndLO> boAndLOS, String valueField, String textField, String parentFieldName, boolean showCheckBox, String parentOid){
        final int[] i = {0};
        List<Tree> rootList = new ArrayList<>();
        List<Tree> children = new ArrayList<>();
        List<UIDataTree> rootList = new ArrayList<>();
        List<UIDataTree> children = new ArrayList<>();
        boAndLOS.stream().forEach(boAndLO->{
            Tree tree = new Tree();
            UIDataTree tree = new UIDataTree();
            BusinessObject cbo = new BusinessObject();
            cbo = boAndLO.bo;
            LinkObject clo = new LinkObject();
            clo = boAndLO.lo;
            Map<String,String> cloMap = loService.clo2Map(clo);
            Map<String,String> cbo2Map = boService.cbo2Map(cbo);
            //将链接类型的属性也放进进行返回
            String linkName = Func.isNotBlank(cloMap.get("linktypename")) ? cloMap.get("linktypename"):parentFieldName;
            Map<String, String> returnMap = new HashMap<>();
            cloMap.forEach((key,value)->{
                //过滤掉空值
                if(!returnMap.containsKey(linkName + key) && Func.isNotBlank(key) || Func.isNotBlank(value)){
                    returnMap.put(linkName + key,value);
                }
            });
            //过滤掉空值,用作返回的map
           cbo2Map.entrySet().stream().forEach(entry -> {
                String key = entry.getKey();
                String value = entry.getValue();
                if (!returnMap.containsKey(key) && Func.isNotBlank(key) && Func.isNotBlank(value)) {
                    returnMap.put(key,value);
                }
            });
            Map<String,Object> cloMap = loService.clo2Map(clo);
            Map<String,Object> cbo2Map = boService.cbo2Map(cbo);
            if(!CollectionUtils.isEmpty(cbo2Map)){
            /*if(!CollectionUtils.isEmpty(cbo2Map)){
                cbo2Map.forEach((key,value)->{
                    //TODO: è¿™å„¿ä¸ºå•¥è¦æ‹¼æŽ¥ä¸ŠparentFieldName,导致后面freemarker表达式无法正确替换
                    cloMap.put(/*parentFieldName + "." +*/ key,value);
                    cloMap.put(/*parentFieldName + "." + key,value);
                });
            }
            }*/
            tree.setOid(getValueByExpressForBOAndLO(cloMap,cbo2Map,valueField));
            tree.setText(getValueByExpressForBOAndLO(cloMap,cbo2Map,textField));
            if(StringUtils.isBlank(parentFieldName)){
@@ -743,7 +751,10 @@
                    tree.setParentId(ObjectTool.getLOAttributeValue(clo,parentFieldName));
                }
            }
            //TODO:返回的数据改成按链接类型和业务类型为key:值为对应的属性集合形式返回
            Map<String, Object> returnMap = new HashMap<>();
            returnMap.put((String) cloMap.get("linktypename"),cloMap);
            returnMap.put((String) cbo2Map.get("btmname"),cbo2Map);
            tree.setAttributes(returnMap);
            tree.setIndex(i[0] + "");
            i[0]++;
@@ -756,7 +767,7 @@
            }
        });
        return Tree.getChildList(rootList,children);
        return UIDataTree.getChildList(rootList,children);
    }
    /**
@@ -788,17 +799,30 @@
     * @param fieldExpress è¡¨è¾¾å¼
     * @return æ›¿æ¢åŽçš„值
     */
    private String getValueByExpressForBOAndLO(Map<String,String> valueMap,Map<String,String> boValueMap,String fieldExpress){
    private String getValueByExpressForBOAndLO(Map<String,Object> valueMap,Map<String,Object> boValueMap,String fieldExpress){
        if(fieldExpress.contains("${")){
            //使用freemarker处理
            return VciBaseUtil.replaceByFreeMarker(fieldExpress,valueMap);
            /*
            TODO:表达式存在T_OID.name这种形式时freemarker替换规则是从T_OID这个对象中招name属性,
                ä½†æ˜¯valueMap是一个String,String的Map所以需要将T_OID.或F_OID.去掉,因为不管是查询的
                form端还是to端都是平台查好放在业务属性boValueMap集合中的,所以直接替就可以
            */
            if(fieldExpress.contains(".")){
                //去除t_oid、T_OID以及f_oid、F_OID
                fieldExpress = fieldExpress
                        .replace("t_oid.","")
                        .replace("T_OID.","")
                        .replace("f_oid.","")
                        .replace("F_OID.","");
            }
            return VciBaseUtil.replaceByFreeMarker(fieldExpress,boValueMap);
        }else {
            List<String> fieldList = VciBaseUtil.str2List(fieldExpress);
            Map<String,String> valueLowMap = new HashMap<>();
            Map<String,Object> valueLowMap = new HashMap<>();
            valueMap.forEach((key,value)->{
                valueLowMap.put(key.toLowerCase(),value);
            });
            Map<String,String> boLowValueMap = new HashMap<>();
            Map<String,Object> boLowValueMap = new HashMap<>();
            if(!CollectionUtils.isEmpty(boValueMap)){
                boValueMap.forEach((key,value)->{
                    boLowValueMap.put(key.toLowerCase(),value);
@@ -806,7 +830,7 @@
            }
            StringBuilder sb = new StringBuilder();
            fieldList.stream().forEach(field->{
                sb.append(valueLowMap.getOrDefault(field,boLowValueMap.getOrDefault(field,""))).append(" ");
                sb.append(boLowValueMap.getOrDefault(field,valueLowMap.getOrDefault(field,""))).append(" ");
            });
            return sb.toString().trim();
        }
@@ -854,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)){
            //前置事件
@@ -1064,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);
@@ -1082,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);
@@ -1101,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);
        });
@@ -1120,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);
        });
@@ -1138,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);
@@ -1248,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));
@@ -1405,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);
@@ -1442,7 +1466,7 @@
        }
        if(!CollectionUtils.isEmpty(releasedFileOids)){
            releasedFileOids.forEach((oid,fileOids)->{
                fileObjectService.releasedFile(firstFormDataDTO.getBtmname(),oid,fileOids);
                fileObjectService.releasedFile(firstFormDataDTO.getBtmName(),oid,fileOids);
            });
        }
        //后置事件
@@ -1473,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);
@@ -1518,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);
@@ -1532,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("数据不是最新的,建议您刷新后重新操作");
        }
@@ -1579,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);
@@ -1609,7 +1633,7 @@
        }
        if(!CollectionUtils.isEmpty(releasedFileOids)){
            releasedFileOids.forEach((oid,fileOids)->{
                fileObjectService.releasedFile(firstFormDataDTO.getBtmname(),oid,fileOids);
                fileObjectService.releasedFile(firstFormDataDTO.getBtmName(),oid,fileOids);
            });
        }
        //后置事件
@@ -1634,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;
/**
@@ -542,6 +540,12 @@
            node = rootNode.addElement(PLDefinationConstants.QUERYTEMPLATENAME);
            node.setText(obj.getQueryTemplateName());
            node = rootNode.addElement(PLDefinationConstants.QUERYTEMPLATENAME);
            node.setText(obj.getBsCustQueryCLsOrUrl());
            node = rootNode.addElement(PLDefinationConstants.QUERYTEMPLATENAME);
            node.setText(obj.getCsCustQueryCLsOrUrl());
            node = rootNode.addElement(PLDefinationConstants.SUBUIOBJTYPE);
            node.setText(obj.getSubUiObjType());
@@ -662,6 +666,12 @@
                elementText = root.elementText(PLDefinationConstants.QUERYTEMPLATENAME);
                obj.setQueryTemplateName(elementText == null ? "" : elementText);
                elementText = root.elementText(PLDefinationConstants.BSCUSTQUERYCLSORURL);
                obj.setBsCustQueryCLsOrUrl(elementText == null ? "" : elementText);
                elementText = root.elementText(PLDefinationConstants.CSCUSTQUERYCLSORURL);
                obj.setCsCustQueryCLsOrUrl(elementText == null ? "" : elementText);
                elementText = root.elementText(PLDefinationConstants.SUBUILAYOUT);
                obj.setSubUILayout(elementText == null ? "" : elementText);
            }
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>