ludc
2023-03-28 97125f78d90cc22e2b97155146b5fb8fb202a7b3
更改CODE服务中部分依赖
已修改133个文件
已添加68个文件
21626 ■■■■■ 文件已修改
Source/BladeX/blade-common/src/main/java/org/springblade/common/constant/CommonConstant.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service-api/blade-code-api/src/main/java/org/springblade/code/vo/pagemodel/CodeImprotSaveDatVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service-api/blade-code-api/src/main/java/org/springblade/code/vo/pagemodel/ColumnVO.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service-api/blade-code-api/src/main/java/org/springblade/code/vo/pagemodel/ConfigAttrMappingVO.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service-api/blade-code-api/src/main/java/org/springblade/code/vo/pagemodel/DataResembleVO.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service-api/blade-code-api/src/main/java/org/springblade/code/vo/pagemodel/DockingDataVO.java 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service-api/blade-code-api/src/main/java/org/springblade/code/vo/pagemodel/DockingLogeVO.java 177 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service-api/blade-code-api/src/main/java/org/springblade/code/vo/pagemodel/DockingPreApplyDataInfoVO.java 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service-api/blade-code-api/src/main/java/org/springblade/code/vo/pagemodel/DockingPreApplyDataVO.java 256 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service-api/blade-code-api/src/main/java/org/springblade/code/vo/pagemodel/DockingPreAttrMappingVO.java 199 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service-api/blade-code-api/src/main/java/org/springblade/code/vo/pagemodel/DockingPreAttrRangeVO.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service-api/blade-code-api/src/main/java/org/springblade/code/vo/pagemodel/DockingTaskVO.java 200 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service-api/blade-code-api/src/main/java/org/springblade/code/vo/pagemodel/MdmUIInfoVO.java 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service-api/blade-code-api/src/main/java/org/springblade/code/vo/pagemodel/SysIntAuthorityVO.java 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service-api/blade-code-api/src/main/java/org/springblade/code/vo/pagemodel/SysIntBaseVO.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service-api/blade-code-api/src/main/java/org/springblade/code/vo/pagemodel/SysIntHeaderVO.java 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service-api/blade-code-api/src/main/java/org/springblade/code/vo/pagemodel/SysIntInfoVO.java 746 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service-api/blade-code-api/src/main/java/org/springblade/code/vo/pagemodel/SysIntParamVO.java 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service-api/blade-code-api/src/main/java/org/springblade/code/vo/universalInter/classify/QueryData.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service-api/blade-code-api/src/main/java/org/springblade/code/vo/universalInter/data/CondtionsVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service-api/pom.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/CodeApplication.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/Scheduling/DockingClassSyncScheduling.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/Scheduling/DockingDataSyncScheduling.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/Scheduling/DockingScheduling.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodeApplySyncController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodeBasicSecController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodeButtonController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodeClassifyController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodeClassifyProcessTempController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodeClassifyTempMapItemController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodeClassifyTemplateAttrController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodeClassifyTemplateButtonController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodeClassifyTemplateController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodeClassifyTemplateMapController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodeClassifyValueController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodeDuckingController.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodeFixedValueController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodeKeyAttrRepeatRuleController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodePhaseAttrController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodeResembleRuleController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodeRuleController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodeSerialAlgorithmController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodeSynonymController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodeTemplatePhaseController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/CodeAllCodeDaoI.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/CodeBasicSecDaoI.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/CodeButtonDaoI.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/CodeClassifyDaoI.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/CodeClassifyProcessTempDaoI.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/CodeClassifyTempMapItemDaoI.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/CodeClassifyTemplateAttrDaoI.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/CodeClassifyTemplateButtonDaoI.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/CodeClassifyTemplateDaoI.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/CodeClassifyTemplateMapDaoI.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/CodeClassifyValueDaoI.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/CodeFixedValueDaoI.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/CodePhaseAttrDaoI.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/CodeResembleRuleDaoI.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/CodeRuleDaoI.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/CodeSerialValueDaoI.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/CodeSynonymDaoI.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/CodeTemplatePhaseDaoI.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/DockingDataDaoI.java 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/DockingLogeDaoI.java 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/DockingPreApplyDataDaoI.java 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/DockingPreApplyDataInfoDaoI.java 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/DockingPreAttrMappingDaoI.java 133 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/DockingPreAttrRangeDaoI.java 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/DockingTaskDaoI.java 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/SysIntAuthorityDaoI.java 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/SysIntBaseDaoI.java 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/SysIntHeaderDaoI.java 143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/SysIntInfoDaoI.java 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/SysIntParamDaoI.java 144 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/CodeAllCodeDaoImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/CodeBasicSecDaoImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/CodeButtonDaoImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/CodeClassifyDaoImpl.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/CodeClassifyProcessTempDaoImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/CodeClassifyTempMapItemDaoImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/CodeClassifyTemplateAttrDaoImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/CodeClassifyTemplateButtonDaoImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/CodeClassifyTemplateDaoImpl.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/CodeClassifyTemplateMapDaoImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/CodeClassifyValueDaoImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/CodeFixedValueDaoImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/CodeKeyAttrRepeatRuleDaoImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/CodePhaseAttrDaoImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/CodeResembleRuleDaoImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/CodeRuleDaoImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/CodeSerialValueDaoImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/CodeSynonymDaoImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/CodeTemplatePhaseDaoImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/DockingDataDaoImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/DockingLogeDaoImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/DockingPreApplyDataDaoImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/DockingPreApplyDataInfoDaoImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/DockingPreAttrMappingDaoImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/DockingPreAttrRangeDaoImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/DockingTaskDaoImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/SysIntAuthorityDaoImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/SysIntBaseDaoImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/SysIntHeaderDaoImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/SysIntParamDaoImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/enumpack/CodeButtonUseEnum.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/enumpack/CodeClassifyProcessUseEnum.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/enumpack/CodeCutTypeEnum.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/enumpack/CodeGetValueTypeEnum.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/enumpack/CodeLevelTypeEnum.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/enumpack/CodeMapRuleTypeEnum.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/enumpack/CodeSecLengthTypeEnum.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/enumpack/CodeUseButtonPositionTypeEnum.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/enumpack/SysIntegrationAuthorityTypeEnum.java 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/enumpack/SysIntegrationDataFlowTypeEnum.java 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/enumpack/SysIntegrationParamAndReturnTypeEnum.java 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/enumpack/SysIntegrationRequestMethodEnum.java 136 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/enumpack/SysIntegrationRequestTypeEnum.java 135 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/enumpack/sysIntegrationPushTypeEnum.java 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/lifecycle/CodeAllCodeLC.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/lifecycle/CodeClassifyTemplateLC.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/lifecycle/CodeDefaultLC.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/lifecycle/CodeRuleLC.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/model/CodeRuleDO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/model/DockingDataDO.java 148 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/model/DockingLogeDO.java 228 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/model/DockingPreApplyDataDO.java 266 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/model/DockingPreApplyDataInfoDO.java 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/model/DockingPreAttrMappingDO.java 207 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/model/DockingPreAttrRangeDO.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/model/DockingTaskDO.java 224 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/model/SysIntAuthorityDO.java 159 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/model/SysIntBaseDO.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/model/SysIntHeaderDO.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/model/SysIntInfoDO.java 656 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/model/SysIntParamDO.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/model/TaskDuckingDO.java 236 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/CodeBasicSecServiceI.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/CodeButtonServiceI.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/CodeClassifyProcessTempServiceI.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/CodeClassifyServiceI.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/CodeClassifyTempMapItemServiceI.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/CodeClassifyTemplateAttrServiceI.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/CodeClassifyTemplateButtonServiceI.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/CodeClassifyTemplateMapServiceI.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/CodeClassifyTemplateServiceI.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/CodeClassifyValueServiceI.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/CodeDuckingServiceI.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/CodeFixedValueServiceI.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/CodePhaseAttrServiceI.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/CodeResembleRuleServiceI.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/CodeRuleServiceI.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/CodeSerialAlgorithmServiceI.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/CodeSynonymServiceI.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/CodeTemplatePhaseServiceI.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/DockingPreApplyDataInfoServiceI.java 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/DockingPreApplyDataServiceI.java 152 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/DockingPreAttrMappingSeviceI.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/MdmEngineServiceI.java 361 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/MdmIOServiceI.java 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/MdmProductCodeServiceI.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/SysIntAuthorityServiceI.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/SysIntBaseServiceI.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/SysIntInfoServiceI.java 159 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/UniversalInterfaceI.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/CodeBasicSecServiceImpl.java 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/CodeButtonServiceImpl.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/CodeClassifyProcessTempServiceImpl.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/CodeClassifyServiceImpl.java 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/CodeClassifyTempMapItemServiceImpl.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/CodeClassifyTemplateAttrServiceImpl.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/CodeClassifyTemplateButtonServiceImpl.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/CodeClassifyTemplateMapServiceImpl.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/CodeClassifyTemplateServiceImpl.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/CodeClassifyValueServiceImpl.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/CodeDuckingServiceImpl.java 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/CodeDuckingSyncServiceImpl.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/CodeFixedValueServiceImpl.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/CodePhaseAttrServiceImpl.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/CodeResembleRuleServiceImpl.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/CodeRuleServiceImpl.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/CodeSerialAlgorithmServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/CodeSynonymServiceImpl.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/CodeTemplatePhaseServiceImpl.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/DockingPreApplyDataInfoServiceImpl.java 275 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/DockingPreApplyDataServiceImpl.java 1116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/DockingPreAttrMappingSeviceImpl.java 529 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/MdmEngineServiceImpl.java 2753 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/MdmIOServiceImpl.java 4012 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/MdmProductCodeServiceImpl.java 741 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/SysIntAuthorityServiceImpl.java 288 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/SysIntBaseServiceImpl.java 283 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/SysIntInfoServiceImpl.java 1091 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/UniversalInterfaceImpl.java 913 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/utils/XmlUtil.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/utils/gennerAttrMapUtil.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/resources/application-dev.yml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-code/src/main/resources/application-test.yml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-user/src/main/java/org/springblade/system/user/controller/UserController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/pom.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-common/src/main/java/org/springblade/common/constant/CommonConstant.java
@@ -34,6 +34,11 @@
    String SABER_NAME = "saber";
    /**
     * CODE æ–°æ·»åŠ çš„CODE服务名
     */
    String CODE_NAME = "CODE";
    /**
     * é¡¶çº§çˆ¶èŠ‚ç‚¹id
     */
    Long TOP_PARENT_ID = 0L;
Source/BladeX/blade-service-api/blade-code-api/src/main/java/org/springblade/code/vo/pagemodel/CodeImprotSaveDatVO.java
@@ -1,6 +1,6 @@
package org.springblade.code.vo.pagemodel;
import com.vci.mdm.dto.CodeOrderDTO;
import org.springblade.code.dto.CodeOrderDTO;
import java.util.ArrayList;
import java.util.List;
Source/BladeX/blade-service-api/blade-code-api/src/main/java/org/springblade/code/vo/pagemodel/ColumnVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,51 @@
package org.springblade.code.vo.pagemodel;
public class ColumnVO {
    private  String field;
    private  String title;
    private  int width=260;
    private  boolean sort;
    public String getField() {
        return field;
    }
    public void setField(String field) {
        this.field = field;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public int getWidth() {
        return width;
    }
    public void setWidth(int width) {
        this.width = width;
    }
    public boolean isSort() {
        return sort;
    }
    public void setSort(boolean sort) {
        this.sort = sort;
    }
    @Override
    public String toString() {
        return "ColumnVO{" +
                "field='" + field + '\'' +
                ", title='" + title + '\'' +
                ", width=" + width +
                ", sort=" + sort +
                '}';
    }
}
Source/BladeX/blade-service-api/blade-code-api/src/main/java/org/springblade/code/vo/pagemodel/ConfigAttrMappingVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
package org.springblade.code.vo.pagemodel;
public class ConfigAttrMappingVO {
    private String systemId;
    private String ll;
}
Source/BladeX/blade-service-api/blade-code-api/src/main/java/org/springblade/code/vo/pagemodel/DataResembleVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,36 @@
package org.springblade.code.vo.pagemodel;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class DataResembleVO {
    private String oid;
    private List<Map<String,String>> dataList=new ArrayList<>();
    public List<Map<String, String>> getDataList() {
        return dataList;
    }
    public void setDataList(List<Map<String, String>> dataList) {
        this.dataList = dataList;
    }
    public String getOid() {
        return oid;
    }
    public void setOid(String oid) {
        this.oid = oid;
    }
    @Override
    public String toString() {
        return "DataResembleVO{" +
                "oid='" + oid + '\'' +
                ", dataList=" + dataList +
                '}';
    }
}
Source/BladeX/blade-service-api/blade-code-api/src/main/java/org/springblade/code/vo/pagemodel/DockingDataVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,120 @@
package org.springblade.code.vo.pagemodel;
import com.vci.starter.web.model.BaseModel;
/**
 * è¦æŽ¨é€å¾—数据
 * @author wangyi
 * @date 2022-10-7
 */
public class DockingDataVO extends BaseModel {
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = 5020487634341415429L;
    /**
     * ç³»ç»ŸæŽ¥å£oid
     */
    private String classifyoid;
    /**
     * ç³»ç»Ÿid
     */
    private String btmoid;
    /**
     * ç³»ç»Ÿid
     */
    private String btmid;
    /**
     * ç³»ç»Ÿid
     */
    private String sendtype;
    /**
     * æ˜¯å¦åˆ†è§£ä»»åŠ¡
     */
    private String sendflag;
    /**
     * ç³»ç»Ÿid
     */
    private String classifyid;
    /**
     * ç³»ç»Ÿid
     */
    private String classifyname;
    public String getClassifyoid() {
        return classifyoid;
    }
    public void setClassifyoid(String classifyoid) {
        this.classifyoid = classifyoid;
    }
    public String getBtmoid() {
        return btmoid;
    }
    public void setBtmoid(String btmoid) {
        this.btmoid = btmoid;
    }
    public String getBtmid() {
        return btmid;
    }
    public void setBtmid(String btmid) {
        this.btmid = btmid;
    }
    public String getSendtype() {
        return sendtype;
    }
    public void setSendtype(String sendtype) {
        this.sendtype = sendtype;
    }
    public String getSendflag() {
        return sendflag;
    }
    public void setSendflag(String sendflag) {
        this.sendflag = sendflag;
    }
    public String getClassifyid() {
        return classifyid;
    }
    public void setClassifyid(String classifyid) {
        this.classifyid = classifyid;
    }
    public String getClassifyname() {
        return classifyname;
    }
    public void setClassifyname(String classifyname) {
        this.classifyname = classifyname;
    }
    @Override
    public String toString() {
        return "DockingDataDO{" +
                "classifyoid='" + classifyoid + '\'' +
                ", btmoid='" + btmoid + '\'' +
                ", btmid='" + btmid + '\'' +
                ", sendtype='" + sendtype + '\'' +
                ", sendflag='" + sendflag + '\'' +
                ", classifyid='" + classifyid + '\'' +
                ", classifyname='" + classifyname + '\'' +
                '}';
    }
}
Source/BladeX/blade-service-api/blade-code-api/src/main/java/org/springblade/code/vo/pagemodel/DockingLogeVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,177 @@
package org.springblade.code.vo.pagemodel;
import com.vci.starter.web.pagemodel.BaseModelVO;
/**
 * èµ„源对接通知、查询接口日志显示对象
 *
 * @author weidy
 * @date 2022-03-28
 */
public class DockingLogeVO extends BaseModelVO {
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = 4615707121064918548L;
    /**
    * æŽ¥å£çŠ¶æ€
    */
    private String interfacestatus;
    /**
    * å‚æ•°
    */
    private String paramstring;
    /**
    * è¿”回
    */
    private String returnstring;
    /**
    * ç³»ç»Ÿç¼–号
    */
    private String systemcode;
    /**
    * ç³»ç»Ÿåç§°
    */
    private String systemname;
    /**
    * ç³»ç»Ÿid
    */
    private String systemoid;
    /**
    * æŽ¥å£ç±»åž‹
    */
    private String type;
    /**
     * è¿”还提示
     */
    private String msg;
    public String getMsg() {
        return msg;
    }
    public void setMsg(String msg) {
        this.msg = msg;
    }
    /**
     * èŽ·å– æŽ¥å£çŠ¶æ€
     */
    public String getInterfacestatus (){
        return interfacestatus;
    }
    /**
    * è®¾ç½® æŽ¥å£çŠ¶æ€
    */
    public void setInterfacestatus (String interfacestatus){
        this.interfacestatus = interfacestatus;
    }
    /**
     * èŽ·å– å‚æ•°
     */
    public String getParamstring (){
        return paramstring;
    }
    /**
    * è®¾ç½® å‚æ•°
    */
    public void setParamstring (String paramstring){
        this.paramstring = paramstring;
    }
    /**
     * èŽ·å– è¿”回
     */
    public String getReturnstring (){
        return returnstring;
    }
    /**
    * è®¾ç½® è¿”回
    */
    public void setReturnstring (String returnstring){
        this.returnstring = returnstring;
    }
    /**
     * èŽ·å– ç³»ç»Ÿç¼–号
     */
    public String getSystemcode (){
        return systemcode;
    }
    /**
    * è®¾ç½® ç³»ç»Ÿç¼–号
    */
    public void setSystemcode (String systemcode){
        this.systemcode = systemcode;
    }
    /**
     * èŽ·å– ç³»ç»Ÿåç§°
     */
    public String getSystemname (){
        return systemname;
    }
    /**
    * è®¾ç½® ç³»ç»Ÿåç§°
    */
    public void setSystemname (String systemname){
        this.systemname = systemname;
    }
    /**
     * èŽ·å– ç³»ç»Ÿid
     */
    public String getSystemoid (){
        return systemoid;
    }
    /**
    * è®¾ç½® ç³»ç»Ÿid
    */
    public void setSystemoid (String systemoid){
        this.systemoid = systemoid;
    }
    /**
     * èŽ·å– æŽ¥å£ç±»åž‹
     */
    public String getType (){
        return type;
    }
    /**
    * è®¾ç½® æŽ¥å£ç±»åž‹
    */
    public void setType (String type){
        this.type = type;
    }
    @Override
    public String toString() {
        return "DockingLogeVO{" +
                "interfacestatus='" + interfacestatus + '\'' +
                ", paramstring='" + paramstring + '\'' +
                ", returnstring='" + returnstring + '\'' +
                ", systemcode='" + systemcode + '\'' +
                ", systemname='" + systemname + '\'' +
                ", systemoid='" + systemoid + '\'' +
                ", type='" + type + '\'' +
                ", msg='" + msg + '\'' +
                '}';
    }
}
Source/BladeX/blade-service-api/blade-code-api/src/main/java/org/springblade/code/vo/pagemodel/DockingPreApplyDataInfoVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,121 @@
package org.springblade.code.vo.pagemodel;
import com.vci.starter.web.pagemodel.BaseModelVO;
/**
 * è®°å½•工艺推送过来的数据信息显示对象
 *
 * @author weidy
 * @date 2022-04-05
 */
public class DockingPreApplyDataInfoVO extends BaseModelVO {
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = 4615707120361431431L;
    /**
     * data的oid
     */
    private String dataoid;
    /**
     * å”¯ä¸€æ ‡è¯†ï¼Œå·¥è‰ºé‡Œè¾¹çš„图号
     */
    private String uniquecode;
    /**
     * å±žæ€§key
     */
    private String key;
    /**
     * å±žæ€§key含义
     */
    private String mean;
    /**
     * å±žæ€§value
     */
    private String value;
    /**
     * èŽ·å– data的oid
     */
    public String getDataoid (){
        return dataoid;
    }
    /**
    * è®¾ç½® data的oid
    */
    public void setDataoid (String dataoid){
        this.dataoid = dataoid;
    }
    /**
     * èŽ·å– å±žæ€§key
     */
    public String getKey (){
        return key;
    }
    /**
    * è®¾ç½® å±žæ€§key
    */
    public void setKey (String key){
        this.key = key;
    }
    /**
     * èŽ·å– å±žæ€§key含义
     */
    public String getMean (){
        return mean;
    }
    /**
    * è®¾ç½® å±žæ€§key含义
    */
    public void setMean (String mean){
        this.mean = mean;
    }
    /**
     * èŽ·å– å”¯ä¸€æ ‡è¯†
     */
    public String getUniquecode (){
        return uniquecode;
    }
    /**
    * è®¾ç½® å”¯ä¸€æ ‡è¯†
    */
    public void setUniquecode (String uniquecode){
        this.uniquecode = uniquecode;
    }
    /**
     * èŽ·å– å±žæ€§value
     */
    public String getValue (){
        return value;
    }
    /**
    * è®¾ç½® å±žæ€§value
    */
    public void setValue (String value){
        this.value = value;
    }
    @Override
    public String toString() {
        return "DockingPreApplyDataInfoVO{" +
                "dataoid='" + dataoid + '\'' +
                ", uniquecode='" + uniquecode + '\'' +
                ", key='" + key + '\'' +
                ", mean='" + mean + '\'' +
                ", value='" + value + '\'' +
                '}';
    }
}
Source/BladeX/blade-service-api/blade-code-api/src/main/java/org/springblade/code/vo/pagemodel/DockingPreApplyDataVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,256 @@
package org.springblade.code.vo.pagemodel;
import com.vci.starter.web.pagemodel.BaseModelVO;
import java.util.List;
/**
 * è®°å½•工艺推送过来的数据信息显示对象
 *
 * @author weidy
 * @date 2022-04-05
 */
public class DockingPreApplyDataVO extends BaseModelVO {
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = 4615707118846979001L;
    /**
     * ç”³è¯·oid
     */
    private String preapplyoid;
    /**
     * å”¯ä¸€æ ‡è¯†ï¼Œå·¥è‰ºé‡Œè¾¹çš„图号
     */
    private String uniquecode;
    /**
     * ä¸»é¢˜åº“编号
     */
    private String type;
    /**
     * ç³»ç»Ÿç¼–号
     */
    private String systemid;
    /**
     * æ­£åœ¨ä½¿ç”¨æ ‡å¿—
     */
    private String useddflag;
    /**
     * å…³è”分类操作过后,记录的关联分类oid
     */
    private String classifyoid;
    /**
     * å…³è”分类操作过后,记录的关联分类名称
     */
    private String classifyname;
    /**
     * ç”³è¯·æˆåŠŸåŽçš„ç¼–ç ï¼Œç¼–è¾‘ä¸­ã€æœªå‘å¸ƒã€åœç”¨çš„ç¼–ç ä¸æ˜¾ç¤ºï¼Œåªæœ‰æ­£å¼çš„ç¼–ç æ‰æ˜¾ç¤º
     */
    private String num;
    /**
     * è§„格型号
     */
    private String model;
    /**
     * é›¶ä»¶ç±»åž‹
     */
    private String parttype;
    /**
     * è®¡é‡å•位
     */
    private String unit;
    /**
     * å•重
     */
    private String weight;
    /**
     * æ˜¯å¦é‡è¦ä»¶
     */
    private String importantPart;
    /**
     * æ˜¯å¦å…³é”®ä»¶
     */
    private String keyPart;
    /**
     * æ•°æ®å¤„理返回状态码
     */
    private String datacode;
    /**
     * æ•°æ®å¤„理返回信息
     */
    private String datamsg;
    private List<DockingPreApplyDataInfoVO> dockingPreApplyDataInfoVOs;
    public String getPreapplyoid() {
        return preapplyoid;
    }
    public void setPreapplyoid(String preapplyoid) {
        this.preapplyoid = preapplyoid;
    }
    public String getUniquecode() {
        return uniquecode;
    }
    public void setUniquecode(String uniquecode) {
        this.uniquecode = uniquecode;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    public String getSystemid() {
        return systemid;
    }
    public void setSystemid(String systemid) {
        this.systemid = systemid;
    }
    public String getUseddflag() {
        return useddflag;
    }
    public void setUseddflag(String useddflag) {
        this.useddflag = useddflag;
    }
    public String getClassifyoid() {
        return classifyoid;
    }
    public void setClassifyoid(String classifyoid) {
        this.classifyoid = classifyoid;
    }
    public String getClassifyname() {
        return classifyname;
    }
    public void setClassifyname(String classifyname) {
        this.classifyname = classifyname;
    }
    public String getNum() {
        return num;
    }
    public void setNum(String num) {
        this.num = num;
    }
    public String getDatacode() {
        return datacode;
    }
    public void setDatacode(String datacode) {
        this.datacode = datacode;
    }
    public String getDatamsg() {
        return datamsg;
    }
    public void setDatamsg(String datamsg) {
        this.datamsg = datamsg;
    }
    public String getModel() {
        return model;
    }
    public void setModel(String model) {
        this.model = model;
    }
    public String getParttype() {
        return parttype;
    }
    public void setParttype(String parttype) {
        this.parttype = parttype;
    }
    public String getUnit() {
        return unit;
    }
    public void setUnit(String unit) {
        this.unit = unit;
    }
    public String getWeight() {
        return weight;
    }
    public void setWeight(String weight) {
        this.weight = weight;
    }
    public String getImportantPart() {
        return importantPart;
    }
    public void setImportantPart(String importantPart) {
        this.importantPart = importantPart;
    }
    public String getKeyPart() {
        return keyPart;
    }
    public void setKeyPart(String keyPart) {
        this.keyPart = keyPart;
    }
    public List<DockingPreApplyDataInfoVO> getDockingPreApplyDataInfoVOs() {
        return dockingPreApplyDataInfoVOs;
    }
    public void setDockingPreApplyDataInfoVOs(List<DockingPreApplyDataInfoVO> dockingPreApplyDataInfoVOs) {
        this.dockingPreApplyDataInfoVOs = dockingPreApplyDataInfoVOs;
    }
    @Override
    public String toString() {
        return "DockingPreApplyDataVO{" +
                "preapplyoid='" + preapplyoid + '\'' +
                ", uniquecode='" + uniquecode + '\'' +
                ", type='" + type + '\'' +
                ", systemid='" + systemid + '\'' +
                ", useddflag='" + useddflag + '\'' +
                ", classifyoid='" + classifyoid + '\'' +
                ", classifyname='" + classifyname + '\'' +
                ", num='" + num + '\'' +
                ", model='" + model + '\'' +
                ", parttype='" + parttype + '\'' +
                ", unit='" + unit + '\'' +
                ", weight='" + weight + '\'' +
                ", importantPart='" + importantPart + '\'' +
                ", keyPart='" + keyPart + '\'' +
                ", datacode='" + datacode + '\'' +
                ", datamsg='" + datamsg + '\'' +
                ", dockingPreApplyDataInfoVOs=" + dockingPreApplyDataInfoVOs +
                '}';
    }
}
Source/BladeX/blade-service-api/blade-code-api/src/main/java/org/springblade/code/vo/pagemodel/DockingPreAttrMappingVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,199 @@
package org.springblade.code.vo.pagemodel;
import com.vci.starter.web.pagemodel.BaseModelVO;
import java.util.List;
/**
 * è®°å½•集成属性与主数据属性映射关系对象
 * @author xiejun
 * @date 2023-01-06
 */
public class DockingPreAttrMappingVO extends BaseModelVO {
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = 6020487634341415429L;
    /***
     * é»˜è®¤å€¼
     */
    private String jdefaultValue;
    /***
     * é»˜è®¤å€¼
     */
    private String jmetaListId;
    /**
     * æºåˆ†ç±»id
     */
    private  String jsourceClsfId;
    /**
     * æºåˆ†ç±»åç§°
     */
    private String jsourceClsfName;
    /**
     * æºå±žæ€§oid
     */
    private String jtargetAttrId;
    /**
     * ç›®æ ‡å±žæ€§oid
     */
    private String jtargetClsfId;
    /***
     * æ¨¡æ¿Id
     */
    private String jviewModeId;
    /***
     * æ¨¡æ¿åç§°
     */
    private String jviewModeName;
    /***
     * ç›®æ ‡å±žæ€§å†…部名称
     */
    private String jtargetAttrKey;
    /***
     * ç›®æ ‡å±žæ€§åç§°
     */
    private String jtargetAttrName;
    /***
     * ç›®æ ‡å±žæ€§å†…部名称
     */
    private String jsourceAttrKey;
    /***
     * ç›®æ ‡å±žæ€§åç§°
     */
    private String jsourceAttrName;
    private List<DockingPreAttrRangeVO> dockingPreAttrRangeVOS;
    public String getJdefaultValue() {
        return jdefaultValue;
    }
    public void setJdefaultValue(String jdefaultValue) {
        this.jdefaultValue = jdefaultValue;
    }
    public String getJmetaListId() {
        return jmetaListId;
    }
    public void setJmetaListId(String jmetaListId) {
        this.jmetaListId = jmetaListId;
    }
    public String getJsourceClsfId() {
        return jsourceClsfId;
    }
    public void setJsourceClsfId(String jsourceClsfId) {
        this.jsourceClsfId = jsourceClsfId;
    }
    public String getJsourceClsfName() {
        return jsourceClsfName;
    }
    public void setJsourceClsfName(String jsourceClsfName) {
        this.jsourceClsfName = jsourceClsfName;
    }
    public String getJtargetAttrId() {
        return jtargetAttrId;
    }
    public void setJtargetAttrId(String jtargetAttrId) {
        this.jtargetAttrId = jtargetAttrId;
    }
    public String getJtargetClsfId() {
        return jtargetClsfId;
    }
    public void setJtargetClsfId(String jtargetClsfId) {
        this.jtargetClsfId = jtargetClsfId;
    }
    public String getJviewModeId() {
        return jviewModeId;
    }
    public void setJviewModeId(String jviewModeId) {
        this.jviewModeId = jviewModeId;
    }
    public String getJviewModeName() {
        return jviewModeName;
    }
    public void setJviewModeName(String jviewModeName) {
        this.jviewModeName = jviewModeName;
    }
    public String getJtargetAttrKey() {
        return jtargetAttrKey;
    }
    public void setJtargetAttrKey(String jtargetAttrKey) {
        this.jtargetAttrKey = jtargetAttrKey;
    }
    public String getJtargetAttrName() {
        return jtargetAttrName;
    }
    public void setJtargetAttrName(String jtargetAttrName) {
        this.jtargetAttrName = jtargetAttrName;
    }
    public String getJsourceAttrKey() {
        return jsourceAttrKey;
    }
    public void setJsourceAttrKey(String jsourceAttrKey) {
        this.jsourceAttrKey = jsourceAttrKey;
    }
    public String getJsourceAttrName() {
        return jsourceAttrName;
    }
    public void setJsourceAttrName(String jsourceAttrName) {
        this.jsourceAttrName = jsourceAttrName;
    }
    public List<DockingPreAttrRangeVO> getDockingPreAttrRangeVOS() {
        return dockingPreAttrRangeVOS;
    }
    public void setDockingPreAttrRangeVOS(List<DockingPreAttrRangeVO> dockingPreAttrRangeVOS) {
        this.dockingPreAttrRangeVOS = dockingPreAttrRangeVOS;
    }
    @Override
    public String toString() {
        return "DockingPreAttrMappingVO{" +
                "jdefaultValue='" + jdefaultValue + '\'' +
                ", jmetaListId='" + jmetaListId + '\'' +
                ", jsourceClsfId='" + jsourceClsfId + '\'' +
                ", jsourceClsfName='" + jsourceClsfName + '\'' +
                ", jtargetAttrId='" + jtargetAttrId + '\'' +
                ", jtargetClsfId='" + jtargetClsfId + '\'' +
                ", jviewModeId='" + jviewModeId + '\'' +
                ", jviewModeName='" + jviewModeName + '\'' +
                ", jtargetAttrKey='" + jtargetAttrKey + '\'' +
                ", jtargetAttrName='" + jtargetAttrName + '\'' +
                ", jsourceAttrKey='" + jsourceAttrKey + '\'' +
                ", jsourceAttrName='" + jsourceAttrName + '\'' +
                ", dockingPreAttrRangeVOS=" + dockingPreAttrRangeVOS +
                '}';
    }
}
Source/BladeX/blade-service-api/blade-code-api/src/main/java/org/springblade/code/vo/pagemodel/DockingPreAttrRangeVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,83 @@
package org.springblade.code.vo.pagemodel;
import com.vci.starter.web.pagemodel.BaseModelVO;
public class DockingPreAttrRangeVO extends BaseModelVO {
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = 6020487634341415410L;
    /***
     *属性id
     */
    private String jmetaListId;
    /**
     * å±žæ€§æžšä¸¾æ˜¾ç¤ºåç§°
     */
    private  String jnumText;
    /**
     * å±žæ€§æžšä¸¾å†…部名称
     */
    private String jnumTextValue;
    /**
     * æºå±žæ€§æžšä¸¾æ˜¾ç¤ºåç§°
     */
    private  String jtargeNumText;
    /**
     * æºå±žæ€§æžšä¸¾å†…部名称
     */
    private String jtargeNumTextValue;
    public String getJmetaListId() {
        return jmetaListId;
    }
    public void setJmetaListId(String jmetaListId) {
        this.jmetaListId = jmetaListId;
    }
    public String getJnumText() {
        return jnumText;
    }
    public void setJnumText(String jnumText) {
        this.jnumText = jnumText;
    }
    public String getJnumTextValue() {
        return jnumTextValue;
    }
    public void setJnumTextValue(String jnumTextValue) {
        this.jnumTextValue = jnumTextValue;
    }
    public String getJtargeNumText() {
        return jtargeNumText;
    }
    public void setJtargeNumText(String jtargeNumText) {
        this.jtargeNumText = jtargeNumText;
    }
    public String getJtargeNumTextValue() {
        return jtargeNumTextValue;
    }
    public void setJtargeNumTextValue(String jtargeNumTextValue) {
        this.jtargeNumTextValue = jtargeNumTextValue;
    }
    @Override
    public String toString() {
        return "DockingPreAttrRangeVO{" +
                "jmetaListId='" + jmetaListId + '\'' +
                ", jnumText='" + jnumText + '\'' +
                ", jnumTextValue='" + jnumTextValue + '\'' +
                ", jtargeNumText='" + jtargeNumText + '\'' +
                ", jtargeNumTextValue='" + jtargeNumTextValue + '\'' +
                '}';
    }
}
Source/BladeX/blade-service-api/blade-code-api/src/main/java/org/springblade/code/vo/pagemodel/DockingTaskVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,200 @@
package org.springblade.code.vo.pagemodel;
import com.vci.starter.web.pagemodel.BaseModelVO;
/**
 * èµ„源对接通知、查询接口待推送任务显示对象
 *
 * @author weidy
 * @date 2022-03-28
 */
public class DockingTaskVO extends BaseModelVO {
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = 4615707119707777641L;
    /**
     * ç³»ç»ŸæŽ¥å£oid
     */
    private String sysinfooid;
    /**
     * ç³»ç»Ÿid
     */
    private String systemoid;
    /**
     * ç³»ç»Ÿç¼–号
     */
    private String systemcode;
    /**
     * ç³»ç»Ÿåç§°
     */
    private String systemname;
    /**
     * åˆ†ç±»oid
     */
    private String classifyoid;
    /**
     * åˆ†ç±»id
     */
    private String classifyid;
    /**
     * åˆ†ç±»åç§°
     */
    private String classifyname;
    /**
     * ä¸šåŠ¡ç±»åž‹æ•°æ®oid
     */
    private String btmoid;
    /**
     * ä¸šåŠ¡ç±»åž‹æ•°æ®id
     */
    private String btmid;
    /**
     * uniquecode
     */
    private String uniquecode;
    /**
     * æ˜¯å¦å‘送成功
     */
    private String sendflag;
    /**
     * å‘送类型,lcstatus
     */
    private String sendtype;
    /**
     * æ˜¯å¦å‘送成功
     */
    private String dataoid;
    public String getDataoid() {
        return dataoid;
    }
    public void setDataoid(String dataoid) {
        this.dataoid = dataoid;
    }
    public String getSendtype() {
        return sendtype;
    }
    public void setSendtype(String sendtype) {
        this.sendtype = sendtype;
    }
    public String getSysinfooid() {
        return sysinfooid;
    }
    public void setSysinfooid(String sysinfooid) {
        this.sysinfooid = sysinfooid;
    }
    public String getSystemoid() {
        return systemoid;
    }
    public void setSystemoid(String systemoid) {
        this.systemoid = systemoid;
    }
    public String getSystemcode() {
        return systemcode;
    }
    public void setSystemcode(String systemcode) {
        this.systemcode = systemcode;
    }
    public String getSystemname() {
        return systemname;
    }
    public void setSystemname(String systemname) {
        this.systemname = systemname;
    }
    public String getClassifyoid() {
        return classifyoid;
    }
    public void setClassifyoid(String classifyoid) {
        this.classifyoid = classifyoid;
    }
    public String getClassifyid() {
        return classifyid;
    }
    public void setClassifyid(String classifyid) {
        this.classifyid = classifyid;
    }
    public String getClassifyname() {
        return classifyname;
    }
    public void setClassifyname(String classifyname) {
        this.classifyname = classifyname;
    }
    public String getBtmoid() {
        return btmoid;
    }
    public void setBtmoid(String btmoid) {
        this.btmoid = btmoid;
    }
    public String getBtmid() {
        return btmid;
    }
    public void setBtmid(String btmid) {
        this.btmoid = btmid;
    }
    public String getSendflag() {
        return sendflag;
    }
    public void setSendflag(String sendflag) {
        this.sendflag = sendflag;
    }
    public String getUniquecode() {
        return uniquecode;
    }
    public void setUniquecode(String uniquecode) {
        this.uniquecode = uniquecode;
    }
    @Override
    public String toString() {
        return "DockingTaskVO{" +
                "sysinfooid='" + sysinfooid + '\'' +
                ", systemoid='" + systemoid + '\'' +
                ", systemcode='" + systemcode + '\'' +
                ", systemname='" + systemname + '\'' +
                ", classifyoid='" + classifyoid + '\'' +
                ", classifyid='" + classifyid + '\'' +
                ", classifyname='" + classifyname + '\'' +
                ", btmoid='" + btmoid + '\'' +
                ", btmid='" + btmid + '\'' +
                ", uniquecode='" + uniquecode + '\'' +
                ", sendflag='" + sendflag + '\'' +
                ", sendtype='" + sendtype + '\'' +
                ", dataoid='" + dataoid + '\'' +
                '}';
    }
}
Source/BladeX/blade-service-api/blade-code-api/src/main/java/org/springblade/code/vo/pagemodel/MdmUIInfoVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,109 @@
package org.springblade.code.vo.pagemodel;
import com.vci.web.pageModel.SmOperationVO;
import com.vci.web.pageModel.UIFormDefineVO;
import com.vci.web.pageModel.UITableDefineVO;
import java.util.List;
/**
 * ä¸»æ•°æ®çš„UI信息
 * @author weidy
 * @date 2022-2-21
 */
public class MdmUIInfoVO implements java.io.Serializable {
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = 4192521596336111375L;
    /**
     * æ¨¡æ¿çš„信息
     */
    private CodeClassifyTemplateVO templateVO;
    /**
     * è¡¨æ ¼çš„信息
     */
    private UITableDefineVO tableDefineVO;
    /**
     * è¡¨å•的信息
     */
    private UIFormDefineVO formDefineVO;
    /**
     * æŸ¥é‡å±žæ€§çš„相关表格的信息
     */
    private UITableDefineVO resembleTableVO;
    /**
     * æŒ‰é’®çš„内容
     */
    private List<SmOperationVO> buttons;
    /**
     * å½“前分类是否为叶子节点
     */
    private boolean leaf;
    public List<SmOperationVO> getButtons() {
        return buttons;
    }
    public void setButtons(List<SmOperationVO> buttons) {
        this.buttons = buttons;
    }
    public CodeClassifyTemplateVO getTemplateVO() {
        return templateVO;
    }
    public void setTemplateVO(CodeClassifyTemplateVO templateVO) {
        this.templateVO = templateVO;
    }
    public UITableDefineVO getTableDefineVO() {
        return tableDefineVO;
    }
    public void setTableDefineVO(UITableDefineVO tableDefineVO) {
        this.tableDefineVO = tableDefineVO;
    }
    public UIFormDefineVO getFormDefineVO() {
        return formDefineVO;
    }
    public void setFormDefineVO(UIFormDefineVO formDefineVO) {
        this.formDefineVO = formDefineVO;
    }
    public boolean isLeaf() {
        return leaf;
    }
    public void setLeaf(boolean leaf) {
        this.leaf = leaf;
    }
    public UITableDefineVO getResembleTableVO() {
        return resembleTableVO;
    }
    public void setResembleTableVO(UITableDefineVO resembleTableVO) {
        this.resembleTableVO = resembleTableVO;
    }
    @Override
    public String toString() {
        return "MdmUIInfoVO{" +
                "templateVO=" + templateVO +
                ", tableDefineVO=" + tableDefineVO +
                ", formDefineVO=" + formDefineVO +
                ", resembleTableVO=" + resembleTableVO +
                ", buttons=" + buttons +
                ", leaf=" + leaf +
                '}';
    }
}
Source/BladeX/blade-service-api/blade-code-api/src/main/java/org/springblade/code/vo/pagemodel/SysIntAuthorityVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,123 @@
package org.springblade.code.vo.pagemodel;
import com.vci.starter.web.pagemodel.BaseModelVO;
/**
 * ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证显示对象
 *
 * @author lihang
 * @date 2022-03-07
 */
public class SysIntAuthorityVO extends BaseModelVO {
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = 4615707119460615952L;
    /**
    * éªŒè¯ä»¤ç‰Œ
    */
    private String token;
    /**
    * è®¤è¯æ–¹å¼
    */
    private String type;
    /**
    * è®¤è¯æ–¹å¼æ˜¾ç¤ºæ–‡æœ¬
    */
    private String typeText;
    /**
    * éªŒè¯ç”¨æˆ·
    */
    private String useraccount;
    /**
    * éªŒè¯å¯†ç 
    */
    private String usercode;
    /**
     * èŽ·å– éªŒè¯ä»¤ç‰Œ
     */
    public String getToken (){
        return token;
    }
    /**
    * è®¾ç½® éªŒè¯ä»¤ç‰Œ
    */
    public void setToken (String token){
        this.token = token;
    }
    /**
     * èŽ·å– è®¤è¯æ–¹å¼
     */
    public String getType (){
        return type;
    }
    /**
    * è®¾ç½® è®¤è¯æ–¹å¼
    */
    public void setType (String type){
        this.type = type;
    }
    /**
     * èŽ·å–è®¤è¯æ–¹å¼æ˜¾ç¤ºæ–‡æœ¬
     */
    public String getTypeText (){
        return typeText;
    }
    /**
     * è®¾ç½® è®¤è¯æ–¹å¼æ˜¾ç¤ºæ–‡æœ¬
     */
    public void setTypeText (String typeText){
        this.typeText = typeText;
    }
    /**
     * èŽ·å– éªŒè¯ç”¨æˆ·
     */
    public String getUseraccount (){
        return useraccount;
    }
    /**
    * è®¾ç½® éªŒè¯ç”¨æˆ·
    */
    public void setUseraccount (String useraccount){
        this.useraccount = useraccount;
    }
    /**
     * èŽ·å– éªŒè¯å¯†ç 
     */
    public String getUsercode (){
        return usercode;
    }
    /**
    * è®¾ç½® éªŒè¯å¯†ç 
    */
    public void setUsercode (String usercode){
        this.usercode = usercode;
    }
    @Override
    public String toString() {
        return "SysIntAuthorityVO{" +
        "token='" + token +"'," +
        "type='" + type +"'," +
        "typeText='" + typeText +"'," +
        "useraccount='" + useraccount +"'," +
        "usercode='" + usercode +"'," +
        "}" + super.toString();
    }
}
Source/BladeX/blade-service-api/blade-code-api/src/main/java/org/springblade/code/vo/pagemodel/SysIntBaseVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
package org.springblade.code.vo.pagemodel;
import com.vci.starter.web.pagemodel.BaseModelVO;
/**
 * ç³»ç»Ÿé›†æˆçš„系统信息显示对象
 *
 * @author lihang
 * @date 2022-03-07
 */
public class SysIntBaseVO extends BaseModelVO {
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = 4615707117504109912L;
    @Override
    public String toString() {
        return "SysIntBaseVO{" +
        "}" + super.toString();
    }
}
Source/BladeX/blade-service-api/blade-code-api/src/main/java/org/springblade/code/vo/pagemodel/SysIntHeaderVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,80 @@
package org.springblade.code.vo.pagemodel;
import com.vci.starter.web.pagemodel.BaseModelVO;
/**
 * ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证显示对象
 *
 * @author weidy
 * @date 2022-04-11
 */
public class SysIntHeaderVO extends BaseModelVO {
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = 4615707117938037102L;
    /**
     * SysIntInfoDO çš„oid
     */
    private String infoOid;
    /**
     * å‚æ•°key
     */
    private String headerkey;
    /**
     * å‚æ•°value
     */
    private String headeralue;
    /**
     * æ˜¯å¦ä½¿ç”¨
     */
    private String usedflag;
    public String getInfoOid() {
        return infoOid;
    }
    public void setInfoOid(String infoOid) {
        this.infoOid = infoOid;
    }
    public String getHeaderkey() {
        return headerkey;
    }
    public void setHeaderkey(String headerkey) {
        this.headerkey = headerkey;
    }
    public String getHeaderalue() {
        return headeralue;
    }
    public void setHeaderalue(String headeralue) {
        this.headeralue = headeralue;
    }
    public String getUsedflag() {
        return usedflag;
    }
    public void setUsedflag(String usedflag) {
        this.usedflag = usedflag;
    }
    @Override
    public String toString() {
        return "SysIntHeaderDO{" +
                "infoOid='" + infoOid + '\'' +
                ", headerkey='" + headerkey + '\'' +
                ", headeralue='" + headeralue + '\'' +
                ", usedflag='" + usedflag + '\'' +
                '}';
    }
}
Source/BladeX/blade-service-api/blade-code-api/src/main/java/org/springblade/code/vo/pagemodel/SysIntInfoVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,746 @@
package org.springblade.code.vo.pagemodel;
import com.vci.starter.web.pagemodel.BaseModelVO;
import java.util.List;
/**
 * ç³»ç»Ÿé›†æˆåŸºç¡€ä¿¡æ¯æ˜¾ç¤ºå¯¹è±¡
 *
 * @author lihang
 * @date 2022-03-07
 */
public class SysIntInfoVO extends BaseModelVO {
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = 4615707117716142069L;
    /**
    * è®¤è¯æ–¹å¼
    */
    private String authorityoid;
    /**
    * è®¤è¯æ–¹å¼æ˜¾ç¤ºæ–‡æœ¬
    */
    private String authorityoidName;
    /**
     * è®¤è¯æ–¹å¼
     */
    private String authorityType;
    /**
     * è®¤è¯æ–¹å¼æ˜¾ç¤ºæ–‡æœ¬
     */
    private String authorityTypeText;
    /**
     * éªŒè¯ç”¨æˆ·
     */
    private String userAccount;
    /**
     * éªŒè¯å¯†ç 
     */
    private String userCode;
    /**
     * éªŒè¯ä»¤ç‰Œ
     */
    private String token;
    /**
     * æŽ¥å£å‡½æ•°
     */
    private String interfaceFunction;
    /**
     * æŽ¥å£æè¿°
     */
    private String description;
    /**
    * æŽ¥å£ç±»åž‹
    */
    private String interfacetype;
    /**
    * æŽ¥å£ç±»åž‹æ˜¾ç¤ºæ–‡æœ¬
    */
    private String interfacetypeText;
    /**
    * å‚数类型
    */
    private String paramtype;
    /**
    * å‚数类型显示文本
    */
    private String paramtypeText;
    /**
    * è¯·æ±‚方式
    */
    private String requestmethod;
    /**
    * è¯·æ±‚方式显示文本
    */
    private String requestmethodText;
    /**
     * åˆ†ç±»oid
     */
    private String classifyoid;
    /**
     * å¯ç”¨ã€åœç”¨true/false,不用平台的枚举,减少对平台的耦合
     */
    private String usedflag;
    /**
     * æŽ¨é€ç³»ç»Ÿoid
     */
    private String sysbaseoid;
    /**
     * æŽ¨é€ç³»ç»Ÿç¼–号
     */
    private String sysbaseid;
    /**
     * æŽ¨é€ç³»ç»Ÿåç§°
     */
    private String sysbasename;
    /**
    * è¯·æ±‚地址
    */
    private String requesturl;
    /**
    * è¿”回值类型
    */
    private String returntype;
    /**
    * è¿”回值类型显示文本
    */
    private String returntypeText;
    /**
    * æ¥æºç³»ç»Ÿä¸»é”®
    */
    private String sourceSystemOid;
    /**
     * æ¥æºç³»ç»Ÿåç§°
     */
    private String sourceSysName;
    /**
     * æ¥æºç³»ç»Ÿæ ‡è¯†
     */
    private String sourceSysId;
    /**
    * æ¥æºç³»ç»Ÿä¸»é”®æ˜¾ç¤ºæ–‡æœ¬
    */
    private String sourcesystemoidName;
    /**
    * ç›®æ ‡ç³»ç»Ÿä¸»é”®
    */
    private String targetsystemoid;
    /**
     * ç›®æ ‡ç³»ç»Ÿåç§°
     */
    private String targetSysName;
    /**
     * ç›®æ ‡ç³»ç»Ÿæ ‡è¯†
     */
    private String targetSysId;
    /**
    * ç›®æ ‡ç³»ç»Ÿä¸»é”®æ˜¾ç¤ºæ–‡æœ¬
    */
    private String targetsystemoidName;
    /**
     * ç±»è·¯å¾„
     */
    private String classPath;
    /**
     * æ•°æ®æµå‘方式
     */
    private String dataFlowType;
    /**
     * æ•°æ®æµå‘方式的显示字段
     */
    private String dataFlowTypeText;
    /**
     * å­˜å‚¨çš„业务类型
     */
    private String btmTypeId;
    /**
     * å­˜å‚¨çš„业务类型的中文名称
     */
    private String btmTypeName;
    /**
     * å‘½åç©ºé—´
     */
    private String namespace;
    /**
     * soapAction
     */
    private String soapaction;
    /**
     * cxfaxis
     */
    private String cxfaxis;
    /**
     * å‚数名称
     */
    private String targName;
    /***
     * æŽ¨é€ç±»åž‹ 1:数据推送/2分类推送,默认数据推送
     */
    private String pushType;
    /***
     * æŽ¨é€ç±»åž‹æ˜¾ç¤ºå€¼
     */
    private String pushTypeText;
    /**
     * åˆ†ç±»id
     */
    private String classifyid;
    /**
     * åˆ†ç±»åç§°
     */
    private String classifyname;
    /***
     * å‚数信息对象
     */
    private List<SysIntParamVO> sysIntParamVOs;
    /***
     * header信息对象
     */
    private List<SysIntHeaderVO> sysIntHeaderVOs;
    public String getClassifyid() {
        return classifyid;
    }
    public void setClassifyid(String classifyid) {
        this.classifyid = classifyid;
    }
    public String getClassifyname() {
        return classifyname;
    }
    public void setClassifyname(String classifyname) {
        this.classifyname = classifyname;
    }
    public String getTargName() {
        return targName;
    }
    public void setTargName(String targName) {
        this.targName = targName;
    }
    public String getSoapaction() {
        return soapaction;
    }
    public void setSoapaction(String soapaction) {
        this.soapaction = soapaction;
    }
    public String getCxfaxis() {
        return cxfaxis;
    }
    public void setCxfaxis(String cxfaxis) {
        this.cxfaxis = cxfaxis;
    }
    public String getNamespace() {
        return namespace;
    }
    public void setNamespace(String namespace) {
        this.namespace = namespace;
    }
    public String getBtmTypeId() {
        return btmTypeId;
    }
    public void setBtmTypeId(String btmTypeId) {
        this.btmTypeId = btmTypeId;
    }
    public String getBtmTypeName() {
        return btmTypeName;
    }
    public void setBtmTypeName(String btmTypeName) {
        this.btmTypeName = btmTypeName;
    }
    public String getUsedflag() {
        return usedflag;
    }
    public void setUsedflag(String usedflag) {
        this.usedflag = usedflag;
    }
    public String getSysbaseoid() {
        return sysbaseoid;
    }
    public void setSysbaseoid(String sysbaseoid) {
        this.sysbaseoid = sysbaseoid;
    }
    public String getSysbasename() {
        return sysbasename;
    }
    public void setSysbasename(String sysbasename) {
        this.sysbasename = sysbasename;
    }
    public String getClassPath() {
        return classPath;
    }
    public void setClassPath(String classPath) {
        this.classPath = classPath;
    }
    /**
     * èŽ·å– è®¤è¯æ–¹å¼
     */
    public String getAuthorityoid (){
        return authorityoid;
    }
    /**
    * è®¾ç½® è®¤è¯æ–¹å¼
    */
    public void setAuthorityoid (String authorityoid){
        this.authorityoid = authorityoid;
    }
    /**
     * èŽ·å–è®¤è¯æ–¹å¼æ˜¾ç¤ºæ–‡æœ¬
     */
    public String getAuthorityoidName (){
        return authorityoidName;
    }
    /**
    * è®¾ç½®è®¤è¯æ–¹å¼æ˜¾ç¤ºæ–‡æœ¬
    */
    public void setAuthorityoidName (String authorityoidName){
        this.authorityoidName = authorityoidName;
    }
    /**
     * èŽ·å– æŽ¥å£ç±»åž‹
     */
    public String getInterfacetype (){
        return interfacetype;
    }
    /**
    * è®¾ç½® æŽ¥å£ç±»åž‹
    */
    public void setInterfacetype (String interfacetype){
        this.interfacetype = interfacetype;
    }
    /**
     * èŽ·å–æŽ¥å£ç±»åž‹æ˜¾ç¤ºæ–‡æœ¬
     */
    public String getInterfacetypeText (){
        return interfacetypeText;
    }
    /**
     * è®¾ç½® æŽ¥å£ç±»åž‹æ˜¾ç¤ºæ–‡æœ¬
     */
    public void setInterfacetypeText (String interfacetypeText){
        this.interfacetypeText = interfacetypeText;
    }
    /**
     * èŽ·å– å‚数类型
     */
    public String getParamtype (){
        return paramtype;
    }
    /**
    * è®¾ç½® å‚数类型
    */
    public void setParamtype (String paramtype){
        this.paramtype = paramtype;
    }
    /**
     * èŽ·å–å‚æ•°ç±»åž‹æ˜¾ç¤ºæ–‡æœ¬
     */
    public String getParamtypeText (){
        return paramtypeText;
    }
    /**
     * è®¾ç½® å‚数类型显示文本
     */
    public void setParamtypeText (String paramtypeText){
        this.paramtypeText = paramtypeText;
    }
    /**
     * èŽ·å– è¯·æ±‚方式
     */
    public String getRequestmethod (){
        return requestmethod;
    }
    /**
    * è®¾ç½® è¯·æ±‚方式
    */
    public void setRequestmethod (String requestmethod){
        this.requestmethod = requestmethod;
    }
    /**
     * èŽ·å–è¯·æ±‚æ–¹å¼æ˜¾ç¤ºæ–‡æœ¬
     */
    public String getRequestmethodText (){
        return requestmethodText;
    }
    /**
     * è®¾ç½® è¯·æ±‚方式显示文本
     */
    public void setRequestmethodText (String requestmethodText){
        this.requestmethodText = requestmethodText;
    }
    /**
     * èŽ·å– è¯·æ±‚地址
     */
    public String getRequesturl (){
        return requesturl;
    }
    /**
    * è®¾ç½® è¯·æ±‚地址
    */
    public void setRequesturl (String requesturl){
        this.requesturl = requesturl;
    }
    /**
     * èŽ·å– è¿”回值类型
     */
    public String getReturntype (){
        return returntype;
    }
    /**
    * è®¾ç½® è¿”回值类型
    */
    public void setReturntype (String returntype){
        this.returntype = returntype;
    }
    /**
     * èŽ·å–è¿”å›žå€¼ç±»åž‹æ˜¾ç¤ºæ–‡æœ¬
     */
    public String getReturntypeText (){
        return returntypeText;
    }
    /**
     * è®¾ç½® è¿”回值类型显示文本
     */
    public void setReturntypeText (String returntypeText){
        this.returntypeText = returntypeText;
    }
    /**
     * èŽ·å– æ¥æºç³»ç»Ÿä¸»é”®
     */
    public String getSourceSystemoid (){
        return sourceSystemOid;
    }
    /**
    * è®¾ç½® æ¥æºç³»ç»Ÿä¸»é”®
    */
    public void setSourceSystemoid (String sourceSystemOid){
        this.sourceSystemOid = sourceSystemOid;
    }
    /**
     * èŽ·å–æ¥æºç³»ç»Ÿä¸»é”®æ˜¾ç¤ºæ–‡æœ¬
     */
    public String getSourcesystemoidName (){
        return sourcesystemoidName;
    }
    /**
    * è®¾ç½®æ¥æºç³»ç»Ÿä¸»é”®æ˜¾ç¤ºæ–‡æœ¬
    */
    public void setSourcesystemoidName (String sourcesystemoidName){
        this.sourcesystemoidName = sourcesystemoidName;
    }
    /**
     * èŽ·å– ç›®æ ‡ç³»ç»Ÿä¸»é”®
     */
    public String getTargetsystemoid (){
        return targetsystemoid;
    }
    /**
    * è®¾ç½® ç›®æ ‡ç³»ç»Ÿä¸»é”®
    */
    public void setTargetsystemoid (String targetsystemoid){
        this.targetsystemoid = targetsystemoid;
    }
    /**
     * èŽ·å–ç›®æ ‡ç³»ç»Ÿä¸»é”®æ˜¾ç¤ºæ–‡æœ¬
     */
    public String getTargetsystemoidName (){
        return targetsystemoidName;
    }
    /**
    * è®¾ç½®ç›®æ ‡ç³»ç»Ÿä¸»é”®æ˜¾ç¤ºæ–‡æœ¬
    */
    public void setTargetsystemoidName (String targetsystemoidName){
        this.targetsystemoidName = targetsystemoidName;
    }
    public String getSourceSysName() {
        return sourceSysName;
    }
    public void setSourceSysName(String sourceSysName) {
        this.sourceSysName = sourceSysName;
    }
    public String getSourceSysId() {
        return sourceSysId;
    }
    public void setSourceSysId(String sourceSysId) {
        this.sourceSysId = sourceSysId;
    }
    public String getTargetSysName() {
        return targetSysName;
    }
    public void setTargetSysName(String targetSysName) {
        this.targetSysName = targetSysName;
    }
    public String getTargetSysId() {
        return targetSysId;
    }
    public void setTargetSysId(String targetSysId) {
        this.targetSysId = targetSysId;
    }
    public String getAuthorityType() {
        return authorityType;
    }
    public void setAuthorityType(String authorityType) {
        this.authorityType = authorityType;
    }
    public String getUserAccount() {
        return userAccount;
    }
    public void setUserAccount(String userAccount) {
        this.userAccount = userAccount;
    }
    public String getUserCode() {
        return userCode;
    }
    public void setUserCode(String userCode) {
        this.userCode = userCode;
    }
    public String getToken() {
        return token;
    }
    public void setToken(String token) {
        this.token = token;
    }
    public String getInterfaceFunction() {
        return interfaceFunction;
    }
    public void setInterfaceFunction(String interfaceFunction) {
        this.interfaceFunction = interfaceFunction;
    }
    @Override
    public String getDescription() {
        return description;
    }
    @Override
    public void setDescription(String description) {
        this.description = description;
    }
    public String getAuthorityTypeText() {
        return authorityTypeText;
    }
    public void setAuthorityTypeText(String authorityTypeText) {
        this.authorityTypeText = authorityTypeText;
    }
    public String getDataFlowType() {
        return dataFlowType;
    }
    public void setDataFlowType(String dataFlowType) {
        this.dataFlowType = dataFlowType;
    }
    public String getDataFlowTypeText() {
        return dataFlowTypeText;
    }
    public void setDataFlowTypeText(String dataFlowTypeText) {
        this.dataFlowTypeText = dataFlowTypeText;
    }
    public String getClassifyoid() {
        return classifyoid;
    }
    public void setClassifyoid(String classifyoid) {
        this.classifyoid = classifyoid;
    }
    public String getSysbaseid() {
        return sysbaseid;
    }
    public void setSysbaseid(String sysbaseid) {
        this.sysbaseid = sysbaseid;
    }
    public String getPushType() {
        return pushType;
    }
    public void setPushType(String pushType) {
        this.pushType = pushType;
    }
    public String getPushTypeText() {
        return pushTypeText;
    }
    public void setPushTypeText(String pushTypeText) {
        this.pushTypeText = pushTypeText;
    }
    public List<SysIntParamVO> getSysIntParamVOs() {
        return sysIntParamVOs;
    }
    public void setSysIntParamVOs(List<SysIntParamVO> sysIntParamVOs) {
        this.sysIntParamVOs = sysIntParamVOs;
    }
    public List<SysIntHeaderVO> getSysIntHeaderVOs() {
        return sysIntHeaderVOs;
    }
    public void setSysIntHeaderVOs(List<SysIntHeaderVO> sysIntHeaderVOs) {
        this.sysIntHeaderVOs = sysIntHeaderVOs;
    }
    @Override
    public String toString() {
        return "SysIntInfoVO{" +
                "authorityoid='" + authorityoid + '\'' +
                ", authorityoidName='" + authorityoidName + '\'' +
                ", authorityType='" + authorityType + '\'' +
                ", authorityTypeText='" + authorityTypeText + '\'' +
                ", userAccount='" + userAccount + '\'' +
                ", userCode='" + userCode + '\'' +
                ", token='" + token + '\'' +
                ", interfaceFunction='" + interfaceFunction + '\'' +
                ", description='" + description + '\'' +
                ", interfacetype='" + interfacetype + '\'' +
                ", interfacetypeText='" + interfacetypeText + '\'' +
                ", paramtype='" + paramtype + '\'' +
                ", paramtypeText='" + paramtypeText + '\'' +
                ", requestmethod='" + requestmethod + '\'' +
                ", requestmethodText='" + requestmethodText + '\'' +
                ", classifyoid='" + classifyoid + '\'' +
                ", usedflag='" + usedflag + '\'' +
                ", sysbaseoid='" + sysbaseoid + '\'' +
                ", sysbaseid='" + sysbaseid + '\'' +
                ", sysbasename='" + sysbasename + '\'' +
                ", requesturl='" + requesturl + '\'' +
                ", returntype='" + returntype + '\'' +
                ", returntypeText='" + returntypeText + '\'' +
                ", sourceSystemOid='" + sourceSystemOid + '\'' +
                ", sourceSysName='" + sourceSysName + '\'' +
                ", sourceSysId='" + sourceSysId + '\'' +
                ", sourcesystemoidName='" + sourcesystemoidName + '\'' +
                ", targetsystemoid='" + targetsystemoid + '\'' +
                ", targetSysName='" + targetSysName + '\'' +
                ", targetSysId='" + targetSysId + '\'' +
                ", targetsystemoidName='" + targetsystemoidName + '\'' +
                ", classPath='" + classPath + '\'' +
                ", dataFlowType='" + dataFlowType + '\'' +
                ", dataFlowTypeText='" + dataFlowTypeText + '\'' +
                ", btmTypeId='" + btmTypeId + '\'' +
                ", btmTypeName='" + btmTypeName + '\'' +
                ", namespace='" + namespace + '\'' +
                ", soapaction='" + soapaction + '\'' +
                ", cxfaxis='" + cxfaxis + '\'' +
                ", targName='" + targName + '\'' +
                ", pushType='" + pushType + '\'' +
                ", pushTypeText='" + pushTypeText + '\'' +
                ", classifyid='" + classifyid + '\'' +
                ", classifyname='" + classifyname + '\'' +
                ", sysIntParamVOs=" + sysIntParamVOs +
                ", sysIntHeaderVOs=" + sysIntHeaderVOs +
                '}';
    }
}
Source/BladeX/blade-service-api/blade-code-api/src/main/java/org/springblade/code/vo/pagemodel/SysIntParamVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,80 @@
package org.springblade.code.vo.pagemodel;
import com.vci.starter.web.pagemodel.BaseModelVO;
/**
 * ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证显示对象
 *
 * @author weidy
 * @date 2022-04-11
 */
public class SysIntParamVO extends BaseModelVO {
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = 4615707118871819648L;
    /**
     * SysIntInfoDO çš„oid
     */
    private String infoOid;
    /**
     * å‚æ•°key
     */
    private String paramkey;
    /**
     * å‚æ•°value
     */
    private String paramvalue;
    /**
     * æ˜¯å¦ä½¿ç”¨
     */
    private String usedflag;
    public String getInfoOid() {
        return infoOid;
    }
    public void setInfoOid(String infoOid) {
        this.infoOid = infoOid;
    }
    public String getParamkey() {
        return paramkey;
    }
    public void setParamkey(String paramkey) {
        this.paramkey = paramkey;
    }
    public String getParamvalue() {
        return paramvalue;
    }
    public void setParamvalue(String paramvalue) {
        this.paramvalue = paramvalue;
    }
    public String getUsedflag() {
        return usedflag;
    }
    public void setUsedflag(String usedflag) {
        this.usedflag = usedflag;
    }
    @Override
    public String toString() {
        return "SysIntParamDO{" +
                "infoOid='" + infoOid + '\'' +
                ", paramkey='" + paramkey + '\'' +
                ", paramvalue='" + paramvalue + '\'' +
                ", usedflag='" + usedflag + '\'' +
                '}';
    }
}
Source/BladeX/blade-service-api/blade-code-api/src/main/java/org/springblade/code/vo/universalInter/classify/QueryData.java
@@ -2,7 +2,7 @@
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import com.vci.mdm.model.universalInter.apply.UserVO;
import org.springblade.code.vo.universalInter.apply.UserVO;
@XStreamAlias("data")
public class QueryData {
Source/BladeX/blade-service-api/blade-code-api/src/main/java/org/springblade/code/vo/universalInter/data/CondtionsVO.java
@@ -2,7 +2,7 @@
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import com.vci.mdm.model.universalInter.apply.UserVO;
import org.springblade.code.vo.universalInter.apply.UserVO;
@XStreamAlias("condtions")
public class CondtionsVO {
Source/BladeX/blade-service-api/pom.xml
@@ -22,7 +22,6 @@
        <module>blade-system-api</module>
        <module>blade-user-api</module>
        <module>blade-code-api</module>
        <module>blade-omd-api</module>
    </modules>
    <dependencies>
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/CodeApplication.java
@@ -16,12 +16,13 @@
 */
package org.springblade.code;
import org.springblade.common.constant.CommonConstant;
import org.springblade.core.cloud.client.BladeCloudApplication;
import org.springblade.core.launch.BladeApplication;
import org.springblade.core.launch.constant.AppConstant;
/**
 * Desk启动器
 * Code启动器
 *
 * @author ludc
 */
@@ -29,7 +30,7 @@
public class CodeApplication {
    public static void main(String[] args) {
        BladeApplication.run(AppConstant.APPLICATION_DESK_NAME, CodeApplication.class, args);
        BladeApplication.run(AppConstant.APPLICATION_NAME_PREFIX+ CommonConstant.CODE_NAME, CodeApplication.class, args);
    }
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/Scheduling/DockingClassSyncScheduling.java
@@ -1,9 +1,10 @@
package org.springblade.code.Scheduling;
import com.vci.mdm.service.CodeDuckingSyncServiceI;
import com.vci.starter.web.enumpck.BooleanEnum;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.code.service.CodeDuckingSyncServiceI;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/Scheduling/DockingDataSyncScheduling.java
@@ -1,9 +1,9 @@
package org.springblade.code.Scheduling;
import com.vci.mdm.service.CodeDuckingSyncServiceI;
import com.vci.starter.web.enumpck.BooleanEnum;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.code.service.CodeDuckingSyncServiceI;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/Scheduling/DockingScheduling.java
@@ -1,9 +1,10 @@
package org.springblade.code.Scheduling;
import com.vci.mdm.service.CodeDuckingServiceI;
import com.vci.starter.web.enumpck.BooleanEnum;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.code.service.CodeDuckingServiceI;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodeApplySyncController.java
@@ -3,14 +3,14 @@
import com.alibaba.fastjson.JSONObject;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;
import com.vci.mdm.dto.datapush.result.ResultJsonDTO;
import com.vci.mdm.dto.datapush.result.ResultNodeDataDTO;
import com.vci.mdm.dto.datapush.result.ResultNodeObjectDTO;
import com.vci.mdm.service.UniversalInterfaceI;
import com.vci.starter.web.annotation.controller.VciUnCheckRight;
import com.vci.starter.web.annotation.controller.VciUnUseResponseAdvice;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.code.dto.datapush.result.ResultJsonDTO;
import org.springblade.code.dto.datapush.result.ResultNodeDataDTO;
import org.springblade.code.dto.datapush.result.ResultNodeObjectDTO;
import org.springblade.code.service.UniversalInterfaceI;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodeBasicSecController.java
@@ -1,14 +1,14 @@
package org.springblade.code.controller;
import com.vci.mdm.dto.CodeBasicSecDTO;
import com.vci.mdm.pagemodel.CodeBasicSecVO;
import com.vci.mdm.service.CodeBasicSecServiceI;
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.pagemodel.Tree;
import com.vci.starter.web.util.VciBaseUtil;
import org.springblade.code.dto.CodeBasicSecDTO;
import org.springblade.code.service.CodeBasicSecServiceI;
import org.springblade.code.vo.pagemodel.CodeBasicSecVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodeButtonController.java
@@ -1,17 +1,16 @@
package org.springblade.code.controller;
import com.vci.mdm.dto.CodeButtonDTO;
import com.vci.mdm.pagemodel.CodeButtonVO;
import com.vci.mdm.service.CodeButtonServiceI;
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.VciBaseUtil;
import org.springblade.code.dto.CodeButtonDTO;
import org.springblade.code.service.CodeButtonServiceI;
import org.springblade.code.vo.pagemodel.CodeButtonVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Collection;
/**
 * ä¸»æ•°æ®ä¸­çš„æŒ‰é’®æ‰©å±•控制器
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodeClassifyController.java
@@ -1,15 +1,16 @@
package org.springblade.code.controller;
import com.vci.mdm.dto.CodeClassifyDTO;
import com.vci.mdm.pagemodel.CodeClassifyVO;
import com.vci.mdm.service.CodeClassifyServiceI;
import com.vci.starter.web.pagemodel.*;
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.pageModel.OsAttributeVO;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang.StringUtils;
import org.springblade.code.dto.CodeClassifyDTO;
import org.springblade.code.service.CodeClassifyServiceI;
import org.springblade.code.vo.pagemodel.CodeClassifyVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@@ -23,7 +24,6 @@
import static com.vci.frameworkcore.constant.FrameWorkDefaultValueConstant.FRAMEWORK_DATA_DISABLED;
import static com.vci.frameworkcore.constant.FrameWorkDefaultValueConstant.FRAMEWORK_DATA_ENABLED;
/**
 * ä¸»é¢˜åº“分类控制器
@@ -47,7 +47,7 @@
     */
    @GetMapping("/treeCodeClassify")
    public List<Tree> treeCodeClassify(TreeQueryObject treeQueryObject)  {
        return  codeClassifyService.treeCodeClassify(treeQueryObject);
        return codeClassifyService.treeCodeClassify(treeQueryObject);
    }
    /**
@@ -182,7 +182,7 @@
     * @throws IOException æŠ›å‡ºå¼‚常
     */
    @GetMapping("/downloadImportExcel")
    public void downloadImportExcel(HttpServletResponse response) throws IOException{
    public void downloadImportExcel(HttpServletResponse response) throws IOException {
        String excelName = codeClassifyService.createImportExcel();
        try {
            ControllerUtil.writeFileToResponse(response,excelName);
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodeClassifyProcessTempController.java
@@ -1,18 +1,17 @@
package org.springblade.code.controller;
import com.vci.mdm.dto.CodeClassifyProcessTempDTO;
import com.vci.mdm.pagemodel.CodeClassifyProcessTempVO;
import com.vci.mdm.service.CodeClassifyProcessTempServiceI;
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.VciBaseUtil;
import org.springblade.code.dto.CodeClassifyProcessTempDTO;
import org.springblade.code.service.CodeClassifyProcessTempServiceI;
import org.springblade.code.vo.pagemodel.CodeClassifyProcessTempVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Collection;
import java.util.List;
/**
 * åˆ†ç±»ä½¿ç”¨çš„æµç¨‹æ¨¡æ¿æŽ§åˆ¶å™¨
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodeClassifyTempMapItemController.java
@@ -1,12 +1,13 @@
package org.springblade.code.controller;
import com.vci.mdm.dto.CodeClassifyTempMapItemDTO;
import com.vci.mdm.pagemodel.CodeClassifyTempMapItemVO;
import com.vci.mdm.service.CodeClassifyTempMapItemServiceI;
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.VciBaseUtil;
import org.springblade.code.dto.CodeClassifyTempMapItemDTO;
import org.springblade.code.service.CodeClassifyTempMapItemServiceI;
import org.springblade.code.vo.pagemodel.CodeClassifyTempMapItemVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodeClassifyTemplateAttrController.java
@@ -1,20 +1,20 @@
package org.springblade.code.controller;
import com.vci.mdm.dto.CodeClassifyTemplateAttrDTO;
import com.vci.mdm.pagemodel.CodeClassifyTemplateAttrVO;
import com.vci.mdm.service.CodeClassifyTemplateAttrServiceI;
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.VciBaseUtil;
import com.vci.web.pageModel.OsBtmTypeAttributeVO;
import org.springblade.code.dto.CodeClassifyTemplateAttrDTO;
import org.springblade.code.service.CodeClassifyTemplateAttrServiceI;
import org.springblade.code.vo.pagemodel.CodeClassifyTemplateAttrVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import java.util.Collection;
import java.util.List;
/**
 * ä¸»é¢˜åº“分类的模板属性控制器
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodeClassifyTemplateButtonController.java
@@ -1,17 +1,16 @@
package org.springblade.code.controller;
import com.vci.mdm.dto.CodeClassifyTemplateButtonDTO;
import com.vci.mdm.pagemodel.CodeClassifyTemplateButtonVO;
import com.vci.mdm.service.CodeClassifyTemplateButtonServiceI;
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.VciBaseUtil;
import org.springblade.code.dto.CodeClassifyTemplateButtonDTO;
import org.springblade.code.service.CodeClassifyTemplateButtonServiceI;
import org.springblade.code.vo.pagemodel.CodeClassifyTemplateButtonVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Collection;
/**
 * ä¸»é¢˜åº“里模板包含的按钮控制器
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodeClassifyTemplateController.java
@@ -1,17 +1,16 @@
package org.springblade.code.controller;
import com.vci.mdm.dto.CodeClassifyTemplateDTO;
import com.vci.mdm.lifecycle.CodeClassifyTemplateLC;
import com.vci.mdm.pagemodel.CodeClassifyTemplateVO;
import com.vci.mdm.service.CodeClassifyTemplateServiceI;
import com.vci.starter.web.pagemodel.*;
import com.vci.starter.web.util.VciBaseUtil;
import org.springblade.code.dto.CodeClassifyTemplateDTO;
import org.springblade.code.lifecycle.CodeClassifyTemplateLC;
import org.springblade.code.service.CodeClassifyTemplateServiceI;
import org.springblade.code.vo.pagemodel.CodeClassifyTemplateVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Collection;
import java.util.List;
/**
 * åˆ†ç±»æ¨¡æ¿å¯¹è±¡æŽ§åˆ¶å™¨
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodeClassifyTemplateMapController.java
@@ -1,12 +1,13 @@
package org.springblade.code.controller;
import com.vci.mdm.dto.CodeClassifyTemplateMapDTO;
import com.vci.mdm.pagemodel.CodeClassifyTemplateMapVO;
import com.vci.mdm.service.CodeClassifyTemplateMapServiceI;
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.VciBaseUtil;
import org.springblade.code.dto.CodeClassifyTemplateMapDTO;
import org.springblade.code.service.CodeClassifyTemplateMapServiceI;
import org.springblade.code.vo.pagemodel.CodeClassifyTemplateMapVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodeClassifyValueController.java
@@ -1,14 +1,15 @@
package org.springblade.code.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.vci.mdm.dto.CodeClassifyValueDTO;
import com.vci.mdm.pagemodel.CodeClassifyValueVO;
import com.vci.mdm.service.CodeClassifyValueServiceI;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.pagemodel.Tree;
import com.vci.starter.web.pagemodel.TreeQueryObject;
import com.vci.starter.web.util.VciBaseUtil;
import org.springblade.code.dto.CodeClassifyValueDTO;
import org.springblade.code.service.CodeClassifyValueServiceI;
import org.springblade.code.vo.pagemodel.CodeClassifyValueVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
@@ -17,7 +18,6 @@
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
 * åˆ†ç±»ç æ®µçš„码值控制器
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodeDuckingController.java
@@ -1,18 +1,27 @@
package org.springblade.code.controller;
import com.vci.mdm.dto.*;
import com.vci.mdm.model.*;
import com.vci.mdm.pagemodel.*;
import com.vci.mdm.service.CodeDuckingServiceI;
import com.vci.mdm.service.CodeDuckingSyncServiceI;
import com.vci.mdm.service.DockingPreApplyDataServiceI;
import com.vci.mdm.service.DockingPreAttrMappingSeviceI;
import com.vci.starter.web.annotation.controller.VciUnCheckRight;
import com.vci.starter.web.constant.QueryOptionConstant;
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.ControllerUtil;
import org.springblade.code.dto.CodeOrderDTO;
import org.springblade.code.dto.DockingPreApplyDataDTO;
import org.springblade.code.dto.DockingPreAttrMappingDTO;
import org.springblade.code.dto.PreApplyCodeOrderDTO;
import org.springblade.code.model.DockingDataDO;
import org.springblade.code.model.DockingLogeDO;
import org.springblade.code.model.DockingTaskDO;
import org.springblade.code.model.SysIntHeaderDO;
import org.springblade.code.service.CodeDuckingServiceI;
import org.springblade.code.service.CodeDuckingSyncServiceI;
import org.springblade.code.service.DockingPreApplyDataServiceI;
import org.springblade.code.service.DockingPreAttrMappingSeviceI;
import org.springblade.code.vo.pagemodel.DockingPreApplyDataVO;
import org.springblade.code.vo.pagemodel.DockingPreAttrMappingVO;
import org.springblade.code.vo.pagemodel.DockingPreAttrRangeVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -21,8 +30,7 @@
import java.util.List;
import java.util.Map;
import static com.vci.mdm.constant.MdmDuckingConstant.DATA_LOGE_OUT;
import static org.springblade.code.constant.MdmDuckingConstant.DATA_LOGE_OUT;
/**
 * ä¸»æ•°æ®ç¼–码通用集成控制器
@@ -83,7 +91,7 @@
     * @return
     */
    @GetMapping("/gridApplyData")
    public DataGrid<Map<String,String>> gridApplyData(String codeClassifyOid,String templateOid,String btmType,String dataOids){
    public DataGrid<Map<String,String>> gridApplyData(String codeClassifyOid, String templateOid, String btmType, String dataOids){
        return  dockingPreApplyDataServiceI.gridApplyData(codeClassifyOid,templateOid,btmType,dataOids);
    }
@@ -201,7 +209,7 @@
    public DataGrid<DockingLogeDO> gridLoge(BaseQueryObject baseQueryObject){
        if(baseQueryObject == null){
            baseQueryObject = new BaseQueryObject();
            Map<String, String>  queryMap = baseQueryObject.getConditionMap();
            Map<String, String> queryMap = baseQueryObject.getConditionMap();
            queryMap.put("type",DATA_LOGE_OUT);
        }
        return codeDuckingServiceI.gridLoge(baseQueryObject.getConditionMap(),baseQueryObject.getPageHelper());
@@ -241,7 +249,7 @@
     * @return
     */
    @GetMapping("/gridAttrMapping")
    public DataGrid<DockingPreAttrMappingVO> gridAttrMappings(String sourceClsfId,String templateOid,int type, BaseQueryObject baseQueryObject){
    public DataGrid<DockingPreAttrMappingVO> gridAttrMappings(String sourceClsfId, String templateOid, int type, BaseQueryObject baseQueryObject){
        if(baseQueryObject == null){
            baseQueryObject = new BaseQueryObject();
        }
@@ -256,7 +264,7 @@
     * @return
     */
    @GetMapping("/gridAttrRanges")
    public DataGrid<DockingPreAttrRangeVO> gridAttrRanges(String attrOid,int type,BaseQueryObject baseQueryObject){
    public DataGrid<DockingPreAttrRangeVO> gridAttrRanges(String attrOid, int type, BaseQueryObject baseQueryObject){
        if(baseQueryObject == null){
            baseQueryObject = new BaseQueryObject();
        }
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodeFixedValueController.java
@@ -1,14 +1,15 @@
package org.springblade.code.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.vci.mdm.dto.CodeFixedValueDTO;
import com.vci.mdm.pagemodel.CodeFixedValueVO;
import com.vci.mdm.service.CodeFixedValueServiceI;
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.VciBaseUtil;
import org.springblade.code.dto.CodeFixedValueDTO;
import org.springblade.code.service.CodeFixedValueServiceI;
import org.springblade.code.vo.pagemodel.CodeFixedValueVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
@@ -17,7 +18,6 @@
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
 * å›ºå®šç æ®µçš„码值控制器
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodeKeyAttrRepeatRuleController.java
@@ -6,13 +6,12 @@
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.util.VciBaseUtil;
import org.springblade.code.dto.CodeKeyAttrRepeatRuleDTO;
import org.springblade.code.pagemodel.CodeKeyAttrRepeatRuleVO;
import org.springblade.code.service.CodeKeyAttrRepeatRuleServiceI;
import org.springblade.code.vo.pagemodel.CodeKeyAttrRepeatRuleVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Collection;
/**
 * å…³é”®æ•°æ®æŸ¥é‡è§„则控制器
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodePhaseAttrController.java
@@ -1,17 +1,17 @@
package org.springblade.code.controller;
import com.vci.mdm.dto.CodePhaseAttrDTO;
import com.vci.mdm.pagemodel.CodePhaseAttrVO;
import com.vci.mdm.service.CodePhaseAttrServiceI;
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.VciBaseUtil;
import org.springblade.code.dto.CodePhaseAttrDTO;
import org.springblade.code.service.CodePhaseAttrServiceI;
import org.springblade.code.vo.pagemodel.CodePhaseAttrVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Collection;
/**
 * é˜¶æ®µçš„属性控制器
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodeResembleRuleController.java
@@ -1,17 +1,17 @@
package org.springblade.code.controller;
import com.vci.mdm.dto.CodeResembleRuleDTO;
import com.vci.mdm.pagemodel.CodeResembleRuleVO;
import com.vci.mdm.service.CodeResembleRuleServiceI;
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.VciBaseUtil;
import org.springblade.code.dto.CodeResembleRuleDTO;
import org.springblade.code.service.CodeResembleRuleServiceI;
import org.springblade.code.vo.pagemodel.CodeResembleRuleVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Collection;
/**
 * ç›¸ä¼¼æŸ¥è¯¢è§„则控制器
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodeRuleController.java
@@ -1,13 +1,14 @@
package org.springblade.code.controller;
import com.vci.mdm.dto.CodeRuleDTO;
import com.vci.mdm.pagemodel.CodeClassifyVO;
import com.vci.mdm.pagemodel.CodeRuleVO;
import com.vci.mdm.service.CodeRuleServiceI;
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.VciBaseUtil;
import org.springblade.code.dto.CodeRuleDTO;
import org.springblade.code.service.CodeRuleServiceI;
import org.springblade.code.vo.pagemodel.CodeClassifyVO;
import org.springblade.code.vo.pagemodel.CodeRuleVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodeSerialAlgorithmController.java
@@ -1,8 +1,9 @@
package org.springblade.code.controller;
import com.vci.mdm.pagemodel.CodeSerialAlgorithmVO;
import com.vci.mdm.service.CodeSerialAlgorithmServiceI;
import com.vci.starter.web.pagemodel.DataGrid;
import org.springblade.code.service.CodeSerialAlgorithmServiceI;
import org.springblade.code.vo.pagemodel.CodeSerialAlgorithmVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodeSynonymController.java
@@ -1,12 +1,13 @@
package org.springblade.code.controller;
import com.vci.mdm.dto.CodeSynonymDTO;
import com.vci.mdm.pagemodel.CodeSynonymVO;
import com.vci.mdm.service.CodeSynonymServiceI;
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.VciBaseUtil;
import org.springblade.code.dto.CodeSynonymDTO;
import org.springblade.code.service.CodeSynonymServiceI;
import org.springblade.code.vo.pagemodel.CodeSynonymVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/controller/CodeTemplatePhaseController.java
@@ -1,13 +1,14 @@
package org.springblade.code.controller;
import com.vci.mdm.dto.CodeTemplatePhaseDTO;
import com.vci.mdm.pagemodel.CodeClassifyTemplateAttrVO;
import com.vci.mdm.pagemodel.CodeTemplatePhaseVO;
import com.vci.mdm.service.CodeTemplatePhaseServiceI;
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.VciBaseUtil;
import org.springblade.code.dto.CodeTemplatePhaseDTO;
import org.springblade.code.service.CodeTemplatePhaseServiceI;
import org.springblade.code.vo.pagemodel.CodeClassifyTemplateAttrVO;
import org.springblade.code.vo.pagemodel.CodeTemplatePhaseVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/CodeAllCodeDaoI.java
@@ -1,9 +1,9 @@
package org.springblade.code.dao;
import com.vci.mdm.model.CodeAllCodeDO;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.pageModel.BatchCBO;
import org.springblade.code.model.CodeAllCodeDO;
import java.util.Collection;
import java.util.List;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/CodeBasicSecDaoI.java
@@ -1,9 +1,9 @@
package org.springblade.code.dao;
import com.vci.mdm.model.CodeBasicSecDO;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.pageModel.BatchCBO;
import org.springblade.code.model.CodeBasicSecDO;
import java.util.Collection;
import java.util.List;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/CodeButtonDaoI.java
@@ -1,9 +1,10 @@
package org.springblade.code.dao;
import com.vci.mdm.model.CodeButtonDO;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.pageModel.BatchCBO;
import org.springblade.code.model.CodeButtonDO;
import java.util.Collection;
import java.util.List;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/CodeClassifyDaoI.java
@@ -1,9 +1,9 @@
package org.springblade.code.dao;
import com.vci.mdm.model.CodeClassifyDO;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.pageModel.BatchCBO;
import org.springblade.code.model.CodeClassifyDO;
import java.util.Collection;
import java.util.List;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/CodeClassifyProcessTempDaoI.java
@@ -1,9 +1,9 @@
package org.springblade.code.dao;
import com.vci.mdm.model.CodeClassifyProcessTempDO;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.pageModel.BatchCBO;
import org.springblade.code.model.CodeClassifyProcessTempDO;
import java.util.Collection;
import java.util.List;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/CodeClassifyTempMapItemDaoI.java
@@ -1,9 +1,9 @@
package org.springblade.code.dao;
import com.vci.mdm.model.CodeClassifyTempMapItemDO;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.pageModel.BatchCBO;
import org.springblade.code.model.CodeClassifyTempMapItemDO;
import java.util.Collection;
import java.util.List;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/CodeClassifyTemplateAttrDaoI.java
@@ -1,9 +1,10 @@
package org.springblade.code.dao;
import com.vci.mdm.model.CodeClassifyTemplateAttrDO;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.pageModel.BatchCBO;
import org.springblade.code.model.CodeClassifyTemplateAttrDO;
import java.util.Collection;
import java.util.List;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/CodeClassifyTemplateButtonDaoI.java
@@ -1,9 +1,9 @@
package org.springblade.code.dao;
import com.vci.mdm.model.CodeClassifyTemplateButtonDO;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.pageModel.BatchCBO;
import org.springblade.code.model.CodeClassifyTemplateButtonDO;
import java.util.Collection;
import java.util.List;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/CodeClassifyTemplateDaoI.java
@@ -1,9 +1,10 @@
package org.springblade.code.dao;
import com.vci.mdm.model.CodeClassifyTemplateDO;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.pageModel.BatchCBO;
import org.springblade.code.model.CodeClassifyTemplateDO;
import java.util.Collection;
import java.util.List;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/CodeClassifyTemplateMapDaoI.java
@@ -1,9 +1,9 @@
package org.springblade.code.dao;
import com.vci.mdm.model.CodeClassifyTemplateMapDO;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.pageModel.BatchCBO;
import org.springblade.code.model.CodeClassifyTemplateMapDO;
import java.util.Collection;
import java.util.List;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/CodeClassifyValueDaoI.java
@@ -1,9 +1,9 @@
package org.springblade.code.dao;
import com.vci.mdm.model.CodeClassifyValueDO;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.pageModel.BatchCBO;
import org.springblade.code.model.CodeClassifyValueDO;
import java.util.Collection;
import java.util.List;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/CodeFixedValueDaoI.java
@@ -1,9 +1,9 @@
package org.springblade.code.dao;
import com.vci.mdm.model.CodeFixedValueDO;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.pageModel.BatchCBO;
import org.springblade.code.model.CodeFixedValueDO;
import java.util.Collection;
import java.util.List;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/CodePhaseAttrDaoI.java
@@ -1,9 +1,9 @@
package org.springblade.code.dao;
import com.vci.mdm.model.CodePhaseAttrDO;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.pageModel.BatchCBO;
import org.springblade.code.model.CodePhaseAttrDO;
import java.util.Collection;
import java.util.List;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/CodeResembleRuleDaoI.java
@@ -1,9 +1,9 @@
package org.springblade.code.dao;
import com.vci.mdm.model.CodeResembleRuleDO;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.pageModel.BatchCBO;
import org.springblade.code.model.CodeResembleRuleDO;
import java.util.Collection;
import java.util.List;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/CodeRuleDaoI.java
@@ -1,9 +1,9 @@
package org.springblade.code.dao;
import com.vci.mdm.model.CodeRuleDO;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.pageModel.BatchCBO;
import org.springblade.code.model.CodeRuleDO;
import java.util.Collection;
import java.util.List;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/CodeSerialValueDaoI.java
@@ -1,9 +1,10 @@
package org.springblade.code.dao;
import com.vci.mdm.model.CodeSerialValueDO;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.pageModel.BatchCBO;
import org.springblade.code.model.CodeSerialValueDO;
import java.util.Collection;
import java.util.List;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/CodeSynonymDaoI.java
@@ -1,9 +1,10 @@
package org.springblade.code.dao;
import com.vci.mdm.model.CodeSynonymDO;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.pageModel.BatchCBO;
import org.springblade.code.model.CodeSynonymDO;
import java.util.Collection;
import java.util.List;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/CodeTemplatePhaseDaoI.java
@@ -1,9 +1,10 @@
package org.springblade.code.dao;
import com.vci.mdm.model.CodeTemplatePhaseDO;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.pageModel.BatchCBO;
import org.springblade.code.model.CodeTemplatePhaseDO;
import java.util.Collection;
import java.util.List;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/DockingDataDaoI.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,128 @@
package org.springblade.code.dao;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.pageModel.BatchCBO;
import org.springblade.code.model.DockingDataDO;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
 * èµ„源对接通知、查询接口待推送任务数据操作层
 *
 * @author weidy
 * @date 2022-03-28
 */
public interface DockingDataDaoI {
    /**
     * ä½¿ç”¨ä¸»é”®åˆ é™¤
     * @param oid æ•°æ®ä¸»é”®
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO deleteByPrimaryKey(String oid);
    /**
     * æ·»åŠ æ•°æ®
     * @param record èµ„源对接通知、查询接口待推送任务数据对象
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO insert(DockingDataDO record);
    /**
    * æ‰¹é‡æ·»åŠ æ•°æ®
    * @param records èµ„源对接通知、查询接口待推送任务数据对象集合
    * @return æ‰§è¡Œç»“果数
    */
    BatchCBO batchInsert(List<DockingDataDO> records);
    /**
     * æ ¹æ®ä¸»é”®æŸ¥è¯¢
     * @param oid æ•°æ®ä¸»é”®
     * @return æ•°æ®å¯¹è±¡
     */
    DockingDataDO selectByPrimaryKey(String oid);
    /**
     * æ ¹æ®ä¸»é”®æ‰¹é‡èŽ·å–å¯¹è±¡
     * @param oids ä¸»é”®ï¼ŒåŒ…含单引号,但是不能超过1000
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<DockingDataDO> selectByPrimaryKeys(String oids);
    /**
     * æ ¹æ®ä¸»é”®æ‰¹é‡æŸ¥è¯¢å¯¹è±¡
     * @param oids å¯¹è±¡ä¸»é”®,使用逗号分隔,但是不能超过1000
     * @return ä¸šåŠ¡å¯¹è±¡
     */
    List<DockingDataDO> selectByPrimaryKeyCollection(Collection<String> oids);
    /**
     * æŸ¥è¯¢æ‰€æœ‰åˆ†ç±»
     * @return æŸ¥è¯¢ç»“æžœ
     */
    List<DockingDataDO> selectAll();
    /**
     * æ›´æ–°å¯¹è±¡
     * @param record èµ„源对接通知、查询接口待推送任务数据对象
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO updateByPrimaryKey(DockingDataDO record);
    /**
    * æ‰¹é‡æ›´æ–°
    * @param records èµ„源对接通知、查询接口待推送任务数据对象集合
    * @return æ‰§è¡Œç»“果行数
    */
    BatchCBO batchUpdate(List<DockingDataDO> records);
    /**
     * æ ¹æ®æŸ¥è¯¢æ¡ä»¶æŸ¥è¯¢æ•°æ®
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶ï¼Œ
     * @param pageHelper åŒ…括分页,排序
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<DockingDataDO> selectByCondition(Map<String,String> conditionMap, PageHelper pageHelper);
    /**
     * æ ¹æ®æŸ¥è¯¢æ¡ä»¶æ¥æŸ¥è¯¢æ€»æ•°
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @return æ€»æ•°
     */
    Long countByCondition(Map<String,String> conditionMap);
    /**
     * ä½¿ç”¨æŸ¥è¯¢å°è£…器来查询
     * @param queryWrapper æŸ¥è¯¢å°è£…器
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<DockingDataDO> selectByWrapper(VciQueryWrapperForDO queryWrapper);
    /**
     * æ ¹æ®æŸ¥è¯¢å°è£…器来查询总数
     * @param queryWrapper æŸ¥è¯¢å°è£…器
     * @return æ€»æ•°
     */
    Long countByWrapper(VciQueryWrapperForDO queryWrapper);
    /**
     * æ ¹æ®ä¸»é”®èŽ·å–åç§°
     * @param oid ä¸»é”®
     * @return ä¸­æ–‡åç§°
     */
    String selectNameByOid(String oid);
    /**
     * æ‰¹é‡åˆ é™¤å¯¹è±¡
     * @param oids å¯¹è±¡çš„主键集合
     * @return å—影响的行数
     */
    BatchCBO batchDeleteByOids(Collection<String> oids);
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/DockingLogeDaoI.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,128 @@
package org.springblade.code.dao;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.pageModel.BatchCBO;
import org.springblade.code.model.DockingLogeDO;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
 * èµ„源对接通知、查询接口日志数据操作层
 *
 * @author weidy
 * @date 2022-03-28
 */
public interface DockingLogeDaoI {
    /**
     * ä½¿ç”¨ä¸»é”®åˆ é™¤
     * @param oid æ•°æ®ä¸»é”®
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO deleteByPrimaryKey(String oid);
    /**
     * æ·»åŠ æ•°æ®
     * @param record èµ„源对接通知、查询接口日志数据对象
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO insert(DockingLogeDO record);
    /**
    * æ‰¹é‡æ·»åŠ æ•°æ®
    * @param records èµ„源对接通知、查询接口日志数据对象集合
    * @return æ‰§è¡Œç»“果数
    */
    BatchCBO batchInsert(List<DockingLogeDO> records);
    /**
     * æ ¹æ®ä¸»é”®æŸ¥è¯¢
     * @param oid æ•°æ®ä¸»é”®
     * @return æ•°æ®å¯¹è±¡
     */
    DockingLogeDO selectByPrimaryKey(String oid);
    /**
     * æ ¹æ®ä¸»é”®æ‰¹é‡èŽ·å–å¯¹è±¡
     * @param oids ä¸»é”®ï¼ŒåŒ…含单引号,但是不能超过1000
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<DockingLogeDO> selectByPrimaryKeys(String oids);
    /**
     * æ ¹æ®ä¸»é”®æ‰¹é‡æŸ¥è¯¢å¯¹è±¡
     * @param oids å¯¹è±¡ä¸»é”®,使用逗号分隔,但是不能超过1000
     * @return ä¸šåŠ¡å¯¹è±¡
     */
    List<DockingLogeDO> selectByPrimaryKeyCollection(Collection<String> oids);
    /**
     * æŸ¥è¯¢æ‰€æœ‰åˆ†ç±»
     * @return æŸ¥è¯¢ç»“æžœ
     */
    List<DockingLogeDO> selectAll();
    /**
     * æ›´æ–°å¯¹è±¡
     * @param record èµ„源对接通知、查询接口日志数据对象
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO updateByPrimaryKey(DockingLogeDO record);
    /**
    * æ‰¹é‡æ›´æ–°
    * @param records èµ„源对接通知、查询接口日志数据对象集合
    * @return æ‰§è¡Œç»“果行数
    */
    BatchCBO batchUpdate(List<DockingLogeDO> records);
    /**
     * æ ¹æ®æŸ¥è¯¢æ¡ä»¶æŸ¥è¯¢æ•°æ®
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶ï¼Œ
     * @param pageHelper åŒ…括分页,排序
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<DockingLogeDO> selectByCondition(Map<String,String> conditionMap, PageHelper pageHelper);
    /**
     * æ ¹æ®æŸ¥è¯¢æ¡ä»¶æ¥æŸ¥è¯¢æ€»æ•°
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @return æ€»æ•°
     */
    Long countByCondition(Map<String,String> conditionMap);
    /**
     * ä½¿ç”¨æŸ¥è¯¢å°è£…器来查询
     * @param queryWrapper æŸ¥è¯¢å°è£…器
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<DockingLogeDO> selectByWrapper(VciQueryWrapperForDO queryWrapper);
    /**
     * æ ¹æ®æŸ¥è¯¢å°è£…器来查询总数
     * @param queryWrapper æŸ¥è¯¢å°è£…器
     * @return æ€»æ•°
     */
    Long countByWrapper(VciQueryWrapperForDO queryWrapper);
    /**
     * æ ¹æ®ä¸»é”®èŽ·å–åç§°
     * @param oid ä¸»é”®
     * @return ä¸­æ–‡åç§°
     */
    String selectNameByOid(String oid);
    /**
     * æ‰¹é‡åˆ é™¤å¯¹è±¡
     * @param oids å¯¹è±¡çš„主键集合
     * @return å—影响的行数
     */
    BatchCBO batchDeleteByOids(Collection<String> oids);
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/DockingPreApplyDataDaoI.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,127 @@
package org.springblade.code.dao;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.pageModel.BatchCBO;
import org.springblade.code.model.DockingPreApplyDataDO;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
 * è®°å½•工艺推送过来的数据信息数据操作层
 *
 * @author weidy
 * @date 2022-04-05
 */
public interface  DockingPreApplyDataDaoI {
    /**
     * ä½¿ç”¨ä¸»é”®åˆ é™¤
     * @param oid æ•°æ®ä¸»é”®
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO deleteByPrimaryKey(String oid);
    /**
     * æ·»åŠ æ•°æ®
     * @param record è®°å½•工艺推送过来的数据信息数据对象
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO insert(DockingPreApplyDataDO record);
    /**
    * æ‰¹é‡æ·»åŠ æ•°æ®
    * @param records è®°å½•工艺推送过来的数据信息数据对象集合
    * @return æ‰§è¡Œç»“果数
    */
    BatchCBO batchInsert(List<DockingPreApplyDataDO> records);
    /**
     * æ ¹æ®ä¸»é”®æŸ¥è¯¢
     * @param oid æ•°æ®ä¸»é”®
     * @return æ•°æ®å¯¹è±¡
     */
    DockingPreApplyDataDO selectByPrimaryKey(String oid);
    /**
     * æ ¹æ®ä¸»é”®æ‰¹é‡èŽ·å–å¯¹è±¡
     * @param oids ä¸»é”®ï¼ŒåŒ…含单引号,但是不能超过1000
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<DockingPreApplyDataDO> selectByPrimaryKeys(String oids);
    /**
     * æ ¹æ®ä¸»é”®æ‰¹é‡æŸ¥è¯¢å¯¹è±¡
     * @param oids å¯¹è±¡ä¸»é”®,使用逗号分隔,但是不能超过1000
     * @return ä¸šåŠ¡å¯¹è±¡
     */
    List<DockingPreApplyDataDO> selectByPrimaryKeyCollection(Collection<String> oids);
    /**
     * æŸ¥è¯¢æ‰€æœ‰åˆ†ç±»
     * @return æŸ¥è¯¢ç»“æžœ
     */
    List<DockingPreApplyDataDO> selectAll();
    /**
     * æ›´æ–°å¯¹è±¡
     * @param record è®°å½•工艺推送过来的数据信息数据对象
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO updateByPrimaryKey(DockingPreApplyDataDO record);
    /**
    * æ‰¹é‡æ›´æ–°
    * @param records è®°å½•工艺推送过来的数据信息数据对象集合
    * @return æ‰§è¡Œç»“果行数
    */
    BatchCBO batchUpdate(List<DockingPreApplyDataDO> records);
    /**
     * æ ¹æ®æŸ¥è¯¢æ¡ä»¶æŸ¥è¯¢æ•°æ®
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶ï¼Œ
     * @param pageHelper åŒ…括分页,排序
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<DockingPreApplyDataDO> selectByCondition(Map<String,String> conditionMap, PageHelper pageHelper);
    /**
     * æ ¹æ®æŸ¥è¯¢æ¡ä»¶æ¥æŸ¥è¯¢æ€»æ•°
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @return æ€»æ•°
     */
    Long countByCondition(Map<String,String> conditionMap);
    /**
     * ä½¿ç”¨æŸ¥è¯¢å°è£…器来查询
     * @param queryWrapper æŸ¥è¯¢å°è£…器
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<DockingPreApplyDataDO> selectByWrapper(VciQueryWrapperForDO queryWrapper);
    /**
     * æ ¹æ®æŸ¥è¯¢å°è£…器来查询总数
     * @param queryWrapper æŸ¥è¯¢å°è£…器
     * @return æ€»æ•°
     */
    Long countByWrapper(VciQueryWrapperForDO queryWrapper);
    /**
     * æ ¹æ®ä¸»é”®èŽ·å–åç§°
     * @param oid ä¸»é”®
     * @return ä¸­æ–‡åç§°
     */
    String selectNameByOid(String oid);
    /**
     * æ‰¹é‡åˆ é™¤å¯¹è±¡
     * @param oids å¯¹è±¡çš„主键集合
     * @return å—影响的行数
     */
    BatchCBO batchDeleteByOids(Collection<String> oids);
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/DockingPreApplyDataInfoDaoI.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,128 @@
package org.springblade.code.dao;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.pageModel.BatchCBO;
import org.springblade.code.model.DockingPreApplyDataInfoDO;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
 * è®°å½•工艺推送过来的数据信息数据操作层
 *
 * @author weidy
 * @date 2022-04-05
 */
public interface  DockingPreApplyDataInfoDaoI {
    /**
     * ä½¿ç”¨ä¸»é”®åˆ é™¤
     * @param oid æ•°æ®ä¸»é”®
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO deleteByPrimaryKey(String oid);
    /**
     * æ·»åŠ æ•°æ®
     * @param record è®°å½•工艺推送过来的数据信息数据对象
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO insert(DockingPreApplyDataInfoDO record);
    /**
    * æ‰¹é‡æ·»åŠ æ•°æ®
    * @param records è®°å½•工艺推送过来的数据信息数据对象集合
    * @return æ‰§è¡Œç»“果数
    */
    BatchCBO batchInsert(List<DockingPreApplyDataInfoDO> records);
    /**
     * æ ¹æ®ä¸»é”®æŸ¥è¯¢
     * @param oid æ•°æ®ä¸»é”®
     * @return æ•°æ®å¯¹è±¡
     */
    DockingPreApplyDataInfoDO selectByPrimaryKey(String oid);
    /**
     * æ ¹æ®ä¸»é”®æ‰¹é‡èŽ·å–å¯¹è±¡
     * @param oids ä¸»é”®ï¼ŒåŒ…含单引号,但是不能超过1000
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<DockingPreApplyDataInfoDO> selectByPrimaryKeys(String oids);
    /**
     * æ ¹æ®ä¸»é”®æ‰¹é‡æŸ¥è¯¢å¯¹è±¡
     * @param oids å¯¹è±¡ä¸»é”®,使用逗号分隔,但是不能超过1000
     * @return ä¸šåŠ¡å¯¹è±¡
     */
    List<DockingPreApplyDataInfoDO> selectByPrimaryKeyCollection(Collection<String> oids);
    /**
     * æŸ¥è¯¢æ‰€æœ‰åˆ†ç±»
     * @return æŸ¥è¯¢ç»“æžœ
     */
    List<DockingPreApplyDataInfoDO> selectAll();
    /**
     * æ›´æ–°å¯¹è±¡
     * @param record è®°å½•工艺推送过来的数据信息数据对象
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO updateByPrimaryKey(DockingPreApplyDataInfoDO record);
    /**
    * æ‰¹é‡æ›´æ–°
    * @param records è®°å½•工艺推送过来的数据信息数据对象集合
    * @return æ‰§è¡Œç»“果行数
    */
    BatchCBO batchUpdate(List<DockingPreApplyDataInfoDO> records);
    /**
     * æ ¹æ®æŸ¥è¯¢æ¡ä»¶æŸ¥è¯¢æ•°æ®
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶ï¼Œ
     * @param pageHelper åŒ…括分页,排序
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<DockingPreApplyDataInfoDO> selectByCondition(Map<String,String> conditionMap, PageHelper pageHelper);
    /**
     * æ ¹æ®æŸ¥è¯¢æ¡ä»¶æ¥æŸ¥è¯¢æ€»æ•°
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @return æ€»æ•°
     */
    Long countByCondition(Map<String,String> conditionMap);
    /**
     * ä½¿ç”¨æŸ¥è¯¢å°è£…器来查询
     * @param queryWrapper æŸ¥è¯¢å°è£…器
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<DockingPreApplyDataInfoDO> selectByWrapper(VciQueryWrapperForDO queryWrapper);
    /**
     * æ ¹æ®æŸ¥è¯¢å°è£…器来查询总数
     * @param queryWrapper æŸ¥è¯¢å°è£…器
     * @return æ€»æ•°
     */
    Long countByWrapper(VciQueryWrapperForDO queryWrapper);
    /**
     * æ ¹æ®ä¸»é”®èŽ·å–åç§°
     * @param oid ä¸»é”®
     * @return ä¸­æ–‡åç§°
     */
    String selectNameByOid(String oid);
    /**
     * æ‰¹é‡åˆ é™¤å¯¹è±¡
     * @param oids å¯¹è±¡çš„主键集合
     * @return å—影响的行数
     */
    BatchCBO batchDeleteByOids(Collection<String> oids);
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/DockingPreAttrMappingDaoI.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,133 @@
package org.springblade.code.dao;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.pageModel.BatchCBO;
import org.springblade.code.model.DockingPreAttrMappingDO;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
 * å±žæ€§æ˜ å°„配置数据信息数据操作层
 *
 * @author xiejun
 * @date 2023-01-06
 */
public interface DockingPreAttrMappingDaoI {
    /**
     * ä½¿ç”¨ä¸»é”®åˆ é™¤
     * @param oid æ•°æ®ä¸»é”®
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO deleteByPrimaryKey(String oid);
    /**
     * æ·»åŠ æ•°æ®
     * @param record è®°å½•工艺推送过来的数据信息数据对象
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO insert(DockingPreAttrMappingDO record);
    /**
     * æ‰¹é‡æ·»åŠ æ•°æ®
     * @param records è®°å½•工艺推送过来的数据信息数据对象集合
     * @return æ‰§è¡Œç»“果数
     */
    BatchCBO batchInsert(List<DockingPreAttrMappingDO> records);
    /**
     * æ ¹æ®ä¸»é”®æŸ¥è¯¢
     * @param oid æ•°æ®ä¸»é”®
     * @return æ•°æ®å¯¹è±¡
     */
    DockingPreAttrMappingDO selectByPrimaryKey(String oid);
    /**
     * æ ¹æ®ä¸»é”®æ‰¹é‡èŽ·å–å¯¹è±¡
     * @param oids ä¸»é”®ï¼ŒåŒ…含单引号,但是不能超过1000
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<DockingPreAttrMappingDO> selectByPrimaryKeys(String oids);
    /**
     * æ ¹æ®ä¸»é”®æ‰¹é‡æŸ¥è¯¢å¯¹è±¡
     * @param oids å¯¹è±¡ä¸»é”®,使用逗号分隔,但是不能超过1000
     * @return ä¸šåŠ¡å¯¹è±¡
     */
    List<DockingPreAttrMappingDO> selectByPrimaryKeyCollection(Collection<String> oids);
    /**
     * æŸ¥è¯¢æ‰€æœ‰åˆ†ç±»
     * @return æŸ¥è¯¢ç»“æžœ
     */
    List<DockingPreAttrMappingDO> selectAll();
    /**
     * æ›´æ–°å¯¹è±¡
     * @param record è®°å½•工艺推送过来的数据信息数据对象
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO updateByPrimaryKey(DockingPreAttrMappingDO record);
    /**
     * æ‰¹é‡æ›´æ–°
     * @param records è®°å½•工艺推送过来的数据信息数据对象集合
     * @return æ‰§è¡Œç»“果行数
     */
    BatchCBO batchUpdate(List<DockingPreAttrMappingDO> records);
    /**
     * æ ¹æ®æŸ¥è¯¢æ¡ä»¶æŸ¥è¯¢æ•°æ®
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶ï¼Œ
     * @param pageHelper åŒ…括分页,排序
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<DockingPreAttrMappingDO> selectByCondition(Map<String,String> conditionMap, PageHelper pageHelper);
    /**
     * æ ¹æ®æŸ¥è¯¢æ¡ä»¶æ¥æŸ¥è¯¢æ€»æ•°
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @return æ€»æ•°
     */
    Long countByCondition(Map<String,String> conditionMap);
    /**
     * ä½¿ç”¨æŸ¥è¯¢å°è£…器来查询
     * @param queryWrapper æŸ¥è¯¢å°è£…器
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<DockingPreAttrMappingDO> selectByWrapper(VciQueryWrapperForDO queryWrapper);
    /**
     * æ ¹æ®æŸ¥è¯¢å°è£…器来查询总数
     * @param queryWrapper æŸ¥è¯¢å°è£…器
     * @return æ€»æ•°
     */
    Long countByWrapper(VciQueryWrapperForDO queryWrapper);
    /**
     * æ ¹æ®ä¸»é”®èŽ·å–åç§°
     * @param oid ä¸»é”®
     * @return ä¸­æ–‡åç§°
     */
    String selectNameByOid(String oid);
    /**
     * æ‰¹é‡åˆ é™¤å¯¹è±¡
     * @param oids å¯¹è±¡çš„主键集合
     * @return å—影响的行数
     */
    BatchCBO batchDeleteByOids(Collection<String> oids);
    /**
     * æ ¹æ®oid查询数据
     * @param oids å¯¹è±¡çš„主键集合
     * @return å—影响的行数
     */
    public List<DockingPreAttrMappingDO> selectByOid(String oids);
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/DockingPreAttrRangeDaoI.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,126 @@
package org.springblade.code.dao;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.pageModel.BatchCBO;
import org.springblade.code.model.DockingPreAttrRangeDO;
import java.util.Collection;
import java.util.List;
import java.util.Map;
public interface DockingPreAttrRangeDaoI {
        /**
         * ä½¿ç”¨ä¸»é”®åˆ é™¤
         * @param oid æ•°æ®ä¸»é”®
         * @return æ‰§è¡Œç»“æžœ
         */
        BatchCBO deleteByPrimaryKey(String oid);
        /**
         * æ·»åŠ æ•°æ®
         * @param record è®°å½•工艺推送过来的数据信息数据对象
         * @return æ‰§è¡Œç»“æžœ
         */
        BatchCBO insert(DockingPreAttrRangeDO record);
        /**
         * æ‰¹é‡æ·»åŠ æ•°æ®
         * @param records è®°å½•工艺推送过来的数据信息数据对象集合
         * @return æ‰§è¡Œç»“果数
         */
        BatchCBO batchInsert(List<DockingPreAttrRangeDO> records);
        /**
         * æ ¹æ®ä¸»é”®æŸ¥è¯¢
         * @param oid æ•°æ®ä¸»é”®
         * @return æ•°æ®å¯¹è±¡
         */
        DockingPreAttrRangeDO selectByPrimaryKey(String oid);
        /**
         * æ ¹æ®ä¸»é”®æ‰¹é‡èŽ·å–å¯¹è±¡
         * @param oids ä¸»é”®ï¼ŒåŒ…含单引号,但是不能超过1000
         * @return æ•°æ®å¯¹è±¡åˆ—表
         */
        List<DockingPreAttrRangeDO> selectByPrimaryKeys(String oids);
        /**
         * æ ¹æ®ä¸»é”®æ‰¹é‡æŸ¥è¯¢å¯¹è±¡
         * @param oids å¯¹è±¡ä¸»é”®,使用逗号分隔,但是不能超过1000
         * @return ä¸šåŠ¡å¯¹è±¡
         */
        List<DockingPreAttrRangeDO> selectByPrimaryKeyCollection(Collection<String> oids);
        /**
         * æŸ¥è¯¢æ‰€æœ‰åˆ†ç±»
         * @return æŸ¥è¯¢ç»“æžœ
         */
        List<DockingPreAttrRangeDO> selectAll();
        /**
         * æ›´æ–°å¯¹è±¡
         * @param record è®°å½•工艺推送过来的数据信息数据对象
         * @return æ‰§è¡Œç»“æžœ
         */
        BatchCBO updateByPrimaryKey(DockingPreAttrRangeDO record);
        /**
         * æ‰¹é‡æ›´æ–°
         * @param records è®°å½•工艺推送过来的数据信息数据对象集合
         * @return æ‰§è¡Œç»“果行数
         */
        BatchCBO batchUpdate(List<DockingPreAttrRangeDO> records);
        /**
         * æ ¹æ®æŸ¥è¯¢æ¡ä»¶æŸ¥è¯¢æ•°æ®
         * @param conditionMap æŸ¥è¯¢æ¡ä»¶ï¼Œ
         * @param pageHelper åŒ…括分页,排序
         * @return æ•°æ®å¯¹è±¡åˆ—表
         */
        List<DockingPreAttrRangeDO> selectByCondition(Map<String,String> conditionMap, PageHelper pageHelper);
        /**
         * æ ¹æ®æŸ¥è¯¢æ¡ä»¶æ¥æŸ¥è¯¢æ€»æ•°
         * @param conditionMap æŸ¥è¯¢æ¡ä»¶
         * @return æ€»æ•°
         */
        Long countByCondition(Map<String,String> conditionMap);
        /**
         * ä½¿ç”¨æŸ¥è¯¢å°è£…器来查询
         * @param queryWrapper æŸ¥è¯¢å°è£…器
         * @return æ•°æ®å¯¹è±¡åˆ—表
         */
        List<DockingPreAttrRangeDO> selectByWrapper(VciQueryWrapperForDO queryWrapper);
        /**
         * æ ¹æ®æŸ¥è¯¢å°è£…器来查询总数
         * @param queryWrapper æŸ¥è¯¢å°è£…器
         * @return æ€»æ•°
         */
        Long countByWrapper(VciQueryWrapperForDO queryWrapper);
        /**
         * æ ¹æ®ä¸»é”®èŽ·å–åç§°
         * @param oid ä¸»é”®
         * @return ä¸­æ–‡åç§°
         */
        String selectNameByOid(String oid);
        /**
         * æ‰¹é‡åˆ é™¤å¯¹è±¡
         * @param oids å¯¹è±¡çš„主键集合
         * @return å—影响的行数
         */
        BatchCBO batchDeleteByOids(Collection<String> oids);
        /**
         * æ ¹æ®å±žæ€§ä¸»é”®æ‰¹é‡èŽ·å–å¯¹è±¡
         * @param attrOid ä¸»é”®
         * @return æ•°æ®å¯¹è±¡åˆ—表
         */
        List<DockingPreAttrRangeDO> selectByAttrOid(String attrOid);
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/DockingTaskDaoI.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,127 @@
package org.springblade.code.dao;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.pageModel.BatchCBO;
import org.springblade.code.model.DockingTaskDO;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
 * èµ„源对接通知、查询接口待推送任务数据操作层
 *
 * @author weidy
 * @date 2022-03-28
 */
public interface  DockingTaskDaoI {
    /**
     * ä½¿ç”¨ä¸»é”®åˆ é™¤
     * @param oid æ•°æ®ä¸»é”®
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO deleteByPrimaryKey(String oid);
    /**
     * æ·»åŠ æ•°æ®
     * @param record èµ„源对接通知、查询接口待推送任务数据对象
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO insert(DockingTaskDO record);
    /**
    * æ‰¹é‡æ·»åŠ æ•°æ®
    * @param records èµ„源对接通知、查询接口待推送任务数据对象集合
    * @return æ‰§è¡Œç»“果数
    */
    BatchCBO batchInsert(List<DockingTaskDO> records);
    /**
     * æ ¹æ®ä¸»é”®æŸ¥è¯¢
     * @param oid æ•°æ®ä¸»é”®
     * @return æ•°æ®å¯¹è±¡
     */
    DockingTaskDO selectByPrimaryKey(String oid);
    /**
     * æ ¹æ®ä¸»é”®æ‰¹é‡èŽ·å–å¯¹è±¡
     * @param oids ä¸»é”®ï¼ŒåŒ…含单引号,但是不能超过1000
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<DockingTaskDO> selectByPrimaryKeys(String oids);
    /**
     * æ ¹æ®ä¸»é”®æ‰¹é‡æŸ¥è¯¢å¯¹è±¡
     * @param oids å¯¹è±¡ä¸»é”®,使用逗号分隔,但是不能超过1000
     * @return ä¸šåŠ¡å¯¹è±¡
     */
    List<DockingTaskDO> selectByPrimaryKeyCollection(Collection<String> oids);
    /**
     * æŸ¥è¯¢æ‰€æœ‰åˆ†ç±»
     * @return æŸ¥è¯¢ç»“æžœ
     */
    List<DockingTaskDO> selectAll();
    /**
     * æ›´æ–°å¯¹è±¡
     * @param record èµ„源对接通知、查询接口待推送任务数据对象
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO updateByPrimaryKey(DockingTaskDO record);
    /**
    * æ‰¹é‡æ›´æ–°
    * @param records èµ„源对接通知、查询接口待推送任务数据对象集合
    * @return æ‰§è¡Œç»“果行数
    */
    BatchCBO batchUpdate(List<DockingTaskDO> records);
    /**
     * æ ¹æ®æŸ¥è¯¢æ¡ä»¶æŸ¥è¯¢æ•°æ®
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶ï¼Œ
     * @param pageHelper åŒ…括分页,排序
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<DockingTaskDO> selectByCondition(Map<String,String> conditionMap, PageHelper pageHelper);
    /**
     * æ ¹æ®æŸ¥è¯¢æ¡ä»¶æ¥æŸ¥è¯¢æ€»æ•°
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @return æ€»æ•°
     */
    Long countByCondition(Map<String,String> conditionMap);
    /**
     * ä½¿ç”¨æŸ¥è¯¢å°è£…器来查询
     * @param queryWrapper æŸ¥è¯¢å°è£…器
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<DockingTaskDO> selectByWrapper(VciQueryWrapperForDO queryWrapper);
    /**
     * æ ¹æ®æŸ¥è¯¢å°è£…器来查询总数
     * @param queryWrapper æŸ¥è¯¢å°è£…器
     * @return æ€»æ•°
     */
    Long countByWrapper(VciQueryWrapperForDO queryWrapper);
    /**
     * æ ¹æ®ä¸»é”®èŽ·å–åç§°
     * @param oid ä¸»é”®
     * @return ä¸­æ–‡åç§°
     */
    String selectNameByOid(String oid);
    /**
     * æ‰¹é‡åˆ é™¤å¯¹è±¡
     * @param oids å¯¹è±¡çš„主键集合
     * @return å—影响的行数
     */
    BatchCBO batchDeleteByOids(Collection<String> oids);
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/SysIntAuthorityDaoI.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,128 @@
package org.springblade.code.dao;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.pageModel.BatchCBO;
import org.springblade.code.model.SysIntAuthorityDO;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
 * ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证数据操作层
 *
 * @author lihang
 * @date 2022-03-07
 */
public interface  SysIntAuthorityDaoI {
    /**
     * ä½¿ç”¨ä¸»é”®åˆ é™¤
     * @param oid æ•°æ®ä¸»é”®
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO deleteByPrimaryKey(String oid);
    /**
     * æ·»åŠ æ•°æ®
     * @param record ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证数据对象
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO insert(SysIntAuthorityDO record);
    /**
    * æ‰¹é‡æ·»åŠ æ•°æ®
    * @param records ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证数据对象集合
    * @return æ‰§è¡Œç»“果数
    */
    BatchCBO batchInsert(List<SysIntAuthorityDO> records);
    /**
     * æ ¹æ®ä¸»é”®æŸ¥è¯¢
     * @param oid æ•°æ®ä¸»é”®
     * @return æ•°æ®å¯¹è±¡
     */
    SysIntAuthorityDO selectByPrimaryKey(String oid);
    /**
     * æ ¹æ®ä¸»é”®æ‰¹é‡èŽ·å–å¯¹è±¡
     * @param oids ä¸»é”®ï¼ŒåŒ…含单引号,但是不能超过1000
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<SysIntAuthorityDO> selectByPrimaryKeys(String oids);
    /**
     * æ ¹æ®ä¸»é”®æ‰¹é‡æŸ¥è¯¢å¯¹è±¡
     * @param oids å¯¹è±¡ä¸»é”®,使用逗号分隔,但是不能超过1000
     * @return ä¸šåŠ¡å¯¹è±¡
     */
    List<SysIntAuthorityDO> selectByPrimaryKeyCollection(Collection<String> oids);
    /**
     * æŸ¥è¯¢æ‰€æœ‰åˆ†ç±»
     * @return æŸ¥è¯¢ç»“æžœ
     */
    List<SysIntAuthorityDO> selectAll();
    /**
     * æ›´æ–°å¯¹è±¡
     * @param record ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证数据对象
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO updateByPrimaryKey(SysIntAuthorityDO record);
    /**
    * æ‰¹é‡æ›´æ–°
    * @param records ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证数据对象集合
    * @return æ‰§è¡Œç»“果行数
    */
    BatchCBO batchUpdate(List<SysIntAuthorityDO> records);
    /**
     * æ ¹æ®æŸ¥è¯¢æ¡ä»¶æŸ¥è¯¢æ•°æ®
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶ï¼Œ
     * @param pageHelper åŒ…括分页,排序
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<SysIntAuthorityDO> selectByCondition(Map<String,String> conditionMap, PageHelper pageHelper);
    /**
     * æ ¹æ®æŸ¥è¯¢æ¡ä»¶æ¥æŸ¥è¯¢æ€»æ•°
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @return æ€»æ•°
     */
    Long countByCondition(Map<String,String> conditionMap);
    /**
     * ä½¿ç”¨æŸ¥è¯¢å°è£…器来查询
     * @param queryWrapper æŸ¥è¯¢å°è£…器
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<SysIntAuthorityDO> selectByWrapper(VciQueryWrapperForDO queryWrapper);
    /**
     * æ ¹æ®æŸ¥è¯¢å°è£…器来查询总数
     * @param queryWrapper æŸ¥è¯¢å°è£…器
     * @return æ€»æ•°
     */
    Long countByWrapper(VciQueryWrapperForDO queryWrapper);
    /**
     * æ ¹æ®ä¸»é”®èŽ·å–åç§°
     * @param oid ä¸»é”®
     * @return ä¸­æ–‡åç§°
     */
    String selectNameByOid(String oid);
    /**
     * æ‰¹é‡åˆ é™¤å¯¹è±¡
     * @param oids å¯¹è±¡çš„主键集合
     * @return å—影响的行数
     */
    BatchCBO batchDeleteByOids(Collection<String> oids);
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/SysIntBaseDaoI.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,128 @@
package org.springblade.code.dao;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.pageModel.BatchCBO;
import org.springblade.code.model.SysIntBaseDO;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
 * ç³»ç»Ÿé›†æˆçš„系统信息数据操作层
 *
 * @author lihang
 * @date 2022-03-07
 */
public interface  SysIntBaseDaoI {
    /**
     * ä½¿ç”¨ä¸»é”®åˆ é™¤
     * @param oid æ•°æ®ä¸»é”®
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO deleteByPrimaryKey(String oid);
    /**
     * æ·»åŠ æ•°æ®
     * @param record ç³»ç»Ÿé›†æˆçš„系统信息数据对象
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO insert(SysIntBaseDO record);
    /**
    * æ‰¹é‡æ·»åŠ æ•°æ®
    * @param records ç³»ç»Ÿé›†æˆçš„系统信息数据对象集合
    * @return æ‰§è¡Œç»“果数
    */
    BatchCBO batchInsert(List<SysIntBaseDO> records);
    /**
     * æ ¹æ®ä¸»é”®æŸ¥è¯¢
     * @param oid æ•°æ®ä¸»é”®
     * @return æ•°æ®å¯¹è±¡
     */
    SysIntBaseDO selectByPrimaryKey(String oid);
    /**
     * æ ¹æ®ä¸»é”®æ‰¹é‡èŽ·å–å¯¹è±¡
     * @param oids ä¸»é”®ï¼ŒåŒ…含单引号,但是不能超过1000
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<SysIntBaseDO> selectByPrimaryKeys(String oids);
    /**
     * æ ¹æ®ä¸»é”®æ‰¹é‡æŸ¥è¯¢å¯¹è±¡
     * @param oids å¯¹è±¡ä¸»é”®,使用逗号分隔,但是不能超过1000
     * @return ä¸šåŠ¡å¯¹è±¡
     */
    List<SysIntBaseDO> selectByPrimaryKeyCollection(Collection<String> oids);
    /**
     * æŸ¥è¯¢æ‰€æœ‰åˆ†ç±»
     * @return æŸ¥è¯¢ç»“æžœ
     */
    List<SysIntBaseDO> selectAll();
    /**
     * æ›´æ–°å¯¹è±¡
     * @param record ç³»ç»Ÿé›†æˆçš„系统信息数据对象
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO updateByPrimaryKey(SysIntBaseDO record);
    /**
    * æ‰¹é‡æ›´æ–°
    * @param records ç³»ç»Ÿé›†æˆçš„系统信息数据对象集合
    * @return æ‰§è¡Œç»“果行数
    */
    BatchCBO batchUpdate(List<SysIntBaseDO> records);
    /**
     * æ ¹æ®æŸ¥è¯¢æ¡ä»¶æŸ¥è¯¢æ•°æ®
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶ï¼Œ
     * @param pageHelper åŒ…括分页,排序
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<SysIntBaseDO> selectByCondition(Map<String,String> conditionMap, PageHelper pageHelper);
    /**
     * æ ¹æ®æŸ¥è¯¢æ¡ä»¶æ¥æŸ¥è¯¢æ€»æ•°
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @return æ€»æ•°
     */
    Long countByCondition(Map<String,String> conditionMap);
    /**
     * ä½¿ç”¨æŸ¥è¯¢å°è£…器来查询
     * @param queryWrapper æŸ¥è¯¢å°è£…器
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<SysIntBaseDO> selectByWrapper(VciQueryWrapperForDO queryWrapper);
    /**
     * æ ¹æ®æŸ¥è¯¢å°è£…器来查询总数
     * @param queryWrapper æŸ¥è¯¢å°è£…器
     * @return æ€»æ•°
     */
    Long countByWrapper(VciQueryWrapperForDO queryWrapper);
    /**
     * æ ¹æ®ä¸»é”®èŽ·å–åç§°
     * @param oid ä¸»é”®
     * @return ä¸­æ–‡åç§°
     */
    String selectNameByOid(String oid);
    /**
     * æ‰¹é‡åˆ é™¤å¯¹è±¡
     * @param oids å¯¹è±¡çš„主键集合
     * @return å—影响的行数
     */
    BatchCBO batchDeleteByOids(Collection<String> oids);
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/SysIntHeaderDaoI.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,143 @@
package org.springblade.code.dao;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.pageModel.BatchCBO;
import org.springblade.code.model.SysIntHeaderDO;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
 * ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证数据操作层
 *
 * @author weidy
 * @date 2022-04-11
 */
public interface  SysIntHeaderDaoI {
    /**
     * ä½¿ç”¨ä¸»é”®åˆ é™¤
     * @param oid æ•°æ®ä¸»é”®
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO deleteByPrimaryKey(String oid);
    /**
     * æ·»åŠ æ•°æ®
     * @param record ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证数据对象
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO insert(SysIntHeaderDO record);
    /**
    * æ‰¹é‡æ·»åŠ æ•°æ®
    * @param records ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证数据对象集合
    * @return æ‰§è¡Œç»“果数
    */
    BatchCBO batchInsert(List<SysIntHeaderDO> records);
    /**
     * æ ¹æ®ä¸»é”®æŸ¥è¯¢
     * @param oid æ•°æ®ä¸»é”®
     * @return æ•°æ®å¯¹è±¡
     */
    SysIntHeaderDO selectByPrimaryKey(String oid);
    /**
     * æ ¹æ®ä¸»é”®æ‰¹é‡èŽ·å–å¯¹è±¡
     * @param oids ä¸»é”®ï¼ŒåŒ…含单引号,但是不能超过1000
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<SysIntHeaderDO> selectByPrimaryKeys(String oids);
    /**
     * æ ¹æ®ä¸»é”®æ‰¹é‡æŸ¥è¯¢å¯¹è±¡
     * @param oids å¯¹è±¡ä¸»é”®,使用逗号分隔,但是不能超过1000
     * @return ä¸šåŠ¡å¯¹è±¡
     */
    List<SysIntHeaderDO> selectByPrimaryKeyCollection(Collection<String> oids);
    /**
     * æŸ¥è¯¢æ‰€æœ‰åˆ†ç±»
     * @return æŸ¥è¯¢ç»“æžœ
     */
    List<SysIntHeaderDO> selectAll();
    /**
     * æ›´æ–°å¯¹è±¡
     * @param record ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证数据对象
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO updateByPrimaryKey(SysIntHeaderDO record);
    /**
    * æ‰¹é‡æ›´æ–°
    * @param records ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证数据对象集合
    * @return æ‰§è¡Œç»“果行数
    */
    BatchCBO batchUpdate(List<SysIntHeaderDO> records);
    /**
     * æ ¹æ®æŸ¥è¯¢æ¡ä»¶æŸ¥è¯¢æ•°æ®
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶ï¼Œ
     * @param pageHelper åŒ…括分页,排序
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<SysIntHeaderDO> selectByCondition(Map<String,String> conditionMap, PageHelper pageHelper);
    /**
     * æ ¹æ®æŸ¥è¯¢æ¡ä»¶æ¥æŸ¥è¯¢æ€»æ•°
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @return æ€»æ•°
     */
    Long countByCondition(Map<String,String> conditionMap);
    /**
     * ä½¿ç”¨æŸ¥è¯¢å°è£…器来查询
     * @param queryWrapper æŸ¥è¯¢å°è£…器
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<SysIntHeaderDO> selectByWrapper(VciQueryWrapperForDO queryWrapper);
    /**
     * æ ¹æ®æŸ¥è¯¢å°è£…器来查询总数
     * @param queryWrapper æŸ¥è¯¢å°è£…器
     * @return æ€»æ•°
     */
    Long countByWrapper(VciQueryWrapperForDO queryWrapper);
    /**
     * æ ¹æ®ä¸»é”®èŽ·å–åç§°
     * @param oid ä¸»é”®
     * @return ä¸­æ–‡åç§°
     */
    String selectNameByOid(String oid);
    /**
     * æ‰¹é‡åˆ é™¤å¯¹è±¡
     * @param oids å¯¹è±¡çš„主键集合
     * @return å—影响的行数
     */
    BatchCBO batchDeleteByOids(Collection<String> oids);
    //==
    /**
     * æ ¹æ®sysinfo主键批量获取对象
     * @param sysinfoOid ä¸»é”®
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<SysIntHeaderDO> selectBySysinfoOid(String sysinfoOid);
    /**
     * æ‰¹é‡ä¿®æ”¹è¿™ä¸ªsysinfo的header,先删除sysinfo所有的header,再新建所有的
     * @param records
     */
    BaseResult updateSysinfoHeader(List<SysIntHeaderDO> records);
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/SysIntInfoDaoI.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,127 @@
package org.springblade.code.dao;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.pageModel.BatchCBO;
import org.springblade.code.model.SysIntInfoDO;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
 * ç³»ç»Ÿé›†æˆåŸºç¡€ä¿¡æ¯æ•°æ®æ“ä½œå±‚
 *
 * @author lihang
 * @date 2022-03-07
 */
public interface  SysIntInfoDaoI {
    /**
     * ä½¿ç”¨ä¸»é”®åˆ é™¤
     * @param oid æ•°æ®ä¸»é”®
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO deleteByPrimaryKey(String oid);
    /**
     * æ·»åŠ æ•°æ®
     * @param record ç³»ç»Ÿé›†æˆåŸºç¡€ä¿¡æ¯æ•°æ®å¯¹è±¡
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO insert(SysIntInfoDO record);
    /**
    * æ‰¹é‡æ·»åŠ æ•°æ®
    * @param records ç³»ç»Ÿé›†æˆåŸºç¡€ä¿¡æ¯æ•°æ®å¯¹è±¡é›†åˆ
    * @return æ‰§è¡Œç»“果数
    */
    BatchCBO batchInsert(List<SysIntInfoDO> records);
    /**
     * æ ¹æ®ä¸»é”®æŸ¥è¯¢
     * @param oid æ•°æ®ä¸»é”®
     * @return æ•°æ®å¯¹è±¡
     */
    SysIntInfoDO selectByPrimaryKey(String oid);
    /**
     * æ ¹æ®ä¸»é”®æ‰¹é‡èŽ·å–å¯¹è±¡
     * @param oids ä¸»é”®ï¼ŒåŒ…含单引号,但是不能超过1000
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<SysIntInfoDO> selectByPrimaryKeys(String oids);
    /**
     * æ ¹æ®ä¸»é”®æ‰¹é‡æŸ¥è¯¢å¯¹è±¡
     * @param oids å¯¹è±¡ä¸»é”®,使用逗号分隔,但是不能超过1000
     * @return ä¸šåŠ¡å¯¹è±¡
     */
    List<SysIntInfoDO> selectByPrimaryKeyCollection(Collection<String> oids);
    /**
     * æŸ¥è¯¢æ‰€æœ‰åˆ†ç±»
     * @return æŸ¥è¯¢ç»“æžœ
     */
    List<SysIntInfoDO> selectAll(Map conditonMap);
    /**
     * æ›´æ–°å¯¹è±¡
     * @param record ç³»ç»Ÿé›†æˆåŸºç¡€ä¿¡æ¯æ•°æ®å¯¹è±¡
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO updateByPrimaryKey(SysIntInfoDO record);
    /**
    * æ‰¹é‡æ›´æ–°
    * @param records ç³»ç»Ÿé›†æˆåŸºç¡€ä¿¡æ¯æ•°æ®å¯¹è±¡é›†åˆ
    * @return æ‰§è¡Œç»“果行数
    */
    BatchCBO batchUpdate(List<SysIntInfoDO> records);
    /**
     * æ ¹æ®æŸ¥è¯¢æ¡ä»¶æŸ¥è¯¢æ•°æ®
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶ï¼Œ
     * @param pageHelper åŒ…括分页,排序
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<SysIntInfoDO> selectByCondition(Map<String,String> conditionMap, PageHelper pageHelper);
    /**
     * æ ¹æ®æŸ¥è¯¢æ¡ä»¶æ¥æŸ¥è¯¢æ€»æ•°
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @return æ€»æ•°
     */
    Long countByCondition(Map<String,String> conditionMap);
    /**
     * ä½¿ç”¨æŸ¥è¯¢å°è£…器来查询
     * @param queryWrapper æŸ¥è¯¢å°è£…器
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<SysIntInfoDO> selectByWrapper(VciQueryWrapperForDO queryWrapper);
    /**
     * æ ¹æ®æŸ¥è¯¢å°è£…器来查询总数
     * @param queryWrapper æŸ¥è¯¢å°è£…器
     * @return æ€»æ•°
     */
    Long countByWrapper(VciQueryWrapperForDO queryWrapper);
    /**
     * æ ¹æ®ä¸»é”®èŽ·å–åç§°
     * @param oid ä¸»é”®
     * @return ä¸­æ–‡åç§°
     */
    String selectNameByOid(String oid);
    /**
     * æ‰¹é‡åˆ é™¤å¯¹è±¡
     * @param oids å¯¹è±¡çš„主键集合
     * @return å—影响的行数
     */
    BatchCBO batchDeleteByOids(Collection<String> oids);
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/SysIntParamDaoI.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,144 @@
package org.springblade.code.dao;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.pageModel.BatchCBO;
import org.springblade.code.model.SysIntParamDO;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
 * ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证数据操作层
 *
 * @author weidy
 * @date 2022-04-11
 */
public interface  SysIntParamDaoI {
    /**
     * ä½¿ç”¨ä¸»é”®åˆ é™¤
     * @param oid æ•°æ®ä¸»é”®
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO deleteByPrimaryKey(String oid);
    /**
     * æ·»åŠ æ•°æ®
     * @param record ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证数据对象
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO insert(SysIntParamDO record);
    /**
    * æ‰¹é‡æ·»åŠ æ•°æ®
    * @param records ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证数据对象集合
    * @return æ‰§è¡Œç»“果数
    */
    BatchCBO batchInsert(List<SysIntParamDO> records);
    /**
     * æ ¹æ®ä¸»é”®æŸ¥è¯¢
     * @param oid æ•°æ®ä¸»é”®
     * @return æ•°æ®å¯¹è±¡
     */
    SysIntParamDO selectByPrimaryKey(String oid);
    /**
     * æ ¹æ®ä¸»é”®æ‰¹é‡èŽ·å–å¯¹è±¡
     * @param oids ä¸»é”®ï¼ŒåŒ…含单引号,但是不能超过1000
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<SysIntParamDO> selectByPrimaryKeys(String oids);
    /**
     * æ ¹æ®ä¸»é”®æ‰¹é‡æŸ¥è¯¢å¯¹è±¡
     * @param oids å¯¹è±¡ä¸»é”®,使用逗号分隔,但是不能超过1000
     * @return ä¸šåŠ¡å¯¹è±¡
     */
    List<SysIntParamDO> selectByPrimaryKeyCollection(Collection<String> oids);
    /**
     * æŸ¥è¯¢æ‰€æœ‰åˆ†ç±»
     * @return æŸ¥è¯¢ç»“æžœ
     */
    List<SysIntParamDO> selectAll();
    /**
     * æ›´æ–°å¯¹è±¡
     * @param record ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证数据对象
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO updateByPrimaryKey(SysIntParamDO record);
    /**
    * æ‰¹é‡æ›´æ–°
    * @param records ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证数据对象集合
    * @return æ‰§è¡Œç»“果行数
    */
    BatchCBO batchUpdate(List<SysIntParamDO> records);
    /**
     * æ ¹æ®æŸ¥è¯¢æ¡ä»¶æŸ¥è¯¢æ•°æ®
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶ï¼Œ
     * @param pageHelper åŒ…括分页,排序
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<SysIntParamDO> selectByCondition(Map<String,String> conditionMap, PageHelper pageHelper);
    /**
     * æ ¹æ®æŸ¥è¯¢æ¡ä»¶æ¥æŸ¥è¯¢æ€»æ•°
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @return æ€»æ•°
     */
    Long countByCondition(Map<String,String> conditionMap);
    /**
     * ä½¿ç”¨æŸ¥è¯¢å°è£…器来查询
     * @param queryWrapper æŸ¥è¯¢å°è£…器
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<SysIntParamDO> selectByWrapper(VciQueryWrapperForDO queryWrapper);
    /**
     * æ ¹æ®æŸ¥è¯¢å°è£…器来查询总数
     * @param queryWrapper æŸ¥è¯¢å°è£…器
     * @return æ€»æ•°
     */
    Long countByWrapper(VciQueryWrapperForDO queryWrapper);
    /**
     * æ ¹æ®ä¸»é”®èŽ·å–åç§°
     * @param oid ä¸»é”®
     * @return ä¸­æ–‡åç§°
     */
    String selectNameByOid(String oid);
    /**
     * æ‰¹é‡åˆ é™¤å¯¹è±¡
     * @param oids å¯¹è±¡çš„主键集合
     * @return å—影响的行数
     */
    BatchCBO batchDeleteByOids(Collection<String> oids);
    //==
    /**
     * æ ¹æ®sysinfo主键批量获取对象
     * @param sysinfoOid ä¸»é”®
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<SysIntParamDO> selectBySysinfoOid(String sysinfoOid);
    /**
     * æ‰¹é‡ä¿®æ”¹è¿™ä¸ªsysinfo的param,先删除sysinfo所有的header,再新建所有的
     * @param records
     */
    BaseResult updateSysinfoParam(List<SysIntParamDO> records);
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/CodeAllCodeDaoImpl.java
@@ -1,7 +1,6 @@
package org.springblade.code.dao.impl;
import com.vci.mdm.dao.CodeAllCodeDaoI;
import com.vci.mdm.model.CodeAllCodeDO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.VciBaseUtil;
@@ -10,6 +9,8 @@
import com.vci.web.service.OsLifeCycleServiceI;
import com.vci.web.service.WebBoServiceI;
import org.apache.commons.lang3.StringUtils;
import org.springblade.code.dao.CodeAllCodeDaoI;
import org.springblade.code.model.CodeAllCodeDO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.util.CollectionUtils;
@@ -29,7 +30,7 @@
 * @date 2022-03-01
 */
@Repository
public class  CodeAllCodeDaoImpl implements CodeAllCodeDaoI{
public class  CodeAllCodeDaoImpl implements CodeAllCodeDaoI {
    /**
    * ä¸šåŠ¡ç±»åž‹æ“ä½œçš„æœåŠ¡
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/CodeBasicSecDaoImpl.java
@@ -1,7 +1,6 @@
package org.springblade.code.dao.impl;
import com.vci.mdm.dao.CodeBasicSecDaoI;
import com.vci.mdm.model.CodeBasicSecDO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.VciBaseUtil;
@@ -11,6 +10,8 @@
import com.vci.web.service.WebBoServiceI;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
import org.springblade.code.dao.CodeBasicSecDaoI;
import org.springblade.code.model.CodeBasicSecDO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.util.CollectionUtils;
@@ -30,7 +31,7 @@
 * @date 2022-01-24
 */
@Repository
public class  CodeBasicSecDaoImpl implements CodeBasicSecDaoI{
public class  CodeBasicSecDaoImpl implements CodeBasicSecDaoI {
    /**
    * ä¸šåŠ¡ç±»åž‹æ“ä½œçš„æœåŠ¡
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/CodeButtonDaoImpl.java
@@ -1,7 +1,6 @@
package org.springblade.code.dao.impl;
import com.vci.mdm.dao.CodeButtonDaoI;
import com.vci.mdm.model.CodeButtonDO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.VciBaseUtil;
@@ -10,6 +9,8 @@
import com.vci.web.service.OsLifeCycleServiceI;
import com.vci.web.service.WebBoServiceI;
import org.apache.commons.lang3.StringUtils;
import org.springblade.code.dao.CodeButtonDaoI;
import org.springblade.code.model.CodeButtonDO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.util.CollectionUtils;
@@ -29,7 +30,7 @@
 * @date 2022-01-24
 */
@Repository
public class  CodeButtonDaoImpl implements CodeButtonDaoI{
public class  CodeButtonDaoImpl implements CodeButtonDaoI {
    /**
    * ä¸šåŠ¡ç±»åž‹æ“ä½œçš„æœåŠ¡
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/CodeClassifyDaoImpl.java
@@ -1,8 +1,6 @@
package org.springblade.code.dao.impl;
import com.vci.mdm.constant.MdmBtmTypeConstant;
import com.vci.mdm.dao.CodeClassifyDaoI;
import com.vci.mdm.model.CodeClassifyDO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.VciBaseUtil;
@@ -12,6 +10,9 @@
import com.vci.web.service.WebBoServiceI;
import com.vci.web.util.PlatformClientUtil;
import org.apache.commons.lang3.StringUtils;
import org.springblade.code.constant.MdmBtmTypeConstant;
import org.springblade.code.dao.CodeClassifyDaoI;
import org.springblade.code.model.CodeClassifyDO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.util.CollectionUtils;
@@ -29,7 +30,7 @@
 * @date 2022-01-20
 */
@Repository
public class  CodeClassifyDaoImpl implements CodeClassifyDaoI{
public class  CodeClassifyDaoImpl implements CodeClassifyDaoI {
    /**
    * ä¸šåŠ¡ç±»åž‹æ“ä½œçš„æœåŠ¡
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/CodeClassifyProcessTempDaoImpl.java
@@ -1,7 +1,6 @@
package org.springblade.code.dao.impl;
import com.vci.mdm.dao.CodeClassifyProcessTempDaoI;
import com.vci.mdm.model.CodeClassifyProcessTempDO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.VciBaseUtil;
@@ -10,6 +9,8 @@
import com.vci.web.service.OsLifeCycleServiceI;
import com.vci.web.service.WebBoServiceI;
import org.apache.commons.lang3.StringUtils;
import org.springblade.code.dao.CodeClassifyProcessTempDaoI;
import org.springblade.code.model.CodeClassifyProcessTempDO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.util.CollectionUtils;
@@ -29,7 +30,7 @@
 * @date 2022-01-24
 */
@Repository
public class  CodeClassifyProcessTempDaoImpl implements CodeClassifyProcessTempDaoI{
public class  CodeClassifyProcessTempDaoImpl implements CodeClassifyProcessTempDaoI {
    /**
    * ä¸šåŠ¡ç±»åž‹æ“ä½œçš„æœåŠ¡
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/CodeClassifyTempMapItemDaoImpl.java
@@ -1,7 +1,6 @@
package org.springblade.code.dao.impl;
import com.vci.mdm.dao.CodeClassifyTempMapItemDaoI;
import com.vci.mdm.model.CodeClassifyTempMapItemDO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.VciBaseUtil;
@@ -10,6 +9,8 @@
import com.vci.web.service.OsLifeCycleServiceI;
import com.vci.web.service.WebBoServiceI;
import org.apache.commons.lang3.StringUtils;
import org.springblade.code.dao.CodeClassifyTempMapItemDaoI;
import org.springblade.code.model.CodeClassifyTempMapItemDO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@@ -27,7 +28,7 @@
 * @date 2022-03-10
 */
@Repository
public class  CodeClassifyTempMapItemDaoImpl implements CodeClassifyTempMapItemDaoI{
public class  CodeClassifyTempMapItemDaoImpl implements CodeClassifyTempMapItemDaoI {
    /**
    * ä¸šåŠ¡ç±»åž‹æ“ä½œçš„æœåŠ¡
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/CodeClassifyTemplateAttrDaoImpl.java
@@ -1,7 +1,5 @@
package org.springblade.code.dao.impl;
import com.vci.mdm.dao.CodeClassifyTemplateAttrDaoI;
import com.vci.mdm.model.CodeClassifyTemplateAttrDO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.VciBaseUtil;
@@ -10,6 +8,8 @@
import com.vci.web.service.OsLifeCycleServiceI;
import com.vci.web.service.WebBoServiceI;
import org.apache.commons.lang3.StringUtils;
import org.springblade.code.dao.CodeClassifyTemplateAttrDaoI;
import org.springblade.code.model.CodeClassifyTemplateAttrDO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@@ -27,7 +27,7 @@
 * @date 2022-01-24
 */
@Repository
public class  CodeClassifyTemplateAttrDaoImpl implements CodeClassifyTemplateAttrDaoI{
public class  CodeClassifyTemplateAttrDaoImpl implements CodeClassifyTemplateAttrDaoI {
    /**
    * ä¸šåŠ¡ç±»åž‹æ“ä½œçš„æœåŠ¡
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/CodeClassifyTemplateButtonDaoImpl.java
@@ -1,7 +1,6 @@
package org.springblade.code.dao.impl;
import com.vci.mdm.dao.CodeClassifyTemplateButtonDaoI;
import com.vci.mdm.model.CodeClassifyTemplateButtonDO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.VciBaseUtil;
@@ -10,6 +9,8 @@
import com.vci.web.service.OsLifeCycleServiceI;
import com.vci.web.service.WebBoServiceI;
import org.apache.commons.lang3.StringUtils;
import org.springblade.code.dao.CodeClassifyTemplateButtonDaoI;
import org.springblade.code.model.CodeClassifyTemplateButtonDO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@@ -27,7 +28,7 @@
 * @date 2022-01-24
 */
@Repository
public class  CodeClassifyTemplateButtonDaoImpl implements CodeClassifyTemplateButtonDaoI{
public class  CodeClassifyTemplateButtonDaoImpl implements CodeClassifyTemplateButtonDaoI {
    /**
    * ä¸šåŠ¡ç±»åž‹æ“ä½œçš„æœåŠ¡
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/CodeClassifyTemplateDaoImpl.java
@@ -1,10 +1,7 @@
package org.springblade.code.dao.impl;
import com.vci.frameworkcore.constant.FrameWorkDefaultValueConstant;
import com.vci.mdm.constant.MdmBtmTypeConstant;
import com.vci.mdm.dao.CodeClassifyTemplateDaoI;
import com.vci.mdm.lifecycle.CodeClassifyTemplateLC;
import com.vci.mdm.model.CodeClassifyTemplateDO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.VciBaseUtil;
@@ -12,7 +9,11 @@
import com.vci.web.pageModel.BatchCBO;
import com.vci.web.service.OsLifeCycleServiceI;
import com.vci.web.service.WebBoServiceI;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang.StringUtils;
import org.springblade.code.constant.MdmBtmTypeConstant;
import org.springblade.code.dao.CodeClassifyTemplateDaoI;
import org.springblade.code.lifecycle.CodeClassifyTemplateLC;
import org.springblade.code.model.CodeClassifyTemplateDO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.util.CollectionUtils;
@@ -22,7 +23,6 @@
import static com.vci.frameworkcore.constant.FrameWorkBusLangCodeConstant.DATA_OID_NOT_EXIST;
/**
 * åˆ†ç±»æ¨¡æ¿å¯¹è±¡æ•°æ®æ“ä½œå±‚实现类
 *
@@ -30,7 +30,7 @@
 * @date 2022-01-24
 */
@Repository
public class  CodeClassifyTemplateDaoImpl implements CodeClassifyTemplateDaoI{
public class  CodeClassifyTemplateDaoImpl implements CodeClassifyTemplateDaoI {
    /**
    * ä¸šåŠ¡ç±»åž‹æ“ä½œçš„æœåŠ¡
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/CodeClassifyTemplateMapDaoImpl.java
@@ -1,7 +1,6 @@
package org.springblade.code.dao.impl;
import com.vci.mdm.dao.CodeClassifyTemplateMapDaoI;
import com.vci.mdm.model.CodeClassifyTemplateMapDO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.VciBaseUtil;
@@ -10,6 +9,8 @@
import com.vci.web.service.OsLifeCycleServiceI;
import com.vci.web.service.WebBoServiceI;
import org.apache.commons.lang3.StringUtils;
import org.springblade.code.dao.CodeClassifyTemplateMapDaoI;
import org.springblade.code.model.CodeClassifyTemplateMapDO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.util.CollectionUtils;
@@ -29,7 +30,7 @@
 * @date 2022-01-24
 */
@Repository
public class  CodeClassifyTemplateMapDaoImpl implements CodeClassifyTemplateMapDaoI{
public class  CodeClassifyTemplateMapDaoImpl implements CodeClassifyTemplateMapDaoI {
    /**
    * ä¸šåŠ¡ç±»åž‹æ“ä½œçš„æœåŠ¡
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/CodeClassifyValueDaoImpl.java
@@ -1,7 +1,6 @@
package org.springblade.code.dao.impl;
import com.vci.mdm.dao.CodeClassifyValueDaoI;
import com.vci.mdm.model.CodeClassifyValueDO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.VciBaseUtil;
@@ -10,6 +9,8 @@
import com.vci.web.service.OsLifeCycleServiceI;
import com.vci.web.service.WebBoServiceI;
import org.apache.commons.lang3.StringUtils;
import org.springblade.code.dao.CodeClassifyValueDaoI;
import org.springblade.code.model.CodeClassifyValueDO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.util.CollectionUtils;
@@ -26,7 +27,7 @@
 * @date 2022-01-24
 */
@Repository
public class  CodeClassifyValueDaoImpl implements CodeClassifyValueDaoI{
public class  CodeClassifyValueDaoImpl implements CodeClassifyValueDaoI {
    /**
    * ä¸šåŠ¡ç±»åž‹æ“ä½œçš„æœåŠ¡
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/CodeFixedValueDaoImpl.java
@@ -1,7 +1,6 @@
package org.springblade.code.dao.impl;
import com.vci.mdm.dao.CodeFixedValueDaoI;
import com.vci.mdm.model.CodeFixedValueDO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.VciBaseUtil;
@@ -10,6 +9,8 @@
import com.vci.web.service.OsLifeCycleServiceI;
import com.vci.web.service.WebBoServiceI;
import org.apache.commons.lang3.StringUtils;
import org.springblade.code.dao.CodeFixedValueDaoI;
import org.springblade.code.model.CodeFixedValueDO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import plm.bs.bom.clientobject.ClientBusinessObject;
@@ -30,7 +31,7 @@
 * @date 2022-01-24
 */
@Repository
public class  CodeFixedValueDaoImpl implements CodeFixedValueDaoI{
public class  CodeFixedValueDaoImpl implements CodeFixedValueDaoI {
    /**
    * ä¸šåŠ¡ç±»åž‹æ“ä½œçš„æœåŠ¡
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/CodeKeyAttrRepeatRuleDaoImpl.java
@@ -1,7 +1,6 @@
package org.springblade.code.dao.impl;
import com.vci.mdm.dao.CodeKeyAttrRepeatRuleDaoI;
import com.vci.mdm.model.CodeKeyAttrRepeatRuleDO;
import com.vci.starter.web.constant.QueryOptionConstant;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.PageHelper;
@@ -11,6 +10,8 @@
import com.vci.web.service.OsLifeCycleServiceI;
import com.vci.web.service.WebBoServiceI;
import org.apache.commons.lang3.StringUtils;
import org.springblade.code.dao.CodeKeyAttrRepeatRuleDaoI;
import org.springblade.code.model.CodeKeyAttrRepeatRuleDO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.util.CollectionUtils;
@@ -31,7 +32,7 @@
 * @date 2022-01-24
 */
@Repository
public class  CodeKeyAttrRepeatRuleDaoImpl implements CodeKeyAttrRepeatRuleDaoI{
public class  CodeKeyAttrRepeatRuleDaoImpl implements CodeKeyAttrRepeatRuleDaoI {
    /**
    * ä¸šåŠ¡ç±»åž‹æ“ä½œçš„æœåŠ¡
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/CodePhaseAttrDaoImpl.java
@@ -1,7 +1,5 @@
package org.springblade.code.dao.impl;
import com.vci.mdm.dao.CodePhaseAttrDaoI;
import com.vci.mdm.model.CodePhaseAttrDO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.VciBaseUtil;
@@ -10,6 +8,8 @@
import com.vci.web.service.OsLifeCycleServiceI;
import com.vci.web.service.WebBoServiceI;
import org.apache.commons.lang3.StringUtils;
import org.springblade.code.dao.CodePhaseAttrDaoI;
import org.springblade.code.model.CodePhaseAttrDO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.util.CollectionUtils;
@@ -29,7 +29,7 @@
 * @date 2022-01-24
 */
@Repository
public class  CodePhaseAttrDaoImpl implements CodePhaseAttrDaoI{
public class  CodePhaseAttrDaoImpl implements CodePhaseAttrDaoI {
    /**
    * ä¸šåŠ¡ç±»åž‹æ“ä½œçš„æœåŠ¡
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/CodeResembleRuleDaoImpl.java
@@ -1,7 +1,6 @@
package org.springblade.code.dao.impl;
import com.vci.mdm.dao.CodeResembleRuleDaoI;
import com.vci.mdm.model.CodeResembleRuleDO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.VciBaseUtil;
@@ -10,6 +9,8 @@
import com.vci.web.service.OsLifeCycleServiceI;
import com.vci.web.service.WebBoServiceI;
import org.apache.commons.lang3.StringUtils;
import org.springblade.code.dao.CodeResembleRuleDaoI;
import org.springblade.code.model.CodeResembleRuleDO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.util.CollectionUtils;
@@ -29,7 +30,7 @@
 * @date 2022-04-10
 */
@Repository
public class  CodeResembleRuleDaoImpl implements CodeResembleRuleDaoI{
public class  CodeResembleRuleDaoImpl implements CodeResembleRuleDaoI {
    /**
    * ä¸šåŠ¡ç±»åž‹æ“ä½œçš„æœåŠ¡
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/CodeRuleDaoImpl.java
@@ -1,7 +1,6 @@
package org.springblade.code.dao.impl;
import com.vci.mdm.dao.CodeRuleDaoI;
import com.vci.mdm.model.CodeRuleDO;
import com.vci.starter.web.constant.QueryOptionConstant;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.PageHelper;
@@ -12,6 +11,8 @@
import com.vci.web.service.WebBoServiceI;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
import org.springblade.code.dao.CodeRuleDaoI;
import org.springblade.code.model.CodeRuleDO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.util.CollectionUtils;
@@ -32,7 +33,7 @@
 * @date 2022-01-24
 */
@Repository
public class  CodeRuleDaoImpl implements CodeRuleDaoI{
public class  CodeRuleDaoImpl implements CodeRuleDaoI {
    /**
    * ä¸šåŠ¡ç±»åž‹æ“ä½œçš„æœåŠ¡
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/CodeSerialValueDaoImpl.java
@@ -1,7 +1,5 @@
package org.springblade.code.dao.impl;
import com.vci.mdm.dao.CodeSerialValueDaoI;
import com.vci.mdm.model.CodeSerialValueDO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.VciBaseUtil;
@@ -10,6 +8,8 @@
import com.vci.web.service.OsLifeCycleServiceI;
import com.vci.web.service.WebBoServiceI;
import org.apache.commons.lang3.StringUtils;
import org.springblade.code.dao.CodeSerialValueDaoI;
import org.springblade.code.model.CodeSerialValueDO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@@ -27,7 +27,7 @@
 * @date 2022-03-01
 */
@Repository
public class  CodeSerialValueDaoImpl implements CodeSerialValueDaoI{
public class  CodeSerialValueDaoImpl implements CodeSerialValueDaoI {
    /**
    * ä¸šåŠ¡ç±»åž‹æ“ä½œçš„æœåŠ¡
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/CodeSynonymDaoImpl.java
@@ -1,7 +1,6 @@
package org.springblade.code.dao.impl;
import com.vci.mdm.dao.CodeSynonymDaoI;
import com.vci.mdm.model.CodeSynonymDO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.VciBaseUtil;
@@ -10,6 +9,8 @@
import com.vci.web.service.OsLifeCycleServiceI;
import com.vci.web.service.WebBoServiceI;
import org.apache.commons.lang3.StringUtils;
import org.springblade.code.dao.CodeSynonymDaoI;
import org.springblade.code.model.CodeSynonymDO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@@ -27,7 +28,7 @@
 * @date 2022-02-17
 */
@Repository
public class  CodeSynonymDaoImpl implements CodeSynonymDaoI{
public class  CodeSynonymDaoImpl implements CodeSynonymDaoI {
    /**
    * ä¸šåŠ¡ç±»åž‹æ“ä½œçš„æœåŠ¡
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/CodeTemplatePhaseDaoImpl.java
@@ -1,7 +1,6 @@
package org.springblade.code.dao.impl;
import com.vci.mdm.dao.CodeTemplatePhaseDaoI;
import com.vci.mdm.model.CodeTemplatePhaseDO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.VciBaseUtil;
@@ -10,6 +9,8 @@
import com.vci.web.service.OsLifeCycleServiceI;
import com.vci.web.service.WebBoServiceI;
import org.apache.commons.lang3.StringUtils;
import org.springblade.code.dao.CodeTemplatePhaseDaoI;
import org.springblade.code.model.CodeTemplatePhaseDO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.util.CollectionUtils;
@@ -29,7 +30,7 @@
 * @date 2022-01-24
 */
@Repository
public class  CodeTemplatePhaseDaoImpl implements CodeTemplatePhaseDaoI{
public class  CodeTemplatePhaseDaoImpl implements CodeTemplatePhaseDaoI {
    /**
    * ä¸šåŠ¡ç±»åž‹æ“ä½œçš„æœåŠ¡
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/DockingDataDaoImpl.java
@@ -1,7 +1,6 @@
package org.springblade.code.dao.impl;
import com.vci.mdm.dao.DockingDataDaoI;
import com.vci.mdm.model.DockingDataDO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.VciBaseUtil;
@@ -10,6 +9,8 @@
import com.vci.web.service.OsLifeCycleServiceI;
import com.vci.web.service.WebBoServiceI;
import org.apache.commons.lang3.StringUtils;
import org.springblade.code.dao.DockingDataDaoI;
import org.springblade.code.model.DockingDataDO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/DockingLogeDaoImpl.java
@@ -1,8 +1,6 @@
package org.springblade.code.dao.impl;
import com.vci.mdm.dao.DockingLogeDaoI;
import com.vci.mdm.model.DockingLogeDO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.VciBaseUtil;
@@ -11,6 +9,8 @@
import com.vci.web.service.OsLifeCycleServiceI;
import com.vci.web.service.WebBoServiceI;
import org.apache.commons.lang3.StringUtils;
import org.springblade.code.dao.DockingLogeDaoI;
import org.springblade.code.model.DockingLogeDO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/DockingPreApplyDataDaoImpl.java
@@ -1,8 +1,6 @@
package org.springblade.code.dao.impl;
import com.vci.mdm.dao.DockingPreApplyDataDaoI;
import com.vci.mdm.model.DockingPreApplyDataDO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.VciBaseUtil;
@@ -10,7 +8,9 @@
import com.vci.web.pageModel.BatchCBO;
import com.vci.web.service.OsLifeCycleServiceI;
import com.vci.web.service.WebBoServiceI;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang.StringUtils;
import org.springblade.code.dao.DockingPreApplyDataDaoI;
import org.springblade.code.model.DockingPreApplyDataDO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@@ -19,7 +19,6 @@
import java.util.Map;
import static com.vci.frameworkcore.constant.FrameWorkBusLangCodeConstant.DATA_OID_NOT_EXIST;
/**
 * è®°å½•工艺推送过来的数据信息数据操作层实现类
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/DockingPreApplyDataInfoDaoImpl.java
@@ -1,8 +1,6 @@
package org.springblade.code.dao.impl;
import com.vci.mdm.dao.DockingPreApplyDataInfoDaoI;
import com.vci.mdm.model.DockingPreApplyDataInfoDO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.VciBaseUtil;
@@ -11,6 +9,8 @@
import com.vci.web.service.OsLifeCycleServiceI;
import com.vci.web.service.WebBoServiceI;
import org.apache.commons.lang3.StringUtils;
import org.springblade.code.dao.DockingPreApplyDataInfoDaoI;
import org.springblade.code.model.DockingPreApplyDataInfoDO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/DockingPreAttrMappingDaoImpl.java
@@ -1,7 +1,6 @@
package org.springblade.code.dao.impl;
import com.vci.mdm.dao.DockingPreAttrMappingDaoI;
import com.vci.mdm.model.DockingPreAttrMappingDO;
import com.vci.starter.web.constant.QueryOptionConstant;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.PageHelper;
@@ -11,6 +10,8 @@
import com.vci.web.service.OsLifeCycleServiceI;
import com.vci.web.service.WebBoServiceI;
import org.apache.commons.lang3.StringUtils;
import org.springblade.code.dao.DockingPreAttrMappingDaoI;
import org.springblade.code.model.DockingPreAttrMappingDO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/DockingPreAttrRangeDaoImpl.java
@@ -1,7 +1,5 @@
package org.springblade.code.dao.impl;
import com.vci.mdm.dao.DockingPreAttrRangeDaoI;
import com.vci.mdm.model.DockingPreAttrRangeDO;
import com.vci.starter.web.constant.QueryOptionConstant;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.PageHelper;
@@ -11,6 +9,8 @@
import com.vci.web.service.OsLifeCycleServiceI;
import com.vci.web.service.WebBoServiceI;
import org.apache.commons.lang3.StringUtils;
import org.springblade.code.dao.DockingPreAttrRangeDaoI;
import org.springblade.code.model.DockingPreAttrRangeDO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/DockingTaskDaoImpl.java
@@ -1,7 +1,5 @@
package org.springblade.code.dao.impl;
import com.vci.mdm.dao.DockingTaskDaoI;
import com.vci.mdm.model.DockingTaskDO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.VciBaseUtil;
@@ -10,6 +8,8 @@
import com.vci.web.service.OsLifeCycleServiceI;
import com.vci.web.service.WebBoServiceI;
import org.apache.commons.lang3.StringUtils;
import org.springblade.code.dao.DockingTaskDaoI;
import org.springblade.code.model.DockingTaskDO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/SysIntAuthorityDaoImpl.java
@@ -1,7 +1,6 @@
package org.springblade.code.dao.impl;
import com.vci.mdm.dao.SysIntAuthorityDaoI;
import com.vci.mdm.model.SysIntAuthorityDO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.VciBaseUtil;
@@ -10,6 +9,8 @@
import com.vci.web.service.OsLifeCycleServiceI;
import com.vci.web.service.WebBoServiceI;
import org.apache.commons.lang3.StringUtils;
import org.springblade.code.dao.SysIntAuthorityDaoI;
import org.springblade.code.model.SysIntAuthorityDO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@@ -27,7 +28,7 @@
 * @date 2022-03-07
 */
@Repository
public class  SysIntAuthorityDaoImpl implements SysIntAuthorityDaoI{
public class  SysIntAuthorityDaoImpl implements SysIntAuthorityDaoI {
    /**
    * ä¸šåŠ¡ç±»åž‹æ“ä½œçš„æœåŠ¡
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/SysIntBaseDaoImpl.java
@@ -1,7 +1,6 @@
package org.springblade.code.dao.impl;
import com.vci.mdm.dao.SysIntBaseDaoI;
import com.vci.mdm.model.SysIntBaseDO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.VciBaseUtil;
@@ -10,6 +9,8 @@
import com.vci.web.service.OsLifeCycleServiceI;
import com.vci.web.service.WebBoServiceI;
import org.apache.commons.lang3.StringUtils;
import org.springblade.code.dao.SysIntBaseDaoI;
import org.springblade.code.model.SysIntBaseDO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@@ -27,7 +28,7 @@
 * @date 2022-03-07
 */
@Repository
public class  SysIntBaseDaoImpl implements SysIntBaseDaoI{
public class  SysIntBaseDaoImpl implements SysIntBaseDaoI {
    /**
    * ä¸šåŠ¡ç±»åž‹æ“ä½œçš„æœåŠ¡
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/SysIntHeaderDaoImpl.java
@@ -1,8 +1,6 @@
package org.springblade.code.dao.impl;
import com.vci.mdm.dao.SysIntHeaderDaoI;
import com.vci.mdm.model.SysIntHeaderDO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.pagemodel.PageHelper;
@@ -13,6 +11,8 @@
import com.vci.web.service.WebBoServiceI;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
import org.springblade.code.dao.SysIntHeaderDaoI;
import org.springblade.code.model.SysIntHeaderDO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@@ -21,7 +21,7 @@
import java.util.Map;
import static com.vci.frameworkcore.constant.FrameWorkBusLangCodeConstant.DATA_OID_NOT_EXIST;
import static com.vci.mdm.constant.MdmDuckingConstant.FLAG_FAIL;
import static org.springblade.code.constant.MdmDuckingConstant.FLAG_FAIL;
/**
@@ -220,6 +220,7 @@
     * @param sysinfoOid ä¸»é”®
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    @Override
    public List<SysIntHeaderDO> selectBySysinfoOid(String sysinfoOid){
        VciBaseUtil.alertNotNull(sysinfoOid,"sysinfo主键");
        VciQueryWrapperForDO queryWrapper = new VciQueryWrapperForDO(SysIntHeaderDO.class);
@@ -231,6 +232,7 @@
     * æ‰¹é‡ä¿®æ”¹è¿™ä¸ªsysinfo的header,先删除sysinfo所有的header,再新建所有的
     * @param records
     */
    @Override
    public BaseResult updateSysinfoHeader(List<SysIntHeaderDO> records){
        if(records.size()<1){
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/dao/impl/SysIntParamDaoImpl.java
@@ -1,8 +1,5 @@
package org.springblade.code.dao.impl;
import com.vci.mdm.dao.SysIntParamDaoI;
import com.vci.mdm.model.SysIntParamDO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.pagemodel.PageHelper;
@@ -13,6 +10,8 @@
import com.vci.web.service.WebBoServiceI;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
import org.springblade.code.dao.SysIntParamDaoI;
import org.springblade.code.model.SysIntParamDO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@@ -21,7 +20,7 @@
import java.util.Map;
import static com.vci.frameworkcore.constant.FrameWorkBusLangCodeConstant.DATA_OID_NOT_EXIST;
import static com.vci.mdm.constant.MdmDuckingConstant.FLAG_FAIL;
import static org.springblade.code.constant.MdmDuckingConstant.FLAG_FAIL;
/**
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/enumpack/CodeButtonUseEnum.java
@@ -1,9 +1,9 @@
package org.springblade.code.enumpack;
import com.vci.mdm.constant.MdmEnumIdConstant;
import com.vci.starter.web.annotation.VciEnum;
import com.vci.starter.web.enumpck.BaseEnum;
import org.springblade.code.constant.MdmEnumIdConstant;
/**
 * æ¨¡æ¿çš„æŒ‰é’®ç”¨é€”
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/enumpack/CodeClassifyProcessUseEnum.java
@@ -1,9 +1,9 @@
package org.springblade.code.enumpack;
import com.vci.mdm.constant.MdmEnumIdConstant;
import com.vci.starter.web.annotation.VciEnum;
import com.vci.starter.web.enumpck.BaseEnum;
import org.springblade.code.constant.MdmEnumIdConstant;
/**
 * åˆ†ç±»çš„æµç¨‹çš„用途
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/enumpack/CodeCutTypeEnum.java
@@ -1,9 +1,9 @@
package org.springblade.code.enumpack;
import com.vci.mdm.constant.MdmEnumIdConstant;
import com.vci.starter.web.annotation.VciEnum;
import com.vci.starter.web.enumpck.BaseEnum;
import org.springblade.code.constant.MdmEnumIdConstant;
/**
 * æˆªå–类型
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/enumpack/CodeGetValueTypeEnum.java
@@ -1,9 +1,9 @@
package org.springblade.code.enumpack;
import com.vci.mdm.constant.MdmEnumIdConstant;
import com.vci.starter.web.annotation.VciEnum;
import com.vci.starter.web.enumpck.BaseEnum;
import org.springblade.code.constant.MdmEnumIdConstant;
/**
 * å–值类型
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/enumpack/CodeLevelTypeEnum.java
@@ -1,9 +1,9 @@
package org.springblade.code.enumpack;
import com.vci.mdm.constant.MdmEnumIdConstant;
import com.vci.starter.web.annotation.VciEnum;
import com.vci.starter.web.enumpck.BaseEnum;
import org.springblade.code.constant.MdmEnumIdConstant;
/**
 * å±‚级码段的层级类型
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/enumpack/CodeMapRuleTypeEnum.java
@@ -1,9 +1,9 @@
package org.springblade.code.enumpack;
import com.vci.mdm.constant.MdmEnumIdConstant;
import com.vci.starter.web.annotation.VciEnum;
import com.vci.starter.web.enumpck.BaseEnum;
import org.springblade.code.constant.MdmEnumIdConstant;
/**
 * æ˜ å°„规则类型
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/enumpack/CodeSecLengthTypeEnum.java
@@ -1,9 +1,9 @@
package org.springblade.code.enumpack;
import com.vci.mdm.constant.MdmEnumIdConstant;
import com.vci.starter.web.annotation.VciEnum;
import com.vci.starter.web.enumpck.BaseEnum;
import org.springblade.code.constant.MdmEnumIdConstant;
/**
 * ç æ®µé•¿åº¦æŽ§åˆ¶ç±»åž‹
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/enumpack/CodeUseButtonPositionTypeEnum.java
@@ -1,9 +1,9 @@
package org.springblade.code.enumpack;
import com.vci.mdm.constant.MdmEnumIdConstant;
import com.vci.starter.web.annotation.VciEnum;
import com.vci.starter.web.enumpck.BaseEnum;
import org.springblade.code.constant.MdmEnumIdConstant;
/**
 * æŒ‰é’®ä½¿ç”¨ä½ç½®
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/enumpack/SysIntegrationAuthorityTypeEnum.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,127 @@
package org.springblade.code.enumpack;
import com.vci.starter.web.annotation.VciEnum;
import com.vci.starter.web.enumpck.BaseEnum;
import org.springblade.code.constant.MdmEnumIdConstant;
/**
 * Description: ç³»ç»Ÿé›†æˆéªŒè¯æ–¹å¼
 *
 * @author: LiHang
 * @date: Created on 2022/3/7
 */
@VciEnum(name = MdmEnumIdConstant.SYS_INTEGRATION_AUTHORITY_TYPE,text = "系统集成验证方式",description = "")
public enum SysIntegrationAuthorityTypeEnum implements BaseEnum {
    /**
     * ç”¨æˆ·æ–¹å¼
     */
    LOGIN("login","用户登录"),
    /**
     * ä»¤ç‰Œæ–¹å¼
     */
    TOKEN("token","令牌");
    /**
     * æžšä¸¾çš„值
     */
    private String value;
    /**
     * æžšä¸¾æ˜¾ç¤ºæ–‡æœ¬
     */
    private String text;
    /**
     * èŽ·å–æžšä¸¾å€¼
     *
     * @return æžšä¸¾å€¼
     */
    @Override
    public String getValue() {
        return value;
    }
    /**
     * è®¾ç½®æžšä¸¾å€¼
     *
     * @param value æžšä¸¾å€¼
     */
    public void setValue(String value) {
        this.value = value;
    }
    /**
     * èŽ·å–æžšä¸¾æ˜¾ç¤ºæ–‡æœ¬
     *
     * @return æ˜¾ç¤ºæ–‡æœ¬
     */
    @Override
    public String getText() {
        return text;
    }
    /**
     * è®¾ç½®æ˜¾ç¤ºæ–‡æœ¬
     *
     * @param text æ˜¾ç¤ºæ–‡æœ¬
     */
    public void setText(String text) {
        this.text = text;
    }
    /**
     * æž„造函数
     *
     * @param value å€¼
     * @param text  æ˜¾ç¤ºæ–‡æœ¬
     */
    private SysIntegrationAuthorityTypeEnum(String value, String text) {
        this.value = value;
        this.text = text;
    }
    /**
     * æ ¹æ®åç§°èŽ·å–å¯¹åº”çš„æžšä¸¾å€¼
     *
     * @param text åç§°
     * @return æžšä¸¾å€¼
     */
    public static String getValueByText(String text) {
        for (SysIntegrationAuthorityTypeEnum wenum : SysIntegrationAuthorityTypeEnum.values()) {
            if (wenum.getText().equalsIgnoreCase(text)) {
                return wenum.getValue();
            }
        }
        return "";
    }
    /**
     * æ ¹æ®æžšä¸¾å€¼èŽ·å–åç§°
     *
     * @param value æžšä¸¾å€¼
     * @return åç§°
     */
    public static String getTextByValue(String value) {
        for (SysIntegrationAuthorityTypeEnum wenum : SysIntegrationAuthorityTypeEnum.values()) {
            if (wenum.getValue().equalsIgnoreCase(value)) {
                return wenum.getText();
            }
        }
        return "";
    }
    /**
     * æ ¹æ®æžšä¸¾å€¼èŽ·å–æžšä¸¾å¯¹è±¡
     *
     * @param value æžšä¸¾å€¼
     * @return æžšä¸¾å¯¹è±¡ï¼Œä¸å­˜åœ¨æ—¶å€™è¿”回null
     */
    public static SysIntegrationAuthorityTypeEnum forValue(String value) {
        for (SysIntegrationAuthorityTypeEnum wenum : SysIntegrationAuthorityTypeEnum.values()) {
            if (wenum.getValue().equalsIgnoreCase(value)) {
                return wenum;
            }
        }
        return null;
    }
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/enumpack/SysIntegrationDataFlowTypeEnum.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,124 @@
package org.springblade.code.enumpack;
import com.vci.starter.web.enumpck.BaseEnum;
/**
 * Description:数据流向方式
 *
 * @author LiHang
 * @date Created on 2022/3/14
 */
public enum SysIntegrationDataFlowTypeEnum implements BaseEnum {
    /**
     * æŽ¨é€
     */
    PUSH("push","推送"),
    /**
     * é€šçŸ¥å’ŒæŸ¥è¯¢
     */
    NOTICE_AND_QUERY("noticeAndQuery","通知和查询");
    /**
     * æžšä¸¾çš„值
     */
    private String value;
    /**
     * æžšä¸¾æ˜¾ç¤ºæ–‡æœ¬
     */
    private String text;
    /**
     * èŽ·å–æžšä¸¾å€¼
     *
     * @return æžšä¸¾å€¼
     */
    @Override
    public String getValue() {
        return value;
    }
    /**
     * è®¾ç½®æžšä¸¾å€¼
     *
     * @param value æžšä¸¾å€¼
     */
    public void setValue(String value) {
        this.value = value;
    }
    /**
     * èŽ·å–æžšä¸¾æ˜¾ç¤ºæ–‡æœ¬
     *
     * @return æ˜¾ç¤ºæ–‡æœ¬
     */
    @Override
    public String getText() {
        return text;
    }
    /**
     * è®¾ç½®æ˜¾ç¤ºæ–‡æœ¬
     *
     * @param text æ˜¾ç¤ºæ–‡æœ¬
     */
    public void setText(String text) {
        this.text = text;
    }
    /**
     * æž„造函数
     *
     * @param value å€¼
     * @param text  æ˜¾ç¤ºæ–‡æœ¬
     */
    private SysIntegrationDataFlowTypeEnum(String value, String text) {
        this.value = value;
        this.text = text;
    }
    /**
     * æ ¹æ®åç§°èŽ·å–å¯¹åº”çš„æžšä¸¾å€¼
     *
     * @param text åç§°
     * @return æžšä¸¾å€¼
     */
    public static String getValueByText(String text) {
        for (SysIntegrationDataFlowTypeEnum wenum : SysIntegrationDataFlowTypeEnum.values()) {
            if (wenum.getText().equalsIgnoreCase(text)) {
                return wenum.getValue();
            }
        }
        return "";
    }
    /**
     * æ ¹æ®æžšä¸¾å€¼èŽ·å–åç§°
     *
     * @param value æžšä¸¾å€¼
     * @return åç§°
     */
    public static String getTextByValue(String value) {
        for (SysIntegrationDataFlowTypeEnum wenum : SysIntegrationDataFlowTypeEnum.values()) {
            if (wenum.getValue().equalsIgnoreCase(value)) {
                return wenum.getText();
            }
        }
        return "";
    }
    /**
     * æ ¹æ®æžšä¸¾å€¼èŽ·å–æžšä¸¾å¯¹è±¡
     *
     * @param value æžšä¸¾å€¼
     * @return æžšä¸¾å¯¹è±¡ï¼Œä¸å­˜åœ¨æ—¶å€™è¿”回null
     */
    public static SysIntegrationDataFlowTypeEnum forValue(String value) {
        for (SysIntegrationDataFlowTypeEnum wenum : SysIntegrationDataFlowTypeEnum.values()) {
            if (wenum.getValue().equalsIgnoreCase(value)) {
                return wenum;
            }
        }
        return null;
    }
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/enumpack/SysIntegrationParamAndReturnTypeEnum.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,127 @@
package org.springblade.code.enumpack;
import com.vci.starter.web.annotation.VciEnum;
import com.vci.starter.web.enumpck.BaseEnum;
import org.springblade.code.constant.MdmEnumIdConstant;
/**
 * Description: ç³»ç»Ÿé›†æˆæŽ¥å£å‚数与返回值类型
 *
 * @author: LiHang
 * @date: Created on 2022/3/7
 */
@VciEnum(name = MdmEnumIdConstant.SYS_INTEGRATION_PARAM_AND_RETURN_TYPE,text = "系统集成接口参数与返回值类型",description = "")
public enum SysIntegrationParamAndReturnTypeEnum implements BaseEnum {
    /**
     * Json格式
     */
    JSON("json","Json"),
    /**
     * Xml格式
     */
    XML("xml","xml");
    /**
     * æžšä¸¾çš„值
     */
    private String value;
    /**
     * æžšä¸¾æ˜¾ç¤ºæ–‡æœ¬
     */
    private String text;
    /**
     * èŽ·å–æžšä¸¾å€¼
     *
     * @return æžšä¸¾å€¼
     */
    @Override
    public String getValue() {
        return value;
    }
    /**
     * è®¾ç½®æžšä¸¾å€¼
     *
     * @param value æžšä¸¾å€¼
     */
    public void setValue(String value) {
        this.value = value;
    }
    /**
     * èŽ·å–æžšä¸¾æ˜¾ç¤ºæ–‡æœ¬
     *
     * @return æ˜¾ç¤ºæ–‡æœ¬
     */
    @Override
    public String getText() {
        return text;
    }
    /**
     * è®¾ç½®æ˜¾ç¤ºæ–‡æœ¬
     *
     * @param text æ˜¾ç¤ºæ–‡æœ¬
     */
    public void setText(String text) {
        this.text = text;
    }
    /**
     * æž„造函数
     *
     * @param value å€¼
     * @param text  æ˜¾ç¤ºæ–‡æœ¬
     */
    private SysIntegrationParamAndReturnTypeEnum(String value, String text) {
        this.value = value;
        this.text = text;
    }
    /**
     * æ ¹æ®åç§°èŽ·å–å¯¹åº”çš„æžšä¸¾å€¼
     *
     * @param text åç§°
     * @return æžšä¸¾å€¼
     */
    public static String getValueByText(String text) {
        for (SysIntegrationParamAndReturnTypeEnum wenum : SysIntegrationParamAndReturnTypeEnum.values()) {
            if (wenum.getText().equalsIgnoreCase(text)) {
                return wenum.getValue();
            }
        }
        return "";
    }
    /**
     * æ ¹æ®æžšä¸¾å€¼èŽ·å–åç§°
     *
     * @param value æžšä¸¾å€¼
     * @return åç§°
     */
    public static String getTextByValue(String value) {
        for (SysIntegrationParamAndReturnTypeEnum wenum : SysIntegrationParamAndReturnTypeEnum.values()) {
            if (wenum.getValue().equalsIgnoreCase(value)) {
                return wenum.getText();
            }
        }
        return "";
    }
    /**
     * æ ¹æ®æžšä¸¾å€¼èŽ·å–æžšä¸¾å¯¹è±¡
     *
     * @param value æžšä¸¾å€¼
     * @return æžšä¸¾å¯¹è±¡ï¼Œä¸å­˜åœ¨æ—¶å€™è¿”回null
     */
    public static SysIntegrationParamAndReturnTypeEnum forValue(String value) {
        for (SysIntegrationParamAndReturnTypeEnum wenum : SysIntegrationParamAndReturnTypeEnum.values()) {
            if (wenum.getValue().equalsIgnoreCase(value)) {
                return wenum;
            }
        }
        return null;
    }
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/enumpack/SysIntegrationRequestMethodEnum.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,136 @@
package org.springblade.code.enumpack;
import com.vci.starter.web.annotation.VciEnum;
import com.vci.starter.web.enumpck.BaseEnum;
import org.springblade.code.constant.MdmEnumIdConstant;
/**
 * Description:系统集成接口请求方式类型
 *
 * @author: LiHang
 * @date: Created on 2022/3/7
 */
@VciEnum(name = MdmEnumIdConstant.SYS_INTEGRATION_REQUEST_METHOD_TYPE,text = "系统集成接口请求方式类型",description = "")
public enum SysIntegrationRequestMethodEnum implements BaseEnum {
    /**
     * post请求
     */
    POST("post","post"),
    /**
     * get请求
     */
    GET("get","get"),
    /**
     * put请求
     */
    PUT("put","put"),
    /**
     * delete请求
     */
    DELETE("delete","delete");
    /**
     * æžšä¸¾çš„值
     */
    private String value;
    /**
     * æžšä¸¾æ˜¾ç¤ºæ–‡æœ¬
     */
    private String text;
    /**
     * èŽ·å–æžšä¸¾å€¼
     *
     * @return æžšä¸¾å€¼
     */
    @Override
    public String getValue() {
        return value;
    }
    /**
     * è®¾ç½®æžšä¸¾å€¼
     *
     * @param value æžšä¸¾å€¼
     */
    public void setValue(String value) {
        this.value = value;
    }
    /**
     * èŽ·å–æžšä¸¾æ˜¾ç¤ºæ–‡æœ¬
     *
     * @return æ˜¾ç¤ºæ–‡æœ¬
     */
    @Override
    public String getText() {
        return text;
    }
    /**
     * è®¾ç½®æ˜¾ç¤ºæ–‡æœ¬
     *
     * @param text æ˜¾ç¤ºæ–‡æœ¬
     */
    public void setText(String text) {
        this.text = text;
    }
    /**
     * æž„造函数
     *
     * @param value å€¼
     * @param text  æ˜¾ç¤ºæ–‡æœ¬
     */
    private SysIntegrationRequestMethodEnum(String value, String text) {
        this.value = value;
        this.text = text;
    }
    /**
     * æ ¹æ®åç§°èŽ·å–å¯¹åº”çš„æžšä¸¾å€¼
     *
     * @param text åç§°
     * @return æžšä¸¾å€¼
     */
    public static String getValueByText(String text) {
        for (SysIntegrationRequestMethodEnum wenum : SysIntegrationRequestMethodEnum.values()) {
            if (wenum.getText().equalsIgnoreCase(text)) {
                return wenum.getValue();
            }
        }
        return "";
    }
    /**
     * æ ¹æ®æžšä¸¾å€¼èŽ·å–åç§°
     *
     * @param value æžšä¸¾å€¼
     * @return åç§°
     */
    public static String getTextByValue(String value) {
        for (SysIntegrationRequestMethodEnum wenum : SysIntegrationRequestMethodEnum.values()) {
            if (wenum.getValue().equalsIgnoreCase(value)) {
                return wenum.getText();
            }
        }
        return "";
    }
    /**
     * æ ¹æ®æžšä¸¾å€¼èŽ·å–æžšä¸¾å¯¹è±¡
     *
     * @param value æžšä¸¾å€¼
     * @return æžšä¸¾å¯¹è±¡ï¼Œä¸å­˜åœ¨æ—¶å€™è¿”回null
     */
    public static SysIntegrationRequestMethodEnum forValue(String value) {
        for (SysIntegrationRequestMethodEnum wenum : SysIntegrationRequestMethodEnum.values()) {
            if (wenum.getValue().equalsIgnoreCase(value)) {
                return wenum;
            }
        }
        return null;
    }
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/enumpack/SysIntegrationRequestTypeEnum.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,135 @@
package org.springblade.code.enumpack;
import com.vci.starter.web.annotation.VciEnum;
import com.vci.starter.web.enumpck.BaseEnum;
import org.springblade.code.constant.MdmEnumIdConstant;
/**
 * Description:系统集成接口的类型
 *
 * @author: LiHang
 * @date: Created on 2022/3/7
 */
@VciEnum(name = MdmEnumIdConstant.SYS_INTEGRATION_REQUEST_TYPE,text = "系统集成接口的类型",description = "")
public enum SysIntegrationRequestTypeEnum implements BaseEnum {
    /**
     * HTTP方式
     */
    HTTP("http","Http"),
    /**
     * WebService方式
     */
    WEB_SERVICE("webService","webService"),
    WEB_SERVICE_ERP("webService","webService"),
    WEB_SERVICE_CXF("webService","webService"),
    WEB_SERVICE_AXIS("webService","webService"),
    /**
     * ç±»è·¯å¾„
     */
    CLASSPATH("classPath","类路径");
    /**
     * æžšä¸¾çš„值
     */
    private String value;
    /**
     * æžšä¸¾æ˜¾ç¤ºæ–‡æœ¬
     */
    private String text;
    /**
     * èŽ·å–æžšä¸¾å€¼
     *
     * @return æžšä¸¾å€¼
     */
    @Override
    public String getValue() {
        return value;
    }
    /**
     * è®¾ç½®æžšä¸¾å€¼
     *
     * @param value æžšä¸¾å€¼
     */
    public void setValue(String value) {
        this.value = value;
    }
    /**
     * èŽ·å–æžšä¸¾æ˜¾ç¤ºæ–‡æœ¬
     *
     * @return æ˜¾ç¤ºæ–‡æœ¬
     */
    @Override
    public String getText() {
        return text;
    }
    /**
     * è®¾ç½®æ˜¾ç¤ºæ–‡æœ¬
     *
     * @param text æ˜¾ç¤ºæ–‡æœ¬
     */
    public void setText(String text) {
        this.text = text;
    }
    /**
     * æž„造函数
     *
     * @param value å€¼
     * @param text  æ˜¾ç¤ºæ–‡æœ¬
     */
    private SysIntegrationRequestTypeEnum(String value, String text) {
        this.value = value;
        this.text = text;
    }
    /**
     * æ ¹æ®åç§°èŽ·å–å¯¹åº”çš„æžšä¸¾å€¼
     *
     * @param text åç§°
     * @return æžšä¸¾å€¼
     */
    public static String getValueByText(String text) {
        for (SysIntegrationRequestTypeEnum wenum : SysIntegrationRequestTypeEnum.values()) {
            if (wenum.getText().equalsIgnoreCase(text)) {
                return wenum.getValue();
            }
        }
        return "";
    }
    /**
     * æ ¹æ®æžšä¸¾å€¼èŽ·å–åç§°
     *
     * @param value æžšä¸¾å€¼
     * @return åç§°
     */
    public static String getTextByValue(String value) {
        for (SysIntegrationRequestTypeEnum wenum : SysIntegrationRequestTypeEnum.values()) {
            if (wenum.getValue().equalsIgnoreCase(value)) {
                return wenum.getText();
            }
        }
        return "";
    }
    /**
     * æ ¹æ®æžšä¸¾å€¼èŽ·å–æžšä¸¾å¯¹è±¡
     *
     * @param value æžšä¸¾å€¼
     * @return æžšä¸¾å¯¹è±¡ï¼Œä¸å­˜åœ¨æ—¶å€™è¿”回null
     */
    public static SysIntegrationRequestTypeEnum forValue(String value) {
        for (SysIntegrationRequestTypeEnum wenum : SysIntegrationRequestTypeEnum.values()) {
            if (wenum.getValue().equalsIgnoreCase(value)) {
                return wenum;
            }
        }
        return null;
    }
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/enumpack/sysIntegrationPushTypeEnum.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,122 @@
package org.springblade.code.enumpack;
import com.vci.starter.web.annotation.VciEnum;
import com.vci.starter.web.enumpck.BaseEnum;
import org.springblade.code.constant.MdmEnumIdConstant;
@VciEnum(name = MdmEnumIdConstant.SYS_INTEGRATION_PUSH_TYPE,text = "系统接口推送方式",description = "")
public enum sysIntegrationPushTypeEnum implements BaseEnum {
    /**
     * åˆ†ç±»æŽ¨é€æ–¹å¼
     */
    JSON("1","数据推送"),
    /**
     * Xml格式
     */
    XML("2","分类推送");
    /**
     * æžšä¸¾çš„值
     */
    private String value;
    /**
     * æžšä¸¾æ˜¾ç¤ºæ–‡æœ¬
     */
    private String text;
    /**
     * èŽ·å–æžšä¸¾å€¼
     *
     * @return æžšä¸¾å€¼
     */
    @Override
    public String getValue() {
        return value;
    }
    /**
     * è®¾ç½®æžšä¸¾å€¼
     *
     * @param value æžšä¸¾å€¼
     */
    public void setValue(String value) {
        this.value = value;
    }
    /**
     * èŽ·å–æžšä¸¾æ˜¾ç¤ºæ–‡æœ¬
     *
     * @return æ˜¾ç¤ºæ–‡æœ¬
     */
    @Override
    public String getText() {
        return text;
    }
    /**
     * è®¾ç½®æ˜¾ç¤ºæ–‡æœ¬
     *
     * @param text æ˜¾ç¤ºæ–‡æœ¬
     */
    public void setText(String text) {
        this.text = text;
    }
    /**
     * æž„造函数
     *
     * @param value å€¼
     * @param text  æ˜¾ç¤ºæ–‡æœ¬
     */
    private sysIntegrationPushTypeEnum(String value, String text) {
        this.value = value;
        this.text = text;
    }
    /**
     * æ ¹æ®åç§°èŽ·å–å¯¹åº”çš„æžšä¸¾å€¼
     *
     * @param text åç§°
     * @return æžšä¸¾å€¼
     */
    public static String getValueByText(String text) {
        for (sysIntegrationPushTypeEnum wenum : sysIntegrationPushTypeEnum.values()) {
            if (wenum.getText().equalsIgnoreCase(text)) {
                return wenum.getValue();
            }
        }
        return "";
    }
    /**
     * æ ¹æ®æžšä¸¾å€¼èŽ·å–åç§°
     *
     * @param value æžšä¸¾å€¼
     * @return åç§°
     */
    public static String getTextByValue(String value) {
        for (sysIntegrationPushTypeEnum wenum : sysIntegrationPushTypeEnum.values()) {
            if (wenum.getValue().equalsIgnoreCase(value)) {
                return wenum.getText();
            }
        }
        return "";
    }
    /**
     * æ ¹æ®æžšä¸¾å€¼èŽ·å–æžšä¸¾å¯¹è±¡
     *
     * @param value æžšä¸¾å€¼
     * @return æžšä¸¾å¯¹è±¡ï¼Œä¸å­˜åœ¨æ—¶å€™è¿”回null
     */
    public static sysIntegrationPushTypeEnum forValue(String value) {
        for (sysIntegrationPushTypeEnum wenum : sysIntegrationPushTypeEnum.values()) {
            if (wenum.getValue().equalsIgnoreCase(value)) {
                return wenum;
            }
        }
        return null;
    }
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/lifecycle/CodeAllCodeLC.java
@@ -2,10 +2,10 @@
import com.vci.frameworkcore.constant.FrameWorkDefaultValueConstant;
import com.vci.mdm.constant.MdmLifeCycleConstant;
import com.vci.starter.web.annotation.VciLifeCycle;
import com.vci.starter.web.annotation.VciLifeCycleTrans;
import com.vci.starter.web.enumpck.BaseEnum;
import org.springblade.code.constant.MdmLifeCycleConstant;
/**
 * å…¨éƒ¨çš„码值的生命周期
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/lifecycle/CodeClassifyTemplateLC.java
@@ -2,10 +2,10 @@
import com.vci.frameworkcore.constant.FrameWorkDefaultValueConstant;
import com.vci.mdm.constant.MdmLifeCycleConstant;
import com.vci.starter.web.annotation.VciLifeCycle;
import com.vci.starter.web.annotation.VciLifeCycleTrans;
import com.vci.starter.web.enumpck.BaseEnum;
import org.springblade.code.constant.MdmLifeCycleConstant;
/**
 * åˆ†ç±»æ¨¡æ¿çš„生命周期
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/lifecycle/CodeDefaultLC.java
@@ -2,10 +2,10 @@
import com.vci.frameworkcore.constant.FrameWorkDefaultValueConstant;
import com.vci.mdm.constant.MdmLifeCycleConstant;
import com.vci.starter.web.annotation.VciLifeCycle;
import com.vci.starter.web.annotation.VciLifeCycleTrans;
import com.vci.starter.web.enumpck.BaseEnum;
import org.springblade.code.constant.MdmLifeCycleConstant;
/**
 * ä¸»é¢˜åº“数据的默认生命周期
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/lifecycle/CodeRuleLC.java
@@ -2,10 +2,10 @@
import com.vci.frameworkcore.constant.FrameWorkDefaultValueConstant;
import com.vci.mdm.constant.MdmLifeCycleConstant;
import com.vci.starter.web.annotation.VciLifeCycle;
import com.vci.starter.web.annotation.VciLifeCycleTrans;
import com.vci.starter.web.enumpck.BaseEnum;
import org.springblade.code.constant.MdmLifeCycleConstant;
/**
 * ç¼–码规则的生命周期
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/model/CodeRuleDO.java
@@ -1,11 +1,11 @@
package org.springblade.code.model;
import com.vci.frameworkcore.constant.FrameWorkDefaultValueConstant;
import org.springblade.code.constant.MdmBtmTypeConstant;
import com.vci.mdm.constant.MdmLifeCycleConstant;
import com.vci.starter.web.annotation.Column;
import com.vci.starter.web.annotation.VciBtmType;
import com.vci.starter.web.model.BaseModel;
import org.springblade.code.constant.MdmBtmTypeConstant;
import org.springblade.code.constant.MdmLifeCycleConstant;
/**
 * ç¼–码规则
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/model/DockingDataDO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,148 @@
package org.springblade.code.model;
import com.vci.starter.web.annotation.Column;
import com.vci.starter.web.annotation.VciBtmType;
import com.vci.starter.web.constant.FrameWorkLcStatusConstant;
import com.vci.starter.web.model.BaseModel;
import org.springblade.code.constant.MdmBtmTypeConstant;
/**
 * è¦æŽ¨é€å¾—数据
 * @author wangyi
 * @date 2022-10-7
 */
@VciBtmType(name = MdmBtmTypeConstant.DOCKING_DATA,text = "资源对接通知、查询接口待推送任务",lifeCycle = FrameWorkLcStatusConstant.EMTYPE_LIFE_CYCLE)
public class DockingDataDO extends BaseModel {
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = 5020487634341415429L;
    /**
     * uniquecode
     */
    @Column(columnDefinition = "uniquecode")
    private String uniquecode;
    /**
     * ç³»ç»ŸæŽ¥å£oid
     */
    @Column(columnDefinition = "分类oid")
    private String classifyoid;
    /**
     * ç³»ç»Ÿid
     */
    @Column(columnDefinition = "业务类型oid")
    private String btmoid;
    /**
     * ç³»ç»Ÿid
     */
    @Column(columnDefinition = "业务类型id")
    private String btmid;
    /**
     * ç³»ç»Ÿid
     */
    @Column(columnDefinition = "推送类型")
    private String sendtype;
    /**
     * ç³»ç»Ÿid
     */
    @Column(columnDefinition = "是否分解任务")
    private String sendflag;
    /**
     * ç³»ç»Ÿid
     */
    @Column(columnDefinition = "分类id")
    private String classifyid;
    /**
     * ç³»ç»Ÿid
     */
    @Column(columnDefinition = "分类名称")
    private String classifyname;
    public String getUniquecode() {
        return uniquecode;
    }
    public void setUniquecode(String uniquecode) {
        this.uniquecode = uniquecode;
    }
    public String getClassifyoid() {
        return classifyoid;
    }
    public void setClassifyoid(String classifyoid) {
        this.classifyoid = classifyoid;
    }
    public String getBtmoid() {
        return btmoid;
    }
    public void setBtmoid(String btmoid) {
        this.btmoid = btmoid;
    }
    public String getBtmid() {
        return btmid;
    }
    public void setBtmid(String btmid) {
        this.btmid = btmid;
    }
    public String getSendtype() {
        return sendtype;
    }
    public void setSendtype(String sendtype) {
        this.sendtype = sendtype;
    }
    public String getSendflag() {
        return sendflag;
    }
    public void setSendflag(String sendflag) {
        this.sendflag = sendflag;
    }
    public String getClassifyid() {
        return classifyid;
    }
    public void setClassifyid(String classifyid) {
        this.classifyid = classifyid;
    }
    public String getClassifyname() {
        return classifyname;
    }
    public void setClassifyname(String classifyname) {
        this.classifyname = classifyname;
    }
    @Override
    public String toString() {
        return "DockingDataDO{" +
                "classifyoid='" + classifyoid + '\'' +
                ", uniquecode='" + uniquecode + '\'' +
                ", btmoid='" + btmoid + '\'' +
                ", btmid='" + btmid + '\'' +
                ", sendtype='" + sendtype + '\'' +
                ", sendflag='" + sendflag + '\'' +
                ", classifyid='" + classifyid + '\'' +
                ", classifyname='" + classifyname + '\'' +
                '}';
    }
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/model/DockingLogeDO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,228 @@
package org.springblade.code.model;
import com.vci.starter.web.annotation.Column;
import com.vci.starter.web.annotation.VciBtmType;
import com.vci.starter.web.annotation.VciFieldType;
import com.vci.starter.web.constant.FrameWorkLcStatusConstant;
import com.vci.starter.web.model.BaseModel;
import org.springblade.code.constant.MdmBtmTypeConstant;
import static com.vci.starter.web.enumpck.VciFieldTypeEnum.VTClob;
/**
 * èµ„源对接通知、查询接口日志
 * @author wangyi
 * @date 2022-3-7
 */
@VciBtmType(name = MdmBtmTypeConstant.DOCKING_LOGE,text = "资源对接通知、查询接口日志",lifeCycle = FrameWorkLcStatusConstant.EMTYPE_LIFE_CYCLE)
public class DockingLogeDO extends BaseModel {
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = 5020487634341415429L;
    /**
     * ç³»ç»Ÿid
     */
    @Column(nullable = false,columnDefinition = "系统id")
    private String systemoid;
    /**
     * ç³»ç»Ÿç¼–号
     */
    @Column(nullable = false,columnDefinition = "系统编号")
    private String systemcode;
    /**
     * ç³»ç»Ÿåç§°
     */
    @Column(nullable = false,columnDefinition = "系统名称")
    private String systemname;
    /**
     * åˆ†ç±»oid
     */
    @Column(nullable = false,columnDefinition = "分类oid")
    private String classifyoid;
    /**
     * åˆ†ç±»id
     */
    @Column(nullable = false,columnDefinition = "分类id")
    private String classifyid;
    /**
     * åˆ†ç±»name
     */
    @Column(nullable = false,columnDefinition = "分类name")
    private String classifyname;
    /**
     * å”¯ä¸€æ ‡è¯†
     */
    @Column(columnDefinition = "唯一标识")
    private String uniquecode;
    /**
     * æŽ¥å£ç±»åž‹ï¼šæŽ¨é€æŽ¥å£/查询接口,暂时不用
     */
    @Column(columnDefinition = "接口类型")
    private String type;
    /**
     * è¿”还提示
     */
    @Column(columnDefinition = "返还提示")
    private String msg;
    /**
     * å‚数:通知接口是我们传出的参数/查询接口是别人传入的参数
     */
    @VciFieldType(VTClob)
    @Column(columnDefinition = "参数")
    private String paramstring;
    /**
     * ä¼ é€’xml
     */
    @Column(columnDefinition = "传递xml",length = 4000)
    private String sendXml;
    /**
     * è¿”回:通知接口是我们收到的反馈,查询接口是别人收到的反馈
     */
    @VciFieldType(VTClob)
    @Column(columnDefinition = "返回")
    private String returnstring;
    /**
     * æŽ¥å£çŠ¶æ€ï¼šæˆåŠŸ/失败
     */
    @Column(nullable = false,columnDefinition = "接口状态")
    private String interfacestatus;
    private Object MdmBtmTypeConstant;
    public String getUniquecode() {
        return uniquecode;
    }
    public void setUniquecode(String uniquecode) {
        this.uniquecode = uniquecode;
    }
    public String getSendXml() {
        return sendXml;
    }
    public void setSendXml(String sendXml) {
        this.sendXml = sendXml;
    }
    public String getMsg() {
        return msg;
    }
    public void setMsg(String msg) {
        this.msg = msg;
    }
    public String getSystemoid() {
        return systemoid;
    }
    public void setSystemoid(String systemoid) {
        this.systemoid = systemoid;
    }
    public String getSystemcode() {
        return systemcode;
    }
    public void setSystemcode(String systemcode) {
        this.systemcode = systemcode;
    }
    public String getSystemname() {
        return systemname;
    }
    public void setSystemname(String systemname) {
        this.systemname = systemname;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    public String getParamstring() {
        return paramstring;
    }
    public void setParamstring(String paramstring) {
        this.paramstring = paramstring;
    }
    public String getReturnstring() {
        return returnstring;
    }
    public void setReturnstring(String returnstring) {
        this.returnstring = returnstring;
    }
    public String getInterfacestatus() {
        return interfacestatus;
    }
    public void setInterfacestatus(String interfacestatus) {
        this.interfacestatus = interfacestatus;
    }
    public String getClassifyoid() {
        return classifyoid;
    }
    public void setClassifyoid(String classifyoid) {
        this.classifyoid = classifyoid;
    }
    public String getClassifyid() {
        return classifyid;
    }
    public void setClassifyid(String classifyid) {
        this.classifyid = classifyid;
    }
    public String getClassifyname() {
        return classifyname;
    }
    public void setClassifyname(String classifyname) {
        this.classifyname = classifyname;
    }
    @Override
    public String toString() {
        return "DockingLogeDO{" +
                "systemoid='" + systemoid + '\'' +
                ", uniquecode='" + uniquecode + '\'' +
                ", systemcode='" + systemcode + '\'' +
                ", systemname='" + systemname + '\'' +
                ", classifyoid='" + classifyoid + '\'' +
                ", classifyid='" + classifyid + '\'' +
                ", classifyname='" + classifyname + '\'' +
                ", type='" + type + '\'' +
                ", msg='" + msg + '\'' +
                ", paramstring='" + paramstring + '\'' +
                ", sendXml='" + sendXml + '\'' +
                ", returnstring='" + returnstring + '\'' +
                ", interfacestatus='" + interfacestatus + '\'' +
                '}';
    }
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/model/DockingPreApplyDataDO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,266 @@
package org.springblade.code.model;
import com.vci.starter.web.annotation.Column;
import com.vci.starter.web.annotation.VciBtmType;
import com.vci.starter.web.constant.FrameWorkLcStatusConstant;
import com.vci.starter.web.model.BaseModel;
import org.springblade.code.constant.MdmBtmTypeConstant;
/**
 * è®°å½•工艺推送过来的数据信息,和DockingPSMDataInfoDO一对多的关系
 * @author wangyi
 * @date 2022-3-7
 */
@VciBtmType(name = MdmBtmTypeConstant.DOCKING_PRE_APPLY_DATA,text = "记录工艺推送过来的数据信息",lifeCycle = FrameWorkLcStatusConstant.EMTYPE_LIFE_CYCLE)
public class DockingPreApplyDataDO extends BaseModel {
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = 5020487634341415429L;
    /**
     * ç”³è¯·oid
     */
    @Column(nullable = false,columnDefinition = "申请oid")
    private String preapplyoid;
    /**
     * å”¯ä¸€æ ‡è¯†ï¼Œå·¥è‰ºé‡Œè¾¹çš„图号
     */
    @Column(nullable = false,columnDefinition = "唯一标识")
    private String uniquecode;
    /**
     * ä¸»é¢˜åº“编号
     */
    @Column(nullable = false,columnDefinition = "主题库编号")
    private String type;
    /**
     * ç³»ç»Ÿç¼–号
     */
    @Column(nullable = false,columnDefinition = "系统编号")
    private String systemid;
    /**
     * æ­£åœ¨ä½¿ç”¨æ ‡å¿—
     */
    @Column(nullable = true,columnDefinition = "正在使用标志")
    private String useddflag;
    /**
     * å…³è”分类操作过后,记录的关联分类oid
     */
    @Column(columnDefinition = "关联分类oid")
    private String classifyoid;
    /**
     * å…³è”分类操作过后,记录的关联分类名称
     */
    @Column(columnDefinition = "关联分类名称")
    private String classifyname;
    /**
     * ç”³è¯·æˆåŠŸåŽçš„ç¼–ç ,或者已经存在的编码
     */
    @Column(columnDefinition = "是否完成申请编码")
    private String num;
    /**
     * è§„格型号
     */
    @Column(columnDefinition = "规格型号")
    private String model;
    /**
     * é›¶ä»¶ç±»åž‹
     */
    @Column(columnDefinition = "零件类型")
    private String parttype;
    /**
     * è®¡é‡å•位
     */
    @Column(columnDefinition = "计量单位")
    private String unit;
    /**
     * å•重
     */
    @Column(columnDefinition = "单重")
    private String weight;
    /**
     * æ˜¯å¦é‡è¦ä»¶
     */
    @Column(columnDefinition = "是否重要件")
    private String importantPart;
    /**
     * æ˜¯å¦å…³é”®ä»¶
     */
    @Column(columnDefinition = "是否关键件")
    private String keyPart;
    /**
     * æ•°æ®å¤„理返回状态码
     */
    @Column(columnDefinition = "数据处理返回状态码")
    private String datacode;
    /**
     * æ•°æ®å¤„理返回信息
     */
    @Column(columnDefinition = "数据处理返回信息")
    private String datamsg;
    private Object MdmBtmTypeConstant;
    public String getUniquecode() {
        return uniquecode;
    }
    public void setUniquecode(String unique) {
        this.uniquecode = unique;
    }
    public String getClassifyoid() {
        return classifyoid;
    }
    public void setClassifyoid(String classifyoid) {
        this.classifyoid = classifyoid;
    }
    public String getUseddflag() {
        return useddflag;
    }
    public void setUseddflag(String useddflag) {
        this.useddflag = useddflag;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    public String getSystemid() {
        return systemid;
    }
    public void setSystemid(String systemid) {
        this.systemid = systemid;
    }
    public String getClassifyname() {
        return classifyname;
    }
    public void setClassifyname(String classifyname) {
        this.classifyname = classifyname;
    }
    public String getNum() {
        return num;
    }
    public void setNum(String num) {
        this.num = num;
    }
    public String getDatacode() {
        return datacode;
    }
    public void setDatacode(String datacode) {
        this.datacode = datacode;
    }
    public String getDatamsg() {
        return datamsg;
    }
    public void setDatamsg(String datamsg) {
        this.datamsg = datamsg;
    }
    public String getPreapplyoid() {
        return preapplyoid;
    }
    public void setPreapplyoid(String preapplyoid) {
        this.preapplyoid = preapplyoid;
    }
    public String getModel() {
        return model;
    }
    public void setModel(String model) {
        this.model = model;
    }
    public String getParttype() {
        return parttype;
    }
    public void setParttype(String parttype) {
        this.parttype = parttype;
    }
    public String getUnit() {
        return unit;
    }
    public void setUnit(String unit) {
        this.unit = unit;
    }
    public String getWeight() {
        return weight;
    }
    public void setWeight(String weight) {
        this.weight = weight;
    }
    public String getImportantPart() {
        return importantPart;
    }
    public void setImportantPart(String importantPart) {
        this.importantPart = importantPart;
    }
    public String getKeyPart() {
        return keyPart;
    }
    public void setKeyPart(String keyPart) {
        this.keyPart = keyPart;
    }
    @Override
    public String toString() {
        return "DockingPreApplyDataDO{" +
                "preapplyoid='" + preapplyoid + '\'' +
                ", uniquecode='" + uniquecode + '\'' +
                ", type='" + type + '\'' +
                ", systemid='" + systemid + '\'' +
                ", useddflag='" + useddflag + '\'' +
                ", classifyoid='" + classifyoid + '\'' +
                ", classifyname='" + classifyname + '\'' +
                ", num='" + num + '\'' +
                ", model='" + model + '\'' +
                ", parttype='" + parttype + '\'' +
                ", unit='" + unit + '\'' +
                ", weight='" + weight + '\'' +
                ", importantPart='" + importantPart + '\'' +
                ", keyPart='" + keyPart + '\'' +
                ", datacode='" + datacode + '\'' +
                ", datamsg='" + datamsg + '\'' +
                "} " + super.toString();
    }
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/model/DockingPreApplyDataInfoDO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,103 @@
package org.springblade.code.model;
import com.vci.starter.web.annotation.Column;
import com.vci.starter.web.annotation.VciBtmType;
import com.vci.starter.web.constant.FrameWorkLcStatusConstant;
import com.vci.starter.web.model.BaseModel;
import org.springblade.code.constant.MdmBtmTypeConstant;
/**
 * è®°å½•工艺推送过来的数据信息
 * @author wangyi
 * @date 2022-3-7
 */
@VciBtmType(name = MdmBtmTypeConstant.DOCKING_PRE_APPLY_DATA_INFO,text = "记录工艺推送过来的数据信息",lifeCycle = FrameWorkLcStatusConstant.EMTYPE_LIFE_CYCLE)
public class DockingPreApplyDataInfoDO extends BaseModel {
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = 5020487634341415429L;
    /**
     * data的oid
     */
    @Column(nullable = false,columnDefinition = "data的oid")
    private String dataoid;
    /**
     * å”¯ä¸€æ ‡è¯†ï¼Œå·¥è‰ºé‡Œè¾¹çš„图号
     */
    @Column(nullable = false,columnDefinition = "唯一标识")
    private String uniquecode;
    /**
     * å±žæ€§key
     */
    @Column(nullable = true,columnDefinition = "属性key")
    private String key;
    /**
     * å±žæ€§key含义
     */
    @Column(nullable = true,columnDefinition = "属性key含义")
    private String mean;
    /**
     * å±žæ€§value
     */
    @Column(nullable = true,columnDefinition = "属性value",length = 4000)
    private String value;
    public String getDataoid() {
        return dataoid;
    }
    public void setDataoid(String dataoid) {
        this.dataoid = dataoid;
    }
    public String getUniquecode() {
        return uniquecode;
    }
    public void setUniquecode(String uniquecode) {
        this.uniquecode = uniquecode;
    }
    public String getKey() {
        return key;
    }
    public void setKey(String key) {
        this.key = key;
    }
    public String getMean() {
        return mean;
    }
    public void setMean(String mean) {
        this.mean = mean;
    }
    public String getValue() {
        return value;
    }
    public void setValue(String value) {
        this.value = value;
    }
    @Override
    public String toString() {
        return "DockingPSMDataInfoDO{" +
                "dataoid='" + dataoid + '\'' +
                ", uniquecode='" + uniquecode + '\'' +
                ", key='" + key + '\'' +
                ", mean='" + mean + '\'' +
                ", value='" + value + '\'' +
                '}';
    }
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/model/DockingPreAttrMappingDO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,207 @@
package org.springblade.code.model;
import com.vci.starter.web.annotation.Column;
import com.vci.starter.web.annotation.VciBtmType;
import com.vci.starter.web.constant.FrameWorkLcStatusConstant;
import com.vci.starter.web.model.BaseModel;
import org.springblade.code.constant.MdmBtmTypeConstant;
/**
 * è®°å½•集成属性与主数据属性映射关系对象
 * @author xiejun
 * @date 2023-01-06
 */
@VciBtmType(name = MdmBtmTypeConstant.DOCKING_PRE_JINTEGMAPCONFIG,text = "集成属性映射关系对象",lifeCycle = FrameWorkLcStatusConstant.EMTYPE_LIFE_CYCLE)
public class DockingPreAttrMappingDO  extends BaseModel {
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = 6020487634341415429L;
    /***
     * é»˜è®¤å€¼
     */
    @Column(nullable = true,columnDefinition = "默认值")
    private String jdefaultValue;
    /***
     * é»˜è®¤å€¼
     */
    /**
     * æ­£åœ¨ä½¿ç”¨æ ‡å¿—
     */
    @Column(nullable = true,columnDefinition = "源系统的属性oid")
    private String jmetaListId;
    /**
     * æºåˆ†ç±»id
     */
    @Column(nullable = false,columnDefinition = "源系统的分类oid")
    private  String jsourceClsfId;
    /**
     * æºåˆ†ç±»åç§°
     */
    @Column(nullable = true,columnDefinition = "源系统的分类名称")
    private String jsourceClsfName;
    /**
     * æºå±žæ€§oid
     */
    @Column(nullable = true,columnDefinition = "目标系统属性系id")
    private String jtargetAttrId;
    /**
     * ç›®æ ‡å±žæ€§oid
     */
    @Column(nullable = true,columnDefinition = "目标系统分类oid")
    private String jtargetClsfId;
    /***
     * æ¨¡æ¿Id
     */
    @Column(nullable = true,columnDefinition = "模板视图的oid")
    private String jviewModeId;
    /***
     * æ¨¡æ¿åç§°
     */
    @Column(nullable = true,columnDefinition = "模板名称")
    private String jviewModeName;
    /***
     * ç›®æ ‡å±žæ€§å†…部名称
     */
    @Column(nullable = true,columnDefinition = "目标系统属性内部值")
    private String jtargetAttrKey;
    /***
     * ç›®æ ‡å±žæ€§åç§°
     */
    @Column(nullable = true,columnDefinition = "目标系统属性名称")
    private String jtargetAttrName;
    /***
     * ç›®æ ‡å±žæ€§å†…部名称
     */
    @Column(nullable = false,columnDefinition = "源系统属性内部名称")
    private String jsourceAttrKey;
    /***
     * ç›®æ ‡å±žæ€§åç§°
     */
    @Column(nullable = false,columnDefinition = "源系统属性名称")
    private String jsourceAttrName;
    public String getJdefaultValue() {
        return jdefaultValue;
    }
    public void setJdefaultValue(String jdefaultValue) {
        this.jdefaultValue = jdefaultValue;
    }
    public String getJmetaListId() {
        return jmetaListId;
    }
    public void setJmetaListId(String jmetaListId) {
        this.jmetaListId = jmetaListId;
    }
    public String getJsourceClsfId() {
        return jsourceClsfId;
    }
    public void setJsourceClsfId(String jsourceClsfId) {
        this.jsourceClsfId = jsourceClsfId;
    }
    public String getJsourceClsfName() {
        return jsourceClsfName;
    }
    public void setJsourceClsfName(String jsourceClsfName) {
        this.jsourceClsfName = jsourceClsfName;
    }
    public String getJtargetAttrId() {
        return jtargetAttrId;
    }
    public void setJtargetAttrId(String jtargetAttrId) {
        this.jtargetAttrId = jtargetAttrId;
    }
    public String getJtargetClsfId() {
        return jtargetClsfId;
    }
    public void setJtargetClsfId(String jtargetClsfId) {
        this.jtargetClsfId = jtargetClsfId;
    }
    public String getJviewModeId() {
        return jviewModeId;
    }
    public void setJviewModeId(String jviewModeId) {
        this.jviewModeId = jviewModeId;
    }
    public String getJviewModeName() {
        return jviewModeName;
    }
    public void setJviewModeName(String jviewModeName) {
        this.jviewModeName = jviewModeName;
    }
    public String getJtargetAttrKey() {
        return jtargetAttrKey;
    }
    public void setJtargetAttrKey(String jtargetAttrKey) {
        this.jtargetAttrKey = jtargetAttrKey;
    }
    public String getJtargetAttrName() {
        return jtargetAttrName;
    }
    public void setJtargetAttrName(String jtargetAttrName) {
        this.jtargetAttrName = jtargetAttrName;
    }
    public String getJsourceAttrKey() {
        return jsourceAttrKey;
    }
    public void setJsourceAttrKey(String jsourceAttrKey) {
        this.jsourceAttrKey = jsourceAttrKey;
    }
    public String getJsourceAttrName() {
        return jsourceAttrName;
    }
    public void setJsourceAttrName(String jsourceAttrName) {
        this.jsourceAttrName = jsourceAttrName;
    }
    @Override
    public String toString() {
        return "DockingPreAttrMappingDO{" +
                "jdefaultValue='" + jdefaultValue + '\'' +
                ", jmetaListId='" + jmetaListId + '\'' +
                ", jsourceClsfId='" + jsourceClsfId + '\'' +
                ", jsourceClsfName='" + jsourceClsfName + '\'' +
                ", jtargetAttrId='" + jtargetAttrId + '\'' +
                ", jtargetClsfId='" + jtargetClsfId + '\'' +
                ", jviewModeId='" + jviewModeId + '\'' +
                ", jviewModeName='" + jviewModeName + '\'' +
                ", jtargetAttrKey='" + jtargetAttrKey + '\'' +
                ", jtargetAttrName='" + jtargetAttrName + '\'' +
                ", jsourceAttrKey='" + jsourceAttrKey + '\'' +
                ", jsourceAttrName='" + jsourceAttrName + '\'' +
                '}';
    }
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/model/DockingPreAttrRangeDO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,95 @@
package org.springblade.code.model;
import com.vci.starter.web.annotation.Column;
import com.vci.starter.web.annotation.VciBtmType;
import com.vci.starter.web.constant.FrameWorkLcStatusConstant;
import com.vci.starter.web.model.BaseModel;
import org.springblade.code.constant.MdmBtmTypeConstant;
@VciBtmType(name = MdmBtmTypeConstant.DOCKING_PRE_JRANGE,text = "集成属性取值范围对象",lifeCycle = FrameWorkLcStatusConstant.EMTYPE_LIFE_CYCLE)
public class DockingPreAttrRangeDO extends BaseModel {
     /**
         * åºåˆ—化
         */
     private static final long serialVersionUID = 6020487634341415410L;
    /***
     *属性id
     */
    @Column(nullable = false,columnDefinition = "属性oid")
    private String jmetaListId;
    /**
     * å±žæ€§æžšä¸¾æ˜¾ç¤ºåç§°
     */
    @Column(nullable = false,columnDefinition = "源属性枚举显示名称")
    private  String jnumText;
    /**
     * å±žæ€§æžšä¸¾å†…部名称
     */
    @Column(nullable = false,columnDefinition = "源属性枚举内部名称")
    private String jnumTextValue;
    /**
     * æºå±žæ€§æžšä¸¾æ˜¾ç¤ºåç§°
     */
    @Column(nullable = true,columnDefinition = "属性枚举显示名称")
    private  String jtargeNumText;
    /**
     * æºå±žæ€§æžšä¸¾å†…部名称
     */
    @Column(nullable = false,columnDefinition = "属性枚举内部名称")
    private String jtargeNumTextValue;
    public String getJmetaListId() {
        return jmetaListId;
    }
    public void setJmetaListId(String jmetaListId) {
        this.jmetaListId = jmetaListId;
    }
    public String getJnumText() {
        return jnumText;
    }
    public void setJnumText(String jnumText) {
        this.jnumText = jnumText;
    }
    public String getJnumTextValue() {
        return jnumTextValue;
    }
    public void setJnumTextValue(String jnumTextValue) {
        this.jnumTextValue = jnumTextValue;
    }
    public String getJtargeNumText() {
        return jtargeNumText;
    }
    public void setJtargeNumText(String jtargeNumText) {
        this.jtargeNumText = jtargeNumText;
    }
    public String getJtargeNumTextValue() {
        return jtargeNumTextValue;
    }
    public void setJtargeNumTextValue(String jtargeNumTextValue) {
        this.jtargeNumTextValue = jtargeNumTextValue;
    }
    @Override
    public String toString() {
        return "DockingPreAttrRangeDO{" +
                "jmetaListId='" + jmetaListId + '\'' +
                ", jnumText='" + jnumText + '\'' +
                ", jnumTextValue='" + jnumTextValue + '\'' +
                ", jtargeNumText='" + jtargeNumText + '\'' +
                ", jtargeNumTextValue='" + jtargeNumTextValue + '\'' +
                '}';
    }
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/model/DockingTaskDO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,224 @@
package org.springblade.code.model;
import com.vci.starter.web.annotation.Column;
import com.vci.starter.web.annotation.VciBtmType;
import com.vci.starter.web.constant.FrameWorkLcStatusConstant;
import com.vci.starter.web.model.BaseModel;
import org.springblade.code.constant.MdmBtmTypeConstant;
/**
 * æ•°æ®å‘布、修改后,记录下需要通知的系统
 * æ¯”如:OA系统申请了人员这个分类的数据,人员这个分类下发布了一条新数据,需要把条数据推送给OA系统,会在这个业务类型下产生一条数据。然后定时器按时发送任务。
 * å¦‚果有两个系统申请了人员数据,就会产生两条数据
 * @author wangyi
 * @date 2022-3-7
 */
@VciBtmType(name = MdmBtmTypeConstant.DOCKING_TASK,text = "资源对接通知、查询接口待推送任务",lifeCycle = FrameWorkLcStatusConstant.EMTYPE_LIFE_CYCLE)
public class DockingTaskDO extends BaseModel {
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = 5020487634341415429L;
    /**
     * ç³»ç»ŸæŽ¥å£oid
     */
    @Column(nullable = false,columnDefinition = "系统接口oid")
    private String sysinfooid;
    /**
     * ç³»ç»Ÿid
     */
    @Column(nullable = false,columnDefinition = "系统oid")
    private String systemoid;
    /**
     * ç³»ç»Ÿç¼–号
     */
    @Column(nullable = false,columnDefinition = "系统编号")
    private String systemcode;
    /**
     * ç³»ç»Ÿåç§°
     */
    @Column(nullable = false,columnDefinition = "系统名称")
    private String systemname;
    /**
     * åˆ†ç±»oid
     */
    @Column(nullable = false,columnDefinition = "分类oid")
    private String classifyoid;
    /**
     * åˆ†ç±»id
     */
    @Column(nullable = false,columnDefinition = "分类id")
    private String classifyid;
    /**
     * åˆ†ç±»åç§°
     */
    @Column(nullable = false,columnDefinition = "分类名称")
    private String classifyname;
    /**
     * ä¸šåŠ¡ç±»åž‹æ•°æ®oid
     */
    @Column(nullable = false,columnDefinition = "业务类型数据oid")
    private String btmoid;
    /**
     * ä¸šåŠ¡ç±»åž‹æ•°æ®id
     */
    @Column(nullable = false,columnDefinition = "业务类型数据id")
    private String btmid;
    /**
     * å”¯ä¸€æ ‡è¯†
     */
    @Column(columnDefinition = "唯一标识")
    private String uniquecode;
    /**
     * å‘送类型
     */
    @Column(nullable = false,columnDefinition = "发送类型")
    private String sendtype;
    /**
     * æ˜¯å¦å‘送成功
     */
    @Column(nullable = false,columnDefinition = "是否发送成功")
    private String sendflag;
    /**
     * dockingdata的oid
     */
    @Column(nullable = false,columnDefinition = "dockingdata的oid")
    private String dataoid;
    public String getSendtype() {
        return sendtype;
    }
    public void setSendtype(String sendtype) {
        this.sendtype = sendtype;
    }
    public String getSystemoid() {
        return systemoid;
    }
    public void setSystemoid(String systemoid) {
        this.systemoid = systemoid;
    }
    public String getSystemcode() {
        return systemcode;
    }
    public void setSystemcode(String systemcode) {
        this.systemcode = systemcode;
    }
    public String getSystemname() {
        return systemname;
    }
    public void setSystemname(String systemname) {
        this.systemname = systemname;
    }
    public String getClassifyoid() {
        return classifyoid;
    }
    public void setClassifyoid(String classifyoid) {
        this.classifyoid = classifyoid;
    }
    public String getClassifyid() {
        return classifyid;
    }
    public void setClassifyid(String classifyid) {
        this.classifyid = classifyid;
    }
    public String getClassifyname() {
        return classifyname;
    }
    public void setClassifyname(String classifyname) {
        this.classifyname = classifyname;
    }
    public String getBtmoid() {
        return btmoid;
    }
    public void setBtmoid(String btmoid) {
        this.btmoid = btmoid;
    }
    public String getBtmid() {
        return btmid;
    }
    public void setBtmid(String btmid) {
        this.btmid = btmid;
    }
    public String getSendflag() {
        return sendflag;
    }
    public void setSendflag(String sendflag) {
        this.sendflag = sendflag;
    }
    public String getSysinfooid() {
        return sysinfooid;
    }
    public void setSysinfooid(String sysinfooid) {
        this.sysinfooid = sysinfooid;
    }
    public String getUniquecode() {
        return uniquecode;
    }
    public void setUniquecode(String uniquecode) {
        this.uniquecode = uniquecode;
    }
    public String getDataoid() {
        return dataoid;
    }
    public void setDataoid(String dataoid) {
        this.dataoid = dataoid;
    }
    @Override
    public String toString() {
        return "DockingTaskDO{" +
                "sysinfooid='" + sysinfooid + '\'' +
                ", systemoid='" + systemoid + '\'' +
                ", systemcode='" + systemcode + '\'' +
                ", systemname='" + systemname + '\'' +
                ", classifyoid='" + classifyoid + '\'' +
                ", classifyid='" + classifyid + '\'' +
                ", classifyname='" + classifyname + '\'' +
                ", btmoid='" + btmoid + '\'' +
                ", btmid='" + btmid + '\'' +
                ", sendflag='" + sendflag + '\'' +
                ", uniquecode='" + uniquecode + '\'' +
                ", sendtype='" + sendtype + '\'' +
                ", dataoid='" + dataoid + '\'' +
                '}';
    }
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/model/SysIntAuthorityDO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,159 @@
package org.springblade.code.model;
import com.vci.starter.web.annotation.Column;
import com.vci.starter.web.annotation.Transient;
import com.vci.starter.web.annotation.VciBtmType;
import com.vci.starter.web.annotation.VciUseEnum;
import com.vci.starter.web.constant.FrameWorkLcStatusConstant;
import com.vci.starter.web.model.BaseModel;
import org.springblade.code.constant.MdmBtmTypeConstant;
import org.springblade.code.constant.MdmEnumIdConstant;
/**
 * Description: ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证
 *
 * @author: LiHang
 * @date: Created on 2022/3/7
 */
@VciBtmType(name = MdmBtmTypeConstant.SYS_INT_AUTHORITY,text = "系统集成接口的认证",lifeCycle = FrameWorkLcStatusConstant.EMTYPE_LIFE_CYCLE,startStatus = FrameWorkLcStatusConstant.EMTYPE_LIFE_CYCLE)
public class SysIntAuthorityDO extends BaseModel {
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = 1144067849291882385L;
    /**
     * è®¤è¯ç¼–号
     */
    @Column(columnDefinition = "认证编号")
    private String id;
    /**
     * è®¤è¯åç§°
     */
    @Column(columnDefinition = "认证名称")
    private String name;
    /**
     * ç³»ç»Ÿæè¿°
     */
    @Column(columnDefinition = "认证描述")
    private String description;
    /**
     * è®¤è¯æ–¹å¼
     */
    @Column(columnDefinition = "认证方式",nullable = false)
    @VciUseEnum(value = MdmEnumIdConstant.SYS_INTEGRATION_AUTHORITY_TYPE,showTextField = "typeText")
    private String type;
    /**
     * è®¤è¯æ–¹å¼æ˜¾ç¤ºæ–‡æœ¬
     */
    @Transient()
    private String typeText;
    /**
     * éªŒè¯ç”¨æˆ·
     */
    @Column(columnDefinition = "验证用户")
    private String userAccount;
    /**
     * éªŒè¯å¯†ç 
     */
    @Column(columnDefinition = "验证密码")
    private String userCode;
    /**
     * éªŒè¯ä»¤ç‰Œ
     */
    @Column(columnDefinition = "验证令牌")
    private String token;
    @Override
    public String getId() {
        return id;
    }
    @Override
    public void setId(String id) {
        this.id = id;
    }
    @Override
    public String getName() {
        return name;
    }
    @Override
    public void setName(String name) {
        this.name = name;
    }
    @Override
    public String getDescription() {
        return description;
    }
    @Override
    public void setDescription(String description) {
        this.description = description;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    public String getTypeText() {
        return typeText;
    }
    public void setTypeText(String typeText) {
        this.typeText = typeText;
    }
    public String getUserAccount() {
        return userAccount;
    }
    public void setUserAccount(String userAccount) {
        this.userAccount = userAccount;
    }
    public String getUserCode() {
        return userCode;
    }
    public void setUserCode(String userCode) {
        this.userCode = userCode;
    }
    public String getToken() {
        return token;
    }
    public void setToken(String token) {
        this.token = token;
    }
    @Override
    public String toString() {
        return "SysIntegrationAuthorityDO{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", description='" + description + '\'' +
                ", type='" + type + '\'' +
                ", typeText='" + typeText + '\'' +
                ", userAccount='" + userAccount + '\'' +
                ", userCode='" + userCode + '\'' +
                ", token='" + token + '\'' +
                '}' + super.toString();
    }
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/model/SysIntBaseDO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,78 @@
package org.springblade.code.model;
import com.vci.starter.web.annotation.Column;
import com.vci.starter.web.annotation.VciBtmType;
import com.vci.starter.web.constant.FrameWorkLcStatusConstant;
import com.vci.starter.web.model.BaseModel;
import org.springblade.code.constant.MdmBtmTypeConstant;
/**
 * Description:系统集成的系统信息
 *
 * @author: LiHang
 * @date: Created on 2022/3/7
 */
@VciBtmType(name = MdmBtmTypeConstant.SYS_INT_BASE,text = "系统集成的系统信息",lifeCycle = FrameWorkLcStatusConstant.EMTYPE_LIFE_CYCLE,startStatus = FrameWorkLcStatusConstant.EMTYPE_LIFE_CYCLE)
public class SysIntBaseDO extends BaseModel {
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = -5910713918419137900L;
    /**
     * ç³»ç»Ÿç¼–号
     */
    @Column(columnDefinition = "系统编号",nullable = false)
    private String id;
    /**
     * ç³»ç»Ÿåç§°
     */
    @Column(columnDefinition = "系统名称",nullable = false)
    private String name;
    /**
     * ç³»ç»Ÿæè¿°
     */
    @Column(columnDefinition = "系统描述")
    private String description;
    @Override
    public String getId() {
        return id;
    }
    @Override
    public void setId(String id) {
        this.id = id;
    }
    @Override
    public String getName() {
        return name;
    }
    @Override
    public void setName(String name) {
        this.name = name;
    }
    @Override
    public String getDescription() {
        return description;
    }
    @Override
    public void setDescription(String description) {
        this.description = description;
    }
    @Override
    public String toString() {
        return "SysIntegrationBaseDO{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", description='" + description + '\'' +
                '}' + super.toString();
    }
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/model/SysIntHeaderDO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,90 @@
package org.springblade.code.model;
import com.vci.starter.web.annotation.Column;
import com.vci.starter.web.annotation.VciBtmType;
import com.vci.starter.web.constant.FrameWorkLcStatusConstant;
import com.vci.starter.web.model.BaseModel;
import org.springblade.code.constant.MdmBtmTypeConstant;
/**
 * Description: ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证
 *
 * @author: wangyi
 * @date: Created on 2022/3/7
 */
@VciBtmType(name = MdmBtmTypeConstant.SYS_INT_HEADER,text = "系统集成接口的认证",lifeCycle = FrameWorkLcStatusConstant.EMTYPE_LIFE_CYCLE,startStatus = FrameWorkLcStatusConstant.EMTYPE_LIFE_CYCLE)
public class SysIntHeaderDO extends BaseModel {
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = 1144067849291882385L;
    /**
     * SysIntInfoDO çš„oid
     */
    @Column(columnDefinition = "接口oid")
    private String infoOid;
    /**
     * å‚æ•°key
     */
    @Column(columnDefinition = "参数key")
    private String headerkey;
    /**
     * å‚æ•°value
     */
    @Column(columnDefinition = "参数value")
    private String headeralue;
    /**
     * æ˜¯å¦ä½¿ç”¨
     */
    @Column(columnDefinition = "是否使用")
    private String usedflag;
    public String getInfoOid() {
        return infoOid;
    }
    public void setInfoOid(String infoOid) {
        this.infoOid = infoOid;
    }
    public String getHeaderkey() {
        return headerkey;
    }
    public void setHeaderkey(String headerkey) {
        this.headerkey = headerkey;
    }
    public String getHeaderalue() {
        return headeralue;
    }
    public void setHeaderalue(String headeralue) {
        this.headeralue = headeralue;
    }
    public String getUsedflag() {
        return usedflag;
    }
    public void setUsedflag(String usedflag) {
        this.usedflag = usedflag;
    }
    @Override
    public String toString() {
        return "SysIntHeaderDO{" +
                "infoOid='" + infoOid + '\'' +
                ", headerkey='" + headerkey + '\'' +
                ", headeralue='" + headeralue + '\'' +
                ", usedflag='" + usedflag + '\'' +
                '}';
    }
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/model/SysIntInfoDO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,656 @@
package org.springblade.code.model;
import com.vci.starter.web.annotation.*;
import com.vci.starter.web.constant.FrameWorkLcStatusConstant;
import com.vci.starter.web.model.BaseModel;
import org.springblade.code.constant.MdmBtmTypeConstant;
import org.springblade.code.constant.MdmEnumIdConstant;
/**requesturl
 * Description: ç³»ç»Ÿé›†æˆæŽ¥å£åŸºç¡€ä¿¡æ¯
 *
 * @author LiHang
 * @date Created on 2022/3/7
 */
@VciBtmType(name = MdmBtmTypeConstant.SYS_INT_INFO,text = "系统集成基础信息",lifeCycle = FrameWorkLcStatusConstant.EMTYPE_LIFE_CYCLE,startStatus = FrameWorkLcStatusConstant.EMTYPE_LIFE_CYCLE)
public class SysIntInfoDO extends BaseModel {
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = -6867365039736279037L;
    /**
     * å¯ç”¨ã€åœç”¨true/false,不用平台的枚举,减少对平台的耦合
     */
    @Column(columnDefinition = "启用停用")
    private String usedflag;
    /**
     * åˆ†ç±»oid
     */
    @Column(columnDefinition = "分类oid")
    private String classifyoid;
    /**
     * åˆ†ç±»id
     */
    @Column(columnDefinition = "分类id")
    private String classifyid;
    /**
     * åˆ†ç±»åç§°
     */
    @Column(columnDefinition = "分类名称")
    private String classifyname;
    /**
     * æŽ¨é€ç³»ç»Ÿoid
     */
    @Column(columnDefinition = "推送系统oid")
    private String sysbaseoid;
    /**
     * æŽ¨é€ç³»ç»Ÿç¼–号
     */
    @Column(columnDefinition = "推送系统编号")
    private String sysbaseid;
    /**
     * æŽ¨é€ç³»ç»Ÿåç§°
     */
    @Column(columnDefinition = "推送系统名称")
    private String sysbasename;
    /**
     * æŽ¥å£å‡½æ•°
     */
    @Column(columnDefinition = "接口函数")
    private String interfaceFunction;
    /**
     * å‘½åç©ºé—´
     */
    @Column(columnDefinition = "命名空间")
    private String namespace;
    /**
     * soapAction
     */
    @Column(columnDefinition = "soapAction")
    private String soapaction;
    /**
     * å‚数名称
     */
    @Column(columnDefinition = "参数名称")
    private String targName;
    /**
     * cxfaxis
     */
    @Column(columnDefinition = "cxfaxis")
    private String cxfaxis;
    /**
     * è¯·æ±‚地址
     */
    @Column(columnDefinition = "请求地址")
    private String requestUrl;
    /**
     * æŽ¥å£ç±»åž‹
     */
    @Column(columnDefinition = "接口类型")
    @VciUseEnum(value = MdmEnumIdConstant.SYS_INTEGRATION_REQUEST_TYPE,showTextField = "interfaceTypeText")
    private String interfaceType;
    /**
     * æŽ¥å£ç±»åž‹æ˜¾ç¤ºæ–‡æœ¬
     */
    @Transient()
    private String interfaceTypeText;
    /**
     * å‚数类型
     */
    @Column(columnDefinition = "参数类型")
    @VciUseEnum(value = MdmEnumIdConstant.SYS_INTEGRATION_PARAM_AND_RETURN_TYPE,showTextField = "paramTypeText")
    private String paramType;
    /**
     * å‚数类型显示文本
     */
    @Transient()
    private String paramTypeText;
    /**
     * è¿”回值类型
     */
    @Column(columnDefinition = "返回值类型")
    @VciUseEnum(value = MdmEnumIdConstant.SYS_INTEGRATION_PARAM_AND_RETURN_TYPE,showTextField = "returnTypeText")
    private String returnType;
    /**
     * è¿”回值类型显示文本
     */
    @Transient()
    private String returnTypeText;
    //===================================以下暂时不用
    /**
     * å­˜å‚¨çš„业务类型
     */
    @Column(columnDefinition = "业务类型的编号")
    private String btmTypeId;
    /**
     * å­˜å‚¨çš„业务类型的中文名称
     */
    @Column(columnDefinition = "业务类型的名称")
    private String btmTypeName;
    /**
     * æ¥æºç³»ç»Ÿä¸»é”®
     */
    @Column(columnDefinition = "来源系统主键")
    @VciUseRefer(MdmBtmTypeConstant.SYS_INT_BASE)
    private String sourceSystemOid;
    /**
     * æºç³»ç»Ÿåç§°
     */
    //@Transient(referColumn = "sourceSystemOid.name")
    private String sourceSysName;
    /**
     * æºç³»ç»Ÿæ ‡è¯†
     */
    //@Transient(referColumn = "sourceSystemOid.id")
    private String sourceSysId;
    /**
     * ç›®æ ‡ç³»ç»Ÿä¸»é”®
     */
    @Column(columnDefinition = "目标系统主键")
    @VciUseRefer(MdmBtmTypeConstant.SYS_INT_BASE)
    private String targetSystemOid;
    /**
     * ç›®æ ‡ç³»ç»Ÿåç§°
     */
    //@Transient(referColumn = "targetSystemOid.name")
    private String targetSysName;
    /**
     * ç›®æ ‡ç³»ç»Ÿæ ‡è¯†
     */
    //@Transient(referColumn = "targetSystemOid.id")
    private String targetSysId;
    /**
     * è¯·æ±‚方式
     */
    @Column(columnDefinition = "请求方式")
    @VciUseEnum(value = MdmEnumIdConstant.SYS_INTEGRATION_REQUEST_METHOD_TYPE,showTextField = "requestMethodText")
    private String requestMethod;
    /**
     * è¯·æ±‚方式显示文本
     */
    @Transient()
    private String requestMethodText;
    /**
     * è®¤è¯æ–¹å¼ä¸»é”®
     */
    @Column(columnDefinition = "认证方式主键")
    @VciUseRefer(MdmBtmTypeConstant.SYS_INT_AUTHORITY)
    private String authorityOid;
    /**
     * è®¤è¯æ–¹å¼
     */
    @Transient(referColumn = "authorityOid.type")
    @VciUseEnum(value = MdmEnumIdConstant.SYS_INTEGRATION_AUTHORITY_TYPE,showTextField = "authorityTypeText")
    private String authorityType;
    /**
     * è®¤è¯æ–¹å¼æ˜¾ç¤ºæ–‡æœ¬
     */
    @Transient()
    private String authorityTypeText;
    /**
     * éªŒè¯ç”¨æˆ·
     */
    @Transient(referColumn = "authorityOid.userAccount")
    private String userAccount;
    /**
     * éªŒè¯å¯†ç 
     */
    @Transient(referColumn = "authorityOid.userCode")
    private String userCode;
    /**
     * éªŒè¯ä»¤ç‰Œ
     */
    @Transient(referColumn = "authorityOid.token")
    private String token;
    /**
     * æŽ¥å£æè¿°
     */
    @Column(columnDefinition = "接口描述")
    private String description;
    /**
     * ç±»è·¯å¾„
     */
    @Column(columnDefinition = "类路径")
    private String classPath;
    /**
     * æ•°æ®æµå‘方式
     */
    @Column(columnDefinition = "数据流向方式")
    @VciUseEnum(value = MdmEnumIdConstant.SYS_INTEGRATION_DATA_FLOW_TYPE,showTextField = "dataFlowTypeText")
    private String dataFlowType;
    /**
     * æ•°æ®æµå‘方式的显示字段
     */
    @Transient()
    private String dataFlowTypeText;
    /***
     * æŽ¨é€ç±»åž‹ 1:数据推送/2分类推送,默认数据推送
     */
    @Column(columnDefinition = "推送类型")
    @VciUseEnum(value = MdmEnumIdConstant.SYS_INTEGRATION_PUSH_TYPE,showTextField = "pushTypeText")
    private String pushType;
    /***
     * æŽ¨é€ç±»åž‹æ˜¾ç¤ºå€¼
     */
    @Transient()
    private String pushTypeText;
    public String getClassifyid() {
        return classifyid;
    }
    public void setClassifyid(String classifyid) {
        this.classifyid = classifyid;
    }
    public String getClassifyname() {
        return classifyname;
    }
    public void setClassifyname(String classifyname) {
        this.classifyname = classifyname;
    }
    public String getTargName() {
        return targName;
    }
    public void setTargName(String targName) {
        this.targName = targName;
    }
    public String getSoapaction() {
        return soapaction;
    }
    public void setSoapaction(String soapaction) {
        this.soapaction = soapaction;
    }
    public String getCxfaxis() {
        return cxfaxis;
    }
    public void setCxfaxis(String cxfaxis) {
        this.cxfaxis = cxfaxis;
    }
    public String getNamespace() {
        return namespace;
    }
    public void setNamespace(String namespace) {
        this.namespace = namespace;
    }
    public String getBtmTypeId() {
        return btmTypeId;
    }
    public void setBtmTypeId(String btmTypeId) {
        this.btmTypeId = btmTypeId;
    }
    public String getBtmTypeName() {
        return btmTypeName;
    }
    public void setBtmTypeName(String btmTypeName) {
        this.btmTypeName = btmTypeName;
    }
    public String getClassPath() {
        return classPath;
    }
    public void setClassPath(String classPath) {
        this.classPath = classPath;
    }
    @Override
    public String getDescription() {
        return description;
    }
    @Override
    public void setDescription(String description) {
        this.description = description;
    }
    public String getSourceSystemOid() {
        return sourceSystemOid;
    }
    public void setSourceSystemOid(String sourceSystemOid) {
        this.sourceSystemOid = sourceSystemOid;
    }
    public String getSourceSysName() {
        return sourceSysName;
    }
    public void setSourceSysName(String sourceSysName) {
        this.sourceSysName = sourceSysName;
    }
    public String getSourceSysId() {
        return sourceSysId;
    }
    public void setSourceSysId(String sourceSysId) {
        this.sourceSysId = sourceSysId;
    }
    public String getTargetSystemOid() {
        return targetSystemOid;
    }
    public void setTargetSystemOid(String targetSystemOid) {
        this.targetSystemOid = targetSystemOid;
    }
    public String getTargetSysName() {
        return targetSysName;
    }
    public void setTargetSysName(String targetSysName) {
        this.targetSysName = targetSysName;
    }
    public String getTargetSysId() {
        return targetSysId;
    }
    public void setTargetSysId(String targetSysId) {
        this.targetSysId = targetSysId;
    }
    public String getInterfaceType() {
        return interfaceType;
    }
    public void setInterfaceType(String interfaceType) {
        this.interfaceType = interfaceType;
    }
    public String getInterfaceTypeText() {
        return interfaceTypeText;
    }
    public void setInterfaceTypeText(String interfaceTypeText) {
        this.interfaceTypeText = interfaceTypeText;
    }
    public String getRequestUrl() {
        return requestUrl;
    }
    public void setRequestUrl(String requestUrl) {
        this.requestUrl = requestUrl;
    }
    public String getRequestMethod() {
        return requestMethod;
    }
    public void setRequestMethod(String requestMethod) {
        this.requestMethod = requestMethod;
    }
    public String getRequestMethodText() {
        return requestMethodText;
    }
    public void setRequestMethodText(String requestMethodText) {
        this.requestMethodText = requestMethodText;
    }
    public String getParamType() {
        return paramType;
    }
    public void setParamType(String paramType) {
        this.paramType = paramType;
    }
    public String getParamTypeText() {
        return paramTypeText;
    }
    public void setParamTypeText(String paramTypeText) {
        this.paramTypeText = paramTypeText;
    }
    public String getReturnType() {
        return returnType;
    }
    public void setReturnType(String returnType) {
        this.returnType = returnType;
    }
    public String getReturnTypeText() {
        return returnTypeText;
    }
    public void setReturnTypeText(String returnTypeText) {
        this.returnTypeText = returnTypeText;
    }
    public String getAuthorityOid() {
        return authorityOid;
    }
    public void setAuthorityOid(String authorityOid) {
        this.authorityOid = authorityOid;
    }
    public String getUserAccount() {
        return userAccount;
    }
    public void setUserAccount(String userAccount) {
        this.userAccount = userAccount;
    }
    public String getUserCode() {
        return userCode;
    }
    public void setUserCode(String userCode) {
        this.userCode = userCode;
    }
    public String getToken() {
        return token;
    }
    public void setToken(String token) {
        this.token = token;
    }
    public String getInterfaceFunction() {
        return interfaceFunction;
    }
    public void setInterfaceFunction(String interfaceFunction) {
        this.interfaceFunction = interfaceFunction;
    }
    public String getAuthorityType() {
        return authorityType;
    }
    public void setAuthorityType(String authorityType) {
        this.authorityType = authorityType;
    }
    public String getAuthorityTypeText() {
        return authorityTypeText;
    }
    public void setAuthorityTypeText(String authorityTypeText) {
        this.authorityTypeText = authorityTypeText;
    }
    public String getDataFlowType() {
        return dataFlowType;
    }
    public void setDataFlowType(String dataFlowType) {
        this.dataFlowType = dataFlowType;
    }
    public String getDataFlowTypeText() {
        return dataFlowTypeText;
    }
    public void setDataFlowTypeText(String dataFlowTypeText) {
        this.dataFlowTypeText = dataFlowTypeText;
    }
    public String getClassifyoid() {
        return classifyoid;
    }
    public void setClassifyoid(String classifyoid) {
        this.classifyoid = classifyoid;
    }
    public String getUsedflag() {
        return usedflag;
    }
    public void setUsedflag(String usedflag) {
        this.usedflag = usedflag;
    }
    public String getSysbaseoid() {
        return sysbaseoid;
    }
    public void setSysbaseoid(String sysbaseoid) {
        this.sysbaseoid = sysbaseoid;
    }
    public String getSysbasename() {
        return sysbasename;
    }
    public void setSysbasename(String sysbasename) {
        this.sysbasename = sysbasename;
    }
    public String getSysbaseid() {
        return sysbaseid;
    }
    public void setSysbaseid(String sysbaseid) {
        this.sysbaseid = sysbaseid;
    }
    public String getPushType() {
        return pushType;
    }
    public void setPushType(String pushType) {
        this.pushType = pushType;
    }
    public String getPushTypeText() {
        return pushTypeText;
    }
    public void setPushTypeText(String pushTypeText) {
        this.pushTypeText = pushTypeText;
    }
    @Override
    public String toString() {
        return "SysIntInfoDO{" +
                "usedflag='" + usedflag + '\'' +
                ", classifyoid='" + classifyoid + '\'' +
                ", classifyid='" + classifyid + '\'' +
                ", classifyname='" + classifyname + '\'' +
                ", sysbaseoid='" + sysbaseoid + '\'' +
                ", sysbaseid='" + sysbaseid + '\'' +
                ", sysbasename='" + sysbasename + '\'' +
                ", interfaceFunction='" + interfaceFunction + '\'' +
                ", namespace='" + namespace + '\'' +
                ", soapaction='" + soapaction + '\'' +
                ", targName='" + targName + '\'' +
                ", cxfaxis='" + cxfaxis + '\'' +
                ", requestUrl='" + requestUrl + '\'' +
                ", interfaceType='" + interfaceType + '\'' +
                ", interfaceTypeText='" + interfaceTypeText + '\'' +
                ", paramType='" + paramType + '\'' +
                ", paramTypeText='" + paramTypeText + '\'' +
                ", returnType='" + returnType + '\'' +
                ", returnTypeText='" + returnTypeText + '\'' +
                ", btmTypeId='" + btmTypeId + '\'' +
                ", btmTypeName='" + btmTypeName + '\'' +
                ", sourceSystemOid='" + sourceSystemOid + '\'' +
                ", sourceSysName='" + sourceSysName + '\'' +
                ", sourceSysId='" + sourceSysId + '\'' +
                ", targetSystemOid='" + targetSystemOid + '\'' +
                ", targetSysName='" + targetSysName + '\'' +
                ", targetSysId='" + targetSysId + '\'' +
                ", requestMethod='" + requestMethod + '\'' +
                ", requestMethodText='" + requestMethodText + '\'' +
                ", authorityOid='" + authorityOid + '\'' +
                ", authorityType='" + authorityType + '\'' +
                ", authorityTypeText='" + authorityTypeText + '\'' +
                ", userAccount='" + userAccount + '\'' +
                ", userCode='" + userCode + '\'' +
                ", token='" + token + '\'' +
                ", description='" + description + '\'' +
                ", classPath='" + classPath + '\'' +
                ", dataFlowType='" + dataFlowType + '\'' +
                ", dataFlowTypeText='" + dataFlowTypeText + '\'' +
                ", pushType='" + pushType + '\'' +
                ", pushTypeText='" + pushTypeText + '\'' +
                '}';
    }
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/model/SysIntParamDO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,89 @@
package org.springblade.code.model;
import com.vci.starter.web.annotation.Column;
import com.vci.starter.web.annotation.VciBtmType;
import com.vci.starter.web.constant.FrameWorkLcStatusConstant;
import com.vci.starter.web.model.BaseModel;
import org.springblade.code.constant.MdmBtmTypeConstant;
/**
 * Description: ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证
 *
 * @author: wangyi
 * @date: Created on 2022/3/7
 */
@VciBtmType(name = MdmBtmTypeConstant.SYS_INT_PARAMTERY,text = "系统集成接口的认证",lifeCycle = FrameWorkLcStatusConstant.EMTYPE_LIFE_CYCLE,startStatus = FrameWorkLcStatusConstant.EMTYPE_LIFE_CYCLE)
public class SysIntParamDO extends BaseModel {
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = 1144067849291882385L;
    /**
     * SysIntInfoDO çš„oid
     */
    @Column(columnDefinition = "接口oid")
    private String infoOid;
    /**
     * å‚æ•°key
     */
    @Column(columnDefinition = "参数key")
    private String paramkey;
    /**
     * å‚æ•°value
     */
    @Column(columnDefinition = "参数value")
    private String paramvalue;
    /**
     * æ˜¯å¦ä½¿ç”¨
     */
    @Column(columnDefinition = "是否使用")
    private String usedflag;
    public String getInfoOid() {
        return infoOid;
    }
    public void setInfoOid(String infoOid) {
        this.infoOid = infoOid;
    }
    public String getParamkey() {
        return paramkey;
    }
    public void setParamkey(String paramkey) {
        this.paramkey = paramkey;
    }
    public String getParamvalue() {
        return paramvalue;
    }
    public void setParamvalue(String paramvalue) {
        this.paramvalue = paramvalue;
    }
    public String getUsedflag() {
        return usedflag;
    }
    public void setUsedflag(String usedflag) {
        this.usedflag = usedflag;
    }
    @Override
    public String toString() {
        return "SysIntParamDO{" +
                "infoOid='" + infoOid + '\'' +
                ", paramkey='" + paramkey + '\'' +
                ", paramvalue='" + paramvalue + '\'' +
                ", usedflag='" + usedflag + '\'' +
                '}';
    }
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/model/TaskDuckingDO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,236 @@
package org.springblade.code.model;
/**
 * V5发送消息对象
 * @author wangyi
 * @date 2022-03-14
 */
public class TaskDuckingDO {
    /**
     * æ³¨å†Œç³»ç»Ÿç¼–码
     */
    public String registerCode;
    /**
     * ç¬¬ä¸‰æ–¹ç³»ç»Ÿå¾…办主键
     */
    public String taskId;
    /**
     * å¾…办标题
     */
    public String title;
    /**
     * å¾…办发起人姓名
     */
    public String senderName;
    /**
     * ç±»åˆ«
     */
    public String classify;
    /**
     * å†…容类型
     */
    public String contentType;
    /**
     * çŠ¶æ€0待办,1已办
     */
    public String state;
    /**
     * H5穿透地址
     */
    public String h5url;
    /**
     * PC穿透地址
     */
    public String url;
    /**
     * ç™»å½•名称/人员编码/手机号/电子邮件
     */
    public String noneBindingSender;
    /**
     * ç™»å½•名称/人员编码/手机号/电子邮件
     */
    public String noneBindingReceiver;
    /**
     * ç¬¬ä¸‰æ–¹ç³»ç»Ÿå‘送者主键
     */
    public String thirdSenderId;
    /**
     * ç¬¬ä¸‰æ–¹ç³»ç»ŸæŽ¥æ”¶äººä¸»é”®
     */
    public String thirdReceiverId;
    /**
     * å¾…办发起日期,格式yyyy-MM-dd HH:mm
     */
    public String creationDate;
    /**
     * åŽŸç”Ÿapp的下载地址
     */
    public String content;
    /**
     * å¤„理后状态:0/1/2/3同意已办/不同意已办/取消/驳回
     */
    public String subState;
    public String getRegisterCode() {
        return registerCode;
    }
    public void setRegisterCode(String registerCode) {
        this.registerCode = registerCode;
    }
    public String getTaskId() {
        return taskId;
    }
    public void setTaskId(String taskId) {
        this.taskId = taskId;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getSenderName() {
        return senderName;
    }
    public void setSenderName(String senderName) {
        this.senderName = senderName;
    }
    public String getClassify() {
        return classify;
    }
    public void setClassify(String classify) {
        this.classify = classify;
    }
    public String getContentType() {
        return contentType;
    }
    public void setContentType(String contentType) {
        this.contentType = contentType;
    }
    public String getState() {
        return state;
    }
    public void setState(String state) {
        this.state = state;
    }
    public String getH5url() {
        return h5url;
    }
    public void setH5url(String h5url) {
        this.h5url = h5url;
    }
    public String getUrl() {
        return url;
    }
    public void setUrl(String url) {
        this.url = url;
    }
    public String getNoneBindingSender() {
        return noneBindingSender;
    }
    public void setNoneBindingSender(String noneBindingSender) {
        this.noneBindingSender = noneBindingSender;
    }
    public String getNoneBindingReceiver() {
        return noneBindingReceiver;
    }
    public void setNoneBindingReceiver(String noneBindingReceiver) {
        this.noneBindingReceiver = noneBindingReceiver;
    }
    public String getThirdSenderId() {
        return thirdSenderId;
    }
    public void setThirdSenderId(String thirdSenderId) {
        this.thirdSenderId = thirdSenderId;
    }
    public String getThirdReceiverId() {
        return thirdReceiverId;
    }
    public void setThirdReceiverId(String thirdReceiverId) {
        this.thirdReceiverId = thirdReceiverId;
    }
    public String getCreationDate() {
        return creationDate;
    }
    public void setCreationDate(String creationDate) {
        this.creationDate = creationDate;
    }
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
    public String getSubState() {
        return subState;
    }
    public void setSubState(String subState) {
        this.subState = subState;
    }
    @Override
    public String toString() {
        return "{" +
                "registerCode='" + registerCode + '\'' +
                ", taskId='" + taskId + '\'' +
                ", title='" + title + '\'' +
                ", senderName='" + senderName + '\'' +
                ", classify='" + classify + '\'' +
                ", contentType='" + contentType + '\'' +
                ", state='" + state + '\'' +
                ", h5url='" + h5url + '\'' +
                ", url='" + url + '\'' +
                ", noneBindingSender='" + noneBindingSender + '\'' +
                ", noneBindingReceiver='" + noneBindingReceiver + '\'' +
                ", thirdSenderId='" + thirdSenderId + '\'' +
                ", thirdReceiverId='" + thirdReceiverId + '\'' +
                ", creationDate='" + creationDate + '\'' +
                ", content='" + content + '\'' +
                ", subState='" + subState + '\'' +
                '}';
    }
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/CodeBasicSecServiceI.java
@@ -1,15 +1,11 @@
package org.springblade.code.service;
import com.vci.mdm.dto.CodeBasicSecDTO;
import com.vci.mdm.model.CodeBasicSecDO;
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.pagemodel.Tree;
import com.vci.starter.web.pagemodel.*;
import com.vci.web.pageModel.BatchCBO;
import com.vci.web.pageModel.KeyValue;
import org.springblade.code.dto.CodeBasicSecDTO;
import org.springblade.code.model.CodeBasicSecDO;
import org.springblade.code.vo.pagemodel.CodeBasicSecVO;
import java.util.Collection;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/CodeButtonServiceI.java
@@ -1,13 +1,13 @@
package org.springblade.code.service;
import com.vci.mdm.dto.CodeButtonDTO;
import com.vci.mdm.model.CodeButtonDO;
import com.vci.mdm.pagemodel.CodeButtonVO;
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 org.springblade.code.dto.CodeButtonDTO;
import org.springblade.code.model.CodeButtonDO;
import org.springblade.code.vo.pagemodel.CodeButtonVO;
import java.util.Collection;
import java.util.List;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/CodeClassifyProcessTempServiceI.java
@@ -1,14 +1,14 @@
package org.springblade.code.service;
import com.vci.mdm.dto.CodeClassifyProcessTempDTO;
import com.vci.mdm.model.CodeClassifyProcessTempDO;
import com.vci.mdm.pagemodel.CodeClassifyProcessTempVO;
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.web.pageModel.BatchCBO;
import org.springblade.code.dto.CodeClassifyProcessTempDTO;
import org.springblade.code.model.CodeClassifyProcessTempDO;
import org.springblade.code.vo.pagemodel.CodeClassifyProcessTempVO;
import java.util.Collection;
import java.util.List;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/CodeClassifyServiceI.java
@@ -1,14 +1,14 @@
package org.springblade.code.service;
import com.vci.mdm.bo.CodeClassifyFullInfoBO;
import com.vci.mdm.dto.CodeClassifyDTO;
import com.vci.mdm.model.CodeClassifyDO;
import com.vci.mdm.pagemodel.CodeClassifyVO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.*;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.pageModel.OsAttributeVO;
import org.springblade.code.bo.CodeClassifyFullInfoBO;
import org.springblade.code.dto.CodeClassifyDTO;
import org.springblade.code.model.CodeClassifyDO;
import org.springblade.code.vo.pagemodel.CodeClassifyVO;
import java.io.File;
import java.util.Collection;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/CodeClassifyTempMapItemServiceI.java
@@ -1,13 +1,13 @@
package org.springblade.code.service;
import com.vci.mdm.dto.CodeClassifyTempMapItemDTO;
import com.vci.mdm.model.CodeClassifyTempMapItemDO;
import com.vci.mdm.pagemodel.CodeClassifyTempMapItemVO;
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 org.springblade.code.dto.CodeClassifyTempMapItemDTO;
import org.springblade.code.model.CodeClassifyTempMapItemDO;
import org.springblade.code.vo.pagemodel.CodeClassifyTempMapItemVO;
import java.util.Collection;
import java.util.List;
@@ -36,7 +36,7 @@
     * @return æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException å‚数为空或者不存在的时候会抛出异常
     */
    List<CodeClassifyTempMapItemVO> codeClassifyTempMapItemDO2VOs(Collection<CodeClassifyTempMapItemDO>  codeClassifyTempMapItemDOs) throws VciBaseException;
    List<CodeClassifyTempMapItemVO> codeClassifyTempMapItemDO2VOs(Collection<CodeClassifyTempMapItemDO> codeClassifyTempMapItemDOs) throws VciBaseException;
    /**
     * æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/CodeClassifyTemplateAttrServiceI.java
@@ -1,15 +1,15 @@
package org.springblade.code.service;
import com.vci.mdm.dto.CodeClassifyTemplateAttrDTO;
import com.vci.mdm.model.CodeClassifyTemplateAttrDO;
import com.vci.mdm.pagemodel.CodeClassifyTemplateAttrVO;
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.pagemodel.PageHelper;
import com.vci.web.pageModel.OsBtmTypeAttributeVO;
import org.springblade.code.dto.CodeClassifyTemplateAttrDTO;
import org.springblade.code.model.CodeClassifyTemplateAttrDO;
import org.springblade.code.vo.pagemodel.CodeClassifyTemplateAttrVO;
import java.util.Collection;
import java.util.List;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/CodeClassifyTemplateButtonServiceI.java
@@ -1,14 +1,14 @@
package org.springblade.code.service;
import com.vci.mdm.dto.CodeClassifyTemplateButtonDTO;
import com.vci.mdm.model.CodeClassifyTemplateButtonDO;
import com.vci.mdm.pagemodel.CodeClassifyTemplateButtonVO;
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.web.pageModel.BatchCBO;
import org.springblade.code.dto.CodeClassifyTemplateButtonDTO;
import org.springblade.code.model.CodeClassifyTemplateButtonDO;
import org.springblade.code.vo.pagemodel.CodeClassifyTemplateButtonVO;
import java.util.Collection;
import java.util.List;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/CodeClassifyTemplateMapServiceI.java
@@ -1,13 +1,13 @@
package org.springblade.code.service;
import com.vci.mdm.dto.CodeClassifyTemplateMapDTO;
import com.vci.mdm.model.CodeClassifyTemplateMapDO;
import com.vci.mdm.pagemodel.CodeClassifyTemplateMapVO;
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 org.springblade.code.dto.CodeClassifyTemplateMapDTO;
import org.springblade.code.model.CodeClassifyTemplateMapDO;
import org.springblade.code.vo.pagemodel.CodeClassifyTemplateMapVO;
import java.util.Collection;
import java.util.List;
@@ -35,7 +35,7 @@
     * @return æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException å‚数为空或者不存在的时候会抛出异常
     */
    List<CodeClassifyTemplateMapVO> codeClassifyTemplateMapDO2VOs(Collection<CodeClassifyTemplateMapDO>  codeClassifyTemplateMapDOs) throws VciBaseException;
    List<CodeClassifyTemplateMapVO> codeClassifyTemplateMapDO2VOs(Collection<CodeClassifyTemplateMapDO> codeClassifyTemplateMapDOs) throws VciBaseException;
    /**
     * æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/CodeClassifyTemplateServiceI.java
@@ -1,11 +1,10 @@
package org.springblade.code.service;
import com.vci.mdm.dto.CodeClassifyTemplateDTO;
import com.vci.mdm.model.CodeClassifyTemplateDO;
import com.vci.mdm.pagemodel.CodeClassifyTemplateVO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.*;
import org.springblade.code.dto.CodeClassifyTemplateDTO;
import org.springblade.code.model.CodeClassifyTemplateDO;
import org.springblade.code.vo.pagemodel.CodeClassifyTemplateVO;
import java.util.Collection;
import java.util.List;
@@ -39,7 +38,7 @@
     * @return æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException å‚数为空或者不存在的时候会抛出异常
     */
    List<CodeClassifyTemplateVO> codeClassifyTemplateDO2VOs(Collection<CodeClassifyTemplateDO>  codeClassifyTemplateDOs) throws VciBaseException;
    List<CodeClassifyTemplateVO> codeClassifyTemplateDO2VOs(Collection<CodeClassifyTemplateDO> codeClassifyTemplateDOs) throws VciBaseException;
    /**
     * æ‰¹é‡æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/CodeClassifyValueServiceI.java
@@ -1,13 +1,13 @@
package org.springblade.code.service;
import com.vci.mdm.dto.CodeClassifyValueDTO;
import com.vci.mdm.model.CodeClassifyValueDO;
import com.vci.mdm.pagemodel.CodeClassifyValueVO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.pagemodel.Tree;
import com.vci.starter.web.pagemodel.TreeQueryObject;
import org.springblade.code.dto.CodeClassifyValueDTO;
import org.springblade.code.model.CodeClassifyValueDO;
import org.springblade.code.vo.pagemodel.CodeClassifyValueVO;
import java.util.Collection;
import java.util.List;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/CodeDuckingServiceI.java
@@ -1,10 +1,13 @@
package org.springblade.code.service;
import com.vci.mdm.model.*;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.pagemodel.PageHelper;
import org.springblade.code.model.DockingDataDO;
import org.springblade.code.model.DockingLogeDO;
import org.springblade.code.model.DockingTaskDO;
import org.springblade.code.model.SysIntHeaderDO;
import java.util.Map;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/CodeFixedValueServiceI.java
@@ -1,13 +1,13 @@
package org.springblade.code.service;
import com.vci.mdm.dto.CodeFixedValueDTO;
import com.vci.mdm.model.CodeFixedValueDO;
import com.vci.mdm.pagemodel.CodeFixedValueVO;
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 org.springblade.code.dto.CodeFixedValueDTO;
import org.springblade.code.model.CodeFixedValueDO;
import org.springblade.code.vo.pagemodel.CodeFixedValueVO;
import java.util.Collection;
import java.util.List;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/CodePhaseAttrServiceI.java
@@ -1,13 +1,13 @@
package org.springblade.code.service;
import com.vci.mdm.dto.CodePhaseAttrDTO;
import com.vci.mdm.model.CodePhaseAttrDO;
import com.vci.mdm.pagemodel.CodePhaseAttrVO;
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 org.springblade.code.dto.CodePhaseAttrDTO;
import org.springblade.code.model.CodePhaseAttrDO;
import org.springblade.code.vo.pagemodel.CodePhaseAttrVO;
import java.util.Collection;
import java.util.List;
@@ -36,7 +36,7 @@
     * @return æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException å‚数为空或者不存在的时候会抛出异常
     */
    List<CodePhaseAttrVO> codePhaseAttrDO2VOs(Collection<CodePhaseAttrDO>  codePhaseAttrDOs) throws VciBaseException;
    List<CodePhaseAttrVO> codePhaseAttrDO2VOs(Collection<CodePhaseAttrDO> codePhaseAttrDOs) throws VciBaseException;
    /**
     * æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/CodeResembleRuleServiceI.java
@@ -1,13 +1,12 @@
package org.springblade.code.service;
import com.vci.mdm.dto.CodeResembleRuleDTO;
import com.vci.mdm.model.CodeResembleRuleDO;
import com.vci.mdm.pagemodel.CodeResembleRuleVO;
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 org.springblade.code.dto.CodeResembleRuleDTO;
import org.springblade.code.model.CodeResembleRuleDO;
import org.springblade.code.vo.pagemodel.CodeResembleRuleVO;
import java.util.Collection;
import java.util.List;
@@ -36,7 +35,7 @@
     * @return æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException å‚数为空或者不存在的时候会抛出异常
     */
    List<CodeResembleRuleVO> codeResembleRuleDO2VOs(Collection<CodeResembleRuleDO>  codeResembleRuleDOs) throws VciBaseException;
    List<CodeResembleRuleVO> codeResembleRuleDO2VOs(Collection<CodeResembleRuleDO> codeResembleRuleDOs) throws VciBaseException;
    /**
     * æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/CodeRuleServiceI.java
@@ -1,14 +1,14 @@
package org.springblade.code.service;
import com.vci.mdm.dto.CodeRuleDTO;
import com.vci.mdm.model.CodeRuleDO;
import com.vci.mdm.pagemodel.CodeClassifyVO;
import com.vci.mdm.pagemodel.CodeRuleVO;
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 org.springblade.code.dto.CodeRuleDTO;
import org.springblade.code.model.CodeRuleDO;
import org.springblade.code.vo.pagemodel.CodeClassifyVO;
import org.springblade.code.vo.pagemodel.CodeRuleVO;
import java.util.Collection;
import java.util.List;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/CodeSerialAlgorithmServiceI.java
@@ -1,7 +1,7 @@
package org.springblade.code.service;
import com.vci.mdm.pagemodel.CodeSerialAlgorithmVO;
import com.vci.starter.web.pagemodel.DataGrid;
import org.springblade.code.vo.pagemodel.CodeSerialAlgorithmVO;
/**
 * æµæ°´ç®—法类
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/CodeSynonymServiceI.java
@@ -1,13 +1,13 @@
package org.springblade.code.service;
import com.vci.mdm.dto.CodeSynonymDTO;
import com.vci.mdm.model.CodeSynonymDO;
import com.vci.mdm.pagemodel.CodeSynonymVO;
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 org.springblade.code.dto.CodeSynonymDTO;
import org.springblade.code.model.CodeSynonymDO;
import org.springblade.code.vo.pagemodel.CodeSynonymVO;
import java.util.Collection;
import java.util.List;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/CodeTemplatePhaseServiceI.java
@@ -1,16 +1,15 @@
package org.springblade.code.service;
import com.vci.mdm.dto.CodeTemplatePhaseDTO;
import com.vci.mdm.model.CodeClassifyTemplateAttrDO;
import com.vci.mdm.model.CodeTemplatePhaseDO;
import com.vci.mdm.pagemodel.CodeClassifyTemplateAttrVO;
import com.vci.mdm.pagemodel.CodeTemplatePhaseVO;
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.web.pageModel.BatchCBO;
import org.springblade.code.dto.CodeTemplatePhaseDTO;
import org.springblade.code.model.CodeClassifyTemplateAttrDO;
import org.springblade.code.model.CodeTemplatePhaseDO;
import org.springblade.code.vo.pagemodel.CodeClassifyTemplateAttrVO;
import org.springblade.code.vo.pagemodel.CodeTemplatePhaseVO;
import java.util.Collection;
import java.util.List;
@@ -39,7 +38,7 @@
     * @return æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException å‚数为空或者不存在的时候会抛出异常
     */
    List<CodeTemplatePhaseVO> codeTemplatePhaseDO2VOs(Collection<CodeTemplatePhaseDO>  codeTemplatePhaseDOs) throws VciBaseException;
    List<CodeTemplatePhaseVO> codeTemplatePhaseDO2VOs(Collection<CodeTemplatePhaseDO> codeTemplatePhaseDOs) throws VciBaseException;
    /**
     * æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/DockingPreApplyDataInfoServiceI.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,100 @@
package org.springblade.code.service;
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 org.springblade.code.dto.DockingPreApplyDataInfoDTO;
import org.springblade.code.model.DockingPreApplyDataInfoDO;
import org.springblade.code.vo.pagemodel.DockingPreApplyDataInfoVO;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
 * è®°å½•工艺推送过来的数据信息服务接口
 *
 * @author weidy
 * @date 2022-04-05
 */
public interface DockingPreApplyDataInfoServiceI {
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„记录工艺推送过来的数据信息
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @param pageHelper åˆ†é¡µå’ŒæŽ’序
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException æŸ¥è¯¢æ¡ä»¶å’Œåˆ†é¡µå‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    DataGrid<DockingPreApplyDataInfoVO> gridDockingPreApplyDataInfo(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException;
    /**
     * æ‰¹é‡æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param dockingPreApplyDataInfoDOs æ•°æ®å¯¹è±¡åˆ—表
     * @return æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException å‚数为空或者不存在的时候会抛出异常
     */
    List<DockingPreApplyDataInfoVO> dockingPreApplyDataInfoDO2VOs(Collection<DockingPreApplyDataInfoDO> dockingPreApplyDataInfoDOs) throws VciBaseException;
    /**
     * æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param  dockingPreApplyDataInfoDO æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException æ‹·è´å±žæ€§å‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    DockingPreApplyDataInfoVO dockingPreApplyDataInfoDO2VO(DockingPreApplyDataInfoDO dockingPreApplyDataInfoDO) throws VciBaseException;
    /**
     * å¢žåŠ è®°å½•å·¥è‰ºæŽ¨é€è¿‡æ¥çš„æ•°æ®ä¿¡æ¯
     * @param dockingPreApplyDataInfoDTO è®°å½•工艺推送过来的数据信息数据传输对象
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException å‚数为空,唯一项,必输项不通过时会抛出异常
     */
    DockingPreApplyDataInfoVO addSave(DockingPreApplyDataInfoDTO dockingPreApplyDataInfoDTO) throws VciBaseException;
    /**
     * ä¿®æ”¹è®°å½•工艺推送过来的数据信息
     * @param dockingPreApplyDataInfoDTO è®°å½•工艺推送过来的数据信息数据传输对象
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException å‚数为空,唯一项,必输项不通过时会抛出异常
     */
    DockingPreApplyDataInfoVO editSave(DockingPreApplyDataInfoDTO dockingPreApplyDataInfoDTO) throws VciBaseException;
    /**
     * åˆ é™¤è®°å½•工艺推送过来的数据信息
     * @param dockingPreApplyDataInfoDTO è®°å½•工艺推送过来的数据信息数据传输对象,oid和ts需要传输
     * @return åˆ é™¤ç»“果反馈::success:成功,fail:失败
     * @throws VciBaseException å‚数为空,被引用时抛出异常
     */
    BaseResult deleteDockingPreApplyDataInfo(DockingPreApplyDataInfoDTO dockingPreApplyDataInfoDTO) throws VciBaseException;
    /**
    * ä¸»é”®èŽ·å–è®°å½•å·¥è‰ºæŽ¨é€è¿‡æ¥çš„æ•°æ®ä¿¡æ¯
    * @param oid ä¸»é”®
    * @return è®°å½•工艺推送过来的数据信息显示对象
    * @throws VciBaseException å‚数为空,数据不存在时会抛出异常
    */
    DockingPreApplyDataInfoVO getObjectByOid(String oid) throws VciBaseException;
    /**
     * ä¸»é”®æ‰¹é‡èŽ·å–è®°å½•å·¥è‰ºæŽ¨é€è¿‡æ¥çš„æ•°æ®ä¿¡æ¯
     * @param oidCollections ä¸»é”®é›†åˆï¼Œä½†æ˜¯å—性能影响,建议一次查询不超过10000个
     * @return è®°å½•工艺推送过来的数据信息显示对象
     * @throws VciBaseException æŸ¥è¯¢å‡ºçŽ°å¼‚å¸¸æ—¶ä¼šæŠ›å‡º
     */
    Collection<DockingPreApplyDataInfoVO> listDockingPreApplyDataInfoByOids(Collection<String> oidCollections) throws VciBaseException;
    /**
     * å‚照记录工艺推送过来的数据信息列表
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @param pageHelper åˆ†é¡µå’ŒæŽ’序
     * @return è®°å½•工艺推送过来的数据信息显示对象列表,生效的内容
     * @throws VciBaseException æŸ¥è¯¢æ¡ä»¶å’Œåˆ†é¡µå‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
     DataGrid<DockingPreApplyDataInfoVO> refDataGridDockingPreApplyDataInfo(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException;
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/DockingPreApplyDataServiceI.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,152 @@
package org.springblade.code.service;
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 org.springblade.code.dto.CodeOrderDTO;
import org.springblade.code.dto.DockingPreApplyDataDTO;
import org.springblade.code.dto.DockingPreApplyDataInfoDTO;
import org.springblade.code.dto.PreApplyCodeOrderDTO;
import org.springblade.code.model.DockingPreApplyDataDO;
import org.springblade.code.vo.pagemodel.DockingPreApplyDataVO;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
 * è®°å½•工艺推送过来的数据信息服务接口
 *
 * @author weidy
 * @date 2022-04-05
 */
public interface DockingPreApplyDataServiceI {
    /***
     * æ‰¹é‡ç»´æŠ¤åˆ†ç±»è®¾ç½®
     * @param dockingPreApplyDataDTO
     * @return
     * @throws VciBaseException
     */
    List<DockingPreApplyDataVO> batchSetDataClassId(DockingPreApplyDataDTO dockingPreApplyDataDTO)throws VciBaseException;
    /***
     * æ ¹æ®é€‰æ‹©é¢é¢„申请的数据勾选数据
     * @param codeClassifyOid
     * @param templateOid
     * @param btmType
     * @param dataOids
     * @return
     * @throws VciBaseException
     */
    DataGrid<Map<String,String>> gridApplyData(String codeClassifyOid,String templateOid,String btmType,String dataOids)throws VciBaseException;
    /**
     * æ‰¹é‡æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param dockingPreApplyDataDOs æ•°æ®å¯¹è±¡åˆ—表
     * @return æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException å‚数为空或者不存在的时候会抛出异常
     */
    List<DockingPreApplyDataVO> dockingPreApplyDataDO2VOs(Collection<DockingPreApplyDataDO>  dockingPreApplyDataDOs) throws VciBaseException;
    /**
     * æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param  dockingPreApplyDataDO æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException æ‹·è´å±žæ€§å‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    DockingPreApplyDataVO dockingPreApplyDataDO2VO(DockingPreApplyDataDO dockingPreApplyDataDO) throws VciBaseException;
    /**
     * å¢žåŠ è®°å½•å·¥è‰ºæŽ¨é€è¿‡æ¥çš„æ•°æ®ä¿¡æ¯
     * @param dockingPreApplyDataDTO è®°å½•工艺推送过来的数据信息数据传输对象
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException å‚数为空,唯一项,必输项不通过时会抛出异常
     */
    DockingPreApplyDataVO addSave(DockingPreApplyDataDTO dockingPreApplyDataDTO) throws VciBaseException;
    /**
     * åˆ é™¤è®°å½•工艺推送过来的数据信息
     * @param dockingPreApplyDataDTO è®°å½•工艺推送过来的数据信息数据传输对象,oid和ts需要传输
     * @return åˆ é™¤ç»“果反馈::success:成功,fail:失败
     * @throws VciBaseException å‚数为空,被引用时抛出异常
     */
    BaseResult deleteDockingPreApplyData(DockingPreApplyDataDTO dockingPreApplyDataDTO) throws VciBaseException;
    /**
    * ä¸»é”®èŽ·å–è®°å½•å·¥è‰ºæŽ¨é€è¿‡æ¥çš„æ•°æ®ä¿¡æ¯
    * @param oid ä¸»é”®
    * @return è®°å½•工艺推送过来的数据信息显示对象
    * @throws VciBaseException å‚数为空,数据不存在时会抛出异常
    */
    DockingPreApplyDataVO getObjectByOid(String oid) throws VciBaseException;
    /**
     * ä¸»é”®æ‰¹é‡èŽ·å–è®°å½•å·¥è‰ºæŽ¨é€è¿‡æ¥çš„æ•°æ®ä¿¡æ¯
     * @param oidCollections ä¸»é”®é›†åˆï¼Œä½†æ˜¯å—性能影响,建议一次查询不超过10000个
     * @return è®°å½•工艺推送过来的数据信息显示对象
     * @throws VciBaseException æŸ¥è¯¢å‡ºçŽ°å¼‚å¸¸æ—¶ä¼šæŠ›å‡º
     */
    Collection<DockingPreApplyDataVO> listDockingPreApplyDataByOids(Collection<String> oidCollections) throws VciBaseException;
    /**
     * å‚照记录工艺推送过来的数据信息列表
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @param pageHelper åˆ†é¡µå’ŒæŽ’序
     * @return è®°å½•工艺推送过来的数据信息显示对象列表,生效的内容
     * @throws VciBaseException æŸ¥è¯¢æ¡ä»¶å’Œåˆ†é¡µå‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
     DataGrid<DockingPreApplyDataVO> refDataGridDockingPreApplyData(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException;
    //==================
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„记录工艺推送过来的数据信息
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @param pageHelper åˆ†é¡µå’ŒæŽ’序
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException æŸ¥è¯¢æ¡ä»¶å’Œåˆ†é¡µå‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    DataGrid<DockingPreApplyDataVO> gridDockingPreApplyData(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException;
    /**
     * æ’å…¥data和datainfo,会自动把data里的oid,unique赋值到datainfo里边去
     * @param dockingPreApplyDataDTO è®°å½•工艺推送过来的数据信息数据传输对象
     * @param dockingPreApplyDataInfoDTOList è®°å½•工艺推送过来的数据详细信息数据传输对象
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException å‚数为空,唯一项,必输项不通过时会抛出异常
     */
    void addSaveDataAndInfo(DockingPreApplyDataDTO dockingPreApplyDataDTO, List<DockingPreApplyDataInfoDTO> dockingPreApplyDataInfoDTOList) throws VciBaseException;
    /**
     * ä¿®æ”¹ datas
     * @param dockingPreApplyDataDTO è®°å½•工艺推送过来的数据信息数据传输对象
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException å‚数为空,唯一项,必输项不通过时会抛出异常
     */
    BaseResult editSave(DockingPreApplyDataDTO dockingPreApplyDataDTO) throws VciBaseException;
    /**
     * æ ¹æ®data的oid查询data信息和datainfo信息,并且拼接datainfo为map
     * @param dockingPreApplyDataDTO
     * @return
     * @throws VciBaseException
     */
    BaseResult<Map<String,String>> getDataInfoMap(DockingPreApplyDataDTO dockingPreApplyDataDTO) throws VciBaseException;
    /**
     * æ‰¹é‡å¤„理预申请编码
     * 1、调用engineService.addSaveCode(orderDTO)先插入预申请数据到对应主题库静态数据
     * 2、修改dockingPreApplyData的分类oid和分类名称
     */
    BaseResult applyData(List<PreApplyCodeOrderDTO> preApplyCodeOrderDTOList);
    /**
     * æ‰¹é‡å¤„理预申请编码
     * 1、调用engineService.addSaveCode(orderDTO)先插入预申请数据到对应主题库静态数据
     * 2、修改dockingPreApplyData的分类oid和分类名称
     */
    BaseResult batchApplyDatas(List<CodeOrderDTO> CodeOrderDTOs);
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/DockingPreAttrMappingSeviceI.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
package org.springblade.code.service;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.pagemodel.PageHelper;
import org.springblade.code.dto.DockingPreAttrMappingDTO;
import org.springblade.code.vo.pagemodel.DockingPreAttrMappingVO;
import org.springblade.code.vo.pagemodel.DockingPreAttrRangeVO;
import java.util.List;
import java.util.Map;
public interface DockingPreAttrMappingSeviceI {
    /***
     * å±žæ€§æ˜ å°„配置列表
     * @param clsfId
     * @param type
     * @param conditionMap
     * @param pageHelper
     * @return
     * @throws VciBaseException
     */
    DataGrid<DockingPreAttrMappingVO> gridAttrMappings(String clsfId,int type,Map<String, String> conditionMap, PageHelper pageHelper)throws VciBaseException;
    /***
     * æžšä¸¾æ˜ å°„配置列表
     * @param attrkey
     * @param type
     * @param conditionMap
     * @param pageHelper
     * @return
     * @throws VciBaseException
     */
    DataGrid<DockingPreAttrRangeVO> gridAttrRanges(String attrkey, int type, Map<String, String> conditionMap, PageHelper pageHelper)throws VciBaseException;
    /**
     * ä¿å­˜å±žæ€§æ˜ å°„配置组件
     * @param dockingPreAttrMappingDTOS å±žæ€§æ˜ å°„配置数据传输对象
     * @return æ‰§è¡Œç»“果,success为true表示成功,msg是失败的提示信息,obj是添加完成后的显示对象
     */
    public  List<DockingPreAttrMappingVO> batchAddSave(List<DockingPreAttrMappingDTO> dockingPreAttrMappingDTOS)throws VciBaseException;
    /***
     * æ ¹æ®æ¡ä»¶æŸ¥è¯¢å±žæ€§æ˜ å°„配置信息
     * @param conditionMap
     * @return
     * @throws VciBaseException
     */
    List<DockingPreAttrMappingVO> selectAttrMappings(Map<String, String> conditionMap)throws VciBaseException;
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/MdmEngineServiceI.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,361 @@
package org.springblade.code.service;
import com.vci.starter.web.pagemodel.*;
import com.vci.web.dto.BaseModelDTO;
import com.vci.web.pageModel.KeyValue;
import com.vci.web.pageModel.UIFormItemVO;
import com.vci.web.pageModel.UITableFieldVO;
import org.springblade.code.bo.CodeClassifyFullInfoBO;
import org.springblade.code.bo.CodeTemplateAttrSqlBO;
import org.springblade.code.dto.CodeDeleteBatchDTO;
import org.springblade.code.dto.CodeOrderDTO;
import org.springblade.code.vo.pagemodel.*;
import plm.bs.bom.clientobject.ClientBusinessObject;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
 * ä¸»æ•°æ®å¼•擎服务
 * @author weidy
 * @date 2022-2-21
 */
public interface MdmEngineServiceI {
    /**
     * ä½¿ç”¨åˆ†ç±»ä¸»é”®èŽ·å–é¡µé¢çš„å†…å®¹ï¼ŒåŒ…å«æŒ‰é’®
     * @param codeClassifyOid ä¸»é¢˜åº“分类主键
     * @param functionId åŠŸèƒ½çš„ç¼–å·
     * @return UI相关的内容
     */
    MdmUIInfoVO getUIInfoByClassifyOid(String codeClassifyOid, String functionId);
    /**
     * ä½¿ç”¨ä¸»é¢˜åº“分类获取ui相关的内容(不包含按钮)
     * @param codeClassifyOid ä¸»é¢˜åº“的分类的主键
     * @return UI相关的内容
     */
    MdmUIInfoVO getTableDefineByClassifyOid(String codeClassifyOid);
    /**
     * ä½¿ç”¨åˆ†ç±»çš„主键获取表格的定义
     * @param codeClassifyOid åˆ†ç±»ä¸»é”®
     * @param phase é˜¶æ®µçš„名称
     * @return UI相关的信息(仅包含表单)
     */
    MdmUIInfoVO getTableDefineByClassifyOid_v2(String codeClassifyOid,String phase);
    /**
     * ä½¿ç”¨åˆ†ç±»çš„主键获取可以使用的模板对象
     * @param codeClassifyOid åˆ†ç±»çš„主键
     * @return æ¨¡æ¿çš„æ˜¾ç¤ºå¯¹è±¡
     */
    CodeClassifyTemplateVO getUsedTemplateByClassifyOid(String codeClassifyOid);
    /**
     * ä½¿ç”¨åˆ†ç±»çš„主键获取可以使用的模板对象
     * @param codeClassifyOid åˆ†ç±»çš„主键
     * @param hasAttr åŒ…含属性
     * @return æ¨¡æ¿çš„æ˜¾ç¤ºå¯¹è±¡
     */
    CodeClassifyTemplateVO getUsedTemplateByClassifyOid(String codeClassifyOid, boolean hasAttr);
    /**
     * ä½¿ç”¨æ¨¡æ¿çš„主键获取表单的信息
     * @param codeClassifyTemplateOid æ¨¡æ¿çš„主键
     * @return ui相关的内容
     */
    MdmUIInfoVO getFormDefineByTemplateOid(String codeClassifyTemplateOid);
    /**
     * ä½¿ç”¨æ¨¡æ¿çš„主键获取表单的信息
     * @param codeClassifyTemplateOid æ¨¡æ¿çš„主键
     * @param codeClassifyOid ä½¿ç”¨æ¨¡æ¿çš„分类的主键
     * @return ui相关的内容
     */
    MdmUIInfoVO getFormDefineByTemplateOid(String codeClassifyTemplateOid,String codeClassifyOid);
    /**
     * ä½¿ç”¨ä¸»é¢˜åº“分类的主键获取表单的信息
     * @param codeClassifyOid åˆ†ç±»çš„主键
     * @return ui相关的内容
     */
    MdmUIInfoVO getFormDefineByClassifyOid(String codeClassifyOid);
    /**
     * ä½¿ç”¨æ¨¡æ¿ä¸»é”®èŽ·å–ui相关的内容
     * @param templateOid æ¨¡æ¿çš„主键
     * @return ui相关的内容
     */
    MdmUIInfoVO getTableDefineByTemplateOid(String templateOid);
    /**
     * ä½¿ç”¨åˆ†ç±»ä¸»é”®èŽ·å–å·¥å…·æ ä¸­çš„æŒ‰é’®ä¿¡æ¯
     * @param codeClassifyOid åˆ†ç±»çš„主键
     * @return æŒ‰é’®çš„信息,会按照排序号进行排序
     */
    List<CodeButtonVO> listButtonInToolbarByClassifyOid(String codeClassifyOid);
    /**
     * ä½¿ç”¨æ¨¡æ¿ä¸»é”®èŽ·å–å·¥å…·æ ä¸­çš„æŒ‰é’®ä¿¡æ¯
     * @param templateOid æ¨¡æ¿çš„主键
     * @return æŒ‰é’®çš„信息,会按照排序号进行排序
     */
    List<CodeButtonVO> listButtonInToolbarByTemplateOid(String templateOid);
    /**
     * ä½¿ç”¨åˆ†ç±»èŽ·å–å¯¹åº”çš„æ•°æ®
     * @param codeClassifyOid åˆ†ç±»çš„主键
     * @param templateOid æ¨¡æ¿çš„主键
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @param pageHelper åˆ†é¡µçš„对象
     * @return æ•°æ®ï¼ˆåŒ…含下级分类)
     */
    DataGrid<Map<String, String>> gridTableDataByClassifyOid(String codeClassifyOid, String templateOid, Map<String, String> conditionMap, PageHelper pageHelper);
    /**
     * æŸ¥è¯¢ç¼–码数据的列表
     * @param btmType ä¸šåŠ¡ç±»åž‹
     * @param templateVO æ¨¡æ¿çš„对象,需要包含模板的属性
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @param pageHelper åˆ†é¡µå¯¹è±¡
     * @return æ•°æ®åˆ—表
     */
    DataGrid<Map<String,String>> queryGrid(String btmType, CodeClassifyTemplateVO templateVO, Map<String, String> conditionMap, PageHelper pageHelper);
    /**
     * æ ¹æ®æ¨¡æ¿å±žæ€§ç”Ÿæˆç›¸åº”çš„sql信息
     * @param btmType ä¸šåŠ¡ç±»åž‹
     * @param templateVO æ¨¡æ¿æ˜¾ç¤ºå¯¹è±¡ï¼Œå¿…须包含属性
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @param pageHelper åˆ†é¡µå’ŒæŽ’序对象
     * @return sql的相关信息
     */
    CodeTemplateAttrSqlBO getSqlByTemplateVO(String btmType, CodeClassifyTemplateVO templateVO, Map<String, String> conditionMap, PageHelper pageHelper);
    /**
     * å°è£…开关的内容,常用于导出
     * @param dataMap æ•°æ®çš„内容
     * @param templateVO æ¨¡æ¿çš„æ˜¾ç¤º
     */
    void wrapperBoolean(List<Map<String, String>> dataMap, CodeClassifyTemplateVO templateVO);
    /**
     * å°è£…查询出来的数据
     * @param dataMap æ•°æ®çš„æ˜ å°„
     * @param templateVO æ¨¡æ¿çš„属性
     * @param onlySelectAttrIdList ä»…仅查询的属性字段
     * @param form æ˜¯å¦ä¸ºè¡¨å•,表单不会转换时间格式
     */
    void wrapperData(List<Map<String, String>> dataMap, CodeClassifyTemplateVO templateVO,
                     Collection<String> onlySelectAttrIdList,boolean form);
    /**
     * èŽ·å–æžšä¸¾çš„ä¸‹æ‹‰é€‰é¡¹
     * @param attrVO æ¨¡æ¿å±žæ€§çš„对象
     * @return ä¸‹æ‹‰é€‰é¡¹
     */
    List<KeyValue> listComboboxItems(CodeClassifyTemplateAttrVO attrVO);
    /**
     * ä½¿ç”¨æ•°æ®ä¸»é”®èŽ·å–æ•°æ®çš„å…¨éƒ¨ä¿¡æ¯
     * @param oid ä¸»é”®
     * @param templateOid æ¨¡æ¿çš„主键
     * @return æ•°æ®çš„内容
     */
    BaseResult<Map<String, String>> getDataByOid(String oid, String templateOid);
    /**
     * ä½¿ç”¨ä¸»é¢˜åº“分类获取编码规则
     * @param codeClassifyOid åˆ†ç±»çš„主键
     * @return ç¼–码规则的内容
     */
    CodeRuleVO getCodeRuleByClassifyOid(String codeClassifyOid);
    /**
     * ä½¿ç”¨åˆ†ç±»çš„全部信息获取编码规则
     * @param fullInfoBO åˆ†ç±»çš„全部信息
     * @return è§„则的内容
     */
    CodeRuleVO getCodeRuleByClassifyFullInfo(CodeClassifyFullInfoBO fullInfoBO);
    /**
     * ä½¿ç”¨ç æ®µçš„主键获取分类的码值内容
     * @param classifySecOid ç æ®µçš„主键
     * @param parentClassifyValueOid ä¸Šçº§åˆ†ç±»çš„主键
     * @return åˆ†ç±»ç å€¼çš„内容
     */
    List<CodeClassifyValueVO> listCodeClassifyValueBySecOid(String classifySecOid, String parentClassifyValueOid);
    /**
     * ç”³è¯·å•一编码
     * @param orderDTO ç”³è¯·çš„信息,需要包含属性的内容和码段相关的内容
     * @return è¿”回编码的内容
     */
    String addSaveCode(CodeOrderDTO orderDTO);
    /**
     * ä¿®æ”¹ä¸»é¢˜åº“数据
     * @param orderDTO æ•°æ®çš„内容,不用包含码段的内容了
     */
    void editSaveCode(CodeOrderDTO orderDTO);
    /**
     * å‡ç‰ˆçš„主题库数据
     * @param orderDTO æ•°æ®çš„内容,不需要包含码段的内容
     */
    void upSaveCode(CodeOrderDTO orderDTO);
    /**
     *  ä¿å­˜å¯è¾“可选的信息
     * @param templateVO æ¨¡æ¿çš„对象
     * @param cboList æ•°æ®çš„内容
     */
    void batchSaveSelectChar(CodeClassifyTemplateVO templateVO, List<ClientBusinessObject> cboList);
    /**
     * åˆ é™¤ä¸»é¢˜åº“数据
     * @param deleteBatchDTO æ•°æ®çš„内容,必须要有主键和分类主键
     */
    void deleteCode(CodeDeleteBatchDTO deleteBatchDTO);
    /**
     * å°è£…关键属性的查询语句
     * @param value å½“前的值
     * @param keyRuleVO å…³é”®å±žæ€§çš„æŽ§åˆ¶è§„则,可以为空
     * @param attrId å±žæ€§çš„编号
     * @param trim æ˜¯å¦åŽ»é™¤ç©ºæ ¼
     * @param ignoreCase æ˜¯å¦ä¸åŒºåˆ†å¤§å°å†™
     * @param ignoreWidth æ˜¯å¦å¿½ç•¥å…¨åŠè§’
     * @param trimAll æ˜¯å¦å¿½ç•¥å…¨éƒ¨ç©ºæ ¼
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     */
    void wrapperKeyAttrConditionMap(String value, CodeKeyAttrRepeatRuleVO keyRuleVO, String attrId,
                                    boolean trim, boolean ignoreCase, boolean ignoreWidth,
                                    boolean trimAll, Map<String, String> conditionMap);
    /**
     * åˆ¤æ–­ç¼–码的码段是否输入或者选择了码值
     * @param ruleVO è§„则的显示对象
     * @param orderDTO ç¼–码申请的内容
     */
    void checkSecValueOnOrder(CodeRuleVO ruleVO, CodeOrderDTO orderDTO);
    /**
     * ä½¿ç”¨åˆ†ç±»å’Œé˜¶æ®µçš„编号,获取包含的属性
     * @param codeClassifyOid åˆ†ç±»çš„主键
     * @param phase é˜¶æ®µçš„名称
     * @return å±žæ€§çš„英文名称
     */
    List<String> listPhaseAttrByClassifyOid(String codeClassifyOid, String phase);
    /**
     * è·¯å¾„上包含当前分类的所有分类信息
     * @param codeClassifyOid åˆ†ç±»çš„主键
     * @return åˆ†ç±»æ ‘
     */
    List<Tree> hasSelfClassifyTree(String codeClassifyOid);
    /**
     * åˆ†ç±»æ³¨å…¥çš„内容预览
     * @param codeClassifyOid åˆ†ç±»çš„主键
     * @param codeTemplateOid æ¨¡æ¿çš„主键
     * @return key是分类注入的属性,value是注入后的值
     */
    Map<String, String> previewClassify(String codeClassifyOid, String codeTemplateOid);
    /**
     * é¢„览组合规则
     * @param orderDTO ç”³è¯·ç¼–码的信息
     * @return key是组合规则的属性。value是组合后的值,。如果缺少某个属性的值,会作为value返回
     */
    Map<String,String> previewCompRule(CodeOrderDTO orderDTO);
    /**
     * ä¿®æ”¹çŠ¶æ€
     * @param baseModelDTO æ•°æ®ä¼ è¾“对象
     */
    void changeStatus(BaseModelDTO baseModelDTO);
    /**
     * ç›¸ä¼¼é¡¹æŸ¥è¯¢
     * @param orderDTO ç¼–码的相关信息
     * @return æ•°æ®åˆ—表
     */
    DataGrid<Map<String, String>> resembleQuery(CodeOrderDTO orderDTO);
    /**
     * ä½¿ç”¨åˆ†ç±»ä¸»é”®èŽ·å–ç›¸ä¼¼æŸ¥è¯¢è§„åˆ™
     * @param codeClassifyOid åˆ†ç±»ä¸»é”®
     * @return è§„则,如果不存在会返回null
     */
    CodeResembleRuleVO getUseResembleRuleByClassifyOid(String codeClassifyOid);
    /**
     * èŽ·å–ä½¿ç”¨çš„ç›¸ä¼¼æŸ¥è¯¢è§„åˆ™
     * @param fullInfoBO ç±»å…¨éƒ¨ä¿¡æ¯
     * @param currentClassifyVO å½“前的分类
     * @return è§„则,如果不存在会返回Null
     */
    CodeResembleRuleVO getUseResembleRule(CodeClassifyFullInfoBO fullInfoBO, CodeClassifyVO currentClassifyVO);
    /**
     * ä½¿ç”¨æµç¨‹æ¨¡æ¿èŽ·å–åœ¨é¡µé¢ä¸Šæ˜¾ç¤ºçš„å±žæ€§
     * @param templateOid æ¨¡æ¿çš„主键
     * @param executionId æµç¨‹æ‰§è¡Œid
     * @param processUse æ¨¡æ¿æµç¨‹ç”¨é€”
     * @return ç›¸å…³å±žæ€§
     */
    List<String> getFieldByProcessTemplate(String templateOid, String executionId, String processUse);
    /**
     * æ ‡è®°æµç¨‹ä¸­ä¸šåŠ¡æ•°æ®æ˜¯å¦é€šè¿‡
     * @param oid ä¸šåŠ¡æ•°æ®ä¸»é”®
     * @param btmName ä¸šåŠ¡ç±»åž‹
     * @param pass æ˜¯å¦é€šè¿‡
     * @return æ‰§è¡Œç»“æžœ
     */
    BaseResult markDataPassing(String oid, String btmName, Boolean pass);
    /**
     * ä½¿ç”¨åˆ†ç±»çš„主键获取业务数据
     * @param btmType ä¸šåŠ¡ç±»åž‹
     * @param queryObject æŸ¥è¯¢å¯¹è±¡
     * @return è¡¨æ ¼çš„æ˜¾ç¤ºå¯¹è±¡å€¼
     */
    DataGrid<Map<String, String>> getTableDataByExecutionId(String btmType, BaseQueryObject queryObject);
    /**
     * æ‰¹é‡ä¿å­˜æµç¨‹æ‰§è¡Œé¡µé¢ä¿®æ”¹çš„内容
     * @param orderDTOList ç¼–码相关的信息,不需要码段的信息
     * @return æ‰§è¡Œç»“æžœ
     */
    BaseResult batchUpdateCode(List<CodeOrderDTO> orderDTOList);
    /**
     * ä½¿ç”¨åˆ†ç±»çš„编号路径,获取表格的相关定义
     * @param codeClassifyIdPath åˆ†ç±»çš„编号路径,必须是从顶层节点开始,xxx/yy/zz这样的格式
     * @param functionId åŠŸèƒ½çš„ç¼–å·
     * @return UI相关的信息(仅包含表格)
     */
    MdmUIInfoVO getUIInfoByClassifyIdPath(String codeClassifyIdPath, String functionId);
    /**
     * ä½¿ç”¨åˆ†ç±»çš„编号路径,获取表单的相关定义
     * @param idPath ç¼–号的路径,必须从顶层节点开始,xx/yyy/zz
     * @return UI相关的信息(仅包含表单)
     */
    MdmUIInfoVO getFormDefineByClassifyIdPath(String idPath);
    /**
     * æ¨¡æ¿å±žæ€§è½¬æ¢ä¸ºè¡¨å•的字段
     *
     * @param attrVO  æ¨¡æ¿å±žæ€§
     * @param btmType ä¸šåŠ¡ç±»åž‹
     * @return è¡¨å•的字段
     */
    UIFormItemVO templateAttr2FormField(CodeClassifyTemplateAttrVO attrVO, String btmType) ;
    UITableFieldVO templateAttr2TableField(CodeClassifyTemplateAttrVO attrVO, boolean forEdit);
    void wrapperResembleConditionMap(String value, CodeResembleRuleVO resembleRuleVO, String attrId, Map<String, String> conditionMap);
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/MdmIOServiceI.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,127 @@
package org.springblade.code.service;
import com.vci.starter.poi.bo.SheetDataSet;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.pagemodel.DataGrid;
import org.springblade.code.dto.CodeExportAttrDTO;
import org.springblade.code.dto.CodeOrderDTO;
import org.springblade.code.vo.pagemodel.*;
import org.springblade.code.vo.universalInter.attrmap.DataObjectVO;
import org.springblade.code.vo.universalInter.result.xml.XMLResultDataObjectDetailDO;
import java.io.File;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
/**
 * ä¸»æ•°æ®å¯¼å…¥å¯¼å‡ºæœåŠ¡
 * @author weidy
 * @date 2022-3-6
 */
public interface MdmIOServiceI {
    /**
     * å¯¼å‡ºä¸»é¢˜åº“的数据
     * @param exportAttrDTO å¯¼å‡ºç›¸å…³çš„配置,必须要有主题库分类的主键
     * @return å¯¼å‡ºçš„excel的文件
     */
    String exportCode(CodeExportAttrDTO exportAttrDTO);
    /**
     * ç”Ÿæˆå¯¼å…¥çš„æ–‡ä»¶
     * @param codeClassifyOid åˆ†ç±»çš„主键
     * @param isHistory æ˜¯å¦åŽ†å²æ•°æ®å¯¼å…¥
     * @return excel的文件地址
     */
    String createImportExcel(String codeClassifyOid,boolean isHistory);
    /**
     * ç”Ÿæˆå¯¼å…¥çš„æ–‡ä»¶
     * @param codeClassifyOid åˆ†ç±»çš„主键
     * @return excel的文件地址
     */
    String downloadTopImportExcel(String codeClassifyOid);
    /**
     * æ‰¹é‡ç”³è¯·ç¼–码数据
     * @param orderDTO ç¼–码申请信息,必须包含分类主键和码段的信息
     * @param file excel文件的信息
     * @return æœ‰é”™è¯¯ä¿¡æ¯çš„excel
     */
    CodeImProtRusultVO batchImportCode(CodeOrderDTO orderDTO, File file);
    /***
     *批量申请编码数据
     * @param codeClassifyOid åˆ†ç±»çš„主键
     * @param classifyAttr åˆ†ç±»è·¯å¾„使用的属性
     * @param file excel文件的信息
     * @return æœ‰é”™è¯¯ä¿¡æ¯çš„excel
     */
    CodeImProtRusultVO batchTopImportCode(String codeClassifyOid,String classifyAttr, File file);
    /***
     * æ‰¹é‡ç”³è¯·ç¼–码数据
     * @param orderDTO ç¼–码申请信息,必须包含分类主键和码段的信息
     * @param templateVO//模板对象
     * @param dataSet//数据对象
     * @param  isNumType æ˜¯å¦æ£€éªŒæžšä¸¾/参照
     * @return
     */
    List<String> batchImportCode(CodeOrderDTO orderDTO, CodeClassifyTemplateVO templateVO, SheetDataSet dataSet, Map<String,String> errorMap, boolean isNumType);
    /**
     * å¯¼å…¥åŽ†å²æ•°æ®
     * @param codeClassifyOid åˆ†ç±»çš„主键
     * @param classifyAttr åˆ†ç±»è·¯å¾„使用的属性
     * @param file excel文件的信息
     * @return æœ‰é”™è¯¯ä¿¡æ¯çš„excel
     */
    CodeImProtRusultVO batchImportHistoryData(String codeClassifyOid,String classifyAttr, File file);
    /**
     * é›†æˆæ‰¹é‡ç”³è¯·æ•°æ®
     * @param orderDTO åˆ†ç±»çš„主键
     * @param dataObjectVO æ•°æ®ä¿¡æ¯
     * @param resultDataObjectDetailDOs é”™è¯¯ä¿¡æ¯
     * @return æœ‰é”™è¯¯ä¿¡æ¯çš„excel
     */
    void batchSyncApplyCode(CodeOrderDTO orderDTO, DataObjectVO dataObjectVO, LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs);
    /**
     * é›†æˆæ‰¹é‡æ›´æ”¹æ•°æ®
     * @param codeClassifyVO;
     * @param dataObjectVO æ•°æ®ä¿¡æ¯
     * @param resultDataObjectDetailDOs é”™è¯¯ä¿¡æ¯
     * @return æœ‰é”™è¯¯ä¿¡æ¯çš„excel
     */
    void batchSyncEditDatas(CodeClassifyVO codeClassifyVO, DataObjectVO dataObjectVO, LinkedList<XMLResultDataObjectDetailDO>  resultDataObjectDetailDOs);
    /***
     * ä»Žredis缓存里获取到导入的数据
     * @param oid
     * @param redisOid
     * @return
     */
    public DataGrid<Map<String,String>> gridRowResemble(String oid, String redisOid);
    /***
     * ä»Žredis缓存里获取到导入的数据
     * @param codeClssifyOid
     * @param redisOid
     * @return
     */
    DataGrid<Map<String,String>> gridDatas(String codeClssifyOid,String redisOid);
    /***
     * æ ¹æ®å¯¼å…¥ç¼“å­˜id获取分类
     * @param redisOid
     * @return
     */
    public List<CodeImportTemplateVO> gridclassifys(String redisOid);
    /**
     * æ‰¹é‡ç”³è¯·
     * @param codeImprotSaveDatVOList
     * @param isImprot
     * @return
     */
    public BaseResult batchImportData(List<CodeImprotSaveDatVO> codeImprotSaveDatVOList, String classifyAttr, boolean isImprot);
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/MdmProductCodeServiceI.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,38 @@
package org.springblade.code.service;
import com.vci.web.pageModel.BatchCBO;
import org.springblade.code.bo.CodeClassifyFullInfoBO;
import org.springblade.code.dto.CodeOrderSecDTO;
import org.springblade.code.vo.pagemodel.CodeClassifyTemplateVO;
import org.springblade.code.vo.pagemodel.CodeRuleVO;
import plm.bs.bom.clientobject.ClientBusinessObject;
import java.util.Collection;
import java.util.List;
/**
 * ç¼–码规则生成的服务
 * @author weidy
 * @date 2022-3-6
 */
public interface MdmProductCodeServiceI {
    /**
     * ç”Ÿæˆç¼–码--并且保存数据-方法加锁,因此不能返回batchCBO
     * @param classifyFullInfoBO åˆ†ç±»çš„全部信息
     * @param templateVO æ¨¡æ¿çš„æ˜¾ç¤ºå¯¹è±¡
     * @param ruleVO ç¼–码规则的显示对象
     * @param secDTOList å„个码段的值
     * @param dataCBOList ä¸šåŠ¡æ•°æ®
     */
    List<String> productCodeAndSaveData(CodeClassifyFullInfoBO classifyFullInfoBO, CodeClassifyTemplateVO templateVO,
                                        CodeRuleVO ruleVO, List<CodeOrderSecDTO> secDTOList, List<ClientBusinessObject> dataCBOList);
    /**
     * å›žæ”¶ç å€¼
     * @param btmId ä¸šåŠ¡æ•°æ®çš„ä¸šåŠ¡ç±»åž‹
     * @param businessOidCollection ä¸šåŠ¡æ•°æ®çš„ä¸»é”®
     * @return å—影响的数据内容
     */
    BatchCBO recycleCode(String btmId, Collection<String> businessOidCollection);
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/SysIntAuthorityServiceI.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,101 @@
package org.springblade.code.service;
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 org.springblade.code.dto.SysIntAuthorityDTO;
import org.springblade.code.model.SysIntAuthorityDO;
import org.springblade.code.vo.pagemodel.SysIntAuthorityVO;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
 * ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证服务接口
 *
 * @author lihang
 * @date 2022-03-07
 */
public interface SysIntAuthorityServiceI {
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„系统集成接口的认证
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @param pageHelper åˆ†é¡µå’ŒæŽ’序
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException æŸ¥è¯¢æ¡ä»¶å’Œåˆ†é¡µå‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    DataGrid<SysIntAuthorityVO> gridSysIntAuthority(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException;
    /**
     * æ‰¹é‡æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param sysIntAuthorityDOs æ•°æ®å¯¹è±¡åˆ—表
     * @return æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException å‚数为空或者不存在的时候会抛出异常
     */
    List<SysIntAuthorityVO> sysIntAuthorityDO2VOs(Collection<SysIntAuthorityDO> sysIntAuthorityDOs) throws VciBaseException;
    /**
     * æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param  sysIntAuthorityDO æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException æ‹·è´å±žæ€§å‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    SysIntAuthorityVO sysIntAuthorityDO2VO(SysIntAuthorityDO sysIntAuthorityDO) throws VciBaseException;
    /**
     * å¢žåŠ ç³»ç»Ÿé›†æˆæŽ¥å£çš„è®¤è¯
     * @param sysIntAuthorityDTO ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证数据传输对象
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException å‚数为空,唯一项,必输项不通过时会抛出异常
     */
    SysIntAuthorityVO addSave(SysIntAuthorityDTO sysIntAuthorityDTO) throws VciBaseException;
    /**
     * ä¿®æ”¹ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证
     * @param sysIntAuthorityDTO ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证数据传输对象
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException å‚数为空,唯一项,必输项不通过时会抛出异常
     */
    SysIntAuthorityVO editSave(SysIntAuthorityDTO sysIntAuthorityDTO) throws VciBaseException;
    /**
     * åˆ é™¤ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证
     * @param sysIntAuthorityDTO ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证数据传输对象,oid和ts需要传输
     * @return åˆ é™¤ç»“果反馈::success:成功,fail:失败
     * @throws VciBaseException å‚数为空,被引用时抛出异常
     */
    BaseResult deleteSysIntAuthority(SysIntAuthorityDTO sysIntAuthorityDTO) throws VciBaseException;
    /**
    * ä¸»é”®èŽ·å–ç³»ç»Ÿé›†æˆæŽ¥å£çš„è®¤è¯
    * @param oid ä¸»é”®
    * @return ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证显示对象
    * @throws VciBaseException å‚数为空,数据不存在时会抛出异常
    */
    SysIntAuthorityVO getObjectByOid(String oid) throws VciBaseException;
    /**
     * ä¸»é”®æ‰¹é‡èŽ·å–ç³»ç»Ÿé›†æˆæŽ¥å£çš„è®¤è¯
     * @param oidCollections ä¸»é”®é›†åˆï¼Œä½†æ˜¯å—性能影响,建议一次查询不超过10000个
     * @return ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证显示对象
     * @throws VciBaseException æŸ¥è¯¢å‡ºçŽ°å¼‚å¸¸æ—¶ä¼šæŠ›å‡º
     */
    Collection<SysIntAuthorityVO> listSysIntAuthorityByOids(Collection<String> oidCollections) throws VciBaseException;
    /**
     * å‚照系统集成接口的认证列表
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @param pageHelper åˆ†é¡µå’ŒæŽ’序
     * @return ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证显示对象列表,生效的内容
     * @throws VciBaseException æŸ¥è¯¢æ¡ä»¶å’Œåˆ†é¡µå‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
     DataGrid<SysIntAuthorityVO> refDataGridSysIntAuthority(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException;
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/SysIntBaseServiceI.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,101 @@
package org.springblade.code.service;
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 org.springblade.code.dto.SysIntBaseDTO;
import org.springblade.code.model.SysIntBaseDO;
import org.springblade.code.vo.pagemodel.SysIntBaseVO;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
 * ç³»ç»Ÿé›†æˆçš„系统信息服务接口
 *
 * @author lihang
 * @date 2022-03-07
 */
public interface SysIntBaseServiceI {
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„系统集成的系统信息
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @param pageHelper åˆ†é¡µå’ŒæŽ’序
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException æŸ¥è¯¢æ¡ä»¶å’Œåˆ†é¡µå‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    DataGrid<SysIntBaseVO> gridSysIntBase(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException;
    /**
     * æ‰¹é‡æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param sysIntBaseDOs æ•°æ®å¯¹è±¡åˆ—表
     * @return æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException å‚数为空或者不存在的时候会抛出异常
     */
    List<SysIntBaseVO> sysIntBaseDO2VOs(Collection<SysIntBaseDO>  sysIntBaseDOs) throws VciBaseException;
    /**
     * æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param  sysIntBaseDO æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException æ‹·è´å±žæ€§å‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    SysIntBaseVO sysIntBaseDO2VO(SysIntBaseDO sysIntBaseDO) throws VciBaseException;
    /**
     * å¢žåŠ ç³»ç»Ÿé›†æˆçš„ç³»ç»Ÿä¿¡æ¯
     * @param sysIntBaseDTO ç³»ç»Ÿé›†æˆçš„系统信息数据传输对象
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException å‚数为空,唯一项,必输项不通过时会抛出异常
     */
    SysIntBaseVO addSave(SysIntBaseDTO sysIntBaseDTO) throws VciBaseException;
    /**
     * ä¿®æ”¹ç³»ç»Ÿé›†æˆçš„系统信息
     * @param sysIntBaseDTO ç³»ç»Ÿé›†æˆçš„系统信息数据传输对象
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException å‚数为空,唯一项,必输项不通过时会抛出异常
     */
    SysIntBaseVO editSave(SysIntBaseDTO sysIntBaseDTO) throws VciBaseException;
    /**
     * åˆ é™¤ç³»ç»Ÿé›†æˆçš„系统信息
     * @param sysIntBaseDTO ç³»ç»Ÿé›†æˆçš„系统信息数据传输对象,oid和ts需要传输
     * @return åˆ é™¤ç»“果反馈::success:成功,fail:失败
     * @throws VciBaseException å‚数为空,被引用时抛出异常
     */
    BaseResult deleteSysIntBase(SysIntBaseDTO sysIntBaseDTO) throws VciBaseException;
    /**
    * ä¸»é”®èŽ·å–ç³»ç»Ÿé›†æˆçš„ç³»ç»Ÿä¿¡æ¯
    * @param oid ä¸»é”®
    * @return ç³»ç»Ÿé›†æˆçš„系统信息显示对象
    * @throws VciBaseException å‚数为空,数据不存在时会抛出异常
    */
    SysIntBaseVO getObjectByOid(String oid) throws VciBaseException;
    /**
     * ä¸»é”®æ‰¹é‡èŽ·å–ç³»ç»Ÿé›†æˆçš„ç³»ç»Ÿä¿¡æ¯
     * @param oidCollections ä¸»é”®é›†åˆï¼Œä½†æ˜¯å—性能影响,建议一次查询不超过10000个
     * @return ç³»ç»Ÿé›†æˆçš„系统信息显示对象
     * @throws VciBaseException æŸ¥è¯¢å‡ºçŽ°å¼‚å¸¸æ—¶ä¼šæŠ›å‡º
     */
    Collection<SysIntBaseVO> listSysIntBaseByOids(Collection<String> oidCollections) throws VciBaseException;
    /**
     * å‚照系统集成的系统信息列表
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @param pageHelper åˆ†é¡µå’ŒæŽ’序
     * @return ç³»ç»Ÿé›†æˆçš„系统信息显示对象列表,生效的内容
     * @throws VciBaseException æŸ¥è¯¢æ¡ä»¶å’Œåˆ†é¡µå‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
     DataGrid<SysIntBaseVO> refDataGridSysIntBase(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException;
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/SysIntInfoServiceI.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,159 @@
package org.springblade.code.service;
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 org.springblade.code.dto.SysIntInfoDTO;
import org.springblade.code.dto.UpdateSysInfoStatusDTO;
import org.springblade.code.model.SysIntHeaderDO;
import org.springblade.code.model.SysIntInfoDO;
import org.springblade.code.model.SysIntParamDO;
import org.springblade.code.vo.pagemodel.SysIntInfoVO;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
 * ç³»ç»Ÿé›†æˆåŸºç¡€ä¿¡æ¯æœåŠ¡æŽ¥å£
 *
 * @author lihang
 * @date 2022-03-07
 */
public interface SysIntInfoServiceI {
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„系统集成基础信息
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @param pageHelper åˆ†é¡µå’ŒæŽ’序
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException æŸ¥è¯¢æ¡ä»¶å’Œåˆ†é¡µå‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    DataGrid<SysIntInfoVO> gridSysIntInfo(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException;
    List<SysIntInfoDO> selectAll(Map conditonMap);
    /**
     * æ‰¹é‡æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param sysIntInfoDOs æ•°æ®å¯¹è±¡åˆ—表
     * @return æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException å‚数为空或者不存在的时候会抛出异常
     */
    List<SysIntInfoVO> sysIntInfoDO2VOs(Collection<SysIntInfoDO> sysIntInfoDOs) throws VciBaseException;
    /**
     * æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param  sysIntInfoDO æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException æ‹·è´å±žæ€§å‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    SysIntInfoVO sysIntInfoDO2VO(SysIntInfoDO sysIntInfoDO) throws VciBaseException;
    /**
     * å¢žåŠ ç³»ç»Ÿé›†æˆåŸºç¡€ä¿¡æ¯
     * @param sysIntInfoDTO ç³»ç»Ÿé›†æˆåŸºç¡€ä¿¡æ¯æ•°æ®ä¼ è¾“对象
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException å‚数为空,唯一项,必输项不通过时会抛出异常
     */
    SysIntInfoVO addSave(SysIntInfoDTO sysIntInfoDTO) throws VciBaseException;
    /**
     * ä¿®æ”¹ç³»ç»Ÿé›†æˆåŸºç¡€ä¿¡æ¯
     * @param sysIntInfoDTO ç³»ç»Ÿé›†æˆåŸºç¡€ä¿¡æ¯æ•°æ®ä¼ è¾“对象
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException å‚数为空,唯一项,必输项不通过时会抛出异常
     */
    SysIntInfoVO editSave(SysIntInfoDTO sysIntInfoDTO) throws VciBaseException;
    /**
     * åˆ é™¤ç³»ç»Ÿé›†æˆåŸºç¡€ä¿¡æ¯
     * @param sysIntInfoDTO ç³»ç»Ÿé›†æˆåŸºç¡€ä¿¡æ¯æ•°æ®ä¼ è¾“对象,oid和ts需要传输
     * @return åˆ é™¤ç»“果反馈::success:成功,fail:失败
     * @throws VciBaseException å‚数为空,被引用时抛出异常
     */
    BaseResult deleteSysIntInfo(SysIntInfoDTO sysIntInfoDTO) throws VciBaseException;
    /**
    * ä¸»é”®èŽ·å–ç³»ç»Ÿé›†æˆåŸºç¡€ä¿¡æ¯
    * @param oid ä¸»é”®
    * @return ç³»ç»Ÿé›†æˆåŸºç¡€ä¿¡æ¯æ˜¾ç¤ºå¯¹è±¡
    * @throws VciBaseException å‚数为空,数据不存在时会抛出异常
    */
    SysIntInfoVO getObjectByOid(String oid) throws VciBaseException;
    /**
     * ä¸»é”®æ‰¹é‡èŽ·å–ç³»ç»Ÿé›†æˆåŸºç¡€ä¿¡æ¯
     * @param oidCollections ä¸»é”®é›†åˆï¼Œä½†æ˜¯å—性能影响,建议一次查询不超过10000个
     * @return ç³»ç»Ÿé›†æˆåŸºç¡€ä¿¡æ¯æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException æŸ¥è¯¢å‡ºçŽ°å¼‚å¸¸æ—¶ä¼šæŠ›å‡º
     */
    Collection<SysIntInfoVO> listSysIntInfoByOids(Collection<String> oidCollections) throws VciBaseException;
    /**
     * å‚照系统集成基础信息列表
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @param pageHelper åˆ†é¡µå’ŒæŽ’序
     * @return ç³»ç»Ÿé›†æˆåŸºç¡€ä¿¡æ¯æ˜¾ç¤ºå¯¹è±¡åˆ—表,生效的内容
     * @throws VciBaseException æŸ¥è¯¢æ¡ä»¶å’Œåˆ†é¡µå‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
     DataGrid<SysIntInfoVO> refDataGridSysIntInfo(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException;
    /**
     * å½“前接口信息是否有使用目标信息
     * @param sysOid ç³»ç»ŸOid
     * @param authorityOid è®¤è¯æ–¹å¼Oid
     * @return true = åœ¨ä½¿ç”¨ ï¼›false = æœªä½¿ç”¨
     * @throws VciBaseException æŸ¥è¯¢æ¡ä»¶å’Œåˆ†é¡µå‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
     boolean isAlreadyUse (String sysOid,String authorityOid) throws VciBaseException;
     //=========以下系统参数和验证信息
    /**
     * æ ¹æ®ç³»ç»Ÿä¿¡æ¯æŸ¥è¯¢æŽ¥å£æ‰€æœ‰param
     * @param sysInfoOid
     * @return
     */
    List<SysIntParamDO> getParamsBySystemInfoOid(String sysInfoOid);
    /**
     * 1、先删除以前所有param
     * 2、再查询传入的所有param
     * @return
     */
    BaseResult updateParams(String sysInfoOid,List<SysIntParamDO> params);
    /**
     * æ ¹æ®ç³»ç»Ÿä¿¡æ¯æŸ¥è¯¢æŽ¥å£æ‰€æœ‰header
     * @param sysInfoOid
     * @return
     */
    List<SysIntHeaderDO> getHeadersBySystemInfoOid(String sysInfoOid);
    /**
     * 1、先删除以前所有header
     * 2、再查询传入的所有header
     * @return
     */
    BaseResult updateHeaders(String sysInfoOid,List<SysIntHeaderDO> params);
    /**
     * æ ¹æ®åˆ†ç±»oid查询所有要推送这个分类数据的接口信息
     * @param classifyOids
     * @return
     */
    List<SysIntInfoDO> getSysInfoByClassifyOid(String[] classifyOids);
    /***
     * æ›´æ–°æŽ¥å£é…ç½®ä¿¡æ¯çŠ¶æ€
     * @param sysInfoStatusDTO
     * @return
     */
    public BaseResult updateStatus(UpdateSysInfoStatusDTO sysInfoStatusDTO);
    BaseResult pushData(SysIntInfoDTO sysIntInfoDTO) throws VciBaseException;
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/UniversalInterfaceI.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,47 @@
package org.springblade.code.service;
import javax.jws.WebService;
/**
 * ç»Ÿä¸€æŽ¥å£
 *
 * @author xiejun
 * @date 2022-11-27
 */
@WebService(targetNamespace = "http://code.web.vci.com/",name = "universalInterface")
public interface UniversalInterfaceI {
    /**
     *统一申请编码接口
     * @param data ä¼ é€’的数据参数
     * @param dataType æ ‡è¯†data是xml格式还是json格式,接口返回数据也是按照这个格式,以下接口类同
     * @return xml格式/json格式
     * @throws Throwable
     */
    public String applyCode(String data,String dataType)throws Throwable;
    /***
     * ç»Ÿä¸€æ›´æ–°æŽ¥å£
     * @param data
     * @param dataType
     * @return
     * @throws Throwable
     */
    public String syncEditData(String data,String dataType)throws Throwable;
    /***
     * æŸ¥è¯¢åˆ†ç±»å£
     * @param data
     * @param dataType
     * @throws Throwable
     */
    public String  queryClassify(String data,String dataType)throws Throwable;
    /***
     * æŸ¥è¯¢æ•°æ®
     * @param data
     * @param dataType
     * @throws Throwable
     */
    public String  queryData(String data,String dataType)throws Throwable;
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/CodeBasicSecServiceImpl.java
@@ -1,22 +1,8 @@
package org.springblade.code.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.vci.frameworkcore.lcstatuspck.FrameworkDataLCStatus;
import com.vci.mdm.constant.MdmBtmTypeConstant;
import com.vci.mdm.dao.CodeBasicSecDaoI;
import com.vci.mdm.dao.CodeClassifyValueDaoI;
import com.vci.mdm.dao.CodeFixedValueDaoI;
import com.vci.mdm.dto.CodeBasicSecDTO;
import com.vci.mdm.enumpack.CodeSecTypeEnum;
import com.vci.mdm.lifecycle.CodeRuleLC;
import com.vci.mdm.model.CodeBasicSecDO;
import com.vci.mdm.model.CodeClassifyValueDO;
import com.vci.mdm.model.CodeFixedValueDO;
import com.vci.mdm.pagemodel.CodeBasicSecVO;
import com.vci.mdm.pagemodel.CodeClassifyValueVO;
import com.vci.mdm.pagemodel.CodeFixedValueVO;
import com.vci.mdm.pagemodel.CodeRuleVO;
import com.vci.mdm.service.*;
import com.vci.starter.revision.bo.TreeWrapperOptions;
import com.vci.starter.revision.service.RevisionModelUtil;
import com.vci.starter.web.constant.QueryOptionConstant;
@@ -28,14 +14,31 @@
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.enumpck.OsCodeFillTypeEnum;
import com.vci.web.pageModel.BatchCBO;
import com.vci.web.pageModel.KeyValue;
import com.vci.web.pageModel.UIFormReferVO;
import com.vci.web.service.BdSelectInputCharServiceI;
import com.vci.web.service.WebBoServiceI;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.code.constant.MdmBtmTypeConstant;
import org.springblade.code.dao.CodeBasicSecDaoI;
import org.springblade.code.dao.CodeClassifyValueDaoI;
import org.springblade.code.dao.CodeFixedValueDaoI;
import org.springblade.code.dto.CodeBasicSecDTO;
import org.springblade.code.enumpack.CodeSecTypeEnum;
import org.springblade.code.lifecycle.CodeRuleLC;
import org.springblade.code.model.CodeBasicSecDO;
import org.springblade.code.model.CodeClassifyValueDO;
import org.springblade.code.model.CodeFixedValueDO;
import org.springblade.code.service.CodeBasicSecServiceI;
import org.springblade.code.service.CodeClassifyValueServiceI;
import org.springblade.code.service.CodeFixedValueServiceI;
import org.springblade.code.service.CodeRuleServiceI;
import org.springblade.code.vo.pagemodel.CodeBasicSecVO;
import org.springblade.code.vo.pagemodel.CodeClassifyValueVO;
import org.springblade.code.vo.pagemodel.CodeFixedValueVO;
import org.springblade.code.vo.pagemodel.CodeRuleVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -414,7 +417,7 @@
        deleteSet.addAll(batchCBO.getDeleteCbos());
        if (CodeSecTypeEnum.CODE_FIXED_SEC.getValue().equals(codeBasicSecDO.getSecType())){
            conditionMap.put("codefixedsecoid",codeBasicSecDO.getOid());
            VciQueryWrapperForDO wrapper = new VciQueryWrapperForDO(conditionMap,CodeFixedValueDO.class);
            VciQueryWrapperForDO wrapper = new VciQueryWrapperForDO(conditionMap, CodeFixedValueDO.class);
            List<CodeFixedValueDO> fixedValueDOS = fixedValueMapper.selectByWrapper(wrapper);
            BatchCBO valueCBO = fixedValueMapper.batchDeleteByOids(fixedValueDOS.stream().map(CodeFixedValueDO::getOid).collect(Collectors.toSet()));
            deleteSet.addAll(valueCBO.getDeleteCbos());
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/CodeButtonServiceImpl.java
@@ -1,11 +1,6 @@
package org.springblade.code.service.impl;
import com.vci.frameworkcore.lcstatuspck.FrameworkDataLCStatus;
import com.vci.mdm.dao.CodeButtonDaoI;
import com.vci.mdm.dto.CodeButtonDTO;
import com.vci.mdm.model.CodeButtonDO;
import com.vci.mdm.pagemodel.CodeButtonVO;
import com.vci.mdm.service.CodeButtonServiceI;
import com.vci.starter.revision.service.RevisionModelUtil;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseResult;
@@ -19,6 +14,11 @@
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.code.dao.CodeButtonDaoI;
import org.springblade.code.dto.CodeButtonDTO;
import org.springblade.code.model.CodeButtonDO;
import org.springblade.code.service.CodeButtonServiceI;
import org.springblade.code.vo.pagemodel.CodeButtonVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -34,7 +34,7 @@
 * @date 2022-01-24
 */
@Service
public class CodeButtonServiceImpl implements CodeButtonServiceI{
public class CodeButtonServiceImpl implements CodeButtonServiceI {
    /**
    * æ—¥å¿—
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/CodeClassifyProcessTempServiceImpl.java
@@ -1,10 +1,6 @@
package org.springblade.code.service.impl;
import com.vci.mdm.dao.CodeClassifyProcessTempDaoI;
import com.vci.mdm.dto.CodeClassifyProcessTempDTO;
import com.vci.mdm.model.CodeClassifyProcessTempDO;
import com.vci.mdm.pagemodel.CodeClassifyProcessTempVO;
import com.vci.mdm.service.CodeClassifyProcessTempServiceI;
import com.vci.starter.revision.service.RevisionModelUtil;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseResult;
@@ -16,9 +12,14 @@
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.pageModel.BatchCBO;
import com.vci.web.service.WebBoServiceI;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.code.dao.CodeClassifyProcessTempDaoI;
import org.springblade.code.dto.CodeClassifyProcessTempDTO;
import org.springblade.code.model.CodeClassifyProcessTempDO;
import org.springblade.code.service.CodeClassifyProcessTempServiceI;
import org.springblade.code.vo.pagemodel.CodeClassifyProcessTempVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -27,7 +28,7 @@
import java.util.*;
import java.util.stream.Collectors;
import static com.vci.frameworkcore.constant.FrameWorkLangCodeConstant.*;
import static com.vci.frameworkcore.constant.FrameWorkBusLangCodeConstant.*;
/**
 * åˆ†ç±»ä½¿ç”¨çš„æµç¨‹æ¨¡æ¿æœåŠ¡
@@ -35,7 +36,7 @@
 * @date 2022-01-24
 */
@Service
public class CodeClassifyProcessTempServiceImpl implements CodeClassifyProcessTempServiceI{
public class CodeClassifyProcessTempServiceImpl implements CodeClassifyProcessTempServiceI {
    /**
    * æ—¥å¿—
@@ -70,7 +71,7 @@
     * @throws VciBaseException æŸ¥è¯¢æ¡ä»¶å’Œåˆ†é¡µå‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    @Override
    public DataGrid<CodeClassifyProcessTempVO> gridCodeClassifyProcessTemp(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException{
    public DataGrid<CodeClassifyProcessTempVO> gridCodeClassifyProcessTemp(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException {
        if (pageHelper == null) {
            pageHelper = new PageHelper(-1);
        }
@@ -91,7 +92,7 @@
     * @throws VciBaseException å‚数为空或者不存在的时候会抛出异常
     */
    @Override
    public List<CodeClassifyProcessTempVO> codeClassifyProcessTempDO2VOs(Collection<CodeClassifyProcessTempDO>  codeClassifyProcessTempDOs) throws VciBaseException{
    public List<CodeClassifyProcessTempVO> codeClassifyProcessTempDO2VOs(Collection<CodeClassifyProcessTempDO> codeClassifyProcessTempDOs) throws VciBaseException{
        List<CodeClassifyProcessTempVO> voList = new ArrayList<CodeClassifyProcessTempVO>();
        if(!CollectionUtils.isEmpty(codeClassifyProcessTempDOs)){
            codeClassifyProcessTempDOs.forEach(temp -> {
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/CodeClassifyServiceImpl.java
@@ -1,17 +1,6 @@
package org.springblade.code.service.impl;
import com.vci.frameworkcore.lcstatuspck.FrameworkDataLCStatus;
import com.vci.mdm.bo.CodeClassifyFullInfoBO;
import com.vci.mdm.dao.CodeClassifyDaoI;
import com.vci.mdm.dao.CodeClassifyTemplateDaoI;
import com.vci.mdm.dto.CodeClassifyDTO;
import com.vci.mdm.model.CodeClassifyDO;
import com.vci.mdm.model.CodeClassifyTemplateDO;
import com.vci.mdm.pagemodel.CodeClassifyVO;
import com.vci.mdm.pagemodel.CodeKeyAttrRepeatRuleVO;
import com.vci.mdm.pagemodel.CodeRuleVO;
import com.vci.mdm.po.CodeClassifyPO;
import com.vci.mdm.service.*;
import com.vci.starter.poi.bo.ReadExcelOption;
import com.vci.starter.poi.bo.WriteExcelData;
import com.vci.starter.poi.bo.WriteExcelOption;
@@ -32,10 +21,24 @@
import com.vci.web.service.OsAttributeServiceI;
import com.vci.web.service.OsBtmServiceI;
import com.vci.web.service.WebBoServiceI;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.poi.hssf.util.HSSFColor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.code.bo.CodeClassifyFullInfoBO;
import org.springblade.code.dao.CodeClassifyDaoI;
import org.springblade.code.dao.CodeClassifyTemplateDaoI;
import org.springblade.code.dto.CodeClassifyDTO;
import org.springblade.code.model.CodeClassifyDO;
import org.springblade.code.model.CodeClassifyTemplateDO;
import org.springblade.code.po.CodeClassifyPO;
import org.springblade.code.service.CodeClassifyServiceI;
import org.springblade.code.service.CodeDuckingServiceI;
import org.springblade.code.service.CodeKeyAttrRepeatRuleServiceI;
import org.springblade.code.service.CodeRuleServiceI;
import org.springblade.code.vo.pagemodel.CodeClassifyVO;
import org.springblade.code.vo.pagemodel.CodeKeyAttrRepeatRuleVO;
import org.springblade.code.vo.pagemodel.CodeRuleVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -45,8 +48,8 @@
import java.util.*;
import java.util.stream.Collectors;
import static com.vci.frameworkcore.constant.FrameWorkBusLangCodeConstant.*;
import static com.vci.frameworkcore.constant.FrameWorkDefaultValueConstant.*;
import static com.vci.frameworkcore.constant.FrameWorkLangCodeConstant.*;
/**
 * ä¸»é¢˜åº“分类服务
@@ -54,7 +57,7 @@
 * @date 2022-01-20
 */
@Service
public class CodeClassifyServiceImpl implements CodeClassifyServiceI{
public class CodeClassifyServiceImpl implements CodeClassifyServiceI {
    /**
    * æ—¥å¿—
@@ -126,7 +129,7 @@
     * @throws VciBaseException æŸ¥è¯¢æ¡ä»¶ä¸ç¬¦åˆè¦æ±‚的时候会抛出异常
     */
    @Override
    public List<Tree> treeCodeClassify(TreeQueryObject treeQueryObject) throws VciBaseException{
    public List<Tree> treeCodeClassify(TreeQueryObject treeQueryObject) throws VciBaseException {
        List<CodeClassifyDO> doList =selectCodeClassifyDOByTree(treeQueryObject);
        List<CodeClassifyVO> voList = codeClassifyDO2VOs(doList);
        TreeWrapperOptions treeWrapperOptions = new TreeWrapperOptions(PARENT_FIELD_NAME.toLowerCase(Locale.ROOT));
@@ -194,7 +197,7 @@
     * @throws VciBaseException å‚数为空或者不存在的时候会抛出异常
     */
    @Override
    public List<CodeClassifyVO> codeClassifyDO2VOs(Collection<CodeClassifyDO>  codeClassifyDOs) throws VciBaseException{
    public List<CodeClassifyVO> codeClassifyDO2VOs(Collection<CodeClassifyDO> codeClassifyDOs) throws VciBaseException{
        List<CodeClassifyVO> voList = new ArrayList<CodeClassifyVO>();
        if(!CollectionUtils.isEmpty(codeClassifyDOs)){
           for(CodeClassifyDO s: codeClassifyDOs){
@@ -1004,7 +1007,7 @@
    /***
     * æ ¹æ®ä¸Šçº§èŠ‚ç‚¹èŽ·å–ä¸‹çº§èŠ‚ç‚¹ä»£å·è·¯å¾„å’Œåç§°è·¯å¾„
     * @param classifyId
     * @param codeClassifyId
     * @param enable
     * @return
     */
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/CodeClassifyTempMapItemServiceImpl.java
@@ -1,12 +1,5 @@
package org.springblade.code.service.impl;
import com.vci.mdm.dao.CodeClassifyTempMapItemDaoI;
import com.vci.mdm.dto.CodeClassifyTempMapItemDTO;
import com.vci.mdm.model.CodeClassifyTempMapItemDO;
import com.vci.mdm.pagemodel.CodeClassifyTempMapItemVO;
import com.vci.mdm.pagemodel.CodeClassifyTemplateAttrVO;
import com.vci.mdm.service.CodeClassifyTempMapItemServiceI;
import com.vci.mdm.service.CodeClassifyTemplateAttrServiceI;
import com.vci.starter.revision.service.RevisionModelUtil;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseResult;
@@ -19,6 +12,13 @@
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.code.dao.CodeClassifyTempMapItemDaoI;
import org.springblade.code.dto.CodeClassifyTempMapItemDTO;
import org.springblade.code.model.CodeClassifyTempMapItemDO;
import org.springblade.code.service.CodeClassifyTempMapItemServiceI;
import org.springblade.code.service.CodeClassifyTemplateAttrServiceI;
import org.springblade.code.vo.pagemodel.CodeClassifyTempMapItemVO;
import org.springblade.code.vo.pagemodel.CodeClassifyTemplateAttrVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -35,7 +35,7 @@
 * @date 2022-03-10
 */
@Service
public class CodeClassifyTempMapItemServiceImpl implements CodeClassifyTempMapItemServiceI{
public class CodeClassifyTempMapItemServiceImpl implements CodeClassifyTempMapItemServiceI {
    /**
    * æ—¥å¿—
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/CodeClassifyTemplateAttrServiceImpl.java
@@ -1,17 +1,6 @@
package org.springblade.code.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.vci.mdm.constant.MdmBtmTypeConstant;
import com.vci.mdm.dao.CodeClassifyTemplateAttrDaoI;
import com.vci.mdm.dao.CodeClassifyTemplateDaoI;
import com.vci.mdm.dto.CodeClassifyTemplateAttrDTO;
import com.vci.mdm.enumpack.CodeLevelTypeEnum;
import com.vci.mdm.model.CodeClassifyTemplateAttrDO;
import com.vci.mdm.model.CodeClassifyTemplateDO;
import com.vci.mdm.pagemodel.CodeClassifyTemplateAttrVO;
import com.vci.mdm.service.CodeClassifyTemplateAttrServiceI;
import com.vci.mdm.service.CodeTemplatePhaseServiceI;
import com.vci.mdm.utils.PatternUtil;
import com.vci.starter.revision.service.RevisionModelUtil;
import com.vci.starter.web.constant.QueryOptionConstant;
import com.vci.starter.web.enumpck.VciFieldTypeEnum;
@@ -33,6 +22,17 @@
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.code.constant.MdmBtmTypeConstant;
import org.springblade.code.dao.CodeClassifyTemplateAttrDaoI;
import org.springblade.code.dao.CodeClassifyTemplateDaoI;
import org.springblade.code.dto.CodeClassifyTemplateAttrDTO;
import org.springblade.code.enumpack.CodeLevelTypeEnum;
import org.springblade.code.model.CodeClassifyTemplateAttrDO;
import org.springblade.code.model.CodeClassifyTemplateDO;
import org.springblade.code.service.CodeClassifyTemplateAttrServiceI;
import org.springblade.code.service.CodeTemplatePhaseServiceI;
import org.springblade.code.utils.PatternUtil;
import org.springblade.code.vo.pagemodel.CodeClassifyTemplateAttrVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -49,7 +49,7 @@
 * @date 2022-01-24
 */
@Service
public class CodeClassifyTemplateAttrServiceImpl implements CodeClassifyTemplateAttrServiceI{
public class CodeClassifyTemplateAttrServiceImpl implements CodeClassifyTemplateAttrServiceI {
    /**
    * æ—¥å¿—
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/CodeClassifyTemplateButtonServiceImpl.java
@@ -1,12 +1,5 @@
package org.springblade.code.service.impl;
import com.vci.mdm.dao.CodeClassifyTemplateButtonDaoI;
import com.vci.mdm.dto.CodeClassifyTemplateButtonDTO;
import com.vci.mdm.model.CodeClassifyTemplateButtonDO;
import com.vci.mdm.pagemodel.CodeButtonVO;
import com.vci.mdm.pagemodel.CodeClassifyTemplateButtonVO;
import com.vci.mdm.service.CodeButtonServiceI;
import com.vci.mdm.service.CodeClassifyTemplateButtonServiceI;
import com.vci.starter.revision.service.RevisionModelUtil;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseResult;
@@ -20,6 +13,13 @@
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.code.dao.CodeClassifyTemplateButtonDaoI;
import org.springblade.code.dto.CodeClassifyTemplateButtonDTO;
import org.springblade.code.model.CodeClassifyTemplateButtonDO;
import org.springblade.code.service.CodeButtonServiceI;
import org.springblade.code.service.CodeClassifyTemplateButtonServiceI;
import org.springblade.code.vo.pagemodel.CodeButtonVO;
import org.springblade.code.vo.pagemodel.CodeClassifyTemplateButtonVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -35,7 +35,7 @@
 * @date 2022-01-24
 */
@Service
public class CodeClassifyTemplateButtonServiceImpl implements CodeClassifyTemplateButtonServiceI{
public class CodeClassifyTemplateButtonServiceImpl implements CodeClassifyTemplateButtonServiceI {
    /**
    * æ—¥å¿—
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/CodeClassifyTemplateMapServiceImpl.java
@@ -1,10 +1,6 @@
package org.springblade.code.service.impl;
import com.vci.mdm.dao.CodeClassifyTemplateMapDaoI;
import com.vci.mdm.dto.CodeClassifyTemplateMapDTO;
import com.vci.mdm.model.CodeClassifyTemplateMapDO;
import com.vci.mdm.pagemodel.CodeClassifyTemplateMapVO;
import com.vci.mdm.service.CodeClassifyTemplateMapServiceI;
import com.vci.starter.revision.service.RevisionModelUtil;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseResult;
@@ -14,9 +10,14 @@
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.pageModel.BatchCBO;
import com.vci.web.service.WebBoServiceI;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.code.dao.CodeClassifyTemplateMapDaoI;
import org.springblade.code.dto.CodeClassifyTemplateMapDTO;
import org.springblade.code.model.CodeClassifyTemplateMapDO;
import org.springblade.code.service.CodeClassifyTemplateMapServiceI;
import org.springblade.code.vo.pagemodel.CodeClassifyTemplateMapVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -24,7 +25,7 @@
import javax.annotation.Resource;
import java.util.*;
import static com.vci.frameworkcore.constant.FrameWorkLangCodeConstant.*;
import static com.vci.frameworkcore.constant.FrameWorkBusLangCodeConstant.*;
/**
 * ä¸»é¢˜åº“模板映射规则服务
@@ -32,7 +33,7 @@
 * @date 2022-01-24
 */
@Service
public class CodeClassifyTemplateMapServiceImpl implements CodeClassifyTemplateMapServiceI{
public class CodeClassifyTemplateMapServiceImpl implements CodeClassifyTemplateMapServiceI {
    /**
    * æ—¥å¿—
@@ -66,7 +67,7 @@
     * @throws VciBaseException æŸ¥è¯¢æ¡ä»¶å’Œåˆ†é¡µå‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    @Override
    public DataGrid<CodeClassifyTemplateMapVO> gridCodeClassifyTemplateMap(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException{
    public DataGrid<CodeClassifyTemplateMapVO> gridCodeClassifyTemplateMap(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException {
        if (pageHelper == null) {
            pageHelper = new PageHelper(-1);
        }
@@ -88,7 +89,7 @@
     * @throws VciBaseException å‚数为空或者不存在的时候会抛出异常
     */
    @Override
    public List<CodeClassifyTemplateMapVO> codeClassifyTemplateMapDO2VOs(Collection<CodeClassifyTemplateMapDO>  codeClassifyTemplateMapDOs) throws VciBaseException{
    public List<CodeClassifyTemplateMapVO> codeClassifyTemplateMapDO2VOs(Collection<CodeClassifyTemplateMapDO> codeClassifyTemplateMapDOs) throws VciBaseException{
        List<CodeClassifyTemplateMapVO> voList = new ArrayList<CodeClassifyTemplateMapVO>();
        if(!CollectionUtils.isEmpty(codeClassifyTemplateMapDOs)){
           for(CodeClassifyTemplateMapDO s: codeClassifyTemplateMapDOs){
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/CodeClassifyTemplateServiceImpl.java
@@ -2,13 +2,6 @@
import com.vci.corba.common.VCIError;
import com.vci.frameworkcore.lcstatuspck.FrameworkDataLCStatus;
import com.vci.mdm.dao.*;
import com.vci.mdm.dto.CodeClassifyTemplateDTO;
import com.vci.mdm.lifecycle.CodeClassifyTemplateLC;
import com.vci.mdm.model.*;
import com.vci.mdm.pagemodel.CodeClassifyTemplateAttrVO;
import com.vci.mdm.pagemodel.CodeClassifyTemplateVO;
import com.vci.mdm.service.*;
import com.vci.starter.revision.bo.TreeWrapperOptions;
import com.vci.starter.revision.service.RevisionModelUtil;
import com.vci.starter.web.constant.QueryOptionConstant;
@@ -24,6 +17,13 @@
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.code.dao.*;
import org.springblade.code.dto.CodeClassifyTemplateDTO;
import org.springblade.code.lifecycle.CodeClassifyTemplateLC;
import org.springblade.code.model.*;
import org.springblade.code.service.*;
import org.springblade.code.vo.pagemodel.CodeClassifyTemplateAttrVO;
import org.springblade.code.vo.pagemodel.CodeClassifyTemplateVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
@@ -43,7 +43,7 @@
 * @date 2022-01-24
 */
@Service
public class CodeClassifyTemplateServiceImpl implements CodeClassifyTemplateServiceI{
public class CodeClassifyTemplateServiceImpl implements CodeClassifyTemplateServiceI {
    /**
    * æ—¥å¿—
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/CodeClassifyValueServiceImpl.java
@@ -1,13 +1,6 @@
package org.springblade.code.service.impl;
import com.vci.frameworkcore.lcstatuspck.FrameworkDataLCStatus;
import com.vci.mdm.dao.CodeBasicSecDaoI;
import com.vci.mdm.dao.CodeClassifyValueDaoI;
import com.vci.mdm.dto.CodeClassifyValueDTO;
import com.vci.mdm.model.CodeBasicSecDO;
import com.vci.mdm.model.CodeClassifyValueDO;
import com.vci.mdm.pagemodel.CodeClassifyValueVO;
import com.vci.mdm.service.CodeClassifyValueServiceI;
import com.vci.starter.revision.bo.TreeWrapperOptions;
import com.vci.starter.revision.service.RevisionModelUtil;
import com.vci.starter.web.exception.VciBaseException;
@@ -24,6 +17,13 @@
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.code.dao.CodeBasicSecDaoI;
import org.springblade.code.dao.CodeClassifyValueDaoI;
import org.springblade.code.dto.CodeClassifyValueDTO;
import org.springblade.code.model.CodeBasicSecDO;
import org.springblade.code.model.CodeClassifyValueDO;
import org.springblade.code.service.CodeClassifyValueServiceI;
import org.springblade.code.vo.pagemodel.CodeClassifyValueVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -41,7 +41,7 @@
 * @date 2022-01-24
 */
@Service
public class CodeClassifyValueServiceImpl implements CodeClassifyValueServiceI{
public class CodeClassifyValueServiceImpl implements CodeClassifyValueServiceI {
    /**
    * æ—¥å¿—
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/CodeDuckingServiceImpl.java
@@ -3,14 +3,6 @@
import cn.hutool.json.XML;
import com.alibaba.fastjson.JSONObject;
import com.vci.mdm.constant.MdmDuckingConstant;
import com.vci.mdm.dao.*;
import com.vci.mdm.dto.DockingPreApplyDataDTO;
import com.vci.mdm.dto.DockingPreApplyDataInfoDTO;
import com.vci.mdm.model.*;
import com.vci.mdm.pagemodel.*;
import com.vci.mdm.service.*;
import com.vci.mdm.utils.*;
import com.vci.starter.web.enumpck.UserSecretEnum;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseResult;
@@ -25,9 +17,18 @@
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.code.constant.MdmDuckingConstant;
import org.springblade.code.dao.*;
import org.springblade.code.dto.DockingPreApplyDataDTO;
import org.springblade.code.dto.DockingPreApplyDataInfoDTO;
import org.springblade.code.model.*;
import org.springblade.code.service.*;
import org.springblade.code.utils.*;
import org.springblade.code.vo.pagemodel.CodeClassifyTemplateVO;
import org.springblade.code.vo.pagemodel.SysIntInfoVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy;
@@ -47,9 +48,8 @@
import java.util.stream.Collectors;
import static com.vci.frameworkcore.constant.FrameWorkDefaultValueConstant.*;
import static com.vci.mdm.constant.MdmDuckingConstant.*;
import static com.vci.mdm.utils.DateUtils.DATE_TO_STRING_DETAIAL_PATTERN;
import static org.springblade.code.constant.MdmDuckingConstant.*;
import static org.springblade.code.utils.DateUtils.DATE_TO_STRING_DETAIAL_PATTERN;
/**
 * ä¸»é¢˜åº“集成服务
@@ -172,7 +172,7 @@
        //记录这次数据信息,并且把xmldata写入文件
        String currentDate = DateUtils.getCurrentDate(DATE_TO_STRING_DETAIAL_PATTERN);
        File preXmlFile = new File(preXmlTemp+File.separator+systemid+"-"+currentDate+".xml");
        File preXmlFile = new File(preXmlTemp+ File.separator+systemid+"-"+currentDate+".xml");
        try {
            FileUtils.write(preXmlFile, xmlDatas);
@@ -519,7 +519,7 @@
        //查询哪些任务还没有执行完成
        VciQueryWrapperForDO queryWrapper = new VciQueryWrapperForDO(DockingTaskDO.class);
        queryWrapper.addQueryMap("sendFlag",MdmDuckingConstant.SEND_FLAG_FALSE);
        queryWrapper.addQueryMap("sendFlag", MdmDuckingConstant.SEND_FLAG_FALSE);
        List<DockingTaskDO> dockingTaskDOS = dockingTaskDaoI.selectByWrapper(queryWrapper);
        //每个task依次执行推送
@@ -888,7 +888,7 @@
    }
    @Override
    public DataGrid<DockingDataDO> gridData(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException{
    public DataGrid<DockingDataDO> gridData(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException {
        if (pageHelper == null) {
            pageHelper = new PageHelper(-1);
        }
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/CodeDuckingSyncServiceImpl.java
@@ -4,25 +4,6 @@
import com.alibaba.fastjson.JSONObject;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;
import com.vci.mdm.constant.MdmDuckingConstant;
import com.vci.mdm.dao.*;
import com.vci.mdm.dto.datapush.classify.JsonRootDataDTO;
import com.vci.mdm.dto.datapush.classify.NodeClassifyDTO;
import com.vci.mdm.dto.datapush.classify.NodeDataDTO;
import com.vci.mdm.dto.datapush.classify.NodeLibraryDTO;
import com.vci.mdm.dto.datapush.data.NodeJosnDTO;
import com.vci.mdm.dto.datapush.data.NodeObjectDTO;
import com.vci.mdm.dto.datapush.data.NodeProDTO;
import com.vci.mdm.dto.datapush.data.NodedataDTO;
import com.vci.mdm.dto.datapush.result.ResultJsonDTO;
import com.vci.mdm.dto.datapush.result.ResultNodeDataDTO;
import com.vci.mdm.dto.datapush.result.ResultNodeObjectDTO;
import com.vci.mdm.model.*;
import com.vci.mdm.pagemodel.CodeClassifyTemplateAttrVO;
import com.vci.mdm.pagemodel.CodeClassifyTemplateVO;
import com.vci.mdm.pagemodel.SysIntInfoVO;
import com.vci.mdm.service.*;
import com.vci.mdm.utils.*;
import com.vci.starter.web.constant.QueryOptionConstant;
import com.vci.starter.web.enumpck.UserSecretEnum;
import com.vci.starter.web.pagemodel.BaseResult;
@@ -37,6 +18,31 @@
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.code.constant.MdmDuckingConstant;
import org.springblade.code.dao.CodeClassifyDaoI;
import org.springblade.code.dao.DockingDataDaoI;
import org.springblade.code.dao.DockingLogeDaoI;
import org.springblade.code.dao.DockingTaskDaoI;
import org.springblade.code.dto.datapush.classify.JsonRootDataDTO;
import org.springblade.code.dto.datapush.classify.NodeClassifyDTO;
import org.springblade.code.dto.datapush.classify.NodeDataDTO;
import org.springblade.code.dto.datapush.classify.NodeLibraryDTO;
import org.springblade.code.dto.datapush.data.NodeJosnDTO;
import org.springblade.code.dto.datapush.data.NodeObjectDTO;
import org.springblade.code.dto.datapush.data.NodeProDTO;
import org.springblade.code.dto.datapush.data.NodedataDTO;
import org.springblade.code.dto.datapush.result.ResultJsonDTO;
import org.springblade.code.dto.datapush.result.ResultNodeDataDTO;
import org.springblade.code.dto.datapush.result.ResultNodeObjectDTO;
import org.springblade.code.model.*;
import org.springblade.code.service.CodeDuckingSyncServiceI;
import org.springblade.code.service.MdmEngineServiceI;
import org.springblade.code.service.SysIntInfoServiceI;
import org.springblade.code.utils.HttpUtils;
import org.springblade.code.utils.WsErpClientUtil;
import org.springblade.code.vo.pagemodel.CodeClassifyTemplateAttrVO;
import org.springblade.code.vo.pagemodel.CodeClassifyTemplateVO;
import org.springblade.code.vo.pagemodel.SysIntInfoVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy;
@@ -49,7 +55,7 @@
import java.util.*;
import java.util.stream.Collectors;
import static com.vci.mdm.constant.MdmDuckingConstant.*;
import static org.springblade.code.constant.MdmDuckingConstant.*;
/**
@@ -294,7 +300,7 @@
        initSysadmin();
        //查询哪些任务还没有执行完成
        VciQueryWrapperForDO queryWrapper = new VciQueryWrapperForDO(DockingTaskDO.class);
        queryWrapper.addQueryMap("sendFlag",MdmDuckingConstant.SEND_FLAG_FALSE);
        queryWrapper.addQueryMap("sendFlag", MdmDuckingConstant.SEND_FLAG_FALSE);
        queryWrapper.addQueryMap("btmId", QueryOptionConstant.NOTIN + "(" + VciBaseUtil.toInSql(DOCKING_DEFAULT_CLASSIFY.toUpperCase(Locale.ROOT)) + ")");
        List<DockingTaskDO> dockingTaskDOS = dockingTaskDaoI.selectByWrapper(queryWrapper);
        sendpushDataForService(dockingTaskDOS);
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/CodeFixedValueServiceImpl.java
@@ -1,10 +1,5 @@
package org.springblade.code.service.impl;
import com.vci.mdm.dao.CodeFixedValueDaoI;
import com.vci.mdm.dto.CodeFixedValueDTO;
import com.vci.mdm.model.CodeFixedValueDO;
import com.vci.mdm.pagemodel.CodeFixedValueVO;
import com.vci.mdm.service.CodeFixedValueServiceI;
import com.vci.starter.revision.service.RevisionModelUtil;
import com.vci.starter.web.constant.QueryOptionConstant;
import com.vci.starter.web.exception.VciBaseException;
@@ -20,6 +15,11 @@
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.code.dao.CodeFixedValueDaoI;
import org.springblade.code.dto.CodeFixedValueDTO;
import org.springblade.code.model.CodeFixedValueDO;
import org.springblade.code.service.CodeFixedValueServiceI;
import org.springblade.code.vo.pagemodel.CodeFixedValueVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -36,7 +36,7 @@
 * @date 2022-01-24
 */
@Service
public class CodeFixedValueServiceImpl implements CodeFixedValueServiceI{
public class CodeFixedValueServiceImpl implements CodeFixedValueServiceI {
    /**
    * æ—¥å¿—
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/CodePhaseAttrServiceImpl.java
@@ -1,11 +1,5 @@
package org.springblade.code.service.impl;
import com.vci.mdm.constant.MdmBtmTypeConstant;
import com.vci.mdm.dao.CodePhaseAttrDaoI;
import com.vci.mdm.dto.CodePhaseAttrDTO;
import com.vci.mdm.model.CodePhaseAttrDO;
import com.vci.mdm.pagemodel.CodePhaseAttrVO;
import com.vci.mdm.service.CodePhaseAttrServiceI;
import com.vci.starter.revision.service.RevisionModelUtil;
import com.vci.starter.web.constant.QueryOptionConstant;
import com.vci.starter.web.exception.VciBaseException;
@@ -20,6 +14,12 @@
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.code.constant.MdmBtmTypeConstant;
import org.springblade.code.dao.CodePhaseAttrDaoI;
import org.springblade.code.dto.CodePhaseAttrDTO;
import org.springblade.code.model.CodePhaseAttrDO;
import org.springblade.code.service.CodePhaseAttrServiceI;
import org.springblade.code.vo.pagemodel.CodePhaseAttrVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -36,7 +36,7 @@
 * @date 2022-01-24
 */
@Service
public class CodePhaseAttrServiceImpl implements CodePhaseAttrServiceI{
public class CodePhaseAttrServiceImpl implements CodePhaseAttrServiceI {
    /**
    * æ—¥å¿—
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/CodeResembleRuleServiceImpl.java
@@ -1,11 +1,6 @@
package org.springblade.code.service.impl;
import com.vci.frameworkcore.lcstatuspck.FrameworkDataLCStatus;
import com.vci.mdm.dao.CodeResembleRuleDaoI;
import com.vci.mdm.dto.CodeResembleRuleDTO;
import com.vci.mdm.model.CodeResembleRuleDO;
import com.vci.mdm.pagemodel.CodeResembleRuleVO;
import com.vci.mdm.service.CodeResembleRuleServiceI;
import com.vci.starter.revision.service.RevisionModelUtil;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseResult;
@@ -18,6 +13,11 @@
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.code.dao.CodeResembleRuleDaoI;
import org.springblade.code.dto.CodeResembleRuleDTO;
import org.springblade.code.model.CodeResembleRuleDO;
import org.springblade.code.service.CodeResembleRuleServiceI;
import org.springblade.code.vo.pagemodel.CodeResembleRuleVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -33,7 +33,7 @@
 * @date 2022-04-10
 */
@Service
public class CodeResembleRuleServiceImpl implements CodeResembleRuleServiceI{
public class CodeResembleRuleServiceImpl implements CodeResembleRuleServiceI {
    /**
    * æ—¥å¿—
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/CodeRuleServiceImpl.java
@@ -1,34 +1,38 @@
package org.springblade.code.service.impl;
import com.vci.corba.common.VCIError;
import com.vci.mdm.constant.MdmBtmTypeConstant;
import com.vci.mdm.dao.CodeBasicSecDaoI;
import com.vci.mdm.dao.CodeRuleDaoI;
import com.vci.mdm.dto.CodeBasicSecDTO;
import com.vci.mdm.dto.CodeRuleDTO;
import com.vci.mdm.lifecycle.CodeRuleLC;
import com.vci.mdm.model.*;
import com.vci.mdm.pagemodel.CodeBasicSecVO;
import com.vci.mdm.pagemodel.CodeClassifyVO;
import com.vci.mdm.pagemodel.CodeRuleVO;
import com.vci.mdm.service.CodeBasicSecServiceI;
import com.vci.mdm.service.CodeClassifyServiceI;
import com.vci.mdm.service.CodeRuleServiceI;
import com.vci.starter.revision.service.RevisionModelUtil;
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.KeyValue;
import com.vci.starter.web.pagemodel.PageHelper;
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.pageModel.BatchCBO;
import com.vci.web.pageModel.KeyValue;
import com.vci.web.service.WebBoServiceI;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.code.constant.MdmBtmTypeConstant;
import org.springblade.code.dao.CodeBasicSecDaoI;
import org.springblade.code.dao.CodeRuleDaoI;
import org.springblade.code.dto.CodeBasicSecDTO;
import org.springblade.code.dto.CodeRuleDTO;
import org.springblade.code.lifecycle.CodeRuleLC;
import org.springblade.code.model.CodeAllCodeDO;
import org.springblade.code.model.CodeBasicSecDO;
import org.springblade.code.model.CodeClassifyDO;
import org.springblade.code.model.CodeRuleDO;
import org.springblade.code.service.CodeBasicSecServiceI;
import org.springblade.code.service.CodeClassifyServiceI;
import org.springblade.code.service.CodeRuleServiceI;
import org.springblade.code.vo.pagemodel.CodeBasicSecVO;
import org.springblade.code.vo.pagemodel.CodeClassifyVO;
import org.springblade.code.vo.pagemodel.CodeRuleVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -39,7 +43,7 @@
import java.util.*;
import java.util.stream.Collectors;
import static com.vci.frameworkcore.constant.FrameWorkLangCodeConstant.*;
import static com.vci.frameworkcore.constant.FrameWorkBusLangCodeConstant.*;
/**
 * ä¸»æ•°æ®ç¼–码规则服务
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/CodeSerialAlgorithmServiceImpl.java
@@ -1,11 +1,12 @@
package org.springblade.code.service.impl;
import com.vci.mdm.annotation.MdmSerialAlgorithm;
import com.vci.mdm.pagemodel.CodeSerialAlgorithmVO;
import com.vci.mdm.service.CodeSerialAlgorithmServiceI;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.util.ApplicationContextProvider;
import org.apache.commons.lang3.StringUtils;
import org.springblade.code.annotation.MdmSerialAlgorithm;
import org.springblade.code.service.CodeSerialAlgorithmServiceI;
import org.springblade.code.vo.pagemodel.CodeSerialAlgorithmVO;
import org.springframework.aop.framework.Advised;
import org.springframework.stereotype.Service;
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/CodeSynonymServiceImpl.java
@@ -1,10 +1,6 @@
package org.springblade.code.service.impl;
import com.vci.mdm.dao.CodeSynonymDaoI;
import com.vci.mdm.dto.CodeSynonymDTO;
import com.vci.mdm.model.CodeSynonymDO;
import com.vci.mdm.pagemodel.CodeSynonymVO;
import com.vci.mdm.service.CodeSynonymServiceI;
import com.vci.starter.revision.service.RevisionModelUtil;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseResult;
@@ -14,9 +10,14 @@
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.pageModel.BatchCBO;
import com.vci.web.service.WebBoServiceI;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.code.dao.CodeSynonymDaoI;
import org.springblade.code.dto.CodeSynonymDTO;
import org.springblade.code.model.CodeSynonymDO;
import org.springblade.code.service.CodeSynonymServiceI;
import org.springblade.code.vo.pagemodel.CodeSynonymVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -24,7 +25,7 @@
import javax.annotation.Resource;
import java.util.*;
import static com.vci.frameworkcore.constant.FrameWorkLangCodeConstant.*;
import static com.vci.frameworkcore.constant.FrameWorkBusLangCodeConstant.*;
/**
 * åŒä¹‰è¯é…ç½®æœåŠ¡
@@ -32,7 +33,7 @@
 * @date 2022-02-17
 */
@Service
public class CodeSynonymServiceImpl implements CodeSynonymServiceI{
public class CodeSynonymServiceImpl implements CodeSynonymServiceI {
    /**
    * æ—¥å¿—
@@ -66,7 +67,7 @@
     * @throws VciBaseException æŸ¥è¯¢æ¡ä»¶å’Œåˆ†é¡µå‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    @Override
    public DataGrid<CodeSynonymVO> gridCodeSynonym(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException{
    public DataGrid<CodeSynonymVO> gridCodeSynonym(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException {
        if (pageHelper == null) {
            pageHelper = new PageHelper(-1);
        }
@@ -87,7 +88,7 @@
     * @throws VciBaseException å‚数为空或者不存在的时候会抛出异常
     */
    @Override
    public List<CodeSynonymVO> codeSynonymDO2VOs(Collection<CodeSynonymDO>  codeSynonymDOs) throws VciBaseException{
    public List<CodeSynonymVO> codeSynonymDO2VOs(Collection<CodeSynonymDO> codeSynonymDOs) throws VciBaseException{
        List<CodeSynonymVO> voList = new ArrayList<CodeSynonymVO>();
        if(!CollectionUtils.isEmpty(codeSynonymDOs)){
           for(CodeSynonymDO s: codeSynonymDOs){
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/CodeTemplatePhaseServiceImpl.java
@@ -1,17 +1,6 @@
package org.springblade.code.service.impl;
import com.vci.mdm.constant.MdmBtmTypeConstant;
import com.vci.mdm.dao.CodePhaseAttrDaoI;
import com.vci.mdm.dao.CodeTemplatePhaseDaoI;
import com.vci.mdm.dto.CodeTemplatePhaseDTO;
import com.vci.mdm.model.CodeClassifyTemplateAttrDO;
import com.vci.mdm.model.CodePhaseAttrDO;
import com.vci.mdm.model.CodeTemplatePhaseDO;
import com.vci.mdm.pagemodel.CodeClassifyTemplateAttrVO;
import com.vci.mdm.pagemodel.CodeTemplatePhaseVO;
import com.vci.mdm.service.CodeClassifyTemplateAttrServiceI;
import com.vci.mdm.service.CodePhaseAttrServiceI;
import com.vci.mdm.service.CodeTemplatePhaseServiceI;
import com.vci.starter.revision.service.RevisionModelUtil;
import com.vci.starter.web.constant.QueryOptionConstant;
import com.vci.starter.web.exception.VciBaseException;
@@ -27,6 +16,18 @@
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.code.constant.MdmBtmTypeConstant;
import org.springblade.code.dao.CodePhaseAttrDaoI;
import org.springblade.code.dao.CodeTemplatePhaseDaoI;
import org.springblade.code.dto.CodeTemplatePhaseDTO;
import org.springblade.code.model.CodeClassifyTemplateAttrDO;
import org.springblade.code.model.CodePhaseAttrDO;
import org.springblade.code.model.CodeTemplatePhaseDO;
import org.springblade.code.service.CodeClassifyTemplateAttrServiceI;
import org.springblade.code.service.CodePhaseAttrServiceI;
import org.springblade.code.service.CodeTemplatePhaseServiceI;
import org.springblade.code.vo.pagemodel.CodeClassifyTemplateAttrVO;
import org.springblade.code.vo.pagemodel.CodeTemplatePhaseVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -43,7 +44,7 @@
 * @date 2022-01-24
 */
@Service
public class CodeTemplatePhaseServiceImpl implements CodeTemplatePhaseServiceI{
public class CodeTemplatePhaseServiceImpl implements CodeTemplatePhaseServiceI {
    /**
    * æ—¥å¿—
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/DockingPreApplyDataInfoServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,275 @@
package org.springblade.code.service.impl;
import com.vci.starter.revision.service.RevisionModelUtil;
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.BeanUtilForVCI;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.pageModel.BatchCBO;
import com.vci.web.service.WebBoServiceI;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.code.dao.DockingPreApplyDataInfoDaoI;
import org.springblade.code.dto.DockingPreApplyDataInfoDTO;
import org.springblade.code.model.DockingPreApplyDataInfoDO;
import org.springblade.code.service.DockingPreApplyDataInfoServiceI;
import org.springblade.code.vo.pagemodel.DockingPreApplyDataInfoVO;
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 static com.vci.frameworkcore.constant.FrameWorkLangCodeConstant.*;
/**
 * è®°å½•工艺推送过来的数据信息服务
 * @author weidy
 * @date 2022-04-05
 */
@Service
public class DockingPreApplyDataInfoServiceImpl implements DockingPreApplyDataInfoServiceI {
    /**
    * æ—¥å¿—
    */
    private Logger logger = LoggerFactory.getLogger(getClass());
    /**
    * æ•°æ®æ“ä½œå±‚
    */
    @Resource
    private DockingPreApplyDataInfoDaoI dockingPreApplyDataInfoMapper;
    /**
    * ä¸šåŠ¡ç±»åž‹æ“ä½œçš„æœåŠ¡
    */
    @Autowired
    private WebBoServiceI boService;
    /**
    * å¯¹è±¡çš„æ“ä½œ
    */
    @Autowired
    private RevisionModelUtil revisionModelUtil;
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„记录工艺推送过来的数据信息
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @param pageHelper åˆ†é¡µå’ŒæŽ’序
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException æŸ¥è¯¢æ¡ä»¶å’Œåˆ†é¡µå‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    @Override
    public DataGrid<DockingPreApplyDataInfoVO> gridDockingPreApplyDataInfo(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException{
        if (pageHelper == null) {
            pageHelper = new PageHelper(-1);
        }
        pageHelper.addDefaultDesc("createTime");
        List<DockingPreApplyDataInfoDO> doList = dockingPreApplyDataInfoMapper.selectByCondition(conditionMap,pageHelper);
        DataGrid<DockingPreApplyDataInfoVO> dataGrid=new DataGrid<DockingPreApplyDataInfoVO>();
        if (!CollectionUtils.isEmpty(doList)) {
            dataGrid.setData(dockingPreApplyDataInfoDO2VOs(doList));
            dataGrid.setTotal(VciBaseUtil.getInt(String.valueOf(dockingPreApplyDataInfoMapper.countByCondition(conditionMap))));
        }
        return dataGrid;
    }
    /**
     * æ‰¹é‡æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param dockingPreApplyDataInfoDOs æ•°æ®å¯¹è±¡åˆ—表
     * @return æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException å‚数为空或者不存在的时候会抛出异常
     */
    @Override
    public List<DockingPreApplyDataInfoVO> dockingPreApplyDataInfoDO2VOs(Collection<DockingPreApplyDataInfoDO>  dockingPreApplyDataInfoDOs) throws VciBaseException{
        List<DockingPreApplyDataInfoVO> voList = new ArrayList<DockingPreApplyDataInfoVO>();
        if(!CollectionUtils.isEmpty(dockingPreApplyDataInfoDOs)){
           for(DockingPreApplyDataInfoDO s: dockingPreApplyDataInfoDOs){
                DockingPreApplyDataInfoVO vo =  dockingPreApplyDataInfoDO2VO(s);
                if(vo != null){
                    voList.add(vo);
                }
            }
        }
        return voList;
    }
    /**
     * æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param  dockingPreApplyDataInfoDO æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException æ‹·è´å±žæ€§å‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    @Override
    public  DockingPreApplyDataInfoVO dockingPreApplyDataInfoDO2VO(DockingPreApplyDataInfoDO dockingPreApplyDataInfoDO) throws VciBaseException{
              DockingPreApplyDataInfoVO vo = new DockingPreApplyDataInfoVO();
        if(dockingPreApplyDataInfoDO != null){
            BeanUtilForVCI.copyPropertiesIgnoreCase(dockingPreApplyDataInfoDO,vo);
            //如果有lcstatus的类的话
        }
        return vo;
    }
    /**
     * å¢žåŠ è®°å½•å·¥è‰ºæŽ¨é€è¿‡æ¥çš„æ•°æ®ä¿¡æ¯
     * @param dockingPreApplyDataInfoDTO è®°å½•工艺推送过来的数据信息数据传输对象
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException å‚数为空,唯一项,必输项不通过时会抛出异常
     */
    @Override
    public DockingPreApplyDataInfoVO addSave(DockingPreApplyDataInfoDTO dockingPreApplyDataInfoDTO) throws VciBaseException{
        VciBaseUtil.alertNotNull(dockingPreApplyDataInfoDTO,"需要添加的数据对象");
        //将DTO转换为DO
        DockingPreApplyDataInfoDO dockingPreApplyDataInfoDO = new DockingPreApplyDataInfoDO();
        BeanUtilForVCI.copyPropertiesIgnoreCase(dockingPreApplyDataInfoDTO,dockingPreApplyDataInfoDO);
        dockingPreApplyDataInfoMapper.insert(dockingPreApplyDataInfoDO);
        return dockingPreApplyDataInfoDO2VO(dockingPreApplyDataInfoDO);
    }
    /**
     * ä¿®æ”¹è®°å½•工艺推送过来的数据信息
     * @param dockingPreApplyDataInfoDTO è®°å½•工艺推送过来的数据信息数据传输对象
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException å‚数为空,唯一项,必输项不通过时会抛出异常
     */
     @Override
     public DockingPreApplyDataInfoVO editSave(DockingPreApplyDataInfoDTO dockingPreApplyDataInfoDTO) throws VciBaseException{
         VciBaseUtil.alertNotNull(dockingPreApplyDataInfoDTO,"数据对象",dockingPreApplyDataInfoDTO.getOid(),"记录工艺推送过来的数据信息主键");
         //将DTO转换为DO
         DockingPreApplyDataInfoDO dockingPreApplyDataInfoDO = selectByOid(dockingPreApplyDataInfoDTO.getOid());
         revisionModelUtil.copyFromDTOIgnore(dockingPreApplyDataInfoDTO,dockingPreApplyDataInfoDO);
         dockingPreApplyDataInfoMapper.updateByPrimaryKey(dockingPreApplyDataInfoDO);
         return dockingPreApplyDataInfoDO2VO(dockingPreApplyDataInfoDO);
     }
    /**
     * æ ¡éªŒæ˜¯å¦å¯ä»¥åˆ é™¤ï¼Œå¦‚果存在下级,并且下级有数据引用则不能删除
     * @param dockingPreApplyDataInfoDTO æ•°æ®ä¼ è¾“对象
     * @param dockingPreApplyDataInfoDO æ•°æ®åº“中的数据对象
     * @return success为true为可以删除,false表示有数据引用,obj为true表示有下级
     */
    private BaseResult checkIsCanDeleteForDO(DockingPreApplyDataInfoDTO dockingPreApplyDataInfoDTO, DockingPreApplyDataInfoDO dockingPreApplyDataInfoDO) {
            DockingPreApplyDataInfoDO tsDO = new DockingPreApplyDataInfoDO();
            BeanUtilForVCI.copyPropertiesIgnoreCase(dockingPreApplyDataInfoDTO,tsDO);
        boService.checkTs(tsDO);
        if(!checkIsLinked(dockingPreApplyDataInfoDO.getOid())) {
            return BaseResult.success();
        }else{
            return BaseResult.fail(DATA_LINKED_NOT_DELETE,new String[]{""});
        }
    }
    /**
    * æ ¡éªŒæ˜¯å¦è¢«å¼•用
    * @param oid ä¸»é”®
    * @throws VciBaseException è¢«å¼•用的时候会抛出异常
    */
    private boolean checkIsLinked(String oid) throws VciBaseException{
        //TODO æ·»åŠ éœ€è¦æ ¡éªŒå¼•ç”¨çš„åœ°æ–¹
        return false;
    }
    /**
     * åˆ é™¤è®°å½•工艺推送过来的数据信息
     * @param dockingPreApplyDataInfoDTO è®°å½•工艺推送过来的数据信息数据传输对象,oid和ts需要传输
     * @return åˆ é™¤ç»“果反馈::success:成功,fail:失败
     * @throws VciBaseException å‚数为空,被引用时抛出异常
     */
    @Override
    public BaseResult deleteDockingPreApplyDataInfo(DockingPreApplyDataInfoDTO dockingPreApplyDataInfoDTO) throws VciBaseException{
        VciBaseUtil.alertNotNull(dockingPreApplyDataInfoDTO,"记录工艺推送过来的数据信息数据对象",dockingPreApplyDataInfoDTO.getOid(),"记录工艺推送过来的数据信息的主键");
        DockingPreApplyDataInfoDO dockingPreApplyDataInfoDO = selectByOid(dockingPreApplyDataInfoDTO.getOid());
        BaseResult baseResult = checkIsCanDeleteForDO(dockingPreApplyDataInfoDTO,dockingPreApplyDataInfoDO);
        if(baseResult.isSuccess()) {
                    }else{
            return baseResult;
        }
        //执行删除操作
        BatchCBO batchCBO = dockingPreApplyDataInfoMapper.deleteByPrimaryKey(dockingPreApplyDataInfoDO.getOid());
        return (batchCBO!=null && batchCBO.getDeleteCbos() !=null &&batchCBO.getDeleteCbos().size() > 0)?BaseResult.successMsg(DELETE_SUCCESS):BaseResult.fail(DELETE_FAIL);
    }
    /**
    * ä¸»é”®èŽ·å–è®°å½•å·¥è‰ºæŽ¨é€è¿‡æ¥çš„æ•°æ®ä¿¡æ¯
    * @param oid ä¸»é”®
    * @return è®°å½•工艺推送过来的数据信息显示对象
    * @throws VciBaseException å‚数为空,数据不存在时会抛出异常
    */
    @Override
    public  DockingPreApplyDataInfoVO getObjectByOid(String oid) throws VciBaseException{
        return dockingPreApplyDataInfoDO2VO(selectByOid(oid));
    }
    /**
    * ä¸»é”®æŸ¥è¯¢æ•°æ®å¯¹è±¡
    * @param oid ä¸»é”®
    * @return  æ•°æ®å¯¹è±¡
    * @throws VciBaseException å‚数为空,并且数据不存在的时候会抛出异常
    */
    private DockingPreApplyDataInfoDO selectByOid(String oid) throws VciBaseException{
        VciBaseUtil.alertNotNull(oid,"主键");
        DockingPreApplyDataInfoDO dockingPreApplyDataInfoDO = dockingPreApplyDataInfoMapper.selectByPrimaryKey(oid.trim());
        if(dockingPreApplyDataInfoDO == null || StringUtils.isBlank(dockingPreApplyDataInfoDO.getOid())){
            throw new VciBaseException(DATA_OID_NOT_EXIST);
        }
        return dockingPreApplyDataInfoDO;
    }
    /**
     * ä¸»é”®æ‰¹é‡èŽ·å–è®°å½•å·¥è‰ºæŽ¨é€è¿‡æ¥çš„æ•°æ®ä¿¡æ¯
     * @param oidCollections ä¸»é”®é›†åˆï¼Œä½†æ˜¯å—性能影响,建议一次查询不超过10000个
     * @return è®°å½•工艺推送过来的数据信息显示对象
     * @throws VciBaseException æŸ¥è¯¢å‡ºçŽ°å¼‚å¸¸æ—¶ä¼šæŠ›å‡º
     */
    @Override
    public Collection<DockingPreApplyDataInfoVO> listDockingPreApplyDataInfoByOids(Collection<String> oidCollections) throws VciBaseException{
        VciBaseUtil.alertNotNull(oidCollections,"数据对象主键集合");
        List<DockingPreApplyDataInfoDO> dockingPreApplyDataInfoDOList = listDockingPreApplyDataInfoDOByOidCollections(oidCollections);
        return dockingPreApplyDataInfoDO2VOs(dockingPreApplyDataInfoDOList);
    }
    /**
    * ä½¿ç”¨ä¸»é”®é›†åˆæŸ¥è¯¢æ•°æ®å¯¹è±¡
    * @param oidCollections ä¸»é”®çš„集合
    * @return æ•°æ®å¯¹è±¡åˆ—表
    */
    private List<DockingPreApplyDataInfoDO> listDockingPreApplyDataInfoDOByOidCollections(Collection<String> oidCollections){
        List<DockingPreApplyDataInfoDO> dockingPreApplyDataInfoDOList = new ArrayList<DockingPreApplyDataInfoDO>();
        if(!CollectionUtils.isEmpty(oidCollections)){
            Collection<Collection<String>> oidCollectionsList = VciBaseUtil.switchCollectionForOracleIn(oidCollections);
            for(Collection<String> oids: oidCollectionsList){
                List<DockingPreApplyDataInfoDO> tempDOList =  dockingPreApplyDataInfoMapper.selectByPrimaryKeyCollection(oids);
                if(!CollectionUtils.isEmpty(tempDOList)){
                        dockingPreApplyDataInfoDOList.addAll(tempDOList);
                }
            }
        }
        return  dockingPreApplyDataInfoDOList;
    }
    /**
     * å‚照记录工艺推送过来的数据信息列表
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @param pageHelper åˆ†é¡µå’ŒæŽ’序
     * @return è®°å½•工艺推送过来的数据信息显示对象列表,生效的内容
     * @throws VciBaseException æŸ¥è¯¢æ¡ä»¶å’Œåˆ†é¡µå‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    @Override
    public DataGrid<DockingPreApplyDataInfoVO> refDataGridDockingPreApplyDataInfo(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException{
        if(conditionMap == null){
            conditionMap = new HashMap<String, String>();
        }
        return gridDockingPreApplyDataInfo(conditionMap,pageHelper);
    }
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/DockingPreApplyDataServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,1116 @@
package org.springblade.code.service.impl;
import com.alibaba.cloud.commons.io.FileUtils;
import com.vci.starter.poi.bo.SheetDataSet;
import com.vci.starter.poi.bo.SheetRowData;
import com.vci.starter.poi.bo.WriteExcelData;
import com.vci.starter.poi.bo.WriteExcelOption;
import com.vci.starter.poi.util.ExcelUtil;
import com.vci.starter.revision.service.RevisionModelUtil;
import com.vci.starter.web.constant.QueryOptionConstant;
import com.vci.starter.web.enumpck.ResultCodeEnum;
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.*;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.pageModel.BatchCBO;
import com.vci.web.pageModel.KeyValue;
import com.vci.web.pageModel.UITableFieldVO;
import com.vci.web.redis.RedisService;
import com.vci.web.service.WebBoServiceI;
import com.vci.web.util.WebUtil;
import org.apache.commons.collections.map.HashedMap;
import org.apache.commons.lang.StringUtils;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.code.constant.MdmDuckingConstant;
import org.springblade.code.dao.DockingPreApplyDataDaoI;
import org.springblade.code.dao.DockingPreApplyDataInfoDaoI;
import org.springblade.code.dto.CodeOrderDTO;
import org.springblade.code.dto.DockingPreApplyDataDTO;
import org.springblade.code.dto.DockingPreApplyDataInfoDTO;
import org.springblade.code.dto.PreApplyCodeOrderDTO;
import org.springblade.code.lifecycle.CodeDefaultLC;
import org.springblade.code.model.DockingPreApplyDataDO;
import org.springblade.code.model.DockingPreApplyDataInfoDO;
import org.springblade.code.service.*;
import org.springblade.code.utils.AttributeMapConfig;
import org.springblade.code.utils.EnumVO;
import org.springblade.code.vo.pagemodel.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import plm.bs.bom.clientobject.ClientBusinessObject;
import javax.annotation.Resource;
import java.io.File;
import java.io.IOException;
import java.util.*;
import java.util.stream.Collectors;
import static com.vci.frameworkcore.constant.FrameWorkBusLangCodeConstant.*;
import static org.springblade.code.constant.MdmDuckingConstant.*;
import static org.springblade.code.constant.MdmEngineConstant.DEFAULT_SYNC_ATTR_LIST;
/**
 * è®°å½•工艺推送过来的数据信息服务
 * @author weidy
 * @date 2022-04-05
 */
@Service
public class DockingPreApplyDataServiceImpl implements DockingPreApplyDataServiceI {
    /**
    * æ—¥å¿—
    */
    private Logger logger = LoggerFactory.getLogger(getClass());
    /**
    * æ•°æ®æ“ä½œå±‚
    */
    @Resource
    private DockingPreApplyDataDaoI dockingPreApplyDataMapper;
    /**
     * æ•°æ®æ“ä½œå±‚
     */
    @Resource
    private DockingPreApplyDataInfoDaoI dockingPreApplyDataInfoMapper;
    /**
    * ä¸šåŠ¡ç±»åž‹æ“ä½œçš„æœåŠ¡
    */
    @Autowired
    private WebBoServiceI boService;
    /**
     * å¯¹è±¡çš„æ“ä½œ
     */
    @Autowired
    private DockingPreApplyDataInfoServiceI dockingPreApplyDataInfoServiceI;
    /**
     * æ¨¡æ¿çš„æœåŠ¡
     */
    @Autowired
    private CodeClassifyTemplateServiceI templateService;
    /**
     * åˆ†ç±»æ“ä½œæœåŠ¡
     */
    @Autowired
    private CodeClassifyServiceImpl codeClassifyService;
    /**
    * å¯¹è±¡çš„æ“ä½œ
    */
    @Autowired
    private RevisionModelUtil revisionModelUtil;
    /**
     * å¯¹è±¡çš„æ“ä½œ
     */
    @Autowired
    private CodeClassifyServiceI codeClassifyServiceI;
    /**
     * é¢„申请数据,属性映射模板存放路径
     */
    @Value("${docking.templateDir:D:\\desktop}")
    public String preApplyTemplate;
    @Value("${docking.tuhao:tuhao}")
    public String tuhao;
    /**
     * ä¸»æ•°æ®å¼•擎服务
     */
    @Autowired(required = false)
    @Lazy
    private MdmEngineServiceI engineService;
    /**
     * ä¸»æ•°æ®å¼•擎服务
     */
    @Autowired(required = false)
    @Lazy
    private MdmIOServiceI mdmIOService;
    @Autowired
    private RedisService redisService;
    @Autowired
    private DockingPreAttrMappingSeviceI dockingPreAttrMappingSeviceI;
    /***
     * èŽ·å–MAP枚举值
     */
    @Autowired
    private AttributeMapConfig attributeMapConfig;
    /**
     * æ‰¹é‡æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param dockingPreApplyDataDOs æ•°æ®å¯¹è±¡åˆ—表
     * @return æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException å‚数为空或者不存在的时候会抛出异常
     */
    public List<DockingPreApplyDataVO> dockingPreApplyDataDO2VOs(Collection<DockingPreApplyDataDO> dockingPreApplyDataDOs, boolean iscontainAttr) throws VciBaseException {
        List<DockingPreApplyDataVO> voList = new ArrayList<DockingPreApplyDataVO>();
        if(!CollectionUtils.isEmpty(dockingPreApplyDataDOs)){
            for(DockingPreApplyDataDO s: dockingPreApplyDataDOs){
                DockingPreApplyDataVO vo =  dockingPreApplyDataDO2VO(s,iscontainAttr);
                if(vo != null){
                    voList.add(vo);
                }
            }
        }
        return voList;
    }
    private  DockingPreApplyDataVO dockingPreApplyDataDO2VO(DockingPreApplyDataDO dockingPreApplyDataDO,boolean iscontainAttr) throws VciBaseException{
        DockingPreApplyDataVO vo = new DockingPreApplyDataVO();
        if(dockingPreApplyDataDO != null){
            BeanUtilForVCI.copyPropertiesIgnoreCase(dockingPreApplyDataDO,vo);
            //如果有lcstatus的类的话
           if(iscontainAttr) {
               List<DockingPreApplyDataInfoDO> dockingPreApplyDataInfoDOS = redisService.getCacheList(vo.getOid() + "_attr");
               if (CollectionUtils.isEmpty(dockingPreApplyDataInfoDOS)) {
                   //查询数据的属性对应值信息
                   VciQueryWrapperForDO queryWrapperForDO = new VciQueryWrapperForDO(DockingPreApplyDataInfoDO.class);
                   queryWrapperForDO.addQueryMap("dataoid",dockingPreApplyDataDO.getOid());
                   dockingPreApplyDataInfoDOS= boService.selectByQueryWrapper(queryWrapperForDO,DockingPreApplyDataInfoDO.class);
               }
               List<DockingPreApplyDataInfoVO> dockingPreApplyDataInfoVOS = dockingPreApplyDataInfoServiceI.dockingPreApplyDataInfoDO2VOs(dockingPreApplyDataInfoDOS);
               vo.setDockingPreApplyDataInfoVOs(dockingPreApplyDataInfoVOS);
           }
        }
        return vo;
    }
    @Override
    public List<DockingPreApplyDataVO> batchSetDataClassId(DockingPreApplyDataDTO dockingPreApplyDataDTO) throws VciBaseException {
        VciBaseUtil.alertNotNull(dockingPreApplyDataDTO,"数据对象",dockingPreApplyDataDTO.getOid(),"记录工艺推送过来的数据信息主键");
        List<String> oidList=  VciBaseUtil.str2List(dockingPreApplyDataDTO.getOid());
        String classOid=dockingPreApplyDataDTO.getClassifyoid();
        List<DockingPreApplyDataDO> dockingPreApplyDataDOS=dockingPreApplyDataMapper.selectByPrimaryKeyCollection(oidList);
        dockingPreApplyDataDOS.stream().forEach(dockingPreApplyDataDO -> {
            dockingPreApplyDataDO.setClassifyoid(classOid);
        });
        dockingPreApplyDataMapper.batchUpdate(dockingPreApplyDataDOS);
        List<DockingPreApplyDataVO> dockingPreApplyDataVOS= dockingPreApplyDataDO2VOs(dockingPreApplyDataDOS);
        return dockingPreApplyDataVOS;
    }
    /***
     * è¿”回信息
     * @param codeClassifyOid
     * @param templateOid
     * @param btmType
     * @param dataOids
     * @return
     * @throws VciBaseException
     */
    @Override
    public DataGrid<Map<String, String>> gridApplyData(String codeClassifyOid, String templateOid, String btmType, String dataOids) throws VciBaseException {
        VciBaseUtil.alertNotNull(codeClassifyOid,"数据对象",codeClassifyOid,"分类主键");
        VciBaseUtil.alertNotNull(templateOid,"数据对象",templateOid,"分类模板");
        VciBaseUtil.alertNotNull(dataOids,"数据对象",dataOids,"数据主键");
        CodeClassifyVO topClassifyVO = codeClassifyService.getTopClassifyVO(codeClassifyOid);
        String btmTypeId = topClassifyVO.getBtmtypeid();
        if (StringUtils.isBlank(btmTypeId)) {
            return new DataGrid<>("这个分类所属顶层分类没有添加业务类型");
        }
        boolean iccheckHasChild=codeClassifyService.checkHasChild(codeClassifyOid);
        if(iccheckHasChild){
            throw new VciBaseException("请选择叶子分类节点申请数据!");
        }
        CodeClassifyTemplateVO templateVO= engineService.getUsedTemplateByClassifyOid(codeClassifyOid);
        Map<String, String> classifyDevlevMap= engineService.previewClassify(codeClassifyOid,templateOid);
        List<CodeClassifyTemplateAttrVO> templateAttrVOS=templateVO.getAttributes();
        Map<String,CodeClassifyTemplateAttrVO> attrTemplateAttrMap=templateAttrVOS.stream().collect(Collectors.toMap(s -> s.getId(), t -> t, (o1, o2) -> o2));
        Map<String,String> condtionMappingMap=new HashMap<>();
        condtionMappingMap.put("jviewModeId", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(VciBaseUtil.str2List(templateOid).toArray(new String[]{})) + ")");
        //condtionMappingMap.put("jSourceClsfId",codeClassifyOid);
        //获取属性映射关系
        List<DockingPreAttrMappingVO> dockingPreAttrMappingVOList=dockingPreAttrMappingSeviceI.selectAttrMappings(condtionMappingMap);
        if(CollectionUtils.isEmpty(dockingPreAttrMappingVOList)){
            return new DataGrid<>("未获取到相关属性映射配置");
        }
        List<DockingPreApplyDataDO> dockingPreApplyDataDOS=this.dockingPreApplyDataMapper.selectByPrimaryKeyCollection(VciBaseUtil.str2List(dataOids));
        List<DockingPreApplyDataVO> dockingPreApplyDataVOS= dockingPreApplyDataDO2VOs(dockingPreApplyDataDOS,true);
        List<Map> maps=new ArrayList<>();
        dockingPreApplyDataVOS.stream().forEach(dockingPreApplyDataVO -> {
            List<DockingPreApplyDataInfoVO> dockingPreApplyDataInfoVOS=  dockingPreApplyDataVO.getDockingPreApplyDataInfoVOs();
            Map<String/**oid**/, DockingPreApplyDataInfoVO/**对象**/> attrMappingMap=new HashMap<>();
            if(!CollectionUtils.isEmpty(dockingPreApplyDataInfoVOS)) {
               attrMappingMap = dockingPreApplyDataInfoVOS.stream().collect(Collectors.toMap(s -> s.getKey(), t -> t, (o1, o2) -> o2));
            }
            Map<String,String> attributMap=new HashMap<>();
            Map<String, DockingPreApplyDataInfoVO> finalAttrMappingMap = attrMappingMap;
            dockingPreAttrMappingVOList.stream().forEach(dockingPreAttrMappingVO -> {
                String innerName=dockingPreAttrMappingVO.getJsourceAttrKey();
                String jtargetAttrKey=dockingPreAttrMappingVO.getJtargetAttrKey().toLowerCase(Locale.ROOT);
                final String[] defaulValue = {dockingPreAttrMappingVO.getJdefaultValue()};
                CodeClassifyTemplateAttrVO templateAttr= attrTemplateAttrMap.get(innerName);
                if(innerName.equalsIgnoreCase(tuhao.toLowerCase(Locale.ROOT))){//属性映射中是图号的应当单独加
                    attributMap.put(tuhao,dockingPreApplyDataVO.getUniquecode());
                }else{
                    if (StringUtils.isNotBlank(jtargetAttrKey) && finalAttrMappingMap.containsKey(jtargetAttrKey)) {
                        DockingPreApplyDataInfoVO dataInfoVO = finalAttrMappingMap.get(jtargetAttrKey);
                        String value = dataInfoVO.getValue();
                        List<DockingPreAttrRangeVO> dockingPreAttrRangeVOList = dockingPreAttrMappingVO.getDockingPreAttrRangeVOS();
                        //Map<String/**集成属性取值范围的内部值**/, String/**主数据属性取值范围内部值**/> attrNameIdMap=new HashMap<>();
                        if (StringUtils.isNotBlank(value)) {
                            defaulValue[0] = value;
                        }
                        if (!CollectionUtils.isEmpty(dockingPreAttrRangeVOList)) {
                            // attrNameIdMap = dockingPreAttrRangeVOList.stream().collect(Collectors.toMap(s -> s.getJtargeNumTextValue(), t -> t.getJnumTextValue().toLowerCase(Locale.ROOT),(o1, o2)->o2));
                            dockingPreAttrRangeVOList.stream().forEach(dockingPreAttrRangeVO -> {
                                String jtargeNumTextValue = dockingPreAttrRangeVO.getJtargeNumTextValue();
                                List<String> valueList = VciBaseUtil.str2List(jtargeNumTextValue);
                                if (valueList.contains(value)) {
                                    defaulValue[0] = dockingPreAttrRangeVO.getJnumTextValue();
                                }
                            });
                        }
                    }
                    //判断模板属性设置规则默认值
                    if (StringUtils.isBlank(defaulValue[0]) && templateAttr != null && StringUtils.isNotBlank(templateAttr.getClassifyinvokelevel())) {
                        defaulValue[0] = classifyDevlevMap.get(innerName);
                    }
                    //判断模板属性默认值
                    if (StringUtils.isBlank(defaulValue[0]) && templateAttr != null && StringUtils.isNotBlank(templateAttr.getDefaultvalue())) {
                        defaulValue[0] = templateAttr.getDefaultvalue();
                    }
                    if (((StringUtils.isNotBlank(templateAttr.getEnumString())
                            && !"[]".equalsIgnoreCase(templateAttr.getEnumString())) ||
                            StringUtils.isNotBlank(templateAttr.getEnumid()))) {
                        UITableFieldVO fieldVO = engineService.templateAttr2TableField(templateAttr, false);
                        List<KeyValue> keyValueList = fieldVO.getData();
                        String text = "";
                        if (!CollectionUtils.isEmpty(keyValueList)) {
                            Map<String, String> enumMap = keyValueList.stream().collect(Collectors.toMap(s -> s.getKey(), t -> t.getValue().toLowerCase(Locale.ROOT), (o1, o2) -> o2));
                            if (enumMap.containsKey(defaulValue[0])) {
                                text = enumMap.get(defaulValue[0]);
                            }
                        }
                        attributMap.put(fieldVO.getField(), text);
                    }
                    attributMap.put(innerName, defaulValue[0]);
                }
            });
            maps.add(attributMap);
        });
        DataGrid<Map<String, String>> dataGrid = new DataGrid<>();
        List<Map<String, String>> dataList = new ArrayList<>();
        if (!CollectionUtils.isEmpty(maps)) {
            maps.stream().forEach(map -> {
                Map<String, String> data = new HashMap<>();
                map.forEach((key, value) -> {
                    data.put((String) key, (String) value);
                });
                dataList.add(data);
            });
        }
        dataGrid.setData(dataList);
        return dataGrid;
    }
    /**
     * æ‰¹é‡æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param dockingPreApplyDataDOs æ•°æ®å¯¹è±¡åˆ—表
     * @return æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException å‚数为空或者不存在的时候会抛出异常
     */
    @Override
    public List<DockingPreApplyDataVO> dockingPreApplyDataDO2VOs(Collection<DockingPreApplyDataDO>  dockingPreApplyDataDOs) throws VciBaseException{
        List<DockingPreApplyDataVO> voList = new ArrayList<DockingPreApplyDataVO>();
        if(!CollectionUtils.isEmpty(dockingPreApplyDataDOs)){
           for(DockingPreApplyDataDO s: dockingPreApplyDataDOs){
                DockingPreApplyDataVO vo =  dockingPreApplyDataDO2VO(s);
                if(vo != null){
                    voList.add(vo);
                }
            }
        }
        return voList;
    }
    /**
     * æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param  dockingPreApplyDataDO æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException æ‹·è´å±žæ€§å‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    @Override
    public  DockingPreApplyDataVO dockingPreApplyDataDO2VO(DockingPreApplyDataDO dockingPreApplyDataDO) throws VciBaseException{
              DockingPreApplyDataVO vo = new DockingPreApplyDataVO();
        if(dockingPreApplyDataDO != null){
            BeanUtilForVCI.copyPropertiesIgnoreCase(dockingPreApplyDataDO,vo);
            //如果有lcstatus的类的话
        }
        return vo;
    }
    /**
     * å¢žåŠ è®°å½•å·¥è‰ºæŽ¨é€è¿‡æ¥çš„æ•°æ®ä¿¡æ¯
     * @param dockingPreApplyDataDTO è®°å½•工艺推送过来的数据信息数据传输对象
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException å‚数为空,唯一项,必输项不通过时会抛出异常
     */
    @Override
    public DockingPreApplyDataVO addSave(DockingPreApplyDataDTO dockingPreApplyDataDTO) throws VciBaseException{
        VciBaseUtil.alertNotNull(dockingPreApplyDataDTO,"需要添加的数据对象");
        //将DTO转换为DO
        DockingPreApplyDataDO dockingPreApplyDataDO = new DockingPreApplyDataDO();
        BeanUtilForVCI.copyPropertiesIgnoreCase(dockingPreApplyDataDTO,dockingPreApplyDataDO);
        dockingPreApplyDataMapper.insert(dockingPreApplyDataDO);
        return dockingPreApplyDataDO2VO(dockingPreApplyDataDO);
    }
    /**
     * æ ¡éªŒæ˜¯å¦å¯ä»¥åˆ é™¤ï¼Œå¦‚果存在下级,并且下级有数据引用则不能删除
     * @param dockingPreApplyDataDTO æ•°æ®ä¼ è¾“对象
     * @param dockingPreApplyDataDO æ•°æ®åº“中的数据对象
     * @return success为true为可以删除,false表示有数据引用,obj为true表示有下级
     */
    private BaseResult checkIsCanDeleteForDO(DockingPreApplyDataDTO dockingPreApplyDataDTO, DockingPreApplyDataDO dockingPreApplyDataDO) {
            DockingPreApplyDataDO tsDO = new DockingPreApplyDataDO();
            BeanUtilForVCI.copyPropertiesIgnoreCase(dockingPreApplyDataDTO,tsDO);
        boService.checkTs(tsDO);
        if(!checkIsLinked(dockingPreApplyDataDO.getOid())) {
            return BaseResult.success();
        }else{
            return BaseResult.fail(DATA_LINKED_NOT_DELETE,new String[]{""});
        }
    }
    /**
    * æ ¡éªŒæ˜¯å¦è¢«å¼•用
    * @param oid ä¸»é”®
    * @throws VciBaseException è¢«å¼•用的时候会抛出异常
    */
    private boolean checkIsLinked(String oid) throws VciBaseException{
        //TODO æ·»åŠ éœ€è¦æ ¡éªŒå¼•ç”¨çš„åœ°æ–¹
        return false;
    }
    /**
     * åˆ é™¤è®°å½•工艺推送过来的数据信息
     * @param dockingPreApplyDataDTO è®°å½•工艺推送过来的数据信息数据传输对象,oid和ts需要传输
     * @return åˆ é™¤ç»“果反馈::success:成功,fail:失败
     * @throws VciBaseException å‚数为空,被引用时抛出异常
     */
    @Override
    public BaseResult deleteDockingPreApplyData(DockingPreApplyDataDTO dockingPreApplyDataDTO) throws VciBaseException{
        VciBaseUtil.alertNotNull(dockingPreApplyDataDTO,"记录工艺推送过来的数据信息数据对象",dockingPreApplyDataDTO.getOid(),"记录工艺推送过来的数据信息的主键");
        DockingPreApplyDataDO dockingPreApplyDataDO = selectByOid(dockingPreApplyDataDTO.getOid());
        BaseResult baseResult = checkIsCanDeleteForDO(dockingPreApplyDataDTO,dockingPreApplyDataDO);
        if(baseResult.isSuccess()) {
                    }else{
            return baseResult;
        }
        //执行删除操作
        BatchCBO batchCBO = dockingPreApplyDataMapper.deleteByPrimaryKey(dockingPreApplyDataDO.getOid());
        return (batchCBO!=null && batchCBO.getDeleteCbos() !=null &&batchCBO.getDeleteCbos().size() > 0)?BaseResult.successMsg(DELETE_SUCCESS):BaseResult.fail(DELETE_FAIL);
    }
    /**
    * ä¸»é”®èŽ·å–è®°å½•å·¥è‰ºæŽ¨é€è¿‡æ¥çš„æ•°æ®ä¿¡æ¯
    * @param oid ä¸»é”®
    * @return è®°å½•工艺推送过来的数据信息显示对象
    * @throws VciBaseException å‚数为空,数据不存在时会抛出异常
    */
    @Override
    public  DockingPreApplyDataVO getObjectByOid(String oid) throws VciBaseException{
        return dockingPreApplyDataDO2VO(selectByOid(oid));
    }
    /**
    * ä¸»é”®æŸ¥è¯¢æ•°æ®å¯¹è±¡
    * @param oid ä¸»é”®
    * @return  æ•°æ®å¯¹è±¡
    * @throws VciBaseException å‚数为空,并且数据不存在的时候会抛出异常
    */
    private DockingPreApplyDataDO selectByOid(String oid) throws VciBaseException{
        VciBaseUtil.alertNotNull(oid,"主键");
        DockingPreApplyDataDO dockingPreApplyDataDO = dockingPreApplyDataMapper.selectByPrimaryKey(oid.trim());
        if(dockingPreApplyDataDO == null || StringUtils.isBlank(dockingPreApplyDataDO.getOid())){
            throw new VciBaseException(DATA_OID_NOT_EXIST);
        }
        return dockingPreApplyDataDO;
    }
    /**
     * ä¸»é”®æ‰¹é‡èŽ·å–è®°å½•å·¥è‰ºæŽ¨é€è¿‡æ¥çš„æ•°æ®ä¿¡æ¯
     * @param oidCollections ä¸»é”®é›†åˆï¼Œä½†æ˜¯å—性能影响,建议一次查询不超过10000个
     * @return è®°å½•工艺推送过来的数据信息显示对象
     * @throws VciBaseException æŸ¥è¯¢å‡ºçŽ°å¼‚å¸¸æ—¶ä¼šæŠ›å‡º
     */
    @Override
    public Collection<DockingPreApplyDataVO> listDockingPreApplyDataByOids(Collection<String> oidCollections) throws VciBaseException{
        VciBaseUtil.alertNotNull(oidCollections,"数据对象主键集合");
        List<DockingPreApplyDataDO> dockingPreApplyDataDOList = listDockingPreApplyDataDOByOidCollections(oidCollections);
        return dockingPreApplyDataDO2VOs(dockingPreApplyDataDOList);
    }
    /**
    * ä½¿ç”¨ä¸»é”®é›†åˆæŸ¥è¯¢æ•°æ®å¯¹è±¡
    * @param oidCollections ä¸»é”®çš„集合
    * @return æ•°æ®å¯¹è±¡åˆ—表
    */
    private List<DockingPreApplyDataDO> listDockingPreApplyDataDOByOidCollections(Collection<String> oidCollections){
        List<DockingPreApplyDataDO> dockingPreApplyDataDOList = new ArrayList<DockingPreApplyDataDO>();
        if(!CollectionUtils.isEmpty(oidCollections)){
            Collection<Collection<String>> oidCollectionsList = VciBaseUtil.switchCollectionForOracleIn(oidCollections);
            for(Collection<String> oids: oidCollectionsList){
                List<DockingPreApplyDataDO> tempDOList =  dockingPreApplyDataMapper.selectByPrimaryKeyCollection(oids);
                if(!CollectionUtils.isEmpty(tempDOList)){
                        dockingPreApplyDataDOList.addAll(tempDOList);
                }
            }
        }
        return  dockingPreApplyDataDOList;
    }
    /**
     * å‚照记录工艺推送过来的数据信息列表
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @param pageHelper åˆ†é¡µå’ŒæŽ’序
     * @return è®°å½•工艺推送过来的数据信息显示对象列表,生效的内容
     * @throws VciBaseException æŸ¥è¯¢æ¡ä»¶å’Œåˆ†é¡µå‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    @Override
    public DataGrid<DockingPreApplyDataVO> refDataGridDockingPreApplyData(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException{
        if(conditionMap == null){
            conditionMap = new HashMap<String, String>();
        }
        return gridDockingPreApplyData(conditionMap,pageHelper);
    }
    //==================
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„记录工艺推送过来的数据信息
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @param pageHelper åˆ†é¡µå’ŒæŽ’序
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException æŸ¥è¯¢æ¡ä»¶å’Œåˆ†é¡µå‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    @Override
    public DataGrid<DockingPreApplyDataVO> gridDockingPreApplyData(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException{
        if (pageHelper == null) {
            pageHelper = new PageHelper(-1);
        }
        pageHelper.addDefaultDesc("createTime");
        //只查询启用的data,这样就不用去找最大版本号了再查询
        conditionMap.put("useddflag","true");
        List<DockingPreApplyDataDO> doList = dockingPreApplyDataMapper.selectByCondition(conditionMap,pageHelper);
        Map<String,List<EnumVO>> mpmEnumMap= this.attributeMapConfig.getMpmEnumMap();
        Map<String,List<String>> typeCodemap =new HashedMap();
        doList.stream().forEach(dockingPreApplyDataDO -> {
            String enumValue= dockingPreApplyDataDO.getParttype();
            String type=dockingPreApplyDataDO.getType();
            String code=dockingPreApplyDataDO.getNum();
            if(!CollectionUtils.isEmpty(mpmEnumMap)){
               if(mpmEnumMap.containsKey("partType")){
                   List<EnumVO>  partTypeEnumMapList= mpmEnumMap.get("partType");
                   Map<String, String> enumFieldValueMap = partTypeEnumMapList.stream().collect(Collectors.toMap(EnumVO::getEnumValue, EnumVO::getEnumText, (key1, key2) -> key2));
                   if(enumFieldValueMap.containsKey(enumValue)){
                      String enumText= enumFieldValueMap.get(enumValue);
                       dockingPreApplyDataDO.setParttype(enumText);
                   }
               }
            }
            if(StringUtils.isNotBlank(code)) {
                List<String> codeList = new ArrayList<>();
                codeList.add(code);
                if (typeCodemap.containsKey(type)) {
                    List<String> oldCodeList = typeCodemap.get(type);
                    codeList.addAll(oldCodeList);
                }
                typeCodemap.put(type, codeList);
            }
        });
        List<ClientBusinessObject> cbos=new ArrayList<>();
          if(!CollectionUtils.isEmpty(typeCodemap)) {
              typeCodemap.forEach((type,codes)->{
                  Map<String,String> contionMap=new HashedMap();
                  contionMap.put("id", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(codes.toArray(new String[]{})) + ")");
                  List<ClientBusinessObject> newcbos=boService.queryCBO(type,contionMap);
                  cbos.addAll(newcbos);
              });
          }
        Map<String, ClientBusinessObject> codeCbosMap = cbos.stream().filter(systeDataObject -> systeDataObject != null && StringUtils.isNotBlank(systeDataObject.getId())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getId(), t -> t));
        doList.stream().forEach(s->{
            String code =s.getNum();
            if(codeCbosMap.containsKey(code)){
                ClientBusinessObject cbo=  codeCbosMap.get(code);
                if(!cbo.getLcStatus().equals(CodeDefaultLC.RELEASED.getValue())){//如果不是发布状态则隐藏编码
                    s.setNum("******");
                    s.setId("******");
                    s.setPreapplyoid("******");
                }
            }else{
            }
        });
        DataGrid<DockingPreApplyDataVO> dataGrid=new DataGrid<DockingPreApplyDataVO>();
        if (!CollectionUtils.isEmpty(doList)) {
            dataGrid.setData(dockingPreApplyDataDO2VOs(doList,false));
            dataGrid.setTotal(VciBaseUtil.getInt(String.valueOf(dockingPreApplyDataMapper.countByCondition(conditionMap))));
        }
        return dataGrid;
    }
    /**
     * æ’å…¥data和datainfo,会自动把data里的oid,unique赋值到datainfo里边去
     * @param dockingPreApplyDataDTO è®°å½•工艺推送过来的数据信息数据传输对象
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException å‚数为空,唯一项,必输项不通过时会抛出异常
     */
    @Override
    public void addSaveDataAndInfo(DockingPreApplyDataDTO dockingPreApplyDataDTO, List<DockingPreApplyDataInfoDTO> dockingPreApplyDataInfoDTOList) throws VciBaseException{
        String unique = "";
        //将DTO转换为DO
        DockingPreApplyDataDO dockingPreApplyDataDO = new DockingPreApplyDataDO();
        BeanUtilForVCI.copyPropertiesIgnoreCase(dockingPreApplyDataDTO,dockingPreApplyDataDO);
        String dataoid = dockingPreApplyDataDO.getOid();
        if(StringUtils.isEmpty(dockingPreApplyDataDO.getOid())) {
            dataoid = redisService.getUUIDEveryDay();
            dockingPreApplyDataDO.setOid(dataoid);
        }
        //查询以前的数据,准备修改usedflasg
        VciQueryWrapperForDO queryWrapperForDO = new VciQueryWrapperForDO(DockingPreApplyDataDO.class);
        queryWrapperForDO.addQueryMap("uniquecode",dockingPreApplyDataDO.getUniquecode());
        List<DockingPreApplyDataDO> dockingPreApplyDataDOList = boService.selectByQueryWrapper(queryWrapperForDO,DockingPreApplyDataDO.class);
        //执行数据保存操作
        WebUtil.setPersistence(false);//不执行保存
        BatchCBO batchUpdateData = new BatchCBO();
        //修改以前的数据useddflag=false
        if (dockingPreApplyDataDOList.size() != 0) {
            for (DockingPreApplyDataDO dockingPreApplyDataDOi : dockingPreApplyDataDOList) {
                dockingPreApplyDataDOi.setUseddflag(PRE_APPLY_DATA_USER_FALSE);
            }
            batchUpdateData = dockingPreApplyDataMapper.batchUpdate(dockingPreApplyDataDOList);
        }
        //新增现在的data
        dockingPreApplyDataDO.setUseddflag(MdmDuckingConstant.PRE_APPLY_DATA_USER_TRUE);//是最新的
        BatchCBO batchInsertData = dockingPreApplyDataMapper.insert(dockingPreApplyDataDO);
        batchUpdateData.copyFromOther(batchInsertData);
        //新增dataInfo
        List<DockingPreApplyDataInfoDO> dockingPreApplyDataInfoDOList = new ArrayList<DockingPreApplyDataInfoDO>();
        for (DockingPreApplyDataInfoDTO dockingPreApplyDataInfoDTO : dockingPreApplyDataInfoDTOList) {
            DockingPreApplyDataInfoDO dockingPreApplyDataInfoDO = new DockingPreApplyDataInfoDO();
            BeanUtilForVCI.copyPropertiesIgnoreCase(dockingPreApplyDataInfoDTO, dockingPreApplyDataInfoDO);
            dockingPreApplyDataInfoDO.setDataoid(dataoid);
            if (StringUtils.isNotEmpty(dockingPreApplyDataDO.getUniquecode())) {
                dockingPreApplyDataInfoDO.setUniquecode(dockingPreApplyDataDO.getUniquecode());
            }
            if (StringUtils.isEmpty(dockingPreApplyDataInfoDO.getOid())) {
                String datainfooid = redisService.getUUIDEveryDay();
                dockingPreApplyDataInfoDO.setOid(datainfooid);
            }
            dockingPreApplyDataInfoDOList.add(dockingPreApplyDataInfoDO);
        }
        if(dockingPreApplyDataInfoDOList.size()!=0) {
            BatchCBO batchInsertDataInfo = dockingPreApplyDataInfoMapper.batchInsert(dockingPreApplyDataInfoDOList);
            batchUpdateData.copyFromOther(batchInsertDataInfo);
            redisService.setCacheList(dockingPreApplyDataDO.getOid(),dockingPreApplyDataInfoDOList);
        }
        WebUtil.setPersistence(true);//执行保存
        boService.persistenceBatch(batchUpdateData);//一起执行保存
    }
    /**
     * ä¿®æ”¹è®°å½•工艺推送过来的数据信息
     * @param dockingPreApplyDataDTO è®°å½•工艺推送过来的数据信息数据传输对象
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException å‚数为空,唯一项,必输项不通过时会抛出异常
     */
    @Override
    public BaseResult editSave(DockingPreApplyDataDTO dockingPreApplyDataDTO) throws VciBaseException{
        VciBaseUtil.alertNotNull(dockingPreApplyDataDTO,"数据对象",dockingPreApplyDataDTO.getOid(),"记录工艺推送过来的数据信息主键");
        //将DTO转换为DO
        DockingPreApplyDataDO dockingPreApplyDataDO = selectByOid(dockingPreApplyDataDTO.getOid());
        revisionModelUtil.copyFromDTOIgnore(dockingPreApplyDataDTO,dockingPreApplyDataDO);
        dockingPreApplyDataMapper.updateByPrimaryKey(dockingPreApplyDataDO);
        return BaseResult.success(dockingPreApplyDataDO2VO(dockingPreApplyDataDO));
    }
    /**
     * æ ¹æ®data的oid查询data信息和datainfo信息,并且拼接datainfo为map
     * @param dockingPreApplyDataDTO
     * @return
     * @throws VciBaseException
     */
    @Override
    public BaseResult<Map<String,String>> getDataInfoMap(DockingPreApplyDataDTO dockingPreApplyDataDTO) throws VciBaseException{
        String dataoid = dockingPreApplyDataDTO.getOid();
        //查询data的type
        DockingPreApplyDataDO dockingPreApplyDataDO = dockingPreApplyDataMapper.selectByPrimaryKey(dataoid);
        if(dockingPreApplyDataDO == null){
            String msg = "预申请编码,通过oid查询DockingPreApplyDataDO未找到数据!";
            logger.error(msg);
            return BaseResult.fail(msg,null);
        }
        String type = dockingPreApplyDataDO.getType();
        //查询datainfo为map
        VciQueryWrapperForDO queryWrapper = new VciQueryWrapperForDO(DockingPreApplyDataInfoDO.class);
        queryWrapper.addQueryMap("dataoid",dataoid);
        List<DockingPreApplyDataInfoDO> dockingPreApplyDataInfoDOList = dockingPreApplyDataInfoMapper.selectByWrapper(queryWrapper);
        Map<String,String> dataInfoMap = new HashMap<String,String>();//所有的值
        for (DockingPreApplyDataInfoDO dockingPreApplyDataInfoDO :dockingPreApplyDataInfoDOList){
            dataInfoMap.put(dockingPreApplyDataInfoDO.getKey(),dockingPreApplyDataInfoDO.getValue());
        }
//把datainfomap根据配置的模板xml转化为最终存入的数据map
//        String systemid = dockingPreApplyDataDO.getSystemid();//系统编号
//
//        PreApplyDataTrans preApplyDataTrans = getPreApplyDataTransBySystemIdAndType(systemid,type);
//        if(preApplyDataTrans == null){
//            String msg = "读取预申请数据配置模板成功,但是没有匹配的模板属性,systemid: "+systemid+",type: "+type;
//            logger.error(msg);
//            preApplyDataTrans = new PreApplyDataTrans(systemid,type,new HashMap<String,String>());
//        }
//
//        Map<String, String> attrMap = preApplyDataTrans.getAttrMap();
//
//        Map<String, String> outMap = getShowMap(attrMap,dataInfoMap);
        return BaseResult.success(dataInfoMap,"查询成功");
    }
    /**
     * æ ¹æ®systemid查询配置的属性模板
     * @param systemid  ç³»ç»Ÿid
     * @param type  åˆ†ç±»
     * @return
     */
    public PreApplyDataTrans getPreApplyDataTransBySystemIdAndType(String systemid,String type){
        String templateXml = null;
        String fileUrl = "";
        try {
            String templatename = systemid;
            fileUrl = preApplyTemplate+ File.separator+templatename+".xml";
            templateXml = FileUtils.readFileToString(new File(fileUrl),"utf-8");
        }catch (Exception e){
            e.printStackTrace();
            logger.error("读取预申请属性映射模板失败,fileUrl: "+fileUrl);
            return null;
        }
        /**
         * é€šè¿‡é…ç½®çš„æ¨¡æ¿æ–‡ä»¶ï¼Œè½¬æ¢ä¸ºå‰ç«¯è¯»æ‡‚å’ŒmdmEngineController/getDataByOid接口类似的数据
         */
        List<PreApplyDataTrans>  preApplyDataTransList = null;
        try {
            preApplyDataTransList = readAttrTransfTemplate(templateXml);
        }catch (Exception e){
            logger.error("读取预申请数据配置模板失败,");
            return null;
        }
        PreApplyDataTrans preApplyDataTrans = null;
        for(PreApplyDataTrans preApplyDataTransi:preApplyDataTransList){
            String preApplyDataTrans_type = preApplyDataTransi.getType();
            if(type.equals(preApplyDataTrans_type)){
                preApplyDataTrans = preApplyDataTransi;
                break;
            }
        }
        return preApplyDataTrans;
    }
    /**
     * æŠŠé¢„申请的属性根据模板xml转化为最终的属性map
     * @param attrMap
     * @param dataInfoMap
     * @return
     */
    public Map<String, String> getShowMap(Map<String, String> attrMap,Map<String, String> dataInfoMap){
        Map<String, String> outMap = new HashMap<String, String>();//转换的key后的map
        for (String systemkey:attrMap.keySet()){
            String mdmKey = attrMap.getOrDefault(systemkey,"");
            String value = dataInfoMap.getOrDefault(mdmKey,"");
            if(StringUtils.isNotEmpty(value)){
                outMap.put(systemkey,value);
            }
        }
        return outMap;
    }
    /**
     * æ‰¹é‡å¤„理预申请编码
     * å¿…须要有分类oid和data
     */
    @Override
    public BaseResult applyData(List<PreApplyCodeOrderDTO> preApplyCodeOrderDTOList) {
        List<Map> retMapList = new ArrayList<Map>();//保存返回的错误oid和信息
        for (PreApplyCodeOrderDTO preApplyCodeOrderDTO : preApplyCodeOrderDTOList) {
            CodeOrderDTO codeOrderDTO = new CodeOrderDTO();
            try {
                //根据分类oid查询模板oid,编码规则oid
                String codeClassfyOid = preApplyCodeOrderDTO.getCodeClassifyOid();
                //查询data的type
                String dataoid = preApplyCodeOrderDTO.getDataoid();
                DockingPreApplyDataDO dockingPreApplyDataDO = dockingPreApplyDataMapper.selectByPrimaryKey(dataoid);
                //查询编码规则oid
                String ruleOid = null;
                try {
                    CodeRuleVO codeRuleVO = engineService.getCodeRuleByClassifyOid(codeClassfyOid);
                    ruleOid = codeRuleVO.getOid();
                }catch (Exception e){
                    Map retMap = new HashMap<String,String>();
                    retMap.put("oid",codeOrderDTO.getOid());
                    retMap.put("msg","选择的分类以及上级分类没有配置编码规则");
                    retMapList.add(retMap);
                    logger.error("批量处理预申请数据失败,数据: "+preApplyCodeOrderDTO.toString()+",msg: æ ¹æ®åˆ†ç±»oid查询编码规则失败,分类oid: "+codeClassfyOid);
                    continue;
                }
                //查询使用的模板oid
                String templateOid = null;
                try {
                    CodeClassifyTemplateVO codeClassifyTemplateVO = engineService.getUsedTemplateByClassifyOid(codeClassfyOid);
                    templateOid = codeClassifyTemplateVO.getOid();
                }catch (Exception e){
                    Map retMap = new HashMap<String,String>();
                    retMap.put("oid",codeOrderDTO.getOid());
                    retMap.put("msg","选择的分类以及上级分类没有配置配置模板");
                    retMapList.add(retMap);
                    logger.error("批量处理预申请数据失败,数据: "+preApplyCodeOrderDTO.toString()+",msg: æ ¹æ®åˆ†ç±»oid查询使用的模板失败,分类oid: "+codeClassfyOid);
                    continue;
                }
                //根据dataoid查询dataInfoMap
                Map dataInfoMap = null;
                DockingPreApplyDataDTO dockingPreApplyDataDTO = new DockingPreApplyDataDTO();
                dockingPreApplyDataDTO.setOid(preApplyCodeOrderDTO.getDataoid());
                BaseResult baseResult_dataMap = getDataInfoMap(dockingPreApplyDataDTO);
                if(ResultCodeEnum.SUCCESS.code==baseResult_dataMap.getCode()){
                    Object datao = baseResult_dataMap.getObj();
                    if(datao!=null){
                        dataInfoMap = (Map<String, String>)datao;
                    }
                }
                if(dataInfoMap==null){
                    Map retMap = new HashMap<String,String>();
                    retMap.put("oid",codeOrderDTO.getOid());
                    retMap.put("msg","查询到接收的预申请数据为空");
                    retMapList.add(retMap);
                    logger.error("批量处理预申请数据失败,数据: "+preApplyCodeOrderDTO.toString()+",msg: æ ¹æ®DockingPreApplyData_oid查询数据接收的预申请数据失败,DockingPreApplyData_oid: "+preApplyCodeOrderDTO.getDataoid());
                    continue;
                }
                //把datainfomap根据配置的模板xml转化为最终存入的数据map
                String systemid = dockingPreApplyDataDO.getSystemid();//系统编号
                String type = dockingPreApplyDataDO.getType();//type
                PreApplyDataTrans preApplyDataTrans = getPreApplyDataTransBySystemIdAndType(systemid,type);
                if(preApplyDataTrans == null){
                    String msg = "读取预申请数据配置模板成功,但是没有匹配的模板属性,systemid: "+systemid+",type: "+type;
                    logger.error(msg);
                    preApplyDataTrans = new PreApplyDataTrans(systemid,type,new HashMap<String,String>());
                }
                Map<String, String> attrMap = preApplyDataTrans.getAttrMap();
                Map<String, String> data = getShowMap(attrMap,dataInfoMap);
                if(data.size()==0){
                    Map retMap = new HashMap<String,String>();
                    retMap.put("oid",codeOrderDTO.getOid());
                    retMap.put("msg","接收的预申请数据根据配置的模板xml转化属性失败");
                    retMapList.add(retMap);
                    logger.error("批量处理预申请数据失败,数据: "+preApplyCodeOrderDTO.toString()+",msg: æŽ¥æ”¶çš„预申请数据根据配置的模板xml转化属性失败!");
                    continue;
                }
                String name = data.getOrDefault("name","");
                //执行数据保存
                codeOrderDTO.setCodeClassifyOid(codeClassfyOid);
                codeOrderDTO.setTemplateOid(templateOid);
                codeOrderDTO.setCodeRuleOid(ruleOid);
                codeOrderDTO.setSecDTOList(preApplyCodeOrderDTO.getSecDTOList());//码段
                codeOrderDTO.setEditInProcess(preApplyCodeOrderDTO.isEditInProcess());
                codeOrderDTO.setUpVersion(preApplyCodeOrderDTO.isUpVersion());
                codeOrderDTO.setName(name);
                codeOrderDTO.setData(data);
                engineService.addSaveCode(codeOrderDTO);
                //再修改data里边的classifyoid和classifuname
                String classifyoid = preApplyCodeOrderDTO.getCodeClassifyOid();
                //查询分类
                CodeClassifyVO codeClassifyVO = codeClassifyServiceI.getObjectByOid(classifyoid);
                //设置分类oid,name,flag
                dockingPreApplyDataDO.setClassifyoid(codeClassifyVO.getOid());
                dockingPreApplyDataDO.setClassifyname(codeClassifyVO.getName());
                dockingPreApplyDataMapper.updateByPrimaryKey(dockingPreApplyDataDO);
            } catch (Exception e) {
                Map retMap = new HashMap<String,String>();
                retMap.put("oid",preApplyCodeOrderDTO.getDataoid());
                retMap.put("msg","处理失败!");
                retMapList.add(retMap);
                logger.error("批量处理预申请数据失败,数据: "+preApplyCodeOrderDTO.toString()+",msg: "+e.getMessage());
            }
        }
        BaseResult result = BaseResult.success(retMapList);
        return result;
    }
    @Override
    public BaseResult batchApplyDatas(List<CodeOrderDTO> codeOrderDTOs) {
       if(!CollectionUtils.isEmpty(codeOrderDTOs)){
           CodeOrderDTO orderDTO=codeOrderDTOs.get(0);
           Map<String,String> rowsOidMap=new HashMap<>();
           SheetDataSet dataSet=new SheetDataSet();
           List<SheetRowData> sheetRowDatas=new ArrayList<>();
           CodeClassifyTemplateVO codeClassifyTemplateVO = engineService.getUsedTemplateByClassifyOid(orderDTO.getCodeClassifyOid());
           List<String> colName=new ArrayList<>();
           List<CodeClassifyTemplateAttrVO> templateAttrVOS=codeClassifyTemplateVO.getAttributes();
           List<CodeClassifyTemplateAttrVO> attrVOS = templateAttrVOS.stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) && VciBaseUtil.getBoolean(s.getFormdisplayflag())
           ).collect(Collectors.toList());
           Map<String/**英文名称**/, String/**中文名称**/> attrNameIdMap = attrVOS.stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t.getName(),(o1, o2)->o2));
           for (int i=0;i<codeOrderDTOs.size();i++) {
               CodeOrderDTO codeOrderDTO=codeOrderDTOs.get(i);
               String dataoid = codeOrderDTO.getOid();
               rowsOidMap.put(i+"",dataoid);//存储数据oid,一遍设置
               SheetRowData sheetRowData=new SheetRowData();
               Map<String, String> dataMap= codeOrderDTO.getData();
               sheetRowData.setRowIndex(i+"");
               Map<Integer,String> indexValueMap=new HashMap<>();
               int index=0;
               colName=new ArrayList<>();
               for (String field: attrNameIdMap.keySet()) {
                   String outAttrName=attrNameIdMap.get(field);
                   colName.add(outAttrName);
                   String value="";
                  if(dataMap.containsKey(field)){
                      value=StringUtils.isBlank(dataMap.get(field))?"":dataMap.get(field);
                  }else{
                      value="";
                  }
                   indexValueMap.put(index++,value);
               }
               sheetRowData.setData(indexValueMap);
               sheetRowDatas.add(sheetRowData);
           }
           dataSet.setRowData(sheetRowDatas);
           dataSet.setColName(colName);
           Map<String,String> errorMap=new HashMap<>();
           List<String> codeList=mdmIOService.batchImportCode(orderDTO,codeClassifyTemplateVO,dataSet,errorMap,false);
           List<SheetRowData> needSaveCboList = dataSet.getRowData().stream().filter(cbo -> {
               String rowIndex =cbo.getRowIndex();
               return !errorMap.containsKey(rowIndex);
           }).collect(Collectors.toList());
           LinkedList<String> needOIdList=new LinkedList<>();
           Map<String,String> codeIdMap=new HashMap<>();
           for(int i=0;i<needSaveCboList.size();i++) {
               SheetRowData cbo = needSaveCboList.get(i);
               String rouIndex = cbo.getRowIndex();
               if (rowsOidMap.containsKey(rouIndex)) {
                   String dataOid = rowsOidMap.get(rouIndex);
                   needOIdList.add(dataOid);
                   codeIdMap.put(dataOid,codeList.get(i));
               }
           }
           if(!CollectionUtils.isEmpty(needOIdList)) {
               CodeClassifyVO codeClassifyVO = codeClassifyServiceI.getObjectByOid(orderDTO.getCodeClassifyOid());
               List<DockingPreApplyDataDO> dockingPreApplyDataDOS = dockingPreApplyDataMapper.selectByPrimaryKeys(VciBaseUtil.array2String(needOIdList.toArray(new String[]{})));
               dockingPreApplyDataDOS.stream().forEach(dockingPreApplyDataDO -> {
                   //设置分类oid,name,flag
                   String dataOid=dockingPreApplyDataDO.getOid();
                   dockingPreApplyDataDO.setClassifyoid(codeClassifyVO.getOid());
                   dockingPreApplyDataDO.setClassifyname(codeClassifyVO.getName());
                   if(codeIdMap.containsKey(dataOid)) {//存入数据编码
                       String code= codeIdMap.get(dataOid);
                       dockingPreApplyDataDO.setId(code);
                       dockingPreApplyDataDO.setPreapplyoid(code);
                       dockingPreApplyDataDO.setNum(code);
                   }
                   dockingPreApplyDataDO.setDatamsg("赋码成功");
                   dockingPreApplyDataDO.setUseddflag("true");
               });
               dockingPreApplyDataMapper.batchUpdate(dockingPreApplyDataDOS);
           }
           //如果有错误则导出execl
           if(errorMap.size()>0){
               List<String> needRowIndexList = new ArrayList<>();
              String errorFile=returnErrorToExcel(dataSet.getRowData(),errorMap, needRowIndexList,dataSet.getColName());
               if(StringUtils.isNotBlank(errorFile)){
                   //放到map里
                   BaseResult result = BaseResult.fail("有部分数据申请失败,请核对");
                   result.setObj(ControllerUtil.putErrorFile(errorFile));
                   return result;
               }else {
                   return BaseResult.success("申请成功!");
               }
           }
       }
        return BaseResult.success("申请成功!");
    }
    /**
     * é”™è¯¯ä¿¡æ¯è¿”回excel
     * @param rowDataList æ‰€æœ‰çš„导入数据
     * @param errorMap é”™è¯¯çš„信息
     * @param needRowIndexList éœ€è¦å†™å…¥çš„æ•°æ®çš„行号
     * @param titleRowData æ ‡é¢˜è¡Œ
     *
     * @return é”™è¯¯çš„excel文件,没有错误会返回空
     */
    private String returnErrorToExcel(Collection<SheetRowData> rowDataList,
                                      Map<String,String> errorMap,
                                      List<String> needRowIndexList,List<String> titleRowData){
        if(CollectionUtils.isEmpty(errorMap)){
            return "";
        }
        Map<String, SheetRowData> rowIndexDataMap = rowDataList.stream().filter(s -> !needRowIndexList.contains(s.getRowIndex())).collect(Collectors.toMap(s -> s.getRowIndex(), t -> t));
        LinkedList<WriteExcelData> errorDataList = new LinkedList<>();
        errorDataList.add(new WriteExcelData(0,0,"错误信息"));
        for (int i = 0; i < titleRowData.size(); i++) {
            //错误信息在最后
            errorDataList.add(new WriteExcelData(0,i+1,titleRowData.get(i)));
        }
        Integer[] newRowIndex = new Integer[]{1};
        errorMap.forEach((index,error)->{
            //错误信息全部组合到一起
            SheetRowData rowData = rowIndexDataMap.getOrDefault(index, null);
            if(rowData!=null){
                errorDataList.add(new WriteExcelData(newRowIndex[0],0,error));
                rowData.getData().forEach((colIndex,value)->{
                    errorDataList.add(new WriteExcelData(newRowIndex[0],colIndex+1,value));
                });
                newRowIndex[0]++;
            }
        });
        String excelFileName = LocalFileUtil.getDefaultTempFolder() + File.separator + "错误信息.xls";
        WriteExcelOption eo = new WriteExcelOption(errorDataList);
        try {
            new File(excelFileName).createNewFile();
        } catch (IOException e) {
            throw new VciBaseException(LangBaseUtil.getErrorMsg(e));
        }
        ExcelUtil.writeDataToFile(excelFileName,eo);
        return excelFileName;
    }
    /**
     * è§£æžé¢„申请数据和分类的属性转换模板ss
     */
    public List<PreApplyDataTrans> readAttrTransfTemplate(String templateXml) throws Exception{
        templateXml = StringUtils.isEmpty(templateXml)?"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
                "<datas systemid=\"oa0001\">\n" +
                "\t<data type=\"wupin\">\n" +
                "\t\t<attr systemkey=\"code01\" mdmkey=\"key01\"/>\n" +
                "\t\t<attr systemkey=\"code02\" mdmkey=\"key02\"/>\n" +
                "\t</data>\n" +
                "</datas>":templateXml;
        List<PreApplyDataTrans> preApplyDataTransList = new ArrayList<PreApplyDataTrans>();
        Document document = DocumentHelper.parseText(templateXml);
        Element datas_element = document.getRootElement();
        List<Element> data_elements = datas_element.elements(XML_DATA);
        for (Element data_element:data_elements){
            Attribute systemid_attr = data_element.attribute(XML_SYSTEMID);
            String systemid = systemid_attr==null?"":systemid_attr.getValue();//systemid
            Attribute type_attr = data_element.attribute(XML_TYPE);
            String type = type_attr==null?"":type_attr.getValue();//type
            List<Element> attr_elements = data_element.elements(XML_ATTR);
            Map<String,String> attrMap = new HashMap<String,String>();
            for (Element attr_element:attr_elements){
                Map<String,Object> dataMap = new HashMap<String,Object>();
                Attribute systemkey_attr = attr_element.attribute(XML_SYSTEMKEY);
                String systemkey = systemkey_attr==null?"":systemkey_attr.getValue();//systemkey
                Attribute mdmkey_attr = attr_element.attribute(XML_MDMKEY);
                String mdmkey = mdmkey_attr==null?"":mdmkey_attr.getValue();//mdmkey
                attrMap.put(systemkey,mdmkey);
                PreApplyDataTrans p = new PreApplyDataTrans(systemid,type,attrMap);
                preApplyDataTransList.add(p);
            }
        }
        return preApplyDataTransList;
    }
    class PreApplyDataTrans{
        private String systemid;
        private String type;
        private Map<String,String> attrMap;
        public PreApplyDataTrans(String systemid, String type, Map<String, String> attrMap) {
            this.systemid = systemid;
            this.type = type;
            this.attrMap = attrMap;
        }
        public String getSystemid() {
            return systemid;
        }
        public void setSystemid(String systemid) {
            this.systemid = systemid;
        }
        public String getType() {
            return type;
        }
        public void setType(String type) {
            this.type = type;
        }
        public Map<String, String> getAttrMap() {
            return attrMap;
        }
        public void setAttrMap(Map<String, String> attrMap) {
            this.attrMap = attrMap;
        }
    }
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/DockingPreAttrMappingSeviceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,529 @@
package org.springblade.code.service.impl;
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.BeanUtilForVCI;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.pageModel.BatchCBO;
import com.vci.web.pageModel.OsEnumItemVO;
import com.vci.web.redis.RedisService;
import com.vci.web.service.OsEnumServiceI;
import com.vci.web.service.WebBoServiceI;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.code.constant.MdmBtmTypeConstant;
import org.springblade.code.dao.DockingPreAttrMappingDaoI;
import org.springblade.code.dao.DockingPreAttrRangeDaoI;
import org.springblade.code.dto.DockingPreAttrMappingDTO;
import org.springblade.code.dto.DockingPreAttrRangeDTO;
import org.springblade.code.model.DockingPreAttrMappingDO;
import org.springblade.code.model.DockingPreAttrRangeDO;
import org.springblade.code.service.CodeClassifyTemplateAttrServiceI;
import org.springblade.code.service.DockingPreAttrMappingSeviceI;
import org.springblade.code.service.MdmEngineServiceI;
import org.springblade.code.vo.pagemodel.CodeClassifyTemplateAttrVO;
import org.springblade.code.vo.pagemodel.CodeClassifyTemplateVO;
import org.springblade.code.vo.pagemodel.DockingPreAttrMappingVO;
import org.springblade.code.vo.pagemodel.DockingPreAttrRangeVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import plm.bs.bom.clientobject.ClientBusinessObject;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Service
public class DockingPreAttrMappingSeviceImpl implements DockingPreAttrMappingSeviceI {
    /**
     * æ—¥å¿—
     */
    private Logger logger = LoggerFactory.getLogger(getClass());
    /**
     * é›†æˆå±žæ€§æ˜ å°„配置服务
     */
    @Resource
    private DockingPreAttrMappingDaoI dockingPreAttrMappingDaoI;
    /**
     * é›†æˆå±žæ€§å–值范围配置服务
     */
    @Resource
    private DockingPreAttrRangeDaoI dockingPreAttrRangeDODaoI;
    /**
     * åˆ†ç±»æ“ä½œæœåŠ¡
     */
    @Autowired
    private CodeClassifyServiceImpl codeClassifyService;
    /**
     * ä¸šåŠ¡ç±»åž‹æ“ä½œçš„æœåŠ¡
     */
    @Autowired
    private WebBoServiceI boService;
    /**
     * ç¼“存服务
     */
    @Autowired
    private RedisService redisService;
    /**
     * ä¸»æ•°æ®å¼•擎的服务
     */
    @Autowired
    private MdmEngineServiceI engineService;
    /**
     *枚举服务
     */
    @Autowired
    private OsEnumServiceI osEnumService;
    @Autowired
    private CodeClassifyTemplateAttrServiceI codeClassifyTemplateAttrServiceI;
    /***
     * å±žæ€§æ˜ å°„列表
     * @param conditionMap
     * @param pageHelper
     * @param type
     * @return
     * @throws VciBaseException
     */
    @Override
    public DataGrid<DockingPreAttrMappingVO> gridAttrMappings(String clsfId, int type, Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException {
        if (pageHelper == null) {
            pageHelper = new PageHelper(-1);
        }
        VciBaseUtil.alertNotNull(clsfId,"分类主键");
        VciBaseUtil.alertNotNull(type,"操作类型");
        //VciBaseUtil.alertNotNull(templateOid,"模板主键");
        if(conditionMap==null){
            conditionMap=new HashMap<>();
        }
        /***
         *  1.首先去模板里查询是否有增删属性
         *  2.如果有的话需要校验属性的名称是否有变更
         */
        List<ClientBusinessObject> tempCBO=new ArrayList<>();
        ClientBusinessObject clssCBO=new ClientBusinessObject();
        // List<String> templateIds = VciBaseUtil.str2List(templateOid);
        Map<String,String> cboOidMap=new HashMap<>();
        String btmName= MdmBtmTypeConstant.CODE_CLASSIFY_TEMPLATE_ATTR;
        CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(clsfId);
        if(StringUtils.isBlank(templateVO.getOid())){
            return new DataGrid<>();
        }
        String templateOid=templateVO.getOid();
        String clsfBtmName=MdmBtmTypeConstant.CODE_CLASSIFY;
        String orderbyFiled="";
        if(type==1) {//代表的是wrj
            orderbyFiled="ordernum";
            cboOidMap.put("classifytemplateoid", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(templateVO.getOid()) + ")");
            btmName=MdmBtmTypeConstant.CODE_CLASSIFY_TEMPLATE_ATTR;
            clsfBtmName=MdmBtmTypeConstant.CODE_CLASSIFY;
        }else{
            orderbyFiled="codeattrseq";
            cboOidMap.put("classifytemplateoid", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(templateOid) + ")");
            btmName=MdmBtmTypeConstant.DOCKING_PRE_JMETAATRR;
            clsfBtmName=MdmBtmTypeConstant.DOCKING_PRE_JCLASS;
        }
        //按模板顺序展示属性
        PageHelper tempPageHelper=new PageHelper();
        tempPageHelper = new PageHelper(-1);
        tempPageHelper.addDefaultAsc(orderbyFiled);
        tempCBO = boService.queryCBO(btmName,cboOidMap,tempPageHelper);
        if(CollectionUtils.isEmpty(tempCBO)){
            throw new VciBaseException("根据模板主键未查询到相应的属性信息");
        }
        clssCBO= boService.selectCBOByOid(clsfId,clsfBtmName);
        if(clssCBO==null||StringUtils.isBlank(clssCBO.getOid())){
            throw new VciBaseException("根据分类主键未查询到分类信息");
        }
        pageHelper.addDefaultDesc("createTime");
        //根据源分类id和模板id查询模板映射数据
       // conditionMap.put("jsourceClsfId",clsfId);
        conditionMap.put("jviewModeId", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(templateOid) + ")");
        List<DockingPreAttrMappingDO> doList = dockingPreAttrMappingDaoI.selectByCondition(conditionMap,pageHelper);
        Map<String/**中文名称**/, DockingPreAttrMappingDO/**数据对象**/> dockingAttrmappingOidToMap = doList.stream().collect(Collectors.toMap(s -> s.getJmetaListId(), t -> t,(o1, o2)->o2));
        List<DockingPreAttrMappingDO> newDockingPreAttrMappingDOS=new ArrayList<>();
        ClientBusinessObject finalClssCBO = clssCBO;
        tempCBO.stream().forEach(cbo ->{
            DockingPreAttrMappingDO dockingPreAttrMappingDO=new DockingPreAttrMappingDO();
            String oid=cbo.getOid();//属性oid
            if(dockingAttrmappingOidToMap.containsKey(oid)){
                dockingPreAttrMappingDO=dockingAttrmappingOidToMap.get(oid);
            }else{
                dockingPreAttrMappingDO.setOid(redisService.getUUIDEveryDay());
                dockingPreAttrMappingDO.setJmetaListId(oid);//源系统的属性oid
                dockingPreAttrMappingDO.setJdefaultValue("");//默认值
                dockingPreAttrMappingDO.setJsourceAttrKey(cbo.getId());//源系统属性内部名称
                dockingPreAttrMappingDO.setJsourceAttrName(cbo.getName());//源系统属性名称
                dockingPreAttrMappingDO.setJsourceClsfId(clsfId);//源系统的分类oid
                dockingPreAttrMappingDO.setJsourceClsfName(finalClssCBO.getName());//源系统的分类名称
                dockingPreAttrMappingDO.setJviewModeId(templateOid);//暂时不存,模板视图的oid
                dockingPreAttrMappingDO.setJviewModeName(templateVO.getName());//暂时不存,模板名称
                dockingPreAttrMappingDO.setJtargetAttrId("");//目标系统属性系id
                dockingPreAttrMappingDO.setJtargetAttrName("");//目标系统属性名称
                dockingPreAttrMappingDO.setJtargetAttrKey("");//目标系统属性内部值
                dockingPreAttrMappingDO.setJtargetClsfId("");//目标系统分类oid
            }
            newDockingPreAttrMappingDOS.add(dockingPreAttrMappingDO);
        } );
        DataGrid<DockingPreAttrMappingVO> dataGrid=new DataGrid<DockingPreAttrMappingVO>();
        if (!CollectionUtils.isEmpty(newDockingPreAttrMappingDOS)) {
            dataGrid.setData(dockingPreAttrMappingDO2VOs(newDockingPreAttrMappingDOS));
            dataGrid.setTotal(VciBaseUtil.getInt(String.valueOf(dockingPreAttrMappingDaoI.countByCondition(conditionMap))));
        }
        return dataGrid;
    }
    /***
     * èŽ·å–å±žæ€§æžšä¸¾
     * @param conditionMap
     * @param pageHelper
     * @return
     * @throws VciBaseException
     */
    @Override
    public DataGrid<DockingPreAttrRangeVO> gridAttrRanges(String attrOid, int type, Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException {
        VciBaseUtil.alertNotNull(attrOid,"属性主键");
        VciBaseUtil.alertNotNull(type,"操作类型");
        if (pageHelper == null) {
            pageHelper = new PageHelper(-1);
        }
        if(conditionMap==null){
            conditionMap=new HashMap<>();
        }
        pageHelper.addDefaultDesc("createTime");
        conditionMap.put("jmetaListId",attrOid);
        List<DockingPreAttrRangeDO> doList =dockingPreAttrRangeDODaoI.selectByCondition(conditionMap,pageHelper);
        Map<String/**枚举内部名称**/, DockingPreAttrRangeDO/**数据对象**/> dockingPreAttrRangeValueMap = doList.stream().collect(Collectors.toMap(s -> s.getJnumTextValue(), t -> t,(o1, o2)->o2));
        CodeClassifyTemplateAttrVO codeClassifyTemplateAttrVO= codeClassifyTemplateAttrServiceI.getObjectByOid(attrOid);
        String attrkey= codeClassifyTemplateAttrVO.getId();
        Map<String,String> cboOidMap=new HashMap<>();
        List<DockingPreAttrRangeDO> newDockingPreAttrRangeDO=new ArrayList<>();
        if(type==1){
            List<OsEnumItemVO> osEnumItemVOList= osEnumService.listEnumByAttriteKey(attrkey);
            if(!CollectionUtils.isEmpty(osEnumItemVOList)) {
                osEnumItemVOList.stream().forEach(osEnumItemVO -> {
                    DockingPreAttrRangeDO dockingPreAttrRangeDO = dockingPreAttrRangeValueMap.get(osEnumItemVO.getId());
                    if (!dockingPreAttrRangeValueMap.containsKey(osEnumItemVO.getId())) {
                        dockingPreAttrRangeDO = new DockingPreAttrRangeDO();
                        dockingPreAttrRangeDO.setOid(redisService.getUUIDEveryDay());
                        dockingPreAttrRangeDO.setJmetaListId(attrOid);//属性oid
                        dockingPreAttrRangeDO.setJnumText(osEnumItemVO.getName());//属性枚举显示值
                        dockingPreAttrRangeDO.setJnumTextValue(osEnumItemVO.getId());//枚举内部值
                        dockingPreAttrRangeDO.setJtargeNumText("");//配置的显示值
                        dockingPreAttrRangeDO.setJtargeNumTextValue("");//配置的内部值
                    }
                    newDockingPreAttrRangeDO.add(dockingPreAttrRangeDO);
                });
            }
        }
        DataGrid<DockingPreAttrRangeVO> dataGrid=new DataGrid<>();
        if (!CollectionUtils.isEmpty(newDockingPreAttrRangeDO)) {
            dataGrid.setData(dockingPreAttrRangeDO2VOs(newDockingPreAttrRangeDO));
            dataGrid.setTotal(VciBaseUtil.getInt(String.valueOf(dockingPreAttrRangeDODaoI.countByCondition(conditionMap))));
        }
        return dataGrid;
    }
    /***
     *保存属性映射配置组件
     * @param dockingPreAttrMappingDTOS å±žæ€§æ˜ å°„配置数据传输对象
     * @return
     * @throws VciBaseException
     */
    @Override
    public  List<DockingPreAttrMappingVO> batchAddSave(List<DockingPreAttrMappingDTO> dockingPreAttrMappingDTOS) throws VciBaseException {
        List<DockingPreAttrMappingVO> dockingPreAttrMappingVOS=new ArrayList<>();
       if(CollectionUtils.isEmpty(dockingPreAttrMappingDTOS)){
           return new ArrayList<>();
       }
        /**
         * 1.传递过来的有可能主数据模板新增属性,这样的需要添加,也有可能删除的属性,这样的映射需要删除
         * ä¹Ÿæœ‰æ›´æ–°çš„这样则更新
         */
        List<DockingPreAttrMappingDO> newDockingPreAttrMappingDOS=new ArrayList<>();
        List<String>oidList=new ArrayList<>();
        List<String>attrIdList=new ArrayList<>();
        List<String> attributeOidList=new ArrayList<>();
        List<DockingPreAttrRangeDO> newDockingPreAttrRangeDTOList=new ArrayList<>();
        dockingPreAttrMappingDTOS.stream().forEach(dockingPreAttrMappingDTO -> {
            List<DockingPreAttrRangeDTO>dockingPreAttrRangeDTOList=dockingPreAttrMappingDTO.getDockingPreAttrRangeDTOS();
            DockingPreAttrMappingDO dockingPreAttrMappingDO=new DockingPreAttrMappingDO();
            oidList.add(dockingPreAttrMappingDTO.getOid());
            if(!CollectionUtils.isEmpty(dockingPreAttrRangeDTOList)) {
                attrIdList.add(dockingPreAttrMappingDTO.getJmetaListId());
                List<DockingPreAttrRangeDO> dockingPreAttrRangeDOList = dockingPreAttrRangeDTO2DOs(dockingPreAttrRangeDTOList);
                newDockingPreAttrRangeDTOList.addAll(dockingPreAttrRangeDOList);
            }
            BeanUtilForVCI.copyPropertiesIgnoreCase(dockingPreAttrMappingDTO, dockingPreAttrMappingDO);
            newDockingPreAttrMappingDOS.add(dockingPreAttrMappingDO);
        });
        List<DockingPreAttrRangeDO> dockingPreAttrRangeDOList=new ArrayList<>();
        if(!CollectionUtils.isEmpty(attrIdList)) {
            //获取存在的属性取值范围.
            dockingPreAttrRangeDOList = dockingPreAttrRangeDODaoI.selectByAttrOid(StringUtils.join(attrIdList, ","));
        }
        //获取存在的属性映射.
        List<DockingPreAttrMappingDO> dataAttrMapping = dockingPreAttrMappingDaoI.selectByOid(StringUtils.join(oidList, ","));
        Map<String/**oid**/,DockingPreAttrMappingDO/**属性对象**/> allSaveAttrMappingMap = newDockingPreAttrMappingDOS.stream().collect(Collectors.toMap(s -> s.getOid(), t -> t,(o1, o2)->o2));
        Map<String/**oid**/,DockingPreAttrMappingDO/**对象**/> oldAttrMappingMap =dataAttrMapping.stream().collect(Collectors.toMap(s -> s.getOid(), t -> t,(o1, o2)->o2));
        WebUtil.setPersistence(false);//不执行保存
        BatchCBO batchCbos = new BatchCBO();
        //需要新增的属性映射
        List<DockingPreAttrMappingDO> needSaveCboList = newDockingPreAttrMappingDOS.stream().filter(cbo -> {
            String oid =cbo.getOid();
            return !oldAttrMappingMap.containsKey(oid);
        }).collect(Collectors.toList());
        if(needSaveCboList.size()>0) {
            BatchCBO addCOB = dockingPreAttrMappingDaoI.batchInsert(needSaveCboList);
            batchCbos.copyFromOther(addCOB);
        }
        Map<String/**oid**/,DockingPreAttrMappingDO/**对象**/> saveAttrMappingMap = needSaveCboList.stream().collect(Collectors.toMap(s -> s.getOid(), t -> t,(o1, o2)->o2));
        //要把以上的错误的都抛出后,需要更新的属性映射
        List<DockingPreAttrMappingDO> needEditCboList = newDockingPreAttrMappingDOS.stream().filter(cbo -> {
            String oid =cbo.getOid();
            return !saveAttrMappingMap.containsKey(oid);
        }).collect(Collectors.toList());
        if(needEditCboList.size()>0) {
            List<DockingPreAttrMappingDO> editCboList=new ArrayList<>();
            needEditCboList.stream().forEach(cbo->{
                String oid=cbo.getOid();
                if(oldAttrMappingMap.containsKey(oid)){
                    DockingPreAttrMappingDO dockingPreAttrMappingDO=  oldAttrMappingMap.get(oid);
                    dockingPreAttrMappingDO.setJtargetAttrKey(cbo.getJtargetAttrKey());
                    dockingPreAttrMappingDO.setJtargetAttrName(cbo.getJtargetAttrName());
                    dockingPreAttrMappingDO.setJtargetAttrId(cbo.getJtargetAttrId());
                    dockingPreAttrMappingDO.setJtargetClsfId(cbo.getJtargetClsfId());
                    dockingPreAttrMappingDO.setJdefaultValue(cbo.getJdefaultValue());
                    editCboList.add(dockingPreAttrMappingDO);
                }
            });
            BatchCBO editCOB = dockingPreAttrMappingDaoI.batchUpdate(editCboList);
            batchCbos.copyFromOther(editCOB);
        }
        //需要删除的属性映射
        List<String> deleteIdList=new ArrayList<>();
         dataAttrMapping.stream().forEach(cbo -> {
            String oid =cbo.getOid();
            if(!allSaveAttrMappingMap.containsKey(oid)){
                deleteIdList.add(oid);
            }
        });
        if(deleteIdList.size()>0) {
            BatchCBO deleteCBO = dockingPreAttrMappingDaoI.batchDeleteByOids(deleteIdList);
            batchCbos.copyFromOther(deleteCBO);
        }
        //取值范围处理
        if(!CollectionUtils.isEmpty(newDockingPreAttrRangeDTOList)) {
            Map<String/**oid**/, DockingPreAttrRangeDO/**属性对象**/> allSaveAttrAttrRangeDOMap =newDockingPreAttrRangeDTOList.stream().collect(Collectors.toMap(s -> s.getOid(), t -> t, (o1, o2) -> o2));
            Map<String/**oid**/, DockingPreAttrRangeDO/**对象**/> oldSaveAttrAttrRangeDOMap = dockingPreAttrRangeDOList.stream().collect(Collectors.toMap(s -> s.getOid(), t -> t, (o1, o2) -> o2));
            //需要新增的属性取值范围
            List<DockingPreAttrRangeDO> needSaveRangeCboList = newDockingPreAttrRangeDTOList.stream().filter(cbo -> {
                String oid = cbo.getOid();
                return !oldSaveAttrAttrRangeDOMap.containsKey(oid);
            }).collect(Collectors.toList());
            if(needSaveRangeCboList.size()>0) {
                BatchCBO addRangeCOB = dockingPreAttrRangeDODaoI.batchInsert(needSaveRangeCboList);
                batchCbos.copyFromOther(addRangeCOB);
            }
            //需要更新的属性取值范围
            Map<String/**oid**/, DockingPreAttrRangeDO/**对象**/> saveRangeMap = needSaveRangeCboList.stream().collect(Collectors.toMap(s -> s.getOid(), t -> t, (o1, o2) -> o2));
            List<DockingPreAttrRangeDO> needEditRangeCboList = newDockingPreAttrRangeDTOList.stream().filter(cbo -> {
                String oid = cbo.getOid();
                return !saveRangeMap.containsKey(oid);
            }).collect(Collectors.toList());
            if(needEditRangeCboList.size()>0) {
                List<DockingPreAttrRangeDO> editCboList=new ArrayList<>();
                needEditRangeCboList.stream().forEach(cbo->{
                        String oid=cbo.getOid();
                        if(oldSaveAttrAttrRangeDOMap.containsKey(oid)){
                            DockingPreAttrRangeDO dockingPreAttrRangeDO=  oldSaveAttrAttrRangeDOMap.get(oid);
                            dockingPreAttrRangeDO.setJtargeNumText(cbo.getJtargeNumText());
                            dockingPreAttrRangeDO.setJtargeNumTextValue(cbo.getJtargeNumTextValue());
                            editCboList.add(dockingPreAttrRangeDO);
                        }
                    });
                BatchCBO editRangeCOB = dockingPreAttrRangeDODaoI.batchUpdate(editCboList);
                batchCbos.copyFromOther(editRangeCOB);
            }
            //需要删除的属性取值范围
            List<String> deleteRangeIdList = new ArrayList<>();
            dockingPreAttrRangeDOList.stream().forEach(cbo -> {
                String oid = cbo.getOid();
                if (!allSaveAttrAttrRangeDOMap.containsKey(oid)) {
                    deleteRangeIdList.add(oid);
                }
            });
            if(deleteIdList.size()>0) {
                BatchCBO deleteRangeCBO = dockingPreAttrRangeDODaoI.batchDeleteByOids(deleteIdList);
                batchCbos.copyFromOther(deleteRangeCBO);
            }
        }
        WebUtil.setPersistence(true);
        this.boService.persistenceBatch(batchCbos);//更改数据
        return dockingPreAttrMappingVOS;
    }
    /***
     * æ ¹æ®æ¡ä»¶æŸ¥è¯¢å±žæ€§æ˜ å°„信息
     * @param conditionMap
     * @return
     * @throws VciBaseException
     */
    @Override
    public List<DockingPreAttrMappingVO> selectAttrMappings(Map<String, String> conditionMap) throws VciBaseException {
        List<DockingPreAttrMappingVO> dockingPreAttrMappingVOList=new ArrayList<>();
        VciQueryWrapperForDO queryWrapperForDO = new VciQueryWrapperForDO(DockingPreAttrMappingDO.class);
        queryWrapperForDO.setConditionMap(conditionMap);
        List<DockingPreAttrMappingDO> dockingPreAttrMappingDOS=dockingPreAttrMappingDaoI.selectByWrapper(queryWrapperForDO);
       List<String> attributOids=new ArrayList<>();
        if(!CollectionUtils.isEmpty(dockingPreAttrMappingDOS)){
            dockingPreAttrMappingDOS.stream().forEach(dockingPreAttrMappingDO -> {
              String attrOid= dockingPreAttrMappingDO.getJmetaListId();
                attributOids.add(attrOid);
            });
            dockingPreAttrMappingVOList= dockingPreAttrMappingDO2VOs(dockingPreAttrMappingDOS);
            Map<String/**oid**/,DockingPreAttrMappingVO/**对象**/> attrMappingMap = dockingPreAttrMappingVOList.stream().collect(Collectors.toMap(s -> s.getJmetaListId(), t -> t,(o1, o2)->o2));
            VciQueryWrapperForDO queryWrapperForDO2 = new VciQueryWrapperForDO(DockingPreAttrRangeDO.class);
            Map<String,String> condtionMap=new HashMap<>();
            condtionMap.put("jmetaListId", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(attributOids.toArray(new String[]{})) + ")");
            queryWrapperForDO.setConditionMap(conditionMap);
           List<DockingPreAttrRangeDO> dockingPreAttrRangeDOS=dockingPreAttrRangeDODaoI.selectByWrapper(queryWrapperForDO2);
           Map<String,List<DockingPreAttrRangeVO>> attribueOidMap=new HashMap<>();
           if(!CollectionUtils.isEmpty(dockingPreAttrRangeDOS)){
               dockingPreAttrRangeDOS.stream().forEach(dockingPreAttrRangeDO -> {
                  String attributeOid= dockingPreAttrRangeDO.getJmetaListId();
                  List<DockingPreAttrRangeVO> dockingPreAttrRangeVOS=new ArrayList<>();
                   dockingPreAttrRangeVOS.add(dockingPreAttrRangeDO2VO(dockingPreAttrRangeDO));
                  if(attribueOidMap.containsKey(attributeOid)){
                      List<DockingPreAttrRangeVO> oldDockingPreAttrRangeVOS= attribueOidMap.get(attributeOid);
                      dockingPreAttrRangeVOS.addAll(oldDockingPreAttrRangeVOS);
                  }
                   attribueOidMap.put(attributeOid,dockingPreAttrRangeVOS);
               });
           }
           if(!CollectionUtils.isEmpty(attribueOidMap)){
               attribueOidMap.keySet().forEach(attoributeOid->{
                   List<DockingPreAttrRangeVO> dockingPreAttrRangeVOList= attribueOidMap.get(attoributeOid);
                   if(attrMappingMap.containsKey(attoributeOid)){
                       DockingPreAttrMappingVO dockingPreAttrMappingVO=    attrMappingMap.get(attoributeOid);
                       dockingPreAttrMappingVO.setDockingPreAttrRangeVOS(dockingPreAttrRangeVOList);
                   }
               });
           }
        }
        return dockingPreAttrMappingVOList;
    }
    /***
     * å±žæ€§æžšä¸¾å¯¹è±¡è½¬æ¢
     * @param doList
     * @return
     */
    private List<DockingPreAttrRangeDO> dockingPreAttrRangeDTO2DOs(List<DockingPreAttrRangeDTO> doList) {
        List<DockingPreAttrRangeDO> voList = new ArrayList<>();
        if(!CollectionUtils.isEmpty(doList)){
            for(DockingPreAttrRangeDTO s: doList){
                DockingPreAttrRangeDO doBO =  dockingPreAttrRangeDTO2DO(s);
                if(doBO != null){
                    voList.add(doBO);
                }
            }
        }
        return voList;
    }
    /***
     * å±žæ€§æžšä¸¾æ˜ å°„
     * @param dockingPreAttrRangeDTO
     * @return
     */
    private DockingPreAttrRangeDO dockingPreAttrRangeDTO2DO(DockingPreAttrRangeDTO dockingPreAttrRangeDTO) {
        DockingPreAttrRangeDO dockingPreAttrRangeDO = new DockingPreAttrRangeDO();
        if(dockingPreAttrRangeDTO != null){
            BeanUtilForVCI.copyPropertiesIgnoreCase(dockingPreAttrRangeDTO,dockingPreAttrRangeDO);
            //如果有lcstatus的类的话
        }
        return dockingPreAttrRangeDO;
    }
    /***
     * å±žæ€§æžšä¸¾å¯¹è±¡è½¬æ¢
     * @param doList
     * @return
     */
    private List<DockingPreAttrRangeVO> dockingPreAttrRangeDO2VOs(List<DockingPreAttrRangeDO> doList) {
        List<DockingPreAttrRangeVO> voList = new ArrayList<>();
        if(!CollectionUtils.isEmpty(doList)){
            for(DockingPreAttrRangeDO s: doList){
                DockingPreAttrRangeVO vo =  dockingPreAttrRangeDO2VO(s);
                if(vo != null){
                    voList.add(vo);
                }
            }
        }
        return voList;
    }
    /***
     * å±žæ€§æžšä¸¾æ˜ å°„
     * @param dockingPreAttrRangeDO
     * @return
     */
    private DockingPreAttrRangeVO dockingPreAttrRangeDO2VO(DockingPreAttrRangeDO dockingPreAttrRangeDO) {
        DockingPreAttrRangeVO vo = new DockingPreAttrRangeVO();
        if(dockingPreAttrRangeDO != null){
            BeanUtilForVCI.copyPropertiesIgnoreCase(dockingPreAttrRangeDO,vo);
            //如果有lcstatus的类的话
        }
        return vo;
    }
    /***
     * å±žæ€§æ˜ å°„对象转换
     * @param doList
     * @return
     */
    private List<DockingPreAttrMappingVO> dockingPreAttrMappingDO2VOs(List<DockingPreAttrMappingDO> doList) {
        List<DockingPreAttrMappingVO> voList = new ArrayList<>();
        if(!CollectionUtils.isEmpty(doList)){
            for(DockingPreAttrMappingDO s: doList){
                DockingPreAttrMappingVO vo =  dockingPreAttrMappingDO2VO(s);
                if(vo != null){
                    voList.add(vo);
                }
            }
        }
        return voList;
    }
    private DockingPreAttrMappingVO dockingPreAttrMappingDO2VO(DockingPreAttrMappingDO dockingPreAttrMappingDO) {
        DockingPreAttrMappingVO vo = new DockingPreAttrMappingVO();
        if(dockingPreAttrMappingDO != null){
            BeanUtilForVCI.copyPropertiesIgnoreCase(dockingPreAttrMappingDO,vo);
            //如果有lcstatus的类的话
        }
        return vo;
    }
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/MdmEngineServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,2753 @@
package org.springblade.code.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.vci.corba.common.VCIError;
import com.vci.frameworkcore.compatibility.SmUserQueryServiceI;
import com.vci.frameworkcore.constant.FrameWorkDefaultValueConstant;
import com.vci.frameworkcore.lcstatuspck.FrameworkDataLCStatus;
import com.vci.frameworkcore.pagemodel.SmUserVO;
import com.vci.starter.revision.bo.TreeWrapperOptions;
import com.vci.starter.revision.service.RevisionModelUtil;
import com.vci.starter.web.constant.QueryOptionConstant;
import com.vci.starter.web.constant.RegExpConstant;
import com.vci.starter.web.enumpck.BooleanEnum;
import com.vci.starter.web.enumpck.UserSecretEnum;
import com.vci.starter.web.enumpck.VciFieldTypeEnum;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.*;
import com.vci.starter.web.toolmodel.DateConverter;
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.dto.BaseModelDTO;
import com.vci.web.pageModel.KeyValue;
import com.vci.web.pageModel.*;
import com.vci.web.service.*;
import com.vci.web.service.impl.FormulaServiceImpl;
import com.vci.web.service.impl.OsEnumServiceImpl;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.code.bo.CodeClassifyFullInfoBO;
import org.springblade.code.bo.CodeTemplateAttrSqlBO;
import org.springblade.code.constant.MdmBtmTypeConstant;
import org.springblade.code.dto.CodeDeleteBatchDTO;
import org.springblade.code.dto.CodeOrderDTO;
import org.springblade.code.enumpack.CodeLevelTypeEnum;
import org.springblade.code.enumpack.CodeSecTypeEnum;
import org.springblade.code.enumpack.CodeUseButtonPositionTypeEnum;
import org.springblade.code.lifecycle.CodeDefaultLC;
import org.springblade.code.model.CodeClassifyTemplateAttrDO;
import org.springblade.code.model.CodeClassifyTemplateDO;
import org.springblade.code.service.*;
import org.springblade.code.utils.DateUtils;
import org.springblade.code.vo.pagemodel.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import plm.bs.bom.clientobject.ClientBusinessObject;
import plm.bs.bom.clientobject.ClientBusinessObjectOperation;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.stream.Collectors;
import static com.vci.frameworkcore.constant.FrameWorkBusLangCodeConstant.DATA_OID_NOT_EXIST;
import static com.vci.web.constant.EnumIdConstant.LC_STATUS_SUBFIX;
import static org.springblade.code.constant.MdmEngineConstant.*;
/**
 * ä¸»æ•°æ®å¼•擎服务
 *
 * @author weidy
 * @date 2022-2-22
 */
@Service
public class MdmEngineServiceImpl implements MdmEngineServiceI {
    /**
     * å¿…输
     */
    public static final String REQUIRED_CHAR = "*";
    /**
     * æ›¿æ¢å­—符
     */
    public static final String SPECIAL_CHAR  = "VCI";
    /**
     * æ¨¡æ¿çš„æœåŠ¡
     */
    @Autowired
    private CodeClassifyTemplateServiceI templateService;
    /**
     * æ¨¡æ¿æŒ‰é’®æœåŠ¡
     */
    @Autowired
    private CodeClassifyTemplateButtonServiceI templateButtonService;
    /**
     * åˆ†ç±»çš„æœåŠ¡
     */
    @Autowired
    private CodeClassifyServiceI classifyService;
    /**
     * ä¸šåŠ¡æ•°æ®çš„æœåŠ¡
     */
    @Autowired
    private WebBoServiceI boService;
    /**
     * å…¬å¼çš„æœåŠ¡
     */
    @Autowired
    private FormulaServiceImpl formulaService;
    /**
     * æžšä¸¾çš„æœåŠ¡
     */
    @Autowired
    private OsEnumServiceI enumService;
    /**
     * ç”Ÿå‘½å‘¨æœŸçš„æœåŠ¡
     */
    @Autowired
    private OsLifeCycleServiceI lifeCycleService;
    /**
     * ç¼–码规则的服务
     */
    @Autowired
    private CodeRuleServiceI ruleService;
    /**
     * åˆ†ç±»ç å€¼çš„æœåŠ¡
     */
    @Autowired
    private CodeClassifyValueServiceI classifyValueService;
    /**
     * å…³é”®å±žæ€§çš„配置
     */
    @Autowired
    private CodeKeyAttrRepeatRuleServiceI keyRuleService;
    /**
     * åŠŸèƒ½æŒ‰é’®çš„æœåŠ¡
     */
    @Autowired
    private SmOperationServiceI operationService;
    /**
     * ç”Ÿæˆç¼–码的服务
     */
    @Autowired
    private MdmProductCodeServiceI productCodeService;
    /**
     * é˜¶æ®µçš„æœåŠ¡
     */
    @Autowired
    private CodePhaseAttrServiceI phaseAttrService;
    /**
     * æ—¥å¿—
     */
    private Logger logger = LoggerFactory.getLogger(getClass());
    /**
     * å¯†çº§çš„æœåŠ¡
     */
    @Autowired
    private WebSecretServiceI secretService;
    /**
     * å¯è¾“可选
     */
    @Autowired
    private BdSelectInputCharServiceI charService;
    /**
     * å¯¹è±¡çš„æ“ä½œ
     */
    @Autowired
    private RevisionModelUtil revisionModelUtil;
    /**
     * ç›¸ä¼¼é¡¹æŸ¥è¯¢è§„则
     */
    @Autowired
    private CodeResembleRuleServiceI resembleRuleService;
    /**
     * å±žæ€§çš„æœåŠ¡
     */
    @Autowired
    private OsAttributeServiceI attributeService;
    /**
     * ç”¨æˆ·æŸ¥è¯¢çš„æœåŠ¡
     */
    @Autowired
    private SmUserQueryServiceI userQueryService;
    /**
     * æ¨¡æ¿å±žæ€§çš„æœåŠ¡
     */
    @Autowired
    private CodeClassifyTemplateAttrServiceI templateAttrService;
    /**
     * æ‹·è´çš„版本
     */
    public static final String COPY_FROM_VERSION = "copyfromversion";
    /**
     * ä½¿ç”¨åˆ†ç±»ä¸»é”®èŽ·å–é¡µé¢çš„å†…å®¹ï¼ŒåŒ…å«æŒ‰é’®
     *
     * @param codeClassifyOid ä¸»é¢˜åº“分类主键
     * @param functionId      åŠŸèƒ½çš„ç¼–å·
     * @return UI相关的内容
     */
    @Override
    public MdmUIInfoVO getUIInfoByClassifyOid(String codeClassifyOid, String functionId) {
        VciBaseUtil.alertNotNull(codeClassifyOid, "主题库分类主键");
        MdmUIInfoVO uiInfoVO = getTableDefineByTemplateVO(getUsedTemplateByClassifyOid(codeClassifyOid));
        uiInfoVO.setLeaf(classifyService.countChildrenByClassifyOid(codeClassifyOid) == 0);
        if (StringUtils.isNotBlank(functionId) && !"~".equalsIgnoreCase(functionId)) {
            List<SmOperationVO> operationVOS = operationService.listButtonByFunctionId(functionId);
            if (operationVOS == null) {
                operationVOS = new ArrayList<>();
            }
            //查询扩展按钮
            List<CodeButtonVO> buttonVOS = listButtonInToolbarByClassifyOid(codeClassifyOid);
            if (!CollectionUtils.isEmpty(buttonVOS)) {
                for (int i = 0; i < buttonVOS.size(); i++) {
                    CodeButtonVO buttonVO = buttonVOS.get(i);
                    SmOperationVO operationVO = new SmOperationVO();
                    operationVO.setModuleNo(functionId);
                    operationVO.setUniqueFlag(buttonVO.getId());
                    operationVO.setName(buttonVO.getName());
                    operationVO.setAlias(operationVO.getName());
                    operationVO.setExecuteJs(buttonVO.getExecutejs());
                    operationVO.setIconCls(buttonVO.getIconcls());
                    operationVOS.add(operationVO);
                }
            }
            uiInfoVO.setButtons(operationVOS);
        }
        return uiInfoVO;
    }
    /**
     * ä½¿ç”¨ä¸»é¢˜åº“分类获取ui相关的内容(不包含按钮)
     *
     * @param codeClassifyOid ä¸»é¢˜åº“的分类的主键
     * @return UI相关的内容
     */
    @Override
    public MdmUIInfoVO getTableDefineByClassifyOid(String codeClassifyOid) {
        VciBaseUtil.alertNotNull(codeClassifyOid, "主题库分类主键");
        return getTableDefineByTemplateVO(getUsedTemplateByClassifyOid(codeClassifyOid));
    }
    /**
     * ä½¿ç”¨æ¨¡æ¿æ˜¾ç¤ºå¯¹è±¡è½¬æ¢ä¸ºè¡¨æ ¼çš„信息(包含扩展的按钮)
     *
     * @param templateVO æ¨¡æ¿çš„信息
     * @return UI相关的内容(仅包含表格信息)
     */
    private MdmUIInfoVO getTableDefineByTemplateVO(CodeClassifyTemplateVO templateVO) {
        //先看这个分类本身是否有模板
        MdmUIInfoVO uiInfoVO = new MdmUIInfoVO();
        uiInfoVO.setTemplateVO(templateVO);
        //我们需要将模板转换为表格相关的显示信息
        uiInfoVO.setTableDefineVO(wrapperTableDefineByTemplate(uiInfoVO.getTemplateVO(),false));
        //需要去看扩展的按钮,只有列表里面本身才添加进去,工具栏上的单独获取
        List<CodeClassifyTemplateButtonVO> buttonVOS = templateButtonService.listButtonByTemplateOid(templateVO.getOid(), true);
        if (!CollectionUtils.isEmpty(buttonVOS)) {
            //我们要分开为按钮,还是在操作列里面
            List<CodeClassifyTemplateButtonVO> tableButtonVOs = buttonVOS.stream().filter(s -> CodeUseButtonPositionTypeEnum.TABLE.getValue().equalsIgnoreCase(s.getButtonuse())).collect(Collectors.toList());
            if (!CollectionUtils.isEmpty(tableButtonVOs)) {
                UITableFieldVO optionFieldVO = new UITableFieldVO();
                optionFieldVO.setField("options");
                optionFieldVO.setTitle("操作");
                optionFieldVO.setFieldType("text");
                optionFieldVO.setOptionField(true);
                List<KeyValue> buttons = new ArrayList<>();
                Map<String, String> optionJsMap = new HashMap<>();
                tableButtonVOs.stream().forEach(buttonVO -> {
                    KeyValue kv = new KeyValue();
                    kv.setKey(buttonVO.getId());
                    kv.setValue(buttonVO.getClassifybuttonoidName());
                    kv.setAttributes(VciBaseUtil.objectToMap(buttonVO));
                    buttons.add(kv);
                    optionJsMap.put(buttonVO.getId(), buttonVO.getButtonVO().getExecutejs());
                });
                optionFieldVO.setOptionJsMap(optionJsMap);
                uiInfoVO.getTableDefineVO().getCols().get(0).add(optionFieldVO);
            }
        }
        return uiInfoVO;
    }
    /**
     * ä½¿ç”¨åˆ†ç±»çš„主键获取可以使用的模板对象
     *
     * @param codeClassifyOid åˆ†ç±»çš„主键
     * @return æ¨¡æ¿çš„æ˜¾ç¤ºå¯¹è±¡
     */
    @Override
    public CodeClassifyTemplateVO getUsedTemplateByClassifyOid(String codeClassifyOid) {
        return getUsedTemplateByClassifyOid(codeClassifyOid, true);
    }
    /**
     * ä½¿ç”¨åˆ†ç±»çš„主键获取可以使用的模板对象
     *
     * @param codeClassifyOid åˆ†ç±»çš„主键
     * @param hasAttr         åŒ…含属性
     * @return æ¨¡æ¿çš„æ˜¾ç¤ºå¯¹è±¡
     */
    @Override
    public CodeClassifyTemplateVO getUsedTemplateByClassifyOid(String codeClassifyOid, boolean hasAttr) {
        List<CodeClassifyTemplateVO> templateVOs = templateService.listReleaseTemplateByClassifyOid(codeClassifyOid, hasAttr);
        return templateVOs.get(templateVOs.size() - 1);
    }
    /**
     * ä½¿ç”¨æ¨¡æ¿çš„主键获取表单的信息
     *
     * @param codeClassifyTemplateOid æ¨¡æ¿çš„主键
     * @return ui相关的内容
     */
    @Override
    public MdmUIInfoVO getFormDefineByTemplateOid(String codeClassifyTemplateOid) {
        return getFormDefineByTemplateOid(codeClassifyTemplateOid, null);
    }
    /**
     * ä½¿ç”¨æ¨¡æ¿çš„主键获取表单的信息
     *
     * @param codeClassifyTemplateOid æ¨¡æ¿çš„主键
     * @param codeClassifyOid         ä½¿ç”¨æ¨¡æ¿çš„分类主键
     * @return ui相关的内容
     */
    @Override
    public MdmUIInfoVO getFormDefineByTemplateOid(String codeClassifyTemplateOid, String codeClassifyOid) {
        CodeClassifyTemplateVO templateVO = templateService.getObjectHasAttrByOid(codeClassifyTemplateOid);
        MdmUIInfoVO uiInfoVO = new MdmUIInfoVO();
        uiInfoVO.setTemplateVO(templateVO);
        uiInfoVO.setFormDefineVO(wrapperFormDefineByTemplate(templateVO, codeClassifyOid));
        wrapperResemble(templateVO, uiInfoVO);
        return uiInfoVO;
    }
    /**
     * å°è£…相似项查询的列表
     *
     * @param templateVO æ¨¡æ¿çš„æ˜¾ç¤ºå¯¹è±¡
     * @param uiInfoVO   é¡µé¢çš„信息
     */
    private void wrapperResemble(CodeClassifyTemplateVO templateVO, MdmUIInfoVO uiInfoVO) {
        List<CodeClassifyTemplateAttrVO> resembleAttrList = templateVO.getAttributes().stream().filter(s -> VciBaseUtil.getBoolean(s.getSamerepeatattrflag())
                || VciQueryWrapperForDO.ID_FIELD.equalsIgnoreCase(s.getId())).collect(Collectors.toList());
        if (!CollectionUtils.isEmpty(resembleAttrList) && resembleAttrList.size() > 1) {
            UITableDefineVO resembleTable = new UITableDefineVO();
            resembleTable.setOid(templateVO.getOid());
            resembleTable.setBtmType(templateVO.getBtmTypeId());
            resembleTable.setDisplayQueryArea(false);
            resembleTable.setPageVO(new UITablePageVO());
            //处理所有的列,这个模板没有合并的表头的情况
            List<UITableFieldVO> fieldVOList = new ArrayList<>();
            resembleAttrList.forEach(attrVO -> {
                UITableFieldVO tableFieldVO = templateAttr2TableField(attrVO,false);
                tableFieldVO.setHidden(false);
                fieldVOList.add(tableFieldVO);
            });
            List<List<UITableFieldVO>> cols = new ArrayList<>();
            cols.add(fieldVOList);
            resembleTable.setCols(cols);
            uiInfoVO.setResembleTableVO(resembleTable);
        }
    }
    /**
     * ä½¿ç”¨æ¨¡æ¿çš„主键获取表单的信息
     *
     * @param templateOid æ¨¡æ¿çš„主键
     * @param executionId æµç¨‹æ‰§è¡Œid
     * @param processUse  æµç¨‹æ¨¡æ¿çš„用途
     * @return ui相关的内容
     */
    @Override
    public List<String> getFieldByProcessTemplate(String templateOid, String executionId, String processUse) {
        VciBaseUtil.alertNotNull(templateOid, "模板主键", executionId, "流程的执行Id", processUse, "流程模板用途");
        while (StringUtils.countMatches(executionId, ".") > 1) {
            executionId = executionId.substring(0, executionId.lastIndexOf("."));
        }
        String sql = "select distinct (t.codetempattrOidArr)\n" +
                "from " + VciBaseUtil.getTableName(MdmBtmTypeConstant.CODE_CLASSIFY_PROCESS_TEMPLATE) + " t\n" +
                "join PLFLOWINSTANCE plfi on t.ID = plfi.PLTEMPLATEPUID\n" +
                "where plfi.PLEXECUTIONID = '" + executionId + "' and t.CLASSIFYTEMPLATEOID = '" + templateOid + "' and t.CODEPROCESSUSE = '" + processUse + "'";
        List<ClientBusinessObject> tempAttrOidArr = boService.queryByOnlySql(sql);
        if (CollectionUtils.isEmpty(tempAttrOidArr) || StringUtils.isBlank(tempAttrOidArr.get(0).getAttributeValue("codetempattroidarr"))) {
            return new ArrayList<>();
        }
        return VciBaseUtil.str2List(tempAttrOidArr.get(0).getAttributeValue("codetempattroidarr"));
    }
    /**
     * ä½¿ç”¨ä¸»é¢˜åº“分类的主键获取表单的信息
     *
     * @param codeClassifyOid åˆ†ç±»çš„主键
     * @return ui相关的内容
     */
    @Override
    public MdmUIInfoVO getFormDefineByClassifyOid(String codeClassifyOid) {
        MdmUIInfoVO uiInfoVO = new MdmUIInfoVO();
        CodeClassifyTemplateVO templateVO = getUsedTemplateByClassifyOid(codeClassifyOid);
        uiInfoVO.setTemplateVO(templateVO);
        uiInfoVO.setFormDefineVO(wrapperFormDefineByTemplate(templateVO, codeClassifyOid));
        wrapperResemble(templateVO, uiInfoVO);
        return uiInfoVO;
    }
    /**
     * ä½¿ç”¨åˆ†ç±»çš„主键获取表格的定义
     *
     * @param codeClassifyOid åˆ†ç±»ä¸»é”®
     * @param phase           é˜¶æ®µçš„名称
     * @return UI相关的信息(仅包含表单)
     */
    @Override
    public MdmUIInfoVO getTableDefineByClassifyOid_v2(String codeClassifyOid, String phase) {
        MdmUIInfoVO uiInfoVO = new MdmUIInfoVO();
        CodeClassifyTemplateVO templateVO = getUsedTemplateByClassifyOid(codeClassifyOid);
        uiInfoVO.setTemplateVO(templateVO);
        UITableDefineVO uiTableDefineVO = wrapperTableDefineByTemplate(templateVO,true);
        List<String> phaseAttrIdList = listPhaseAttrByClassifyOid(codeClassifyOid, phase);
        uiTableDefineVO.getCols().stream().forEach(list -> {
            List<UITableFieldVO> visiableTableField=new ArrayList<>();
            if(StringUtils.isNotBlank(phase)) {
                visiableTableField = list.stream().filter(col ->
                        phaseAttrIdList.stream().anyMatch(s -> StringUtils.equalsIgnoreCase(col.getField(), s) ||
                                (StringUtils.equalsIgnoreCase(col.getFieldType(), "combox") && StringUtils.equalsIgnoreCase(col.getSortField(), s))
                                || (StringUtils.equalsIgnoreCase(col.getFieldType(), "refer") && StringUtils.equalsIgnoreCase(col.getQueryField(), s))
                        )).collect(Collectors.toList());
            }else{
                visiableTableField=  list.stream().filter(col ->
                        templateVO.getAttributes().stream().anyMatch(s ->
                                (!s.getReadonlyflag().equalsIgnoreCase("true")&& StringUtils.equalsIgnoreCase(col.getField(), s.getId())) ||
                                (StringUtils.equalsIgnoreCase(col.getFieldType(), "combox") && StringUtils.equalsIgnoreCase(col.getSortField(), s.getId()))
                                || (StringUtils.equalsIgnoreCase(col.getFieldType(), "refer") && StringUtils.equalsIgnoreCase(col.getQueryField(), s.getId()))
                        )).collect(Collectors.toList());
            }
            visiableTableField.stream().forEach(vo -> {
                uiTableDefineVO.setHasEditor(true);
                if ("refer".equalsIgnoreCase(vo.getFieldType())) {
                    setReferConfig2EditConfig(vo);
                } else if ("combox".equalsIgnoreCase(vo.getFieldType())) {
                    setComboxConfig2EditConfig(vo);
                } else if (StringUtils.isNotBlank(vo.getDateFormate())){
                    vo.setEdit("date");
                }else {
                    vo.setEdit(vo.getFieldType());
                }
            });
        });
        uiInfoVO.setTableDefineVO(uiTableDefineVO);
        wrapperResemble(templateVO, uiInfoVO);
        return uiInfoVO;
    }
    /**
     * åŠ è½½æˆå‚ç…§çš„ä¿®æ”¹é…ç½®
     * @param vo è¡¨æ ¼å­—段显示对象
     */
    private void setReferConfig2EditConfig(UITableFieldVO vo) {
        if (!CollectionUtils.isEmpty(vo.getReferConfig().getWhere())){
            vo.getReferConfig().getWhere().keySet().forEach(key -> {
                vo.getReferConfig().getWhere().put(key, "'" + vo.getReferConfig().getWhere().get(key) + "'");
            });
        }
        if (StringUtils.isNotBlank(vo.getReferConfig().getParentValue())){
            String parentValue = vo.getReferConfig().getParentValue();
            parentValue ="\\" +  parentValue.replaceAll("'","{vci-quote}").replaceAll("=","{vci-equals}");
            vo.getReferConfig().setParentValue(parentValue);
        }
        String referConfig = vo.getReferConfig().toString()
                .replaceAll("=",":")
                .replaceAll("UITableCustomDefineVO","")
                .replaceAll("UIFieldSortVO","")
                .replaceAll("UITablePageVO","")
                .replaceAll("UITableFieldVO","")
                .replaceAll("UIFormReferVO","")
                .replaceAll("\\{vci-equals}","=")
                .replaceAll("\\{vci-quote}","\\\\'")
                .replaceAll("'null'","null");
        referConfig = referConfig + ",fieldMap:{" + vo.getQueryField() + ":'" + vo.getReferConfig().getValueField() + "'}";
        vo.setEditConfig("{referConfig:" + referConfig + "}");
        vo.setEdit(vo.getFieldType());
    }
    /**
     * åŠ è½½æˆä¸‹æ‹‰æ¡†çš„ä¿®æ”¹é…ç½®
     * @param vo è¡¨æ ¼å­—段显示对象
     */
    private void setComboxConfig2EditConfig(UITableFieldVO vo) {
        vo.setEditConfig("{editable:true,comboxKey:'" + vo.getComboxKey() + "'");
        if (!CollectionUtils.isEmpty(vo.getData())){
            vo.setEditConfig(vo.getEditConfig()+", comboxConfig:");
            for (int i = 0; i < vo.getData().size(); i++) {
                KeyValue data = vo.getData().get(i);
                if (i == vo.getData().size() -1){
                    vo.setEditConfig(vo.getEditConfig() + "{attributes:"+data.getAttributes()+",key:'"+data.getKey()+"',value:'"+data.getValue()+"'}]}");
                }else if (i == 0){
                    vo.setEditConfig(vo.getEditConfig() + "{data:[{attributes:"+data.getAttributes()+",key:'"+data.getKey()+"',value:'"+data.getValue()+"'},");
                }else{
                    vo.setEditConfig(vo.getEditConfig() + "{attributes:"+data.getAttributes()+",key:'"+data.getKey()+"',value:'"+data.getValue()+"'},");
                }
            }
            vo.setEditConfig(vo.getEditConfig() + ",valueField:'" + vo.getQueryField() + "'");
        }
        vo.setEditConfig(vo.getEditConfig() + "}");
        vo.setEdit(vo.getFieldType());
    }
    /**
     * ä½¿ç”¨æ¨¡æ¿ä¸»é”®èŽ·å–ui相关的内容
     *
     * @param templateOid æ¨¡æ¿çš„主键
     * @return ui相关的内容
     */
    @Override
    public MdmUIInfoVO getTableDefineByTemplateOid(String templateOid) {
        return getTableDefineByTemplateVO(templateService.getObjectHasAttrByOid(templateOid));
    }
    /**
     * ä½¿ç”¨åˆ†ç±»ä¸»é”®èŽ·å–å·¥å…·æ ä¸­çš„æŒ‰é’®ä¿¡æ¯
     *
     * @param codeClassifyOid åˆ†ç±»çš„主键
     * @return æŒ‰é’®çš„信息,会按照排序号进行排序
     */
    @Override
    public List<CodeButtonVO> listButtonInToolbarByClassifyOid(String codeClassifyOid) {
        CodeClassifyTemplateVO templateVO = getUsedTemplateByClassifyOid(codeClassifyOid);
        return listButtonInToolbarByTemplateOid(templateVO.getOid());
    }
    /**
     * ä½¿ç”¨æ¨¡æ¿ä¸»é”®èŽ·å–å·¥å…·æ ä¸­çš„æŒ‰é’®ä¿¡æ¯
     *
     * @param templateOid æ¨¡æ¿çš„主键
     * @return æŒ‰é’®çš„信息,会按照排序号进行排序
     */
    @Override
    public List<CodeButtonVO> listButtonInToolbarByTemplateOid(String templateOid) {
        List<CodeClassifyTemplateButtonVO> buttonVOS = templateButtonService.listButtonByTemplateOid(templateOid, true);
        if (CollectionUtils.isEmpty(buttonVOS)) {
            return new ArrayList<>();
        }
        List<CodeClassifyTemplateButtonVO> toolbarButtons = buttonVOS.stream().filter(s -> CodeUseButtonPositionTypeEnum.TOOLBAR.getValue().equalsIgnoreCase(s.getButtonuse())).collect(Collectors.toList());
        if (CollectionUtils.isEmpty(toolbarButtons)) {
            return new ArrayList<>();
        }
        List<CodeButtonVO> buttonVOList = new ArrayList<>();
        for (int i = 0; i < toolbarButtons.size(); i++) {
            buttonVOList.add(toolbarButtons.get(i).getButtonVO());
        }
        return buttonVOList;
    }
    /**
     * ä½¿ç”¨åˆ†ç±»èŽ·å–å¯¹åº”çš„æ•°æ®
     *
     * @param codeClassifyOid åˆ†ç±»çš„主键
     * @param templateOid     æ¨¡æ¿çš„主键
     * @param conditionMap    æŸ¥è¯¢æ¡ä»¶
     * @param pageHelper      åˆ†é¡µçš„对象
     * @return æ•°æ®ï¼ˆåŒ…含下级分类)
     */
    @Override
    public DataGrid<Map<String, String>> gridTableDataByClassifyOid(String codeClassifyOid, String templateOid, Map<String, String> conditionMap, PageHelper pageHelper) {
        //1. ä½¿ç”¨åˆ†ç±»èŽ·å–æ‰€æœ‰çš„ä¸‹çº§åˆ†ç±»ï¼Œç„¶åŽæ ¹æ®åˆ†ç±»æŸ¥è¯¢å¯¹åº”çš„æ•°æ®
        //2. å…¨éƒ¨ä½¿ç”¨å½“前分类的当前模板来展示内容
        //3. å¦‚果模板上有枚举注入,组合规则,和参照的,需要执行转换
        //4. æŸ¥è¯¢çš„æ—¶å€™ï¼Œç›´æŽ¥ä½¿ç”¨codeclsfpath来查询
        CodeClassifyVO topClassifyVO = classifyService.getTopClassifyVO(codeClassifyOid);
        CodeClassifyTemplateVO templateVO = templateService.getObjectHasAttrByOid(templateOid);
        if (topClassifyVO == null || StringUtils.isBlank(topClassifyVO.getBtmtypeid())) {
            throw new VciBaseException("当前主题库分类没有顶层分类,或者顶层分类没有设置业务类型");
        }
        String btmTypeId = topClassifyVO.getBtmtypeid();
        if (StringUtils.isBlank(btmTypeId)) {
            return new DataGrid<>("这个分类所属顶层分类没有添加业务类型");
        }
        if (conditionMap == null) {
            conditionMap = new HashMap<>();
        }
        //pageHelper.addDefaultDesc("createTime");
        pageHelper.addDefaultDesc("id");
        if (!classifyService.checkHasChild(codeClassifyOid)) {
            conditionMap.put(CODE_CLASSIFY_OID_FIELD, codeClassifyOid);
        } else {
            conditionMap.put(CODE_CLASSIFY_OID_FIELD, QueryOptionConstant.IN + "(select oid from " + VciBaseUtil.getTableName(MdmBtmTypeConstant.CODE_CLASSIFY)
                    + " where lcstatus='" + FrameWorkDefaultValueConstant.FRAMEWORK_DATA_ENABLED +
                    "' start with parentCodeClassifyOid = '" + codeClassifyOid + "' CONNECT BY PRIOR OID = parentCodeClassifyOid )");
        }
        conditionMap.put("islastr", "1");
        conditionMap.put("islastv", "1");
        return queryGrid(btmTypeId, templateVO, conditionMap, pageHelper);
//        List<String> selectFieldList = templateVO.getAttributes().stream().map(CodeClassifyTemplateAttrVO::getId).collect(Collectors.toList());
//        //参照让平台直接查询就行
//        List<String> finalSelectFieldList = selectFieldList;
//        List<CodeClassifyTemplateAttrVO> referAttrVOs = templateVO.getAttributes().stream().filter(
//                s -> StringUtils.isNotBlank(s.getReferbtmid())
//                        &&
//                        (finalSelectFieldList.size() ==0 || finalSelectFieldList.contains(s.getId().toLowerCase(Locale.ROOT)))
//        ).collect(Collectors.toList());
//        if(!CollectionUtils.isEmpty(referAttrVOs)){
//            for (int i = 0; i < referAttrVOs.size(); i++) {
//                selectFieldList.add(referAttrVOs.get(i).getId() + ".name");
//            }
//        }
//        //我们使用和业务类型的来查询
//        DataGrid<Map<String,String>> dataGrid = boService.queryGridByBo(btmTypeId, conditionMap, pageHelper, selectFieldList);
//        //我们需要使用模板来转换
//        if(!CollectionUtils.isEmpty(dataGrid.getData())){
//            wrapperData(dataGrid.getData(),templateVO,finalSelectFieldList,false);
//        }
//        return dataGrid;
    }
    /**
     * æŸ¥è¯¢ç¼–码数据的列表
     *
     * @param btmType      ä¸šåŠ¡ç±»åž‹
     * @param templateVO   æ¨¡æ¿çš„对象,需要包含模板的属性
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @param pageHelper   åˆ†é¡µå¯¹è±¡
     * @return æ•°æ®åˆ—表
     */
    @Override
    public DataGrid<Map<String, String>> queryGrid(String btmType, CodeClassifyTemplateVO templateVO, Map<String, String> conditionMap, PageHelper pageHelper) {
        CodeTemplateAttrSqlBO sqlBO = getSqlByTemplateVO(btmType, templateVO, conditionMap, pageHelper);
        List<Map> maps = boService.queryByOnlySqlForMap(sqlBO.getSqlHasPage());
        DataGrid<Map<String, String>> dataGrid = new DataGrid<>();
        List<Map<String, String>> dataList = new ArrayList<>();
        if (!CollectionUtils.isEmpty(maps)) {
            maps.stream().forEach(map -> {
                Map<String, String> data = new HashMap<>();
                map.forEach((key, value) -> {
                    data.put(((String) key).toLowerCase(Locale.ROOT), (String) value);
                });
                dataList.add(data);
            });
        }
        dataGrid.setData(dataList);
        if (!CollectionUtils.isEmpty(dataList)) {
            wrapperData(dataGrid.getData(), templateVO, sqlBO.getSelectFieldList(), false);
            dataGrid.setTotal(boService.queryCountBySql(sqlBO.getSqlCount(), new HashMap<>()));
        }
        return dataGrid;
    }
    /**
     * æ ¹æ®æ¨¡æ¿å±žæ€§ç”Ÿæˆç›¸åº”çš„sql信息
     *
     * @param btmType      ä¸šåŠ¡ç±»åž‹
     * @param templateVO   æ¨¡æ¿æ˜¾ç¤ºå¯¹è±¡ï¼Œå¿…须包含属性
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @param pageHelper   åˆ†é¡µå’ŒæŽ’序对象
     * @return sql的相关信息
     */
    @Override
    public CodeTemplateAttrSqlBO getSqlByTemplateVO(String btmType, CodeClassifyTemplateVO templateVO, Map<String, String> conditionMap, PageHelper pageHelper) {
        //因为参照不一定是在平台的属性池里面设置,所以我们得需要自行处理
        //参考VciQueryWrapper来处理
        //1. æ‰¾åˆ°æ‰€æœ‰çš„字段,
        Map<String, CodeClassifyTemplateAttrVO> attrVOMap = templateVO.getAttributes().stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t));
        List<String> selectFieldList = attrVOMap.keySet().stream().collect(Collectors.toList());
        //所有的参照的字段
        Map<String/**属性字段**/, String> joinTableList = new ConcurrentHashMap<>();
        List<CodeClassifyTemplateAttrVO> referAttrVOs = templateVO.getAttributes().stream().filter(
                s -> StringUtils.isNotBlank(s.getReferbtmid()) || StringUtils.isNotBlank(s.getReferConfig())
        ).collect(Collectors.toList());
        Map<String/**参照的属性**/, String/**实际的字段**/> referFieldMap = new HashMap<>();
        if (!CollectionUtils.isEmpty(referAttrVOs)) {
            referAttrVOs.parallelStream().forEach(attrVO -> {
                UIFormReferVO referVO = null;
                if (StringUtils.isNotBlank(attrVO.getReferConfig())) {
                    referVO = JSONObject.parseObject(attrVO.getReferConfig(), UIFormReferVO.class);
                } else {
                    referVO = new UIFormReferVO();
                    referVO.setReferType(attrVO.getReferbtmid());
                    referVO.setValueField(VciQueryWrapperForDO.OID_FIELD);
                    referVO.setTextField("name");
                }
                String referTable = VciBaseUtil.getTableName(referVO.getReferType());
                String referTableNick = attrVO.getId() + "0";
                String left = " left join " + referTable + " " + referTableNick + " on " + referTableNick + "." + referVO.getValueField() + " =  t." + attrVO.getId();
                joinTableList.put(attrVO.getId(), left);
                String referShowField = attrVO.getId() + "Name";
                List<String> textFields = VciBaseUtil.str2List(referVO.getTextField());
                String showFieldInSource = "";
                if (textFields.contains("name")) {
                    showFieldInSource = "name";
                } else {
                    showFieldInSource = textFields.get(0);
                }
                referFieldMap.put(attrVO.getId(), referTableNick + "." + showFieldInSource);
                selectFieldList.add(referTableNick + "." + showFieldInSource + " as " + referShowField);
            });
        }
        Optional.ofNullable(attributeService.getDefaultAttributeVOMap()).orElseGet(() -> new HashMap<>()).keySet().stream().forEach(attrId -> {
            if (!selectFieldList.contains(attrId) && !"secretgrade".equalsIgnoreCase(attrId)) {
                selectFieldList.add(attrId);
            }
        });
        if (!selectFieldList.contains(CODE_FIELD)) {
            selectFieldList.add(CODE_FIELD);
        }
        if (!selectFieldList.contains(CODE_CLASSIFY_OID_FIELD)) {
            selectFieldList.add(CODE_CLASSIFY_OID_FIELD);
        }
        if (!selectFieldList.contains(CODE_TEMPLATE_OID_FIELD)) {
            selectFieldList.add(CODE_TEMPLATE_OID_FIELD);
        }
        if (!selectFieldList.contains(CODE_FULL_PATH_FILED)) {
            selectFieldList.add(CODE_FULL_PATH_FILED);
        }
        //处理查询条件
        //TODO éªŒè¯sql注入
        List<String> andSql = new ArrayList<>();
        List<String> orSql = new ArrayList<>();
        if (!CollectionUtils.isEmpty(conditionMap)) {
            Map<String, String> orConditionMap = new HashMap<>();
            Map<String, String> andCondtionMap = new HashMap<>();
            //先分离or的查询条件,另外当查询条件是空的时候也不查询
            conditionMap.forEach((k, v) -> {
                if (StringUtils.isNotBlank(v)) {
                    if (v.startsWith(QueryOptionConstant.OR)) {
                        orConditionMap.put(k, v.substring(QueryOptionConstant.OR.length()));
                    } else {
                        andCondtionMap.put(k, v);
                    }
                }
            });
            andCondtionMap.forEach((k, v) -> {
                andSql.add(getConditionSql(k.toLowerCase(), v, referFieldMap, attrVOMap));
            });
            orConditionMap.forEach((k, v) -> {
                orSql.add(getConditionSql(k.toLowerCase(), v, referFieldMap, attrVOMap));
            });
        }
        //组合起来
        StringBuilder andSb = new StringBuilder();
        andSql.stream().forEach(s -> {
            andSb.append(s).append(SPACE).append(QueryOptionConstant.AND).append(SPACE);
        });
        String andString = andSb.toString().trim();
        String endWithSql = QueryOptionConstant.AND;
        if (andString.endsWith(endWithSql)) {
            andString = andString.substring(0, andString.length() - endWithSql.length());
        }
        String orString = orSql.stream().collect(Collectors.joining(" or "));
        String whereSql = "";
        if (StringUtils.isNotBlank(orString)) {
            if (StringUtils.isBlank(andString)) {
                andString = " 1 = 1 ";
            }
            whereSql = SPACE + "(" + SPACE + andString + SPACE + ") and (" + SPACE + orString + SPACE + ")" + SPACE;
        } else {
            whereSql = andString + SPACE;
        }
        if (attrVOMap.keySet().contains("secretgrade")) {
            Integer userSecret = VciBaseUtil.getCurrentUserSecret();
            if (userSecret == null || userSecret == 0) {
                userSecret = secretService.getMinUserSecret();
            }
            whereSql += " and ( t.secretGrade <= " + userSecret + ") ";
        }
        String tableName = VciBaseUtil.getTableName(btmType);
        String sql = "select " + selectFieldList.stream().map(s -> (s.contains(".") ? s : ("t." + s))).collect(Collectors.joining(","))
                + " from " + tableName + SPACE + "t" + SPACE
                + joinTableList.values().stream().collect(Collectors.joining(SPACE))
                + (StringUtils.isBlank(whereSql) ? "" : " where ") + whereSql;
        if (pageHelper == null) {
            pageHelper = new PageHelper(-1);
        }
        //看看排序
        String orderSql = pageHelper.getOrderSql("t");
        sql += (orderSql == null ? "" : orderSql);
        String whereSubfixForPage = " ) A where rownum < " + (pageHelper.getLimit() * pageHelper.getPage() + 1) + ") where RN >= "
                + (pageHelper.getLimit() * (pageHelper.getPage() - 1) + 1);
        String sqlHasPage = pageHelper.getLimit() > 0 ? ("select * from (select A.*,rownum RN from (" + sql + whereSubfixForPage) : sql;
        String sqlCount = "select count(1) from " + tableName + SPACE + "t" + SPACE + joinTableList.values().stream().collect(Collectors.joining(SPACE))
                + (StringUtils.isBlank(whereSql) ? "" : " where ") + whereSql;
        CodeTemplateAttrSqlBO sqlBO = new CodeTemplateAttrSqlBO();
        sqlBO.setTableName(tableName);
        sqlBO.setJoinTable(joinTableList);
        sqlBO.setNickName("t");
        sqlBO.setPageHelper(pageHelper);
        sqlBO.setSqlHasPage(sqlHasPage);
        sqlBO.setSqlCount(sqlCount);
        sqlBO.setSqlUnPage(sql);
        return sqlBO;
    }
    /**
     * ç©ºæ ¼
     */
    public static final String SPACE = " ";
    /**
     * ç»„合查询条件的sql
     *
     * @param key           å­—段
     * @param value         åå­—
     * @param referFieldMap å‚照的字段
     * @param attrVOMap     å±žæ€§çš„æ˜ å°„
     * @return Sql语句
     */
    private String getConditionSql(String key, String value, Map<String/**参照的属性**/, String/**实际的属性**/> referFieldMap, Map<String, CodeClassifyTemplateAttrVO> attrVOMap) {
        if (key.endsWith("_begin")) {
            //说明是>=的。我们需要先获取一下
            String field = (key.substring(0, key.length() - 6).toLowerCase().trim());
            if (referFieldMap.containsKey(field)) {
                //说明还是参照里面的,我们默认这种情况下都是字符串吧,因为参照的属性不一定用的平台的属性池里的,所以大部分情况下,显示的属性都是字符串吧
                return referFieldMap.get(field) + SPACE + " >= '" + value + "'" + SPACE;
            } else {
                return (field.contains(".") ? "" : "t.") + field + SPACE + " >= " + getStringValueInWhere(value, field, attrVOMap);
            }
        } else if (key.endsWith("_end")) {
            //说明是<=的。我们需要先获取一下
            String field = (key.substring(0, key.length() - 6).toLowerCase().trim());
            if (referFieldMap.containsKey(field)) {
                //说明还是参照里面的,我们默认这种情况下都是字符串吧,因为参照的属性不一定用的平台的属性池里的,所以大部分情况下,显示的属性都是字符串吧
                return referFieldMap.get(field) + SPACE + " <= '" + value + "'" + SPACE;
            } else {
                return (field.contains(".") ? "" : "t.") + field + SPACE + " <= " + getStringValueInWhere(field, value, attrVOMap);
            }
        } else {
            if (referFieldMap.containsKey(key)) {
                //说明是参照的,我们参照的查询都认为是字符串,如果是时间格式的查询肯定有问题,
                String selectKey = referFieldMap.get(key);
                return getSqlByValue(selectKey, value, null);
            } else {
                return getSqlByValue(key, value, attrVOMap);
            }
        }
    }
    /**
     * å°è£…最终的sql语句中的值部分
     *
     * @param selectKey æŸ¥è¯¢çš„字段
     * @param value     å€¼
     * @param attrVOMap å±žæ€§çš„æ˜¾ç¤ºå¯¹è±¡æ˜ å°„
     * @return sql里的值
     */
    private String getSqlByValue(String selectKey, String value, Map<String, CodeClassifyTemplateAttrVO> attrVOMap) {
        StringBuilder sql = new StringBuilder();
        if (!selectKey.contains(".") && (attrVOMap.containsKey(selectKey.toLowerCase(Locale.ROOT)) || attributeService.isDefaultAttr(selectKey) || selectKey.matches(RegExpConstant.LETTER))) {
            sql.append("t.");
        }
        if (value.startsWith(QueryOptionConstant.IN)) {
            sql.append(selectKey)
                    .append(SPACE)
                    .append("in")
                    .append(SPACE)
                    .append("(")
                    .append(value.replace(QueryOptionConstant.IN, ""))
                    .append(")");
        } else if (value.startsWith(QueryOptionConstant.NOTIN)) {
            sql.append(selectKey)
                    .append(SPACE)
                    .append("not in")
                    .append(SPACE)
                    .append("(")
                    .append(value.replace(QueryOptionConstant.NOTIN, ""))
                    .append(")");
        } else if (value.startsWith(QueryOptionConstant.NOTEQUAL)) {
            value = value.replace(QueryOptionConstant.NOTEQUAL, "");
            value = getStringValueInWhere(selectKey, value, attrVOMap);
            sql.append(selectKey)
                    .append(SPACE)
                    .append(QueryOptionConstant.NOTEQUAL)
                    .append(SPACE)
                    .append(value);
        } else if (value.startsWith(QueryOptionConstant.MORETHAN)) {
            value = value.replace(QueryOptionConstant.MORETHAN, "");
            value = getStringValueInWhere(selectKey, value, attrVOMap);
            sql.append(selectKey)
                    .append(SPACE)
                    .append(QueryOptionConstant.MORETHAN)
                    .append(SPACE)
                    .append(value);
        } else if (value.startsWith(QueryOptionConstant.MORE)) {
            value = value.replace(QueryOptionConstant.MORE, "");
            value = getStringValueInWhere(selectKey, value, attrVOMap);
            sql.append(selectKey)
                    .append(SPACE)
                    .append(QueryOptionConstant.MORE)
                    .append(SPACE)
                    .append(value);
        } else if (value.startsWith(QueryOptionConstant.LESSTHAN)) {
            value = value.replace(QueryOptionConstant.LESSTHAN, "");
            value = getStringValueInWhere(selectKey, value, attrVOMap);
            sql.append(selectKey)
                    .append(SPACE)
                    .append(QueryOptionConstant.LESSTHAN)
                    .append(SPACE)
                    .append(value);
        } else if (value.startsWith(QueryOptionConstant.LESS)) {
            value = value.replace(QueryOptionConstant.LESS, "");
            value = getStringValueInWhere(selectKey, value, attrVOMap);
            sql.append(selectKey)
                    .append(SPACE)
                    .append(QueryOptionConstant.LESS)
                    .append(SPACE)
                    .append(value);
        } else if (value.startsWith(QueryOptionConstant.ISNOTNULL)) {
            sql.append(selectKey)
                    .append(SPACE)
                    .append(" is not null");
        } else if (value.startsWith(QueryOptionConstant.ISNULL)) {
            sql.append(selectKey)
                    .append(SPACE)
                    .append(" is null");
        } else if (value.contains("*")) {
            //说明是like,或者lefe like ,right like
            value = getStringValueInWhere(selectKey, value, attrVOMap);
            sql.append(selectKey)
                    .append(SPACE)
                    .append("like")
                    .append(SPACE)
                 //   .append("'")
                    .append(value.replace("*", "%"))
                  //  .append("'")
                    .append(SPACE);
        } else {
            value= value.replace(SPECIAL_CHAR,REQUIRED_CHAR);
            value = getStringValueInWhere(selectKey, value, attrVOMap);
            sql.append(selectKey)
                    .append(SPACE)
                    .append(QueryOptionConstant.EQUAL)
                    .append(SPACE)
                    .append(value);
        }
        sql.append(SPACE);
        return sql.toString();
    }
    /**
     * é»˜è®¤çš„æ—¶é—´æ ¼å¼
     */
    private static final String DATETIME_FORMAT = "yyyy-mm-dd hh24:mi:ss";
    /**
     * æ—¥æœŸæ ¼å¼
     */
    private static final String DATE_FORMAT = "yyyy-mm-dd";
    /**
     * åªæ˜¯sql
     */
    public static final String ONLY = "${vcionly}";
    /**
     * èŽ·å–æŸ¥è¯¢æ¡ä»¶ä¸­çš„å€¼çš„ï¼Œå¤„ç†ä¸åŒçš„ç±»åž‹
     *
     * @param value å€¼
     * @param field å­—段名称
     * @return æ—¥æœŸæˆ–者时间格式会包括to_date,字符串会加'
     */
    private String getStringValueInWhere(String field, String value, Map<String, CodeClassifyTemplateAttrVO> attrVOMap) {
        if ((field.contains(".") && !field.toLowerCase(Locale.ROOT).startsWith("t.")) || attrVOMap == null
                || !field.replace("t.", "").matches(RegExpConstant.LETTER) || value.startsWith(ONLY)) {
            //说明可能是指定的某个条件,直接返回
            if (value.startsWith(ONLY)) {
                value = value.replace(ONLY, "");
            }
            if ((value.startsWith("(") && value.endsWith(")")) || (value.startsWith("'") && value.endsWith("'"))) {
                return value;
            }
            if (field.contains(".") && attrVOMap != null && attrVOMap.containsKey(field.split("\\.")[0].toLowerCase(Locale.ROOT))) {
                //是参照
                return "'" + value + "'";
            } else {
                return value;
            }
        } else {
            //看看是不是这个对象里的属性
            if (attrVOMap.containsKey(field)) {
                VciFieldTypeEnum fieldTypeEnum = VciFieldTypeEnum.valueOf(attrVOMap.get(field).getAttributedatatype());
                if ("ts".equalsIgnoreCase(field)) {
                    return "to_timestamp('" + value + "', '" + DATETIME_FORMAT + ".ff')";
                }
                DateConverter dateConverter = new DateConverter();
                if (VciFieldTypeEnum.VTDateTime.equals(fieldTypeEnum)) {
                    //实际上,数据库都是timestamp的类型.
                    dateConverter.setAsText(value);
                    return "to_date('" + dateConverter.getAsText(VciDateUtil.DateTimeFormat) + "','" + DATETIME_FORMAT + "')";
                } else if (VciFieldTypeEnum.VTDate.equals(fieldTypeEnum)) {
                    dateConverter.setAsText(value);
                    return "to_date('" + dateConverter.getAsText(VciDateUtil.DateFormat) + "','" + DATE_FORMAT + "')";
                } else if (VciFieldTypeEnum.VTDouble.equals(fieldTypeEnum)
                        || VciFieldTypeEnum.VTLong.equals(fieldTypeEnum)
                        || VciFieldTypeEnum.VTInteger.equals(fieldTypeEnum)) {
                    return value;
                } else {
                    return "'" + value + "'";
                }
            } else {
                if ((value.startsWith("(") && value.endsWith(")")) || (value.startsWith("'") && value.endsWith("'"))) {
                    return value;
                }
                return "'" + value + "'";
            }
        }
    }
    /**
     * å°è£…开关的内容,常用于导出
     * @param dataMap æ•°æ®çš„内容
     * @param templateVO æ¨¡æ¿çš„æ˜¾ç¤º
     */
    @Override
    public void wrapperBoolean(List<Map<String, String>> dataMap, CodeClassifyTemplateVO templateVO){
        List<String> booleanAttributes = templateVO.getAttributes().stream().filter(s -> VciFieldTypeEnum.VTBoolean.name().equalsIgnoreCase(s.getAttributedatatype())).map(s -> s.getId().toLowerCase(Locale.ROOT)).collect(Collectors.toList());
        if(!CollectionUtils.isEmpty(booleanAttributes)){
            dataMap.stream().forEach(data -> {
                booleanAttributes.stream().forEach(attrId->{
                    if(data.containsKey(attrId)){
                        String value = data.get(attrId);
                        data.put(attrId, BooleanEnum.TRUE.getValue().equalsIgnoreCase(value)?"是":"否");
                    }
                });
            });
        }
    }
    /**
     * å°è£…查询出来的数据
     *
     * @param dataMap              æ•°æ®çš„æ˜ å°„
     * @param templateVO           æ¨¡æ¿çš„属性
     * @param onlySelectAttrIdList ä»…仅查询的属性字段
     * @param form è¡¨å•里使用
     */
    @Override
    public void wrapperData(List<Map<String, String>> dataMap, CodeClassifyTemplateVO templateVO,
                            Collection<String> onlySelectAttrIdList, boolean form) {
        if (onlySelectAttrIdList == null) {
            onlySelectAttrIdList = new ArrayList<>();
        }
        //先转换一下时间格式
        List<String> finalOnlySelectAttrIdList = onlySelectAttrIdList.stream().collect(Collectors.toList());
        List<CodeClassifyTemplateAttrVO> dateFormatAttrVOs = templateVO.getAttributes().stream().filter(
                s -> StringUtils.isNotBlank(s.getCodedateformat()) &&
                        (finalOnlySelectAttrIdList.size() == 0 || finalOnlySelectAttrIdList.contains(s.getId().toLowerCase(Locale.ROOT)))
        ).collect(Collectors.toList());
        //枚举的内容
        List<CodeClassifyTemplateAttrVO> enumAttrVOs = templateVO.getAttributes().stream().filter(
                s -> (StringUtils.isNotBlank(s.getEnumid()) || StringUtils.isNotBlank(s.getEnumString()))
                        &&
                        (finalOnlySelectAttrIdList.size() == 0 || finalOnlySelectAttrIdList.contains(s.getId().toLowerCase(Locale.ROOT)))
        ).collect(Collectors.toList());
        List<String> userIds = new ArrayList<>();
        dataMap.stream().forEach(data -> {
            //处理时间
            if (!form) {
                //表单的时候只能用统一的时间格式
                wrapperDateFormat(dateFormatAttrVOs, data);
            }
            //处理枚举
            wrapperEnum(enumAttrVOs, data);
            String lcstatus = data.get(VciQueryWrapperForDO.LC_STATUS_FIELD);
            String copyFromVersion = data.getOrDefault(COPY_FROM_VERSION,"");
            if ((CodeDefaultLC.EDITING.getValue().equalsIgnoreCase(lcstatus) || CodeDefaultLC.AUDITING.getValue().equalsIgnoreCase(lcstatus))
                    && StringUtils.isBlank(copyFromVersion)
            ) {
                data.put(VciQueryWrapperForDO.ID_FIELD, "******");
            }
            data.put(VciQueryWrapperForDO.LC_STATUS_FIELD_TEXT.toLowerCase(Locale.ROOT), CodeDefaultLC.getTextByValue(lcstatus));
            if(CodeDefaultLC.EDITING.getValue().equalsIgnoreCase(lcstatus)
                    && StringUtils.isNotBlank(copyFromVersion)){
                data.put(VciQueryWrapperForDO.LC_STATUS_FIELD_TEXT.toLowerCase(Locale.ROOT), "修改中");
            }
            if (data.containsKey("creator")) {
                userIds.add(data.get("creator"));
            }
            if (data.containsKey("lastmodifier")) {
                userIds.add(data.get("lastmodifier"));
            }
        });
        if (!CollectionUtils.isEmpty(userIds)) {
            Map<String, SmUserVO> userVOMap = Optional.ofNullable(userQueryService.listUserByUserIds(userIds)).orElseGet(() -> new ArrayList<>()).stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t));
            dataMap.stream().forEach(data -> {
                String creator = data.getOrDefault("creator", null);
                if (StringUtils.isNotBlank(creator) && userVOMap.containsKey(creator.toLowerCase(Locale.ROOT))) {
                    data.put("creator", creator + "(" + userVOMap.get(creator.toLowerCase(Locale.ROOT)).getName() + ")");
                }
                String lastmodifier = data.getOrDefault("lastmodifier", null);
                if (StringUtils.isNotBlank(lastmodifier) && userVOMap.containsKey(lastmodifier.toLowerCase(Locale.ROOT))) {
                    data.put("lastmodifier", lastmodifier + "(" + userVOMap.get(lastmodifier.toLowerCase(Locale.ROOT)).getName() + ")");
                }
            });
        }
    }
    /**
     * å¤„理时间格式
     *
     * @param dateFormatAttrVOs æ—¶é—´æ ¼å¼çš„属性
     * @param data              å½“前行数据
     */
    private void wrapperDateFormat(Collection<CodeClassifyTemplateAttrVO> dateFormatAttrVOs, Map<String, String> data) {
        if (!CollectionUtils.isEmpty(dateFormatAttrVOs)) {
            dateFormatAttrVOs.stream().forEach(dateFormatAttrVO -> {
                String attrId = dateFormatAttrVO.getId().toLowerCase(Locale.ROOT);
                String oldValue = data.getOrDefault(attrId, null);
                if (StringUtils.isNotBlank(oldValue)) {
                    DateConverter dateConverter = new DateConverter();
                    try {
                        dateConverter.setAsText(oldValue);
                        Date value = dateConverter.getValue();
                        if (value != null) {
                            data.put(attrId, VciDateUtil.date2Str(value, dateFormatAttrVO.getCodedateformat()));
                        }
                    } catch (Throwable e) {
                        //转换可能有问题,这就使用原本存储的值
                    }
                }
            });
        }
    }
    /**
     * å¤„理枚举的内容,如果不在枚举中,会返回原本的值
     *
     * @param enumAttrVOs æžšä¸¾å±žæ€§
     * @param data        å½“前行数据
     */
    private void wrapperEnum(Collection<CodeClassifyTemplateAttrVO> enumAttrVOs, Map<String, String> data) {
        //处理枚举的内容,为了兼容以前的数据,如果数据不能使用枚举转换的话,那还是显示以前的值
        if (!CollectionUtils.isEmpty(enumAttrVOs)) {
            enumAttrVOs.stream().forEach(enumAttrVO -> {
                String attrId = enumAttrVO.getId().toLowerCase(Locale.ROOT);
                String oldValue = data.getOrDefault(attrId, null);
                if (StringUtils.isNotBlank(oldValue)) {
                    List<KeyValue> comboxKVs = listComboboxItems(enumAttrVO);
                    String newValue = oldValue;
                    KeyValue keyValue = Optional.ofNullable(comboxKVs).orElseGet(() -> new ArrayList<>()).stream().filter(s -> s.getKey().equalsIgnoreCase(oldValue)).findFirst().orElseGet(() -> null);
                    if (keyValue != null) {
                        newValue = keyValue.getValue();
                    }
                    data.put(attrId + "Text", newValue);
                }
            });
        }
    }
    /**
     * èŽ·å–æžšä¸¾çš„ä¸‹æ‹‰é€‰é¡¹
     *
     * @param attrVO æ¨¡æ¿å±žæ€§çš„对象
     * @return ä¸‹æ‹‰é€‰é¡¹
     */
    @Override
    public List<KeyValue> listComboboxItems(CodeClassifyTemplateAttrVO attrVO) {
        List<KeyValue> comboboxKVs;
        if (StringUtils.isNotBlank(attrVO.getEnumString())) {
            comboboxKVs = JSONObject.parseArray(attrVO.getEnumString(), KeyValue.class);
        } else {
            comboboxKVs = enumService.getEnum(attrVO.getEnumid());
        }
        return comboboxKVs;
    }
    /**
     * å¤„理组合规则的内容,如果不在枚举中,会返回原本的值
     *
     * @param compAttrVOs ç»„合规则属性
     * @param data        å½“前行数据
     */
    private void wrapperComponentRule(Collection<CodeClassifyTemplateAttrVO> compAttrVOs, Map<String, String> data) {
        if (!CollectionUtils.isEmpty(compAttrVOs)) {
            compAttrVOs.stream().forEach(attrVO -> {
                String attrId = attrVO.getId().toLowerCase(Locale.ROOT);
                //用公式去计算
                //先用当前数据替换一下
                String calculatedValue = formulaService.getValueByFormula(data, attrVO.getComponentrule());
                data.put(attrId, calculatedValue);
            });
        }
    }
    /**
     * ä½¿ç”¨æ•°æ®ä¸»é”®èŽ·å–æ•°æ®çš„å…¨éƒ¨ä¿¡æ¯
     *
     * @param oid         ä¸»é”®
     * @param templateOid æ¨¡æ¿çš„主键
     * @return æ•°æ®çš„内容
     */
    @Override
    public BaseResult<Map<String, String>> getDataByOid(String oid, String templateOid) {
        CodeClassifyTemplateVO templateVO = templateService.getObjectHasAttrByOid(templateOid);
        //为了防止模板上的业务类型与分类上不对应
        CodeClassifyVO topClassifyVO = classifyService.getTopClassifyVO(templateVO.getCodeclassifyoid());
        String btmId = topClassifyVO.getBtmtypeid();
        //查询数据
        Map<String, String> conditionMap = WebUtil.getOidQuery(oid);
        CodeTemplateAttrSqlBO sqlBO = getSqlByTemplateVO(btmId, templateVO, conditionMap, new PageHelper(-1));
        //我们使用和业务类型的来查询
        List<ClientBusinessObject> cbos = boService.queryByOnlySql(sqlBO.getSqlUnPage());
        if (CollectionUtils.isEmpty(cbos)) {
            throw new VciBaseException("数据在系统中不存在,是否因为修改过业务类型?");
        }
        Map<String, String> data = new HashMap<>();
        ClientBusinessObject cbo = cbos.get(0);
        WebUtil.copyValueToMapFromCbos(cbo, data);
        List<Map<String, String>> dataList = new ArrayList<>();
        dataList.add(data);
        wrapperData(dataList, templateVO, sqlBO.getSelectFieldList(), true);
        BaseResult<Map<String, String>> result = BaseResult.success(data);
        //我们要看是否不是升版的,升版的话,需要对比不相等的属性
        String copy = cbo.getCopyFromVersion();
        if (StringUtils.isBlank(copy)) {
            copy = cbo.getAttributeValue("copyfromversion");
        }
        if (StringUtils.isNotBlank(copy)) {
            //说明有变更的内容
            CodeTemplateAttrSqlBO oldSqlBO = getSqlByTemplateVO(btmId, templateVO, WebUtil.getOidQuery(copy), new PageHelper(-1));
            //我们使用和业务类型的来查询
            List<ClientBusinessObject> oldCbos = boService.queryByOnlySql(oldSqlBO.getSqlUnPage());
            if (!CollectionUtils.isEmpty(oldCbos)) {
                Map<String, String> newData = new HashMap<>();
                WebUtil.copyValueToMapFromCbos(cbo, newData);
                Map<String, String> oldData = new HashMap<>();
                WebUtil.copyValueToMapFromCbos(oldCbos.get(0), oldData);
                Map<String, String> difFieldMap = new HashMap<>();
                newData.forEach((key, value) -> {
                    String oldValue = oldData.getOrDefault(key, "");
                    if (value == null) {
                        value = "";
                    }
                    if (oldValue == null) {
                        oldValue = "";
                    }
                    if (!value.equalsIgnoreCase(oldValue)) {
                        difFieldMap.put(key, oldValue);
                    }
                });
                List<Map<String, String>> difFieldList = new ArrayList<>();
                difFieldList.add(difFieldMap);
                result.setData(difFieldList);
            }
        }
        return result;
    }
    /**
     * ä½¿ç”¨ä¸»é¢˜åº“分类获取编码规则
     *
     * @param codeClassifyOid åˆ†ç±»çš„主键
     * @return ç¼–码规则的内容
     */
    @Override
    public CodeRuleVO getCodeRuleByClassifyOid(String codeClassifyOid) {
        VciBaseUtil.alertNotNull(codeClassifyOid, "分类的主键");
        CodeClassifyVO classifyVO = classifyService.getObjectByOid(codeClassifyOid);
        String codeRuleOid = classifyVO.getCoderuleoid();
        if (StringUtils.isBlank(codeRuleOid)) {
            //往上找
            CodeClassifyFullInfoBO fullInfo = classifyService.getClassifyFullInfo(codeClassifyOid);
            return getCodeRuleByClassifyFullInfo(fullInfo);
        }
        //我们查询编码规则
        return ruleService.getObjectHasSecByOid(codeRuleOid);
    }
    /**
     * ä½¿ç”¨åˆ†ç±»çš„全部信息获取编码规则
     *
     * @param fullInfoBO åˆ†ç±»çš„全部信息
     * @return è§„则的内容
     */
    @Override
    public CodeRuleVO getCodeRuleByClassifyFullInfo(CodeClassifyFullInfoBO fullInfoBO) {
        //往上找
        String codeRuleOid = "";
        if (StringUtils.isNotBlank(fullInfoBO.getCurrentClassifyVO().getCoderuleoid())) {
            codeRuleOid = fullInfoBO.getCurrentClassifyVO().getCoderuleoid();
        } else {
            if (CollectionUtils.isEmpty(fullInfoBO.getParentClassifyVOs())) {
                //说明已经是最高层级,
                throw new VciBaseException("当前主题库分类,以及它的所有的上级分类都没有设置编码规则");
            }
            List<CodeClassifyVO> parentClassifyVOList = fullInfoBO.getParentClassifyVOs().stream().sorted((o1, o2) -> o1.getDataLevel().compareTo(o2.getDataLevel())).collect(Collectors.toList());
            //从最高的level开始获取
            for (int i = 0; i < parentClassifyVOList.size(); i++) {
                CodeClassifyVO record = parentClassifyVOList.get(i);
                if (StringUtils.isNotBlank(record.getCoderuleoid())) {
                    codeRuleOid = record.getCoderuleoid();
                    break;
                }
            }
            if (StringUtils.isBlank(codeRuleOid)) {
                throw new VciBaseException("当前主题库分类,以及它的所有的上级分类都没有设置编码规则");
            }
        }
        return ruleService.getObjectHasSecByOid(codeRuleOid);
    }
    /**
     * ä½¿ç”¨ç æ®µçš„主键获取分类的码值内容
     *
     * @param classifySecOid         ç æ®µçš„主键
     * @param parentClassifyValueOid ä¸Šçº§åˆ†ç±»çš„主键
     * @return åˆ†ç±»ç å€¼çš„内容
     */
    @Override
    public List<CodeClassifyValueVO> listCodeClassifyValueBySecOid(String classifySecOid, String parentClassifyValueOid) {
        return classifyValueService.listCodeClassifyValueBySecOid(classifySecOid, parentClassifyValueOid);
    }
    /**
     * ç”³è¯·å•一编码
     *
     * @param orderDTO ç”³è¯·çš„信息,需要包含属性的内容和码段相关的内容
     * @return è¿”回编码的内容
     */
    @Override
    public String addSaveCode(CodeOrderDTO orderDTO) {
        VciBaseUtil.alertNotNull(orderDTO, "编码申请相关的属性和码段的内容都为空", orderDTO.getCodeClassifyOid(), "主题库分类的主键",
                orderDTO.getTemplateOid(), "模板的主键", orderDTO.getCodeRuleOid(), "编码规则的主键");
        CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(orderDTO.getCodeClassifyOid());
        CodeClassifyTemplateVO templateVO = templateService.getObjectHasAttrByOid(orderDTO.getTemplateOid());
        CodeRuleVO ruleVO = ruleService.getObjectHasSecByOid(orderDTO.getCodeRuleOid());
        //1.判断规则中除了流水码段,是否有其他码段
        checkSecValueOnOrder(ruleVO, orderDTO);
        //2.判断必输项
        checkRequiredAttrOnOrder(templateVO, orderDTO);
        //3.先注入,再组合,最后校验
        switchClassifyLevelOnOrder(templateVO, classifyFullInfo, orderDTO);
        //4.处理组合规则。组合规则不能使用编码的属性,因为编码的生成可能是需要属性的
        switchComponentAttrOnOrder(templateVO, orderDTO);
        //5.校验规则
        checkVerifyOnOrder(templateVO, orderDTO);
        //6.关键属性
        checkKeyAttrOnOrder(classifyFullInfo, templateVO, orderDTO);
        //7.枚举转换
        checkEnumOnOrder(templateVO, orderDTO);
        //8.处理时间格式,在数据库里面不论是字符串还是日期格式,都使用相同的格式存储
        switchDateAttrOnOrder(templateVO, orderDTO);
        //9.生成编码的信息
        ClientBusinessObject cbo = boService.createCBOByBtmName(classifyFullInfo.getTopClassifyVO().getBtmtypeid());
        //默认的属性都不用从前端拷贝
        //设置编码需要的默认属性的内容
        copyValueToCBO(classifyFullInfo, cbo, orderDTO, templateVO, false);
        //TODO:因为默认的属性都不拷贝,目前集团码叫name,并没有从DTO拷贝到cbo里。增加一个单独处理,以后再看要不要调整
        cbo.setName(orderDTO.getName() == null ? "" : orderDTO.getName());
        //end -- modify by lihang @20220407
        List<ClientBusinessObject> cboList = new ArrayList<>();
        //备注
        cbo.setDescription(orderDTO.getDescription()==null?"":orderDTO.getDescription());
        cboList.add(cbo);
        List<String> codeList = productCodeService.productCodeAndSaveData(classifyFullInfo, templateVO, ruleVO, orderDTO.getSecDTOList(), cboList);
        batchSaveSelectChar(templateVO, cboList);
        return codeList.size() > 0 ? codeList.get(0) : "";
    }
    /**
     * ä¿®æ”¹ä¸»é¢˜åº“数据
     *
     * @param orderDTO æ•°æ®çš„内容,不用包含码段的内容了
     */
    @Override
    public void editSaveCode(CodeOrderDTO orderDTO) {
        VciBaseUtil.alertNotNull(orderDTO, "编码申请相关的属性的内容都为空", orderDTO.getOid(), "数据主键",
                orderDTO.getCodeClassifyOid(), "主题库分类的主键");
        CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(orderDTO.getCodeClassifyOid());
        //找业务类型,然后使用主键去获取数据库里的数据
        List<ClientBusinessObject> cbos = boService.queryCBO(classifyFullInfo.getTopClassifyVO().getBtmtypeid(), WebUtil.getOidQuery(orderDTO.getOid()));
        if (CollectionUtils.isEmpty(cbos)) {
            throw new VciBaseException(DATA_OID_NOT_EXIST);
        }
        ClientBusinessObject cbo = cbos.get(0);
        if (!cbo.getTs().contains(VciDateUtil.date2Str(orderDTO.getTs(), VciDateUtil.DateTimeFormat))) {
            throw new VciBaseException("数据不是最新的,可能他人已经修改,请刷新后再试");
        }
        if (!CodeDefaultLC.EDITING.getValue().equalsIgnoreCase(cbo.getLcStatus()) && !orderDTO.isEditInProcess()) {
            throw new VciBaseException("数据不是{0}的状态,不允许修改", new String[]{CodeDefaultLC.EDITING.getText()});
        }
        //注意模板不能使用数据存储的时候的模板,因为可能会变化
        //1. åˆ¤æ–­å¿…输项
        CodeClassifyTemplateVO templateVO = templateService.getObjectHasAttrByOid(orderDTO.getTemplateOid());
        checkRequiredAttrOnOrder(templateVO, orderDTO);
        //2.先注入,再组合,最后校验
        switchClassifyLevelOnOrder(templateVO, classifyFullInfo, orderDTO);
        //3.处理组合规则。组合规则不能使用编码的属性,因为编码的生成可能是需要属性的
        switchComponentAttrOnOrder(templateVO, orderDTO);
        //4.校验规则
        checkVerifyOnOrder(templateVO, orderDTO);
        //5.判断关键属性
        checkKeyAttrOnOrder(classifyFullInfo, templateVO, orderDTO);
        //6.校验枚举的内容是否正确
        checkEnumOnOrder(templateVO, orderDTO);
        //7.处理时间格式,在数据库里面不论是字符串还是日期格式,都使用相同的格式存储
        switchDateAttrOnOrder(templateVO, orderDTO);
        //默认的内容不能变,所以只需要拷贝自定义的相关属性即可
        copyValueToCBO(classifyFullInfo, cbo, orderDTO, templateVO, true);
        //企业码和集团码的不修改
        cbo.setDescription(orderDTO.getDescription()==null?"":orderDTO.getDescription());
        cbo.setName(orderDTO.getName()==null?"":orderDTO.getName());
        try {
            cbo.setAttributeValueWithNoCheck("description", orderDTO.getDescription());
            cbo.setAttributeValue("name", orderDTO.getName());
        } catch (VCIError e) {
            e.printStackTrace();
        }
        //修改的时候,编码是不变的
        BatchCBO batchCBO = new BatchCBO();
        batchCBO.getUpdateCbos().add(cbo);
        List<ClientBusinessObject> cboList = new ArrayList<>();
        cboList.add(cbo);
        boService.persistenceBatch(batchCBO);
        batchSaveSelectChar(templateVO, cboList);
    }
    /**
     * å‡ç‰ˆçš„主题库数据
     *
     * @param orderDTO æ•°æ®çš„内容,不需要包含码段的内容
     */
    @Override
    public void upSaveCode(CodeOrderDTO orderDTO) {
        VciBaseUtil.alertNotNull(orderDTO, "编码申请相关的属性的内容为空", orderDTO.getCopyFromVersion(), "原始数据的主键",
                orderDTO.getCodeClassifyOid(), "主题库分类的主键");
        CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(orderDTO.getCodeClassifyOid());
        //找业务类型,然后使用主键去获取数据库里的数据
        List<ClientBusinessObject> cbos = boService.queryCBO(classifyFullInfo.getTopClassifyVO().getBtmtypeid(), WebUtil.getOidQuery(orderDTO.getCopyFromVersion()));
        if (CollectionUtils.isEmpty(cbos)) {
            throw new VciBaseException(DATA_OID_NOT_EXIST);
        }
        ClientBusinessObject oldCbo = cbos.get(0);
        if (!CodeDefaultLC.RELEASED.getValue().equalsIgnoreCase(oldCbo.getLcStatus())) {
            throw new VciBaseException("数据不是{0}的状态,不允许数据更改", new String[]{CodeDefaultLC.RELEASED.getText()});
        }
        //需要升版
        ClientBusinessObjectOperation cboOperation = new ClientBusinessObjectOperation();
        ClientBusinessObject cbo = null;
        try {
            //cbo = cboOperation.createBusinessObjectVersion(oldCbo,VciBaseUtil.getCurrentUserId());
            cbo = cboOperation.reviseBusinessObject(oldCbo, "");
        } catch (VCIError e) {
            throw new VciBaseException("初始化相关的内容出现了错误", new String[0], e);
        }
        //1. åˆ¤æ–­å¿…输项
        CodeClassifyTemplateVO templateVO = templateService.getObjectHasAttrByOid(orderDTO.getTemplateOid());
        checkRequiredAttrOnOrder(templateVO, orderDTO);
        //2.先注入,再组合,最后校验
        switchClassifyLevelOnOrder(templateVO, classifyFullInfo, orderDTO);
        //3.处理组合规则。组合规则不能使用编码的属性,因为编码的生成可能是需要属性的
        switchComponentAttrOnOrder(templateVO, orderDTO);
        //4.校验规则
        checkVerifyOnOrder(templateVO, orderDTO);
        //5.判断关键属性
        checkKeyAttrOnOrder(classifyFullInfo, templateVO, orderDTO);
        //6.校验枚举的内容是否正确
        checkEnumOnOrder(templateVO, orderDTO);
        //7.处理时间格式,在数据库里面不论是字符串还是日期格式,都使用相同的格式存储
        switchDateAttrOnOrder(templateVO, orderDTO);
        //默认的内容不能变,所以只需要拷贝自定义的相关属性即可
        copyValueToCBO(classifyFullInfo, cbo, orderDTO, templateVO, true);
        //企业码和集团码的不修改
//        cbo.setDescription(orderDTO.getDescription());
//        cbo.setName(orderDTO.getName());
        cbo.setDescription(orderDTO.getDescription()==null?"":orderDTO.getDescription());
        cbo.setName(orderDTO.getName()==null?"":orderDTO.getName());
        try {
            cbo.setAttributeValueWithNoCheck("description", orderDTO.getDescription());
            cbo.setAttributeValue("name", orderDTO.getName());
        } catch (VCIError e) {
            e.printStackTrace();
        }
        //数据的时候,编码是不变的
        cbo.setCreateTime(DateUtils.convert2String(new Date(Long.parseLong(cbo.getCreateTime())), "yyyy-MM-dd HH:mm:ss"));
        cbo.setLastModifyTime(DateUtils.convert2String(new Date(Long.parseLong(cbo.getLastModifyTime())), "yyyy-MM-dd HH:mm:ss"));
        List<ClientBusinessObject> cboList = new ArrayList<>();
        cboList.add(cbo);
        try {
            cboOperation.saveRevisionBuinessObject(cbo);
        } catch (VCIError vciError) {
            throw new VciBaseException("数据更改保存出错了", new String[0], vciError);
        }
        batchSaveSelectChar(templateVO, cboList);
    }
    /**
     * ä¿å­˜å¯è¾“可选的信息
     *
     * @param templateVO æ¨¡æ¿çš„对象
     * @param cboList    æ•°æ®çš„内容
     */
    @Override
    public void batchSaveSelectChar(CodeClassifyTemplateVO templateVO, List<ClientBusinessObject> cboList) {
        if (templateVO != null && !CollectionUtils.isEmpty(cboList)) {
            //是异步的,所以直接循环
            List<CodeClassifyTemplateAttrVO> selectAttrVOs = templateVO.getAttributes().stream().filter(s -> StringUtils.isNotBlank(s.getLibraryIdentification())).collect(Collectors.toList());
            if (!CollectionUtils.isEmpty(selectAttrVOs)) {
                SessionInfo sessionInfo = VciBaseUtil.getCurrentUserSessionInfo();
                selectAttrVOs.parallelStream().forEach(attrVO -> {
                    List<String> valuesList = new CopyOnWriteArrayList<>();
                    cboList.parallelStream().forEach(cbo -> {
                        String value = cbo.getAttributeValue(attrVO.getId());
                        if (StringUtils.isNotBlank(value)) {
                            valuesList.add(value);
                        }
                    });
                    if (!CollectionUtils.isEmpty(valuesList)) {
                        charService.saveBySameNamespaceAndFlag(templateVO.getBtmTypeId(), attrVO.getLibraryIdentification(), valuesList, sessionInfo);
                    }
                });
            }
        }
    }
    /**
     * åˆ é™¤ä¸»é¢˜åº“数据
     *
     * @param deleteBatchDTO æ•°æ®çš„内容,必须要有主键和分类主键
     */
    @Override
    public void deleteCode(CodeDeleteBatchDTO deleteBatchDTO) {
        VciBaseUtil.alertNotNull(deleteBatchDTO, "编码申请相关的属性和码段的内容都为空", deleteBatchDTO.getOidList(), "数据主键",
                deleteBatchDTO.getCodeClassifyOid(), "主题库分类的主键");
        CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(deleteBatchDTO.getCodeClassifyOid());
        //找业务类型,然后使用主键去获取数据库里的数据
        Collection<Collection<String>> oidCollection = VciBaseUtil.switchCollectionForOracleIn(deleteBatchDTO.getOidList());
        List<ClientBusinessObject> cboList = new ArrayList<>();
        oidCollection.stream().forEach(oids -> {
            Map<String, String> conditionMap = new HashMap<>();
            conditionMap.put("oid", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(oids.toArray(new String[0])) + ")");
            List<ClientBusinessObject> cbos = boService.queryCBO(classifyFullInfo.getTopClassifyVO().getBtmtypeid(), conditionMap);
            cboList.addAll(cbos);
        });
        if (CollectionUtils.isEmpty(cboList)) {
            throw new VciBaseException("数据全部在系统中不存在");
        }
        List<ClientBusinessObject> editCBOs = cboList.stream().filter(s -> !CodeDefaultLC.EDITING.getValue().equalsIgnoreCase(s.getLcStatus())).collect(Collectors.toList());
        if (!CollectionUtils.isEmpty(editCBOs)) {
            ClientBusinessObject cbo = editCBOs.get(0);
            throw new VciBaseException("编码为{0}等共{1}条数据的状态不是[{2}],不允许删除", new String[]{cbo.getId(), String.valueOf(editCBOs.size()), CodeDefaultLC.EDITING.getText()});
        }
        //只能删除自己创建的数据
        String userId = WebUtil.getCurrentUserId();
        for (ClientBusinessObject clientBusinessObject:cboList){
            String creator = clientBusinessObject.getCreator();
            if(!userId.equalsIgnoreCase(creator)){
                throw new VciBaseException("编码为"+clientBusinessObject.getId()+"的数据不是当前用户创建,不能删除!");
            }
        }
        BatchCBO batchCBO = new BatchCBO();
        batchCBO.getDeleteCbos().addAll(cboList);
        WebUtil.setPersistence(false);
        batchCBO.copyFromOther(productCodeService.recycleCode(classifyFullInfo.getCurrentClassifyVO().getBtmtypeid(), deleteBatchDTO.getOidList()));
        WebUtil.setPersistence(true);
        boService.persistenceBatch(batchCBO);
    }
    /**
     * æ‹·è´æ•°æ®åˆ°cbo对象上
     *
     * @param classifyFullInfo åˆ†ç±»çš„全部信息
     * @param cbo              ä¸šåŠ¡æ•°æ®
     * @param orderDTO         ç¼–码申请的信息
     * @param templateVO       æ¨¡æ¿çš„æ˜¾ç¤ºå¯¹è±¡
     * @param edit             æ˜¯å¦ä¸ºä¿®æ”¹
     */
    private void copyValueToCBO(CodeClassifyFullInfoBO classifyFullInfo, ClientBusinessObject cbo,
                                CodeOrderDTO orderDTO, CodeClassifyTemplateVO templateVO,
                                boolean edit) {
        String fullPath = "";
        if (!CollectionUtils.isEmpty(classifyFullInfo.getParentClassifyVOs())) {
            fullPath = classifyFullInfo.getParentClassifyVOs().stream().sorted(((o1, o2) -> o2.getDataLevel().compareTo(o1.getDataLevel())))
                    .map(CodeClassifyVO::getOid).collect(Collectors.joining("##"));
        } else {
            fullPath = classifyFullInfo.getCurrentClassifyVO().getOid();
        }
        orderDTO.getData().forEach((key, value) -> {
            if (!edit || (!boService.checkUnAttrUnEdit(key) &&
                    !VciQueryWrapperForDO.LC_STATUS_FIELD.equalsIgnoreCase(key))) {
                try {
                    cbo.setAttributeValue(key, value);
                } catch (VCIError e) {
                    logger.error("设置属性的值错误", e);
                }
            }
        });
        try {
            cbo.setAttributeValue(CODE_CLASSIFY_OID_FIELD, classifyFullInfo.getCurrentClassifyVO().getOid());
            cbo.setAttributeValue(CODE_TEMPLATE_OID_FIELD, templateVO.getOid());
            cbo.setAttributeValue(CODE_FULL_PATH_FILED, fullPath);
            if (!edit && StringUtils.isBlank(orderDTO.getLcStatus())) {
                //找生命周期的起始状态,
                if (StringUtils.isNotBlank(cbo.getLctId())) {
                    OsLifeCycleVO lifeCycleVO = lifeCycleService.getLifeCycleById(cbo.getLctId());
                    if (lifeCycleVO != null) {
                        cbo.setLcStatus(lifeCycleVO.getStartStatus());
                    } else {
                        cbo.setLcStatus(CodeDefaultLC.EDITING.getValue());
                    }
                } else {
                    cbo.setLcStatus(CodeDefaultLC.EDITING.getValue());
                }
            }
            int secret = VciBaseUtil.getInt(cbo.getAttributeValue(SECRET_FIELD));
            if (secret == 0 || !secretService.checkDataSecret(secret)) {
                Integer userSecret = VciBaseUtil.getCurrentUserSecret();
                cbo.setAttributeValue(SECRET_FIELD, String.valueOf((userSecret == null || userSecret == 0) ? UserSecretEnum.NONE.getValue() : userSecret));
            }
        } catch (Throwable e) {
            logger.error("设置默认的属性的值错误", e);
        }
    }
    /**
     * è½¬æ¢ç»„合规则的值
     *
     * @param templateVO æ¨¡æ¿çš„æ˜¾ç¤ºå¯¹è±¡ï¼Œéœ€è¦åŒ…含模板属性
     * @param orderDTO   ç¼–码申请的信息
     */
    private void switchComponentAttrOnOrder(CodeClassifyTemplateVO templateVO, CodeOrderDTO orderDTO) {
        Map<String, CodeClassifyTemplateAttrVO> compAttrVOMap = templateVO.getAttributes().stream().filter(s -> StringUtils.isNotBlank(s.getComponentrule())).collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t));
        if (!CollectionUtils.isEmpty(compAttrVOMap)) {
            Map<String, String> dataMap = WebUtil.objectToMapString(orderDTO);
            Map<String, String> dataLowMap = new HashMap<>();
            if (!CollectionUtils.isEmpty(dataMap)) {
                dataMap.forEach((key, value) -> {
                    dataLowMap.put(key.toLowerCase(Locale.ROOT), value);
                });
            }
            dataLowMap.putAll(orderDTO.getData());
            compAttrVOMap.forEach((attrId, attrVO) -> {
                dataLowMap.put(attrId, formulaService.getValueByFormula(dataLowMap, attrVO.getComponentrule()));
            });
            dataLowMap.forEach((key, value) -> {
                setValueToOrderDTO(orderDTO, key, value);
            });
        }
    }
    /**
     * å¤„理分类注入的信息
     *
     * @param templateVO         æ¨¡æ¿çš„æ˜¾ç¤ºå¯¹è±¡ï¼Œå¿…须要后模板的属性
     * @param classifyFullInfoBO åˆ†ç±»çš„全路径
     * @param orderDTO           ç¼–码申请的信息
     */
    private void switchClassifyLevelOnOrder(CodeClassifyTemplateVO templateVO, CodeClassifyFullInfoBO classifyFullInfoBO, CodeOrderDTO orderDTO) {
        Map<String, CodeClassifyTemplateAttrVO> classifyAttrVOMap = templateVO.getAttributes().stream().filter(
                s -> StringUtils.isNotBlank(s.getClassifyinvokeattr()) && StringUtils.isNotBlank(s.getClassifyinvokelevel())
        ).collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t));
        if (classifyFullInfoBO.getTopClassifyVO() == null) {
            //需要重新查询一下,因为这个是指定的分类进来的
        }
        if (!CollectionUtils.isEmpty(classifyAttrVOMap)) {
            classifyAttrVOMap.forEach((attrId, attrVO) -> {
                //分类注入的编号或者名称,
                //层级包含指定层和最小层
                CodeClassifyVO classifyVO = null;
                if (!CodeLevelTypeEnum.MIN.getValue().equalsIgnoreCase(attrVO.getClassifyinvokelevel()) && !"min".equalsIgnoreCase(attrVO.getClassifyinvokelevel())) {
                    //指定了层级的
                    //注意,因为查询上级分类出来的层级是倒序的,即顶层节点是最大的值
                    List<CodeClassifyVO> classifyVOS = classifyFullInfoBO.getParentClassifyVOs().stream().sorted(((o1, o2) -> o2.getDataLevel().compareTo(o1.getDataLevel()))).collect(Collectors.toList());
                    int level = VciBaseUtil.getInt(attrVO.getClassifyinvokelevel());
                    if (classifyVOS.size() >= level && level > 0) {
                        classifyVO = classifyVOS.get(level - 1);
                    }
                } else {
                    //当前的分类
                    classifyVO = classifyFullInfoBO.getCurrentClassifyVO();
                }
                if (classifyVO == null) {
                    //说明层级有误
                    orderDTO.getData().put(attrId, "分类树上没有层级[" + attrVO.getClassifyinvokelevel() + "]");
                    // classifyVO = classifyFullInfoBO.getCurrentClassifyVO();
                } else {
                    Map<String, String> classifyDataMap = VciBaseUtil.objectToMapString(classifyVO);
                    String value = classifyDataMap.getOrDefault(attrVO.getClassifyinvokeattr(), "");
                    orderDTO.getData().put(attrId, value);
                }
            });
        }
    }
    /**
     * è½¬æ¢æ—¶é—´çš„æ ¼å¼
     *
     * @param templateVO æ¨¡æ¿çš„æ˜¾ç¤ºå¯¹è±¡ï¼Œéœ€è¦åŒ…含属性
     * @param orderDTO   ç¼–码申请的信息
     */
    private void switchDateAttrOnOrder(CodeClassifyTemplateVO templateVO, CodeOrderDTO orderDTO) {
        Map<String, CodeClassifyTemplateAttrVO> dateAttrVOMap = templateVO.getAttributes().stream().filter(s -> StringUtils.isNotBlank(s.getCodedateformat())).collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t));
        if (!CollectionUtils.isEmpty(dateAttrVOMap)) {
            dateAttrVOMap.forEach((attrId, attrVO) -> {
                String value = getValueFromOrderDTO(orderDTO, attrId);
                if (StringUtils.isNotBlank(value)) {
                    DateConverter dateConverter = new DateConverter();
                    dateConverter.setAsText(value);
                    value = VciDateUtil.date2Str(dateConverter.getValue(), VciDateUtil.DateTimeMillFormat);
                    setValueToOrderDTO(orderDTO, attrId, value);
                }
            });
        }
    }
    /**
     * æ ¡éªŒæžšä¸¾çš„内容
     *
     * @param templateVO æ¨¡æ¿çš„æ˜¾ç¤ºå¯¹è±¡ï¼Œéœ€è¦åŒ…含属性
     * @param orderDTO   ç¼–码申请的信息
     */
    private void checkEnumOnOrder(CodeClassifyTemplateVO templateVO, CodeOrderDTO orderDTO) {
        //如果枚举可以修改,则不需要校验是否符合枚举的选项
        Map<String, CodeClassifyTemplateAttrVO> enumAttrVOMap = templateVO.getAttributes().stream().filter(s -> (StringUtils.isNotBlank(s.getEnumString()) || StringUtils.isNotBlank(s.getEnumid())) && !VciBaseUtil.getBoolean(s.getEnumeditflag())).collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t));
        if (!CollectionUtils.isEmpty(enumAttrVOMap)) {
            enumAttrVOMap.forEach((attrId, attrVO) -> {
                String value = getValueFromOrderDTO(orderDTO, attrId);
                if (StringUtils.isNotBlank(value)) {
                    //有值才能校验
                    List<KeyValue> comboboxKVs = listComboboxItems(attrVO);
                    if (!comboboxKVs.stream().anyMatch(s -> value.equalsIgnoreCase(s.getKey()))) {
                        throw new VciBaseException("属性【{0}】的值不符合枚举的要求", new String[]{attrVO.getName()});
                    }
                }
            });
        }
    }
    /**
     * æ ¡éªŒæ­£åˆ™è¡¨è¾¾å¼æ˜¯å¦æ­£ç¡®
     *
     * @param templateVO æ¨¡æ¿çš„信息,必须包含属性的内容
     * @param orderDTO   ç¼–码申请的相关的信息
     */
    private void checkVerifyOnOrder(CodeClassifyTemplateVO templateVO, CodeOrderDTO orderDTO) {
        Map<String, CodeClassifyTemplateAttrVO> verifyAttrVOMap = templateVO.getAttributes().stream().filter(s -> StringUtils.isNotBlank(s.getVerifyrule())).collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t));
        if (!CollectionUtils.isEmpty(verifyAttrVOMap)) {
            verifyAttrVOMap.forEach((attrId, attrVO) -> {
                String value = getValueFromOrderDTO(orderDTO, attrId);
                if (StringUtils.isNotBlank(value) && !value.matches(attrVO.getVerifyrule())) {
                    //校验正则表达式
                    throw new VciBaseException("属性[{0}]的值不符合校验规则的要求", new String[]{attrVO.getName()});
                }
            });
        }
    }
    /**
     * æ ¡éªŒå…³é”®å±žæ€§
     *
     * @param classifyFullInfo åˆ†ç±»çš„全部信息
     * @param templateVO       æ¨¡æ¿çš„内容,必须包含模板属性
     * @param orderDTO         ç¼–码申请的相关的信息
     */
    private void checkKeyAttrOnOrder(CodeClassifyFullInfoBO classifyFullInfo, CodeClassifyTemplateVO templateVO, CodeOrderDTO orderDTO) {
        //先获取关键属性的规则,也利用继承的方式
        CodeKeyAttrRepeatRuleVO keyRuleVO = keyRuleService.getRuleByClassifyFullInfo(classifyFullInfo);
        //注意的是keyRuleVO可能为空,表示不使用规则控制
        //获取所有的关键属性
        Map<String, CodeClassifyTemplateAttrVO> ketAttrMap = templateVO.getAttributes().stream().filter(s -> VciBaseUtil.getBoolean(s.getKeyattrflag())).collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t));
        Map<String, String> conditionMap = new HashMap<>();
        boolean trimAll = keyRuleVO == null ? false : VciBaseUtil.getBoolean(keyRuleVO.getIgnoreallspaceflag());
        //全部去空的优先级大于去空
        boolean trim = keyRuleVO == null ? false : VciBaseUtil.getBoolean(keyRuleVO.getIgnorespaceflag());
        boolean ignoreCase = keyRuleVO == null ? false : VciBaseUtil.getBoolean(keyRuleVO.getIgnorecaseflag());
        boolean ignoreWidth = keyRuleVO == null ? false : VciBaseUtil.getBoolean(keyRuleVO.getIgnorewidthflag());
        ketAttrMap.forEach((attrId, attrVO) -> {
            String value = getValueFromOrderDTO(orderDTO, attrId);
            if (value == null) {
                value = "";
            }
            wrapperKeyAttrConditionMap(value, keyRuleVO, attrId, trim, ignoreCase, ignoreWidth, trimAll, conditionMap);
        });
        //没有限制分类,但是一个模板只可能在一个业务类型里面,所以直接查询这个业务类型即可
        if (!CollectionUtils.isEmpty(conditionMap)) {
            final String[] sql = {"select count(*) from " + VciBaseUtil.getTableName(classifyFullInfo.getTopClassifyVO().getBtmtypeid()) + " t where 1 = 1 "};
            conditionMap.forEach((key, value) -> {
                sql[0] += " and " + key + " = " + value;
            });
            if (StringUtils.isNotBlank(orderDTO.getOid())) {
                //修改的时候,需要排除自己
                sql[0] += " and oid != '" + orderDTO.getOid() + "'";
            } else if (StringUtils.isNotBlank(orderDTO.getCopyFromVersion())) {
                sql[0] += " and oid != '" + orderDTO.getCopyFromVersion() + "'";
            }
            sql[0] += " and islastR = '1' and islastV = '1' ";
            if (boService.queryCountBySql(sql[0], new HashMap<>()) > 0) {
                String ruleInfoMsg = keyRuleVO == null ? "" : "查询规则:去除空格--{0},忽略大小写--{1},忽略全半角--{2},忽略全部空格--{3}";
                String[] objs = new String[]{trim ? "是" : "否", ignoreCase ? "是" : "否", ignoreWidth ? "是" : "否", trimAll ? "是" : "否"};
                throw new VciBaseException("根据您填写的关键属性的内容,结合关键属性查询规则,发现这个数据已经在系统中存在了。请修正!。" + ruleInfoMsg, objs);
            }
        }
    }
    /**
     * å°è£…关键属性的查询语句
     *
     * @param value        å½“前的值
     * @param keyRuleVO    å…³é”®å±žæ€§çš„æŽ§åˆ¶è§„则,可以为空
     * @param attrId       å±žæ€§çš„编号
     * @param trim         æ˜¯å¦åŽ»é™¤ç©ºæ ¼
     * @param ignoreCase   æ˜¯å¦ä¸åŒºåˆ†å¤§å°å†™
     * @param ignoreWidth  æ˜¯å¦å¿½ç•¥å…¨åŠè§’
     * @param trimAll      æ˜¯å¦å¿½ç•¥å…¨éƒ¨ç©ºæ ¼
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     */
    @Override
    public void wrapperKeyAttrConditionMap(String value, CodeKeyAttrRepeatRuleVO keyRuleVO, String attrId,
                                           boolean trim, boolean ignoreCase, boolean ignoreWidth,
                                           boolean trimAll, Map<String, String> conditionMap) {
        boolean ignoreSpace = trim || trimAll;
        if (StringUtils.isBlank(value)) {
            //为空的时候,不能用QueryOperation.ISNULL,平台不知道啥时候不处理这种了
            conditionMap.put("t."+attrId, "null");
        } else {
            if (keyRuleVO != null) {
                String queryKey = "";
                String queryValue = "";
                String temp = "";
                if (ignoreCase && ignoreSpace && ignoreWidth) {
                    //忽略大小写,且去空,忽略全半角
                    temp = (trimAll ? "REPLACE" : "TRIM") + "(UPPER(to_single_byte(%s)) " + (trimAll ? ",' ','')" : ")");
                } else if (ignoreCase && ignoreSpace && !ignoreWidth) {
                    //忽略大小写、去空、不忽略全半角
                    temp = (trimAll ? "REPLACE" : "TRIM") + "(UPPER(%s) " + (trimAll ? ",' ','')" : ")");
                } else if (ignoreCase && !ignoreSpace && ignoreWidth) {
                    //忽略大小写、不去空、忽略全半角
                    temp = "UPPER(to_single_byte(%s))";
                } else if (!ignoreCase && ignoreSpace && ignoreWidth) {
                    //不忽略大小写、去空、忽略全半角
                    temp = (trimAll ? "REPLACE" : "TRIM") + "(to_single_byte(%s) " + (trimAll ? ",' ','')" : ")");
                } else if (ignoreCase && !ignoreSpace && !ignoreWidth) {
                    //忽略大小写、不去空、不忽略全半角
                    temp = "UPPER(%s)";
                } else if (!ignoreCase && !ignoreCase && ignoreWidth) {
                    //不忽略大小写、不去空、忽略全半角
                    temp = "to_single_byte(%s)";
                } else if (!ignoreCase && ignoreSpace && !ignoreWidth) {
                    //不忽略大小写、去空、不忽略全半角
                    temp = (trimAll ? "REPLACE" : "TRIM") + "(%s " + (trimAll ? ",' ','')" : ")");
                } else if (!ignoreCase && !ignoreSpace && !ignoreWidth) {
                    //不忽略大小写、不去空、不忽略全半角
                    temp = "%s";
                }
                queryKey = String.format(temp, "t."+attrId);
                queryValue = String.format(temp, "'" + (trim ? value.trim() : value) + "'");
                conditionMap.put(queryKey, queryValue);
            } else {
                //为空的时候不代表不校验,只是不去除相关的信息
                conditionMap.put("t."+attrId, value);
            }
        }
    }
    /**
     * ä»Žç¼–码申请信息对象上获取某个属性的值
     *
     * @param orderDTO ç¼–码申请对象
     * @param attrId   å±žæ€§çš„编号
     * @return å€¼
     */
    private String getValueFromOrderDTO(CodeOrderDTO orderDTO, String attrId) {
        attrId = attrId.toLowerCase(Locale.ROOT);
        String value = null;
        if (VciQueryWrapperForDO.BASIC_FIELD_MAP.containsKey(attrId)
                || VciQueryWrapperForDO.SECRET_MANAGE_FIELD_MAP.containsKey(attrId)
                || VciQueryWrapperForDO.REVISION_MANAGE_FIELD_MAP.containsKey(attrId)
                || VciQueryWrapperForDO.LIFECYCLE_MANAGE_FIELD_MAP.containsKey(attrId)
                || VciQueryWrapperForDO.BASE_MODEL_COMPATIBILITY_MAP.containsValue(attrId)
        ) {
            value = WebUtil.getStringValueFromObject(WebUtil.getValueFromField(WebUtil.getFieldForObject(attrId, orderDTO.getClass()).getName(), orderDTO));
        } else {
            //说明是自行配置的
            //前端必须要传递小写的属性
            value = orderDTO.getData().getOrDefault(attrId, "");
        }
        return value;
    }
    /**
     * è®¾ç½®æ–°çš„值到申请对象上
     *
     * @param orderDTO ç¼–码申请对象
     * @param attrId   å±žæ€§çš„编号
     * @param value    å€¼
     */
    private void setValueToOrderDTO(CodeOrderDTO orderDTO, String attrId, String value) {
        attrId = attrId.toLowerCase(Locale.ROOT);
        if (VciQueryWrapperForDO.BASIC_FIELD_MAP.containsKey(attrId)) {
            WebUtil.setValueToField(WebUtil.getFieldForObject(attrId, orderDTO.getClass()).getName(), orderDTO, value);
        } else {
            orderDTO.getData().put(attrId, value);
        }
    }
    /**
     * æ ¡éªŒå±žæ€§æ˜¯å¦ä¸ºå¿…输
     *
     * @param templateVO æ¨¡æ¿çš„æ˜¾ç¤ºå¯¹è±¡ï¼Œéœ€è¦åŒ…含模板属性
     * @param orderDTO   ç¼–码申请的信息
     */
    private void checkRequiredAttrOnOrder(CodeClassifyTemplateVO templateVO, CodeOrderDTO orderDTO) {
        Map<String, CodeClassifyTemplateAttrVO> requiredAttrMap = templateVO.getAttributes().stream().filter(
                        s -> VciBaseUtil.getBoolean(s.getRequireflag()) && StringUtils.isBlank(s.getComponentrule())
                                && StringUtils.isBlank(s.getClassifyinvokeattr()))
                .collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t));
        if (!CollectionUtils.isEmpty(requiredAttrMap)) {
            requiredAttrMap.forEach((attrId, attrVO) -> {
                //只有企业编码,状态,备注,模板主键,分类主键这几个是固定的,其余都是自行配置的
                if (StringUtils.isBlank(getValueFromOrderDTO(orderDTO, attrId))) {
                    throw new VciBaseException("属性【{0}】必须要输入(选择)内容", new String[]{attrVO.getName()});
                }
            });
        }
    }
    /**
     * åˆ¤æ–­ç¼–码的码段是否输入或者选择了码值
     *
     * @param ruleVO   è§„则的显示对象
     * @param orderDTO ç¼–码申请的内容
     */
    @Override
    public void checkSecValueOnOrder(CodeRuleVO ruleVO, CodeOrderDTO orderDTO) {
        List<String> unSerialSecOidList = ruleVO.getSecVOList().stream().filter(
                s -> !(CodeSecTypeEnum.CODE_SERIAL_SEC.getValue().equalsIgnoreCase(s.getSectype())
                        || CodeSecTypeEnum.CODE_ATTR_SEC.getValue().equalsIgnoreCase(s.getSectype())
                        || CodeSecTypeEnum.CODE_DATE_SEC.getValue().equalsIgnoreCase(s.getSectype())
                        || CodeSecTypeEnum.CODE_LEVEL_SEC.getValue().equalsIgnoreCase(s.getSectype())
                        || VciBaseUtil.getBoolean(s.getNullableFlag()))
        ).map(CodeBasicSecVO::getOid).collect(Collectors.toList());
        if (!CollectionUtils.isEmpty(unSerialSecOidList)) {
            if (CollectionUtils.isEmpty(orderDTO.getSecDTOList())) {
                throw new VciBaseException("非流水码段(或者必输码段)必须要输入(或选择)码值");
            }
            if (orderDTO.getSecDTOList().stream().anyMatch(s -> !unSerialSecOidList.contains(s.getSecOid())
                    && StringUtils.isBlank(s.getSecValue()))) {
                throw new VciBaseException("非流水码段(或者必输码段)必须要输入(或选择)码值");
            }
        }
    }
    /**
     * ä½¿ç”¨åˆ†ç±»å’Œé˜¶æ®µçš„编号,获取包含的属性
     *
     * @param codeClassifyOid åˆ†ç±»çš„主键
     * @param phase           é˜¶æ®µçš„名称
     * @return å±žæ€§çš„英文名称
     */
    @Override
    public List<String> listPhaseAttrByClassifyOid(String codeClassifyOid, String phase) {
        CodeClassifyTemplateVO templateVO = getUsedTemplateByClassifyOid(codeClassifyOid, false);
        //找阶段
        return phaseAttrService.listAttrByTemplateOidAndPhaseId(templateVO.getOid(), phase);
    }
    /**
     * è·¯å¾„上包含当前分类的所有分类信息
     *
     * @param codeClassifyOid åˆ†ç±»çš„主键
     * @return åˆ†ç±»æ ‘
     */
    @Override
    public List<Tree> hasSelfClassifyTree(String codeClassifyOid) {
        if (StringUtils.isBlank(codeClassifyOid)) {
            return new ArrayList<>();
        }
        CodeClassifyFullInfoBO fullInfo = classifyService.getClassifyFullInfo(codeClassifyOid);
        //查询子
        List<CodeClassifyVO> childrenClassifys = classifyService.listChildrenClassify(codeClassifyOid, true, "id", true);
        Map<String, CodeClassifyVO> classifyVOMap = new HashMap<>();
        classifyVOMap.putAll(Optional.ofNullable(fullInfo.getParentClassifyVOs()).orElseGet(() -> new ArrayList<>()).stream().collect(Collectors.toMap(s -> s.getOid(), t -> t)));
        classifyVOMap.putAll(Optional.ofNullable(childrenClassifys).orElseGet(() -> new ArrayList<>()).stream().collect(Collectors.toMap(s -> s.getOid(), t -> t)));
        TreeWrapperOptions treeWrapperOptions = new TreeWrapperOptions(CodeClassifyServiceImpl.PARENT_FIELD_NAME.toLowerCase(Locale.ROOT));
        return revisionModelUtil.doList2Trees(classifyVOMap.values().stream().collect(Collectors.toList()), treeWrapperOptions, (CodeClassifyVO s) -> {
            return s.getId() + " " + s.getName() + (FrameworkDataLCStatus.DISABLED.getValue().equalsIgnoreCase(s
                    .getLcStatus()) ? (" ã€åœç”¨ã€‘ ") : "");
        });
    }
    /**
     * åˆ†ç±»æ³¨å…¥çš„内容预览
     *
     * @param codeClassifyOid åˆ†ç±»çš„主键
     * @param codeTemplateOid æ¨¡æ¿çš„主键
     * @return key是分类注入的属性,value是注入后的值
     */
    @Override
    public Map<String, String> previewClassify(String codeClassifyOid, String codeTemplateOid) {
        if (StringUtils.isBlank(codeClassifyOid) || StringUtils.isBlank(codeTemplateOid)) {
            return new HashMap<>();
        }
        //查询分类的信息,查询模板的信息
        CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(codeClassifyOid);
        CodeClassifyTemplateVO templateVO = templateService.getObjectHasAttrByOid(codeTemplateOid);
        //
        CodeOrderDTO orderDTO = new CodeOrderDTO();
        orderDTO.setData(new HashMap<>());
        switchClassifyLevelOnOrder(templateVO, classifyFullInfo, orderDTO);
        return orderDTO.getData();
    }
    /**
     * é¢„览组合规则
     *
     * @param orderDTO é¢„览的信息,包含模板的主键
     * @return key是组合规则的属性。value是组合后的值,。如果缺少某个属性的值,会作为value返回
     */
    @Override
    public Map<String, String> previewCompRule(CodeOrderDTO orderDTO) {
        VciBaseUtil.alertNotNull(orderDTO, "编码申请相关信息", orderDTO.getTemplateOid(), "模板的主键");
        //查询分类的信息,查询模板的信息
        CodeClassifyTemplateVO templateVO = templateService.getObjectHasAttrByOid(orderDTO.getTemplateOid());
        switchComponentAttrOnOrder(templateVO, orderDTO);
        return orderDTO.getData();
    }
    /**
     * ä¿®æ”¹çŠ¶æ€
     *
     * @param baseModelDTO æ•°æ®ä¼ è¾“对象
     */
    @Override
    public void changeStatus(BaseModelDTO baseModelDTO) {
        VciBaseUtil.alertNotNull(baseModelDTO, "数据信息", baseModelDTO.getOid(), "主键", baseModelDTO.getBtmname(), "业务类型", baseModelDTO.getLcStatus(), "目标状态");
        List<String> oids = VciBaseUtil.str2List(baseModelDTO.getOid());
        List<ClientBusinessObject> cboList = boService.selectCBOByOidCollection(oids, baseModelDTO.getBtmname());
        //还需要修改allCode的生命周期
        Map<String, String> conditionMap = new HashMap<>();
        conditionMap.put("createcodeoid", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(oids.toArray(new String[0])) + ")");
        conditionMap.put("createcodebtm", baseModelDTO.getBtmname());
        List<ClientBusinessObject> codeCbos = boService.queryCBO(MdmBtmTypeConstant.CODE_ALL_CODE, conditionMap);
        // å›žæ”¶éœ€è¦ä¸šåŠ¡æ•°æ®åˆ é™¤
        if (CodeDefaultLC.TASK_BACK.getValue().equals(baseModelDTO.getLcStatus())) {
            BatchCBO batchCBO = new BatchCBO();
            batchCBO.getDeleteCbos().addAll(cboList);
            boService.persistenceBatch(batchCBO);
        } else {
            lifeCycleService.transCboStatus(cboList, baseModelDTO.getLcStatus());
        }
        lifeCycleService.transCboStatus(codeCbos, baseModelDTO.getLcStatus());
    }
    /**
     * ç›¸ä¼¼é¡¹æŸ¥è¯¢
     *
     * @param orderDTO ç¼–码的相关信息
     * @return æ•°æ®åˆ—表
     */
    @Override
    public DataGrid<Map<String, String>> resembleQuery(CodeOrderDTO orderDTO) {
        VciBaseUtil.alertNotNull(orderDTO, "申请的信息", orderDTO.getCodeClassifyOid(), "分类主键", orderDTO.getTemplateOid(), "模板主键");
        CodeClassifyFullInfoBO fullInfoBO = classifyService.getClassifyFullInfo(orderDTO.getCodeClassifyOid());
        CodeClassifyTemplateVO templateVO = templateService.getObjectHasAttrByOid(orderDTO.getTemplateOid());
        switchClassifyLevelOnOrder(templateVO, fullInfoBO, orderDTO);
        switchDateAttrOnOrder(templateVO, orderDTO);
        switchComponentAttrOnOrder(templateVO, orderDTO);
        //需要获取是否有相似查询属性
        Map<String, CodeClassifyTemplateAttrVO> attrVOs = templateVO.getAttributes().stream().filter(s -> VciBaseUtil.getBoolean(s.getSamerepeatattrflag())).collect(Collectors.toMap(s -> s.getId(), t -> t));
        if (CollectionUtils.isEmpty(attrVOs)) {
            //都没有属性,肯定不能查询了
            return new DataGrid<>();
        }
        Map<String, String> conditionMap = new HashMap<>();
        //我们首先获取有没有查询规则
        CodeResembleRuleVO resembleRuleVO = Optional.ofNullable(getUseResembleRule(fullInfoBO, fullInfoBO.getCurrentClassifyVO())).orElseGet(() -> new CodeResembleRuleVO());
        attrVOs.forEach((attrId, attrVO) -> {
            String value = getValueFromOrderDTO(orderDTO, attrId);
            if (value == null) {
                value = "";
            }
            wrapperResembleConditionMap(value, resembleRuleVO, attrId, conditionMap);
        });
        //没有限制分类,但是一个模板只可能在一个业务类型里面,所以直接查询这个业务类型即可
        if (!CollectionUtils.isEmpty(conditionMap)) {
            Map<String, String> andConditionMap = new HashMap<>();
            andConditionMap.put("islastr", "1");
            andConditionMap.put("islastv", "1");
            if (StringUtils.isNotBlank(orderDTO.getOid())) {
                andConditionMap.put("oid", QueryOptionConstant.NOTEQUAL + orderDTO.getOid());
            }
            conditionMap.putAll(andConditionMap);
            PageHelper pageHelper = new PageHelper(-1);
            pageHelper.addDefaultDesc("id");
            return queryGrid(fullInfoBO.getTopClassifyVO().getBtmtypeid(), templateVO, conditionMap, pageHelper);
        }
        return new DataGrid<>();
    }
    /**
     * å°è£…相似项查询的查询条件的映射
     *
     * @param value          å€¼
     * @param resembleRuleVO ç›¸ä¼¼é¡¹è§„则
     * @param attrId         å±žæ€§çš„编号
     * @param conditionMap   æŸ¥è¯¢æ¡ä»¶
     */
    @Override
    public void wrapperResembleConditionMap(String value, CodeResembleRuleVO resembleRuleVO, String attrId, Map<String, String> conditionMap) {
        boolean ignoreSpace = VciBaseUtil.getBoolean(resembleRuleVO.getIgnorespaceflag()) || VciBaseUtil.getBoolean(resembleRuleVO.getIgnoreallspaceflag());
        if (StringUtils.isBlank(value)) {
            //为空的时候就不查询它就是
        } else {
            String queryKey = "";
            String queryValue = "";
            boolean ignoreCase = VciBaseUtil.getBoolean(resembleRuleVO.getIgnorecaseflag());
            boolean ignoreWidth = VciBaseUtil.getBoolean(resembleRuleVO.getIgnorewidthflag());
            boolean trimAll = VciBaseUtil.getBoolean(resembleRuleVO.getIgnoreallspaceflag());
            boolean trim = VciBaseUtil.getBoolean(resembleRuleVO.getIgnoreallspaceflag());
            String temp = "";
            if (ignoreCase && ignoreSpace && ignoreWidth) {
                //忽略大小写,且去空,忽略全半角
                temp = (trimAll ? "REPLACE" : "TRIM") + "(UPPER(to_single_byte('%s')) " + (trimAll ? ",' ','')" : ")");
            } else if (ignoreCase && ignoreSpace && !ignoreWidth) {
                //忽略大小写、去空、不忽略全半角
                temp = (trimAll ? "REPLACE" : "TRIM") + "(UPPER(%s) " + (trimAll ? ",' ','')" : ")");
            } else if (ignoreCase && !ignoreSpace && ignoreWidth) {
                //忽略大小写、不去空、忽略全半角
                temp = "UPPER(to_single_byte('%s'))";
            } else if (!ignoreCase && ignoreSpace && ignoreWidth) {
                //不忽略大小写、去空、忽略全半角
                temp = (trimAll ? "REPLACE" : "TRIM") + "(to_single_byte('%s') " + (trimAll ? ",' ','')" : ")");
            } else if (ignoreCase && !ignoreSpace && !ignoreWidth) {
                //忽略大小写、不去空、不忽略全半角
                temp = "UPPER(%s)";
            } else if (!ignoreCase && !ignoreCase && ignoreWidth) {
                //不忽略大小写、不去空、忽略全半角
                temp = "to_single_byte('%s')";
            } else if (!ignoreCase && ignoreSpace && !ignoreWidth) {
                //不忽略大小写、去空、不忽略全半角
                temp = (trimAll ? "REPLACE" : "TRIM") + "(%s " + (trimAll ? ",' ','')" : ")");
            } else if (!ignoreCase && !ignoreSpace && !ignoreWidth) {
                //不忽略大小写、不去空、不忽略全半角
                temp = "%s";
            }
            if (StringUtils.isNotBlank(resembleRuleVO.getLinkCharacter())) {
                List<String> chars = VciBaseUtil.str2List(resembleRuleVO.getLinkCharacter());
                for (int i = 0; i < chars.size(); i++) {
                    String s = chars.get(i);
                    temp = "replace(" + temp + ",'" + s + "','')";
                }
            }
            queryValue = String.format(temp, (trim ? value.trim() : value));
            temp = temp.replace("to_single_byte('%s')","to_single_byte(%s)");
            queryKey = String.format(temp, "t."+attrId);
            conditionMap.put(queryKey, QueryOptionConstant.OR + queryValue);
        }
    }
    /**
     * ä½¿ç”¨åˆ†ç±»ä¸»é”®èŽ·å–ç›¸ä¼¼æŸ¥è¯¢è§„åˆ™
     *
     * @param codeClassifyOid åˆ†ç±»ä¸»é”®
     * @return è§„则,如果不存在会返回null
     */
    @Override
    public CodeResembleRuleVO getUseResembleRuleByClassifyOid(String codeClassifyOid) {
        CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(codeClassifyOid);
        return getUseResembleRule(classifyFullInfo, classifyFullInfo.getCurrentClassifyVO());
    }
    /**
     * èŽ·å–ä½¿ç”¨çš„ç›¸ä¼¼æŸ¥è¯¢è§„åˆ™
     *
     * @param fullInfoBO        ç±»å…¨éƒ¨ä¿¡æ¯
     * @param currentClassifyVO å½“前的分类
     * @return è§„则,如果不存在会返回Null
     */
    @Override
    public CodeResembleRuleVO getUseResembleRule(CodeClassifyFullInfoBO fullInfoBO, CodeClassifyVO currentClassifyVO) {
        if (currentClassifyVO == null) {
            return null;
        }
        if (currentClassifyVO != null && StringUtils.isNotBlank(currentClassifyVO.getCodeResembleRuleOid())) {
            //说明已经存在
            return resembleRuleService.getObjectByOid(currentClassifyVO.getCodeResembleRuleOid());
        }
        if (StringUtils.isBlank(currentClassifyVO.getParentcodeclassifyoid())) {
            return null;
        }
        Map<String, CodeClassifyVO> classifyVOMap = fullInfoBO.getParentClassifyVOs().stream().collect(Collectors.toMap(s -> s.getOid(), t -> t));
        return getUseResembleRule(fullInfoBO, classifyVOMap.getOrDefault(currentClassifyVO.getParentcodeclassifyoid(), null));
    }
    /**
     * æ¨¡æ¿å±žæ€§è½¬æ¢ä¸ºè¡¨å•定义的信息
     *
     * @param templateVO      æ¨¡æ¿çš„æ˜¾ç¤ºå¯¹è±¡
     * @param codeClassifyOid åˆ†ç±»çš„主键,为空的时候,获取模板所属的分类主键.用于产生分类注入
     * @return è¡¨æ ¼çš„信息
     */
    private UIFormDefineVO wrapperFormDefineByTemplate(CodeClassifyTemplateVO templateVO, String codeClassifyOid) {
        UIFormDefineVO formDefineVO = new UIFormDefineVO();
        formDefineVO.setOid(templateVO.getOid());
        formDefineVO.setBtmType(templateVO.getBtmTypeId());
        if (StringUtils.isBlank(codeClassifyOid)) {
            codeClassifyOid = templateVO.getCodeclassifyoid();
        }
        CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(codeClassifyOid);
        List<UIFormItemVO> itemVOS = new ArrayList<>();
        Map<String, List<CodeClassifyTemplateAttrVO>> attrGroupMap = templateVO.getAttributes().stream().filter(s -> StringUtils.isNotBlank(s.getAttributegroup())).collect(Collectors.groupingBy(s -> s.getAttributegroup()));
        templateVO.getAttributes().forEach(attrVO -> {
            UIFormItemVO formItemVO = templateAttr2FormField(attrVO, templateVO.getBtmTypeId());
            itemVOS.add(formItemVO);
        });
        //处理属性分组
        if (!CollectionUtils.isEmpty(attrGroupMap)) {
            //按照分组的属性排列,找到每一个分组的第一个属性
            for (String key : attrGroupMap.keySet()) {
                List<CodeClassifyTemplateAttrVO> value = attrGroupMap.get(key);
                //找到这个分组的属性的第一个
                CodeClassifyTemplateAttrVO attrVO = value.stream().sorted(((o1, o2) -> o1.getOrdernum().compareTo(o2.getOrdernum()))).findFirst().get();
                //我们找到这个属性在最终的itemVOs里的位置
                UIFormItemVO lineVO = new UIFormItemVO();
                lineVO.setField(attrVO.getId() + "_line");
                lineVO.setType("line");
                lineVO.setText(key);
                //找位置
                for (int i = 0; i < itemVOS.size(); i++) {
                    UIFormItemVO record = itemVOS.get(i);
                    if (record.getField().equalsIgnoreCase(attrVO.getId())) {
                        itemVOS.add(i, lineVO);
                        break;
                    }
                }
            }
        }
        CodeOrderDTO orderDTO = new CodeOrderDTO();
        switchClassifyLevelOnOrder(templateVO, classifyFullInfo, orderDTO);
        if (!CollectionUtils.isEmpty(orderDTO.getData())) {
            orderDTO.getData().forEach((key, value) -> {
                for (int i = 0; i < itemVOS.size(); i++) {
                    UIFormItemVO itemVO = itemVOS.get(i);
                    if (itemVO.getField().equalsIgnoreCase(key)) {
                        itemVO.setDefaultValue(value);
                        break;
                    }
                }
            });
        }
        formDefineVO.setItems(itemVOS);
        //查询是否有分类注入的
        return formDefineVO;
    }
    /**
     * æ¨¡æ¿å±žæ€§è½¬æ¢ä¸ºè¡¨æ ¼å®šä¹‰çš„信息
     *
     * @param templateVO æ¨¡æ¿çš„æ˜¾ç¤ºå¯¹è±¡
     * @param forEdit æ˜¯å¦æ˜¯ç¼–辑所需
     * @return è¡¨æ ¼çš„信息
     */
    private UITableDefineVO wrapperTableDefineByTemplate(CodeClassifyTemplateVO templateVO,boolean forEdit) {
        //封装信息
        UITableDefineVO tableDefineVO = new UITableDefineVO();
        tableDefineVO.setOid(templateVO.getOid());
        tableDefineVO.setBtmType(templateVO.getBtmTypeId());
        tableDefineVO.setDisplayQueryArea(true);
        //前端会默认分页的信息
        //处理所有的列,这个模板没有合并的表头的情况
        List<UITableFieldVO> fieldVOList = new ArrayList<>();
        Map<String, String> comboxOrReferFieldMap = new HashMap<>();
        templateVO.getAttributes().forEach(attrVO -> {
            UITableFieldVO tableFieldVO = templateAttr2TableField(attrVO,forEdit);
            if ("combox".equalsIgnoreCase(tableFieldVO.getFieldType())) {
                comboxOrReferFieldMap.put(tableFieldVO.getSortField(), tableFieldVO.getField());
            }
            if ("refer".equalsIgnoreCase(tableFieldVO.getFieldType())) {
                comboxOrReferFieldMap.put(tableFieldVO.getSortField(), tableFieldVO.getField());
            }
            if(StringUtils.isNotBlank(tableFieldVO.getEdit())){
                tableDefineVO.setHasEditor(true);
            }
            fieldVOList.add(tableFieldVO);
        });
        List<List<UITableFieldVO>> cols = new ArrayList<>();
        cols.add(fieldVOList);
        tableDefineVO.setCols(cols);
        Map<String, UITableFieldVO> fieldVOMap = fieldVOList.stream().collect(Collectors.toMap(s -> s.getField().toLowerCase(Locale.ROOT), t -> t));
        //查询属性
        List<CodeClassifyTemplateAttrVO> queryAttrVOs = templateVO.getAttributes().stream().filter(s -> BooleanEnum.TRUE.getValue().equalsIgnoreCase(s.getQueryattrflag())).collect(Collectors.toList());
        if (!CollectionUtils.isEmpty(queryAttrVOs)) {
            List<UITableFieldVO> queryFieldVOs = new ArrayList<>();
            queryAttrVOs.stream().forEach(attrVO -> {
                String attrId = attrVO.getId().toLowerCase(Locale.ROOT);
                attrId = comboxOrReferFieldMap.getOrDefault(attrId, attrVO.getId()).toLowerCase(Locale.ROOT);
                if (fieldVOMap.containsKey(attrId)) {
                    queryFieldVOs.add(fieldVOMap.get(attrId));
                }
            });
            tableDefineVO.setQueryColumns(queryFieldVOs);
        }
        //高级属性
        List<CodeClassifyTemplateAttrVO> seniorQueryAttrVOs = templateVO.getAttributes().stream().filter(s -> BooleanEnum.TRUE.getValue().equalsIgnoreCase(s.getSeniorqueryattrflag())).collect(Collectors.toList());
        if (!CollectionUtils.isEmpty(seniorQueryAttrVOs)) {
            List<UITableFieldVO> queryFieldVOs = new ArrayList<>();
            seniorQueryAttrVOs.stream().forEach(attrVO -> {
                String attrId = attrVO.getId().toLowerCase(Locale.ROOT);
                attrId = comboxOrReferFieldMap.getOrDefault(attrId, attrId).toLowerCase(Locale.ROOT);
                if (fieldVOMap.containsKey(attrId)) {
                    queryFieldVOs.add(fieldVOMap.get(attrId));
                }
            });
            tableDefineVO.setSeniorQueryColumns(queryFieldVOs);
        }
        return tableDefineVO;
    }
    /**
     * æ¨¡æ¿å±žæ€§è½¬æ¢ä¸ºè¡¨æ ¼æ˜¾ç¤ºçš„配置
     *
     * @param attrVO æ¨¡æ¿å±žæ€§
     * @param forEdit æ˜¯å¦æ˜¯ç¼–辑所需
     * @return è¡¨æ ¼çš„字段
     */
    @Override
    public UITableFieldVO templateAttr2TableField(CodeClassifyTemplateAttrVO attrVO,boolean forEdit) {
        UITableFieldVO fieldVO = new UITableFieldVO();
        if (SECRET_FILED.equalsIgnoreCase(attrVO.getId())) {
            attrVO.setEnumid(OsEnumServiceImpl.MY_DATA_SECRET);
        }
        fieldVO.setField(attrVO.getId());
        fieldVO.setTitle(attrVO.getName());
        fieldVO.setFieldType(vciFieldTypeMap.getOrDefault(attrVO.getAttributedatatype(), "text"));
        fieldVO.setSort(true);
        fieldVO.setSortField(fieldVO.getField());
        fieldVO.setQueryField(fieldVO.getField());
        if (forEdit){
            fieldVO.setHidden(!VciBaseUtil.getBoolean(attrVO.getFormdisplayflag()));
        }else {
            fieldVO.setHidden(!VciBaseUtil.getBoolean(attrVO.getTabledisplayflag()));
        }
        if (attrVO.getAttrTableWidth() != null && attrVO.getAttrTableWidth() > 0) {
            fieldVO.setMinWidth(attrVO.getAttrTableWidth());
            fieldVO.setWidth(attrVO.getAttrTableWidth());
        }
        //看看是否有枚举
        if ((StringUtils.isNotBlank(attrVO.getEnumString())
                && !"[]".equalsIgnoreCase(attrVO.getEnumString())) ||
                StringUtils.isNotBlank(attrVO.getEnumid())) {
            fieldVO.setFieldType("combox");
            fieldVO.setField(fieldVO.getField() + "Text");
            fieldVO.setComboxKey(attrVO.getEnumid());
            if (StringUtils.isNotBlank(attrVO.getEnumString())) {
                //指定的下拉框内容
                fieldVO.setData(JSONObject.parseArray(attrVO.getEnumString(), KeyValue.class));
                if (StringUtils.isBlank(attrVO.getEnumid())) {
                    fieldVO.setComboxKey(fieldVO.getField() + "_data");
                }
            }else {
                List<KeyValue> osEnumItemVOList= enumService.getEnum(attrVO.getEnumid());
                fieldVO.setData(osEnumItemVOList);
            }
        }
        //看是否有参照
        if (StringUtils.isNotBlank(attrVO.getReferbtmid()) || StringUtils.isNotBlank(attrVO.getReferConfig())) {
            fieldVO.setFieldType("refer");
            fieldVO.setQueryField(fieldVO.getField());
            fieldVO.setField(fieldVO.getField() + "name");
            fieldVO.setShowField(fieldVO.getField());
            if (StringUtils.isNotBlank(attrVO.getReferConfig())) {
                //配置的内容
                fieldVO.setReferConfig(JSONObject.parseObject(attrVO.getReferConfig(), UIFormReferVO.class));
            } else {
                UIFormReferVO formReferVO = new UIFormReferVO();
                formReferVO.setType("default");
                formReferVO.setReferType(attrVO.getReferbtmid());
                fieldVO.setReferConfig(formReferVO);
            }
        }
        if (VciQueryWrapperForDO.LC_STATUS_FIELD.equalsIgnoreCase(fieldVO.getSortField())) {
            fieldVO.setField("lcstatus_text");
        }
        Map<String, String> eventJsMap = new HashMap<>();
        //超链接与模板是互斥
        if (StringUtils.isNotBlank(attrVO.getTablehref())) {
            String event = fieldVO.getSortField() + "_href";
            eventJsMap.put(event, attrVO.getTablehref());
            fieldVO.setTemplet("function(d){ return '<a class=\"layui-btn layui-btn-intable \" lay-event=\"" + event + "\">d." + fieldVO.getField() + "</a>';}");
        }
        if (StringUtils.isNotBlank(attrVO.getTabledisplayjs())) {
            //直接写function(d){ return xxxxx;}
            fieldVO.setTemplet(attrVO.getTabledisplayjs());
        }
        if (StringUtils.isBlank(fieldVO.getTemplet()) && VciFieldTypeEnum.VTBoolean.name().equalsIgnoreCase(attrVO.getAttributedatatype())) {
            fieldVO.setTemplet("function(d){return $webUtil.formateBoolean(d." + fieldVO.getField() + ");}");
        }
        fieldVO.setOptionJsMap(eventJsMap);
        fieldVO.setStyle(attrVO.getTabledisplaystyle());
        //列表里不允许直接编辑
        fieldVO.setDateFormate(attrVO.getCodedateformat());
        return fieldVO;
    }
    /**
     * å¯†çº§çš„字段
     */
    public static final String SECRET_FILED = "secretgrade";
    /**
     * æ¨¡æ¿å±žæ€§è½¬æ¢ä¸ºè¡¨å•的字段
     *
     * @param attrVO  æ¨¡æ¿å±žæ€§
     * @param btmType ä¸šåŠ¡ç±»åž‹
     * @return è¡¨å•的字段
     */
    @Override
    public UIFormItemVO templateAttr2FormField(CodeClassifyTemplateAttrVO attrVO, String btmType) {
        UIFormItemVO itemVO = new UIFormItemVO();
        if (SECRET_FILED.equalsIgnoreCase(attrVO.getId())) {
            attrVO.setEnumid(OsEnumServiceImpl.MY_DATA_SECRET);
        }
        itemVO.setField(attrVO.getId());
        itemVO.setText(attrVO.getName());
        itemVO.setType(vciFieldTypeMap.getOrDefault(attrVO.getAttributedatatype(), "text"));
        if (VciBaseUtil.getBoolean(attrVO.getTextareaflag())) {
            itemVO.setType("textarea");
        }
        if (VciFieldTypeEnum.VTLong.name().equalsIgnoreCase(attrVO.getAttributedatatype())
                || VciFieldTypeEnum.VTInteger.name().equalsIgnoreCase(attrVO.getAttributedatatype())
                || VciFieldTypeEnum.VTDouble.name().equalsIgnoreCase(attrVO.getAttributedatatype())) {
            itemVO.setVerify("number");
        }
        itemVO.setReadOnly(VciBaseUtil.getBoolean(attrVO.getReadonlyflag()));
        itemVO.setKeyAttr(VciBaseUtil.getBoolean(attrVO.getKeyattrflag()));
        itemVO.setRequired(VciBaseUtil.getBoolean(attrVO.getRequireflag()));
        itemVO.setDefaultValue(attrVO.getDefaultvalue());
        itemVO.setDateFormate(attrVO.getCodedateformat());
        itemVO.setHidden(!VciBaseUtil.getBoolean(attrVO.getFormdisplayflag()));
        itemVO.setVerify(attrVO.getVerifyrule());
        itemVO.setPrefix(attrVO.getPrefixvalue());
        itemVO.setSuffix(attrVO.getSuffixvalue());
        itemVO.setTooltips(attrVO.getExplain());
        itemVO.setSelectLibFlag(attrVO.getLibraryIdentification());
        //看看是否有枚举
        if ((StringUtils.isNotBlank(attrVO.getEnumString())
                && !"[]".equalsIgnoreCase(attrVO.getEnumString())) ||
                StringUtils.isNotBlank(attrVO.getEnumid())) {
            itemVO.setType("combox");
            itemVO.setComboxKey(attrVO.getEnumid());
            if (StringUtils.isNotBlank(attrVO.getEnumString())) {
                //指定的下拉框内容
                itemVO.setData(JSONObject.parseArray(attrVO.getEnumString(), KeyValue.class));
                if (StringUtils.isBlank(attrVO.getEnumid())) {
                    itemVO.setComboxKey(itemVO.getField() + "_data");
                }
            }
        }
        //看是否有参照
        if (StringUtils.isNotBlank(attrVO.getReferbtmid()) || StringUtils.isNotBlank(attrVO.getReferConfig())) {
            itemVO.setType("refer");
            itemVO.setShowField(itemVO.getField() + "name");
            if (StringUtils.isNotBlank(attrVO.getReferConfig())) {
                //配置的内容
                itemVO.setReferConfig(JSONObject.parseObject(attrVO.getReferConfig(), UIFormReferVO.class));
            } else {
                UIFormReferVO formReferVO = new UIFormReferVO();
                formReferVO.setType("default");
                formReferVO.setReferType(attrVO.getReferbtmid());
                itemVO.setReferConfig(formReferVO);
            }
        }
        //如果是组合规则,分类注入的,显示为只读
        if (StringUtils.isNotBlank(attrVO.getComponentrule())) {
            itemVO.setReadOnly(true);
            itemVO.setTooltips("本属性为组合规则");
            itemVO.setRequired(false);
        }
        if (StringUtils.isNotBlank(attrVO.getClassifyinvokeattr())) {
            itemVO.setReadOnly(!VciBaseUtil.getBoolean(attrVO.getClassifyinvokeeditflag()));
            itemVO.setTooltips("本属性是分类注入");
            itemVO.setRequired(false);
        }
        if (VciQueryWrapperForDO.LC_STATUS_FIELD.equalsIgnoreCase(itemVO.getField())) {
            //是生命周期状态
            itemVO.setType("combox");
            itemVO.setComboxKey(btmType + LC_STATUS_SUBFIX);
        }
        return itemVO;
    }
    /**
     * å±žæ€§ç±»åž‹ä¸Žjs中的字段类型的映射
     */
    private static Map<String, String> vciFieldTypeMap = new HashMap<String, String>() {{
        put(VciFieldTypeEnum.VTString.name(), "text");
        put(VciFieldTypeEnum.VTInteger.name(), "text");
        put(VciFieldTypeEnum.VTLong.name(), "text");
        put(VciFieldTypeEnum.VTDouble.name(), "text");
        put(VciFieldTypeEnum.VTClob.name(), "text");
        put(VciFieldTypeEnum.VTBoolean.name(), "truefalse");
        put(VciFieldTypeEnum.VTDateTime.name(), "datetime");
        put(VciFieldTypeEnum.VTDate.name(), "datetime");
        put(VciFieldTypeEnum.VTTime.name(), "datetime");
        put(VciFieldTypeEnum.VTFilePath.name(), "file");
    }};
    /**
     * æ ‡è®°æµç¨‹ä¸­ä¸šåŠ¡æ•°æ®æ˜¯å¦é€šè¿‡
     *
     * @param oid     ä¸šåŠ¡æ•°æ®ä¸»é”®
     * @param btmName ä¸šåŠ¡ç±»åž‹
     * @param pass    æ˜¯å¦é€šè¿‡
     * @return æ‰§è¡Œç»“æžœ
     */
    @Override
    public BaseResult markDataPassing(String oid, String btmName, Boolean pass) {
        VciBaseUtil.alertNotNull(oid, "业务数据主键", btmName, "业务类型", pass, "标记类型");
        boolean flag = false;
        try {
            ClientBusinessObjectOperation operation = new ClientBusinessObjectOperation();
            ClientBusinessObject data = operation.readBusinessObjectById(oid, btmName);
            if (data == null || StringUtils.isBlank(data.getOid())) {
                return BaseResult.fail(DATA_OID_NOT_EXIST);
            }
            data.setAttributeValue("passing", String.valueOf(pass));
            flag = operation.updateBuinessObject(data);
        } catch (VCIError e) {
            e.printStackTrace();
        }
        if (flag) {
            return BaseResult.success();
        } else {
            return BaseResult.fail("标记失败");
        }
    }
    /**
     * ä½¿ç”¨åˆ†ç±»çš„主键获取业务数据
     *
     * @param btmType     ä¸šåŠ¡ç±»åž‹
     * @param queryObject æŸ¥è¯¢å¯¹è±¡
     * @return è¡¨æ ¼çš„æ˜¾ç¤ºå¯¹è±¡å€¼
     */
    @Override
    public DataGrid<Map<String, String>> getTableDataByExecutionId(String btmType, BaseQueryObject queryObject) {
        VciBaseUtil.alertNotNull(btmType, "业务类型");
        if (queryObject == null) {
            queryObject = new BaseQueryObject();
        }
        if (queryObject.getConditionMap() == null) {
            queryObject.setConditionMap(new HashMap<>());
        }
        Map<String, String> conditionMap = queryObject.getConditionMap();
        PageHelper pageHelper = queryObject.getPageHelper();
        if (!conditionMap.containsKey("oid")) {
            throw new VciBaseException("业务数据主键不能为空");
        }
        List<String> oidList = VciBaseUtil.str2List(conditionMap.get("oid"));
        Map<String, String> oidMap = new HashMap<>();
        if (conditionMap.get("oid").contains(",")) {
            oidMap.put("oid", QueryOptionConstant.IN +"("+ VciBaseUtil.toInSql(oidList.toArray(new String[0])) + ")");
        } else {
            oidMap.put("oid", conditionMap.get("oid"));
        }
        if (CollectionUtils.isEmpty(oidMap)) {
            throw new VciBaseException("业务数据主键不能为空");
        }
        List<ClientBusinessObject> cbos = boService.queryCBO(btmType, oidMap);
        if (CollectionUtils.isEmpty(cbos)) {
            throw new VciBaseException("未找到业务数据");
        }
        ClientBusinessObject cbo = cbos.get(0);
        String templateOid = cbo.getAttributeValue("CODETEMPLATEOID");
        Map<String, String> templateOidMap = new HashMap<>();
        templateOidMap.put("oid", templateOid);
        List<CodeClassifyTemplateDO> templateDOList = boService.queryObject(CodeClassifyTemplateDO.class, templateOidMap);
        templateOidMap.clear();
        templateOidMap.put("CLASSIFYTEMPLATEOID",templateOid);
        List<CodeClassifyTemplateAttrDO> attrDOList = boService.queryObject(CodeClassifyTemplateAttrDO.class, templateOidMap);
        if (CollectionUtils.isEmpty(templateDOList)) {
            logger.error("找不到业务数据关联的模板,模板主键:" + templateOid);
            throw new VciBaseException("找不到业务数据关联的模板");
        }
        CodeClassifyTemplateVO templateVO = templateService.codeClassifyTemplateDO2VO(templateDOList.get(0));
        templateVO.setAttributes(templateAttrService.codeClassifyTemplateAttrDO2VOs(attrDOList));
        try {
            if (oidList.size() > 1){
                DataGrid<Map<String,String>> allDataGrid = new DataGrid<>();
                List<Map<String,String>> allData = new ArrayList<>();
                oidList.forEach(oid -> {
                    Map<String,String> condition = new HashMap<>();
                    condition.put("oid",oid);
                    DataGrid<Map<String, String>> dataGrid = queryGrid(btmType, templateVO, condition, pageHelper);
                    allData.addAll(dataGrid.getData());
                });
                allDataGrid.setData(allData);
                return allDataGrid;
            }else {
                return queryGrid(btmType, templateVO, conditionMap, pageHelper);
            }
        } catch (Exception e) {
            System.out.println(e.getMessage());
            return null;
        }
    }
    /**
     * æ‰¹é‡ä¿å­˜æµç¨‹æ‰§è¡Œé¡µé¢ä¿®æ”¹çš„内容
     *
     * @param orderDTOList ç¼–码相关的信息,不需要码段的信息
     * @return æ‰§è¡Œç»“æžœ
     */
    @Override
    public BaseResult batchUpdateCode(List<CodeOrderDTO> orderDTOList) {
        VciBaseUtil.alertNotNull(orderDTOList,"编码申请相关的属性内容");
        orderDTOList.forEach(orderDTO -> {
            VciBaseUtil.alertNotNull(orderDTO, "编码申请相关的属性的内容都为空", orderDTO.getOid(), "数据主键",
                    orderDTO.getCodeClassifyOid(), "主题库分类的主键");
        });
        Map<String, CodeOrderDTO> orderDTOMap = orderDTOList.stream().filter(orderDTO -> orderDTO != null && StringUtils.isNotBlank(orderDTO.getOid())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getOid(), t -> t));
        List<ClientBusinessObject> updateList = new ArrayList<>();
        // åº”该都是一个分类下的业务数据,找第一条的就行
        CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(orderDTOList.get(0).getCodeClassifyOid());
        Map<String,String> cboOidMap = new HashMap<>();
        if (CollectionUtils.isEmpty(orderDTOMap.keySet())){
            throw new VciBaseException(DATA_OID_NOT_EXIST);
        }
        cboOidMap.put("oid",QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(orderDTOMap.keySet().toArray(new String[0])) + ")");
        List<ClientBusinessObject> cboList = boService.queryCBO(classifyFullInfo.getTopClassifyVO().getBtmtypeid(), cboOidMap);
        if (CollectionUtils.isEmpty(cboList)){
            throw new VciBaseException(DATA_OID_NOT_EXIST);
        }
        BatchCBO batchCBO = new BatchCBO();
        CodeClassifyTemplateVO firstTemplateVO = templateService.getObjectHasAttrByOid(orderDTOMap.values().stream().findFirst().get().getTemplateOid());
        Map<String, ClientBusinessObject> cboMap = cboList.stream().filter(cbo -> cbo != null).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getOid(), t -> t));
        orderDTOMap.keySet().stream().forEach(oid -> {
            CodeOrderDTO orderDTO = orderDTOMap.get(oid);
            ClientBusinessObject cbo = cboMap.get(oid);
            if (!cbo.getTs().contains(VciDateUtil.date2Str(orderDTO.getTs(), VciDateUtil.DateTimeFormat))) {
                throw new VciBaseException("数据不是最新的,可能他人已经修改,请刷新后再试");
            }
            if (!CodeDefaultLC.EDITING.getValue().equalsIgnoreCase(cbo.getLcStatus()) && !orderDTO.isEditInProcess()) {
                throw new VciBaseException("数据不是{0}的状态,不允许修改", new String[]{CodeDefaultLC.EDITING.getText()});
            }
            //1. åˆ¤æ–­å¿…输项
            CodeClassifyTemplateVO templateVO = templateService.getObjectHasAttrByOid(orderDTO.getTemplateOid());
            checkRequiredAttrOnOrder(templateVO, orderDTO);
            //2.先注入,再组合,最后校验
            switchClassifyLevelOnOrder(templateVO, classifyFullInfo, orderDTO);
            //3.处理组合规则。组合规则不能使用编码的属性,因为编码的生成可能是需要属性的
            switchComponentAttrOnOrder(templateVO, orderDTO);
            //4.校验规则
            checkVerifyOnOrder(templateVO, orderDTO);
            //5.判断关键属性
            checkKeyAttrOnOrder(classifyFullInfo, templateVO, orderDTO);
            //6.校验枚举的内容是否正确
            checkEnumOnOrder(templateVO, orderDTO);
            //7.处理时间格式,在数据库里面不论是字符串还是日期格式,都使用相同的格式存储
            switchDateAttrOnOrder(templateVO, orderDTO);
            //默认的内容不能变,所以只需要拷贝自定义的相关属性即可
            copyValueToCBO(classifyFullInfo, cbo, orderDTO, templateVO, true);
            //企业码和集团码的不修改
            cbo.setDescription(orderDTO.getDescription());
            cbo.setName(orderDTO.getName());
            try {
                cbo.setAttributeValueWithNoCheck("description", orderDTO.getDescription());
                cbo.setAttributeValue("name", orderDTO.getName());
            } catch (VCIError e) {
                e.printStackTrace();
            }
            batchCBO.getUpdateCbos().add(cbo);
            updateList.add(cbo);
        });
        boService.persistenceBatch(batchCBO);
        batchSaveSelectChar(firstTemplateVO, cboList);
        return BaseResult.success();
    }
    /**
     * ä½¿ç”¨åˆ†ç±»çš„编号路径,获取表格的相关定义
     *
     * @param codeClassifyIdPath åˆ†ç±»çš„编号路径,必须是从顶层节点开始,xxx/yy/zz这样的格式
     * @param functionId         åŠŸèƒ½çš„ç¼–å·
     * @return UI相关的信息(仅包含表格)
     */
    @Override
    public MdmUIInfoVO getUIInfoByClassifyIdPath(String codeClassifyIdPath, String functionId) {
        CodeClassifyVO classifyVO = classifyService.getObjectByIdPath(codeClassifyIdPath);
        if(classifyVO !=null){
            return getUIInfoByClassifyOid(classifyVO.getOid(),functionId);
        }
        return null;
    }
    /**
     * ä½¿ç”¨åˆ†ç±»çš„编号路径,获取表单的相关定义
     *
     * @param idPath ç¼–号的路径,必须从顶层节点开始,xx/yyy/zz
     * @return UI相关的信息(仅包含表单)
     */
    @Override
    public MdmUIInfoVO getFormDefineByClassifyIdPath(String idPath) {
        CodeClassifyVO classifyVO = classifyService.getObjectByIdPath(idPath);
        if(classifyVO !=null){
            return getFormDefineByClassifyOid(classifyVO.getOid());
        }
        return null;
    }
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/MdmIOServiceImpl.java
¶Ô±ÈÐÂÎļþ
ÎļþÌ«´ó
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/MdmProductCodeServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,741 @@
package org.springblade.code.service.impl;
import com.vci.corba.common.VCIError;
import com.vci.starter.web.constant.QueryOptionConstant;
import com.vci.starter.web.constant.RegExpConstant;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.pagemodel.SessionInfo;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.util.VciDateUtil;
import com.vci.web.enumpck.OsCodeFillTypeEnum;
import com.vci.web.pageModel.BatchCBO;
import com.vci.web.service.WebBoServiceI;
import com.vci.web.service.impl.FormulaServiceImpl;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
import org.springblade.code.bo.CodeClassifyFullInfoBO;
import org.springblade.code.dao.CodeAllCodeDaoI;
import org.springblade.code.dao.CodeSerialValueDaoI;
import org.springblade.code.dto.CodeOrderSecDTO;
import org.springblade.code.enumpack.CodeCutTypeEnum;
import org.springblade.code.enumpack.CodeGetValueTypeEnum;
import org.springblade.code.enumpack.CodeLevelTypeEnum;
import org.springblade.code.enumpack.CodeSecTypeEnum;
import org.springblade.code.lifecycle.CodeAllCodeLC;
import org.springblade.code.model.CodeAllCodeDO;
import org.springblade.code.model.CodeSerialValueDO;
import org.springblade.code.service.MdmProductCodeServiceI;
import org.springblade.code.vo.pagemodel.CodeBasicSecVO;
import org.springblade.code.vo.pagemodel.CodeClassifyTemplateVO;
import org.springblade.code.vo.pagemodel.CodeClassifyVO;
import org.springblade.code.vo.pagemodel.CodeRuleVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import plm.bs.bom.clientobject.ClientBusinessObject;
import java.util.*;
import java.util.stream.Collectors;
import static com.vci.web.other.BdSelectInputCharAspect.SEP;
import static org.springblade.code.constant.MdmEngineConstant.*;
/**
 * ç”Ÿæˆç¼–码的服务
 * @author weidy
 * @date 2022-3-6
 */
@Service
public class MdmProductCodeServiceImpl implements MdmProductCodeServiceI {
    /**
     * ä¸šåŠ¡æ•°æ®çš„æœåŠ¡
     */
    @Autowired
    private WebBoServiceI boService;
    /**
     * æ‰€æœ‰çš„编码的内容
     */
    @Autowired
    private CodeAllCodeDaoI allCodeMapper;
    /**
     * æµæ°´å·çš„相关的信息
     */
    @Autowired
    private CodeSerialValueDaoI serialValueMapper;
    /**
     * å…¬å¼çš„æœåŠ¡
     */
    @Autowired
    private FormulaServiceImpl formulaService;
    /**
     * ç”Ÿæˆç¼–码--并且保存数据
     *
     * @param classifyFullInfoBO åˆ†ç±»çš„全部信息
     * @param templateVO         æ¨¡æ¿çš„æ˜¾ç¤ºå¯¹è±¡
     * @param ruleVO             ç¼–码规则的显示对象
     * @param secDTOList         å„个码段的值
     * @param dataCBOList        ä¸šåŠ¡æ•°æ®
     */
    @Override
    public synchronized List<String> productCodeAndSaveData(CodeClassifyFullInfoBO classifyFullInfoBO, CodeClassifyTemplateVO templateVO,
                                                            CodeRuleVO ruleVO, List<CodeOrderSecDTO> secDTOList, List<ClientBusinessObject> dataCBOList) {
        BatchCBO batchCBO = new BatchCBO();
        WebUtil.setPersistence(false);
        dataCBOList = dataCBOList.stream().sorted(((o1, o2) -> o1.getCreateTime().compareTo(o2.getCreateTime()))).collect(Collectors.toList());
        batchCBO.getCreateCbos().addAll(dataCBOList);
        List<String> codeList = new ArrayList<>();
        /*****
         * ä¿è¯å¹¶å‘的时候,最大流水号都对的,但是这种加锁有弊端
         *
         */
        if(dataCBOList.stream().anyMatch(cbo->StringUtils.isNotBlank(cbo.getId()) && StringUtils.isNotBlank(cbo.getAttributeValue(CODE_SEC_LENGTH_FIELD)))){
            //是历史数据导入
            //历史数据执行的时候,这个系统会很卡
            //主要是为了录入最大流水号和allcode
            SessionInfo sessionInfo = VciBaseUtil.getCurrentUserSessionInfo();
            List<CodeAllCodeDO> allCodeDOList = new ArrayList<>();
            Map<String/**流水依据**/,Map<String/**码段的主键**/,Double/**最大流水号**/>> maxSerialMap = new HashMap<>();
            dataCBOList.parallelStream().forEach(cbo->{
                VciBaseUtil.setCurrentUserSessionInfo(sessionInfo);
                String code = cbo.getId();
                List<String> serialUnitList = new ArrayList<>();
                String[] secLengths = cbo.getAttributeValue(CODE_SEC_LENGTH_FIELD).split("#");
                List<CodeBasicSecVO> secVOList = ruleVO.getSecVOList().stream().sorted(((o1, o2) -> o1.getOrderNum().compareTo(o2.getOrderNum()))).collect(Collectors.toList());
                Map<String/**码段的主键**/,String/**码段的值**/> serialValueMap = new HashMap<>();
                Map<String, CodeBasicSecVO> secVOMap = secVOList.stream().collect(Collectors.toMap(s -> s.getOid(), t -> t));
                for (int i = 0; i < secLengths.length; i++) {
                    CodeBasicSecVO secVO = secVOList.get(i);
                    String thisSecValue  = "";
                    if(i == 0){
                        thisSecValue = code.contains("#")?code.substring(0,code.indexOf("#")):code;
                    } else if(i == secLengths.length-1){
                        //最后
                        thisSecValue =  code.contains("#")?code.substring(code.lastIndexOf("#")):code;
                    }else {
                        int start = 0;
                        for (int j = 0; j < i; j++) {
                            start += VciBaseUtil.getInt(secLengths[j]) + 1;
                        }
                        thisSecValue = code.substring(start,start+VciBaseUtil.getInt(secLengths[1]));
                    }
                    if(VciBaseUtil.getBoolean(secVO.getSerialDependFlag())){
                        serialUnitList.add(thisSecValue);
                    }
                    if(CodeSecTypeEnum.CODE_SERIAL_SEC.getValue().equalsIgnoreCase(secVO.getSectype())){
                        serialValueMap.put(secVO.getOid(),thisSecValue);
                    }
                }
                String serialUnitString = serialUnitList.size() == 0 ? EMPTY_SERIAL_UNIT : serialUnitList.stream().collect(Collectors.joining(SERIAL_UNIT_SPACE));
                List<String> serialUnFileStringList = new ArrayList<>();
                if(!CollectionUtils.isEmpty(serialValueMap)){
                    serialValueMap.forEach((secOid,secValue)->{
                        //要看是不是补位的
                        CodeBasicSecVO secVO = secVOMap.get(secOid);
                        Double serialDb = null;
                        if(OsCodeFillTypeEnum.NONE.getValue().equalsIgnoreCase(secVO.getCodeFillType())){
                            //不补码
                            //把所有不是数字的去掉,因为可能会是老数据,新规则
                            serialDb = VciBaseUtil.getDouble(killUnNumberChar(secValue));
                        }else {
                            //左右填充的,我们需要
                            serialDb = VciBaseUtil.getDouble(killUnNumberChar(killFillChar(secValue,secVO.getCodeFillSeparator(),
                                    OsCodeFillTypeEnum.LEFT.getValue().equalsIgnoreCase(secVO.getCodeFillType()))));
                        }
                        Map<String, Double> thisUnitMaxMap = maxSerialMap.getOrDefault(serialUnitString, new HashMap<>());
                        thisUnitMaxMap.put(secOid,serialDb);
                        maxSerialMap.put(serialUnitString,thisUnitMaxMap);
                        serialUnFileStringList.add(String.valueOf(serialDb));
                    });
                }
                CodeAllCodeDO allCodeDO = new CodeAllCodeDO();
                allCodeDO.setCodeClassifyOid(classifyFullInfoBO.getCurrentClassifyVO().getOid());
                allCodeDO.setCodeRuleOid(ruleVO.getOid());
                allCodeDO.setId(cbo.getId());
                allCodeDO.setCodeClassifyTemplateOid(templateVO.getOid());
                allCodeDO.setCreateCodeBtm(cbo.getBtmName());
                allCodeDO.setCreateCodeOid(cbo.getOid());
                allCodeDO.setSerialUnit(serialUnitString);
                allCodeDO.setUnFillSerial(serialUnFileStringList.stream().collect(Collectors.joining(SERIAL_VALUE_SPACE)));
                allCodeDO.setLcStatus(cbo.getLcStatus());
                allCodeDOList.add(allCodeDO);
            });
            //处理最大的流水号
            List<CodeSerialValueDO> addSerialValueList = new ArrayList<>();
            List<CodeSerialValueDO> editSerialValueList = new ArrayList<>();
            maxSerialMap.forEach((serialUnit,secOidMaxMap)->{
                secOidMaxMap.forEach((secOid,maxSerial)->{
                    Map<String, String> conditionMap = new HashMap<>();
                    conditionMap.put("codeRuleOid", ruleVO.getOid());
                    conditionMap.put("serialUnit", serialUnit);
                    //这个字段是为了解决多个流水的问题
                    conditionMap.put("codeSecOid", secOid);
                    List<CodeSerialValueDO> serialValueDOS = serialValueMapper.selectByCondition(conditionMap, new PageHelper(-1));
                    if (!CollectionUtils.isEmpty(serialValueDOS)) {
                        CodeSerialValueDO serialValueDO = serialValueDOS.get(0);
                        if(VciBaseUtil.getDouble(serialValueDO.getMaxSerial())<maxSerial){
                            serialValueDO.setMaxSerial(String.valueOf(maxSerial));
                            editSerialValueList.add(serialValueDO);
                        }
                    }else{
                        //没有
                        CodeSerialValueDO serialValueDO = new CodeSerialValueDO();
                        serialValueDO.setCodeRuleOid(ruleVO.getOid());
                        serialValueDO.setSerialUnit(serialUnit);
                        serialValueDO.setCodeSecOid(secOid);
                        serialValueDO.setMaxSerial(maxSerial.toString());
                        addSerialValueList.add(serialValueDO);
                    }
                });
            });
            if(!CollectionUtils.isEmpty(addSerialValueList)){
                batchCBO.copyFromOther(serialValueMapper.batchInsert(addSerialValueList));
            }
            if(!CollectionUtils.isEmpty(editSerialValueList)){
                batchCBO.copyFromOther(serialValueMapper.batchUpdate(editSerialValueList));
            }
            //处理allCode
            if(!CollectionUtils.isEmpty(allCodeDOList)){
                    Map<String, List<CodeAllCodeDO>> ruleGroup = allCodeDOList.stream().collect(Collectors.groupingBy(s -> s.getCodeRuleOid()));
                Map<String, CodeAllCodeDO> codeDOMap = allCodeDOList.stream().collect(Collectors.toMap(s -> s.getCodeRuleOid() + SEP + s.getId(), t -> t));
                List<CodeAllCodeDO> addCodeDOs = new ArrayList<>();
                List<CodeAllCodeDO> editCodeDOs = new ArrayList<>();
                ruleGroup.forEach((ruleOid,allCodeDOS)->{
                    VciBaseUtil.switchCollectionForOracleIn(allCodeDOS).stream().forEach(codeDOs->{
                        Map<String,String> conditionMap = new HashMap<>();
                        conditionMap.put("coderuleoid",ruleOid);
                        conditionMap.put("id",QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(codeDOs.stream().map(s->s.getId()).collect(Collectors.toList()).toArray(new String[0])) + ")");
                        List<CodeAllCodeDO> existCodes = allCodeMapper.selectByCondition(conditionMap, new PageHelper(-1));
                        if(!CollectionUtils.isEmpty(existCodes)){
                            existCodes.stream().forEach(existCode->{
                                String rule_id = existCode.getCodeRuleOid() + SEP + existCode.getId();
                                if(codeDOMap.containsKey(rule_id)){
                                    CodeAllCodeDO newCodeDO = codeDOMap.get(rule_id);
                                    existCode.setCreateCodeOid(newCodeDO.getOid());
                                    existCode.setCreateCodeBtm(newCodeDO.getCreateCodeBtm());
                                    existCode.setCodeClassifyTemplateOid(newCodeDO.getCodeClassifyTemplateOid());
                                    existCode.setCodeClassifyOid(newCodeDO.getCodeClassifyOid());
                                    existCode.setLcStatus(newCodeDO.getLcStatus());
                                    editCodeDOs.add(existCode);
                                }
                            });
                        }
                    });
                });
                if(!CollectionUtils.isEmpty(editCodeDOs)){
                    Set<String> exitIds = editCodeDOs.stream().map(s -> s.getCodeRuleOid() + SEP + s.getId()).collect(Collectors.toSet());
                    addCodeDOs = allCodeDOList.stream().filter(s -> !exitIds.contains(s.getCodeRuleOid() + SEP + s.getId())).collect(Collectors.toList());
                }else{
                    addCodeDOs = allCodeDOList;
                }
                if(!CollectionUtils.isEmpty(editCodeDOs)){
                    batchCBO.copyFromOther(allCodeMapper.batchUpdate(editCodeDOs));
                }
                if(!CollectionUtils.isEmpty(addCodeDOs)){
                    batchCBO.copyFromOther(allCodeMapper.batchInsert(addCodeDOs));
                    Map<String, String> statusMap = addCodeDOs.stream().collect(Collectors.toMap(s -> s.getOid(), s -> s.getLcStatus()));
                    batchCBO.getCreateCbos().stream().filter(s -> StringUtils.equalsIgnoreCase("codeallcode",s.getBtmName())).forEach(s -> {
                        s.setLcStatus(statusMap.get(s.getOid()));
                        try {
                            s.setAttributeValue("lcstatus",statusMap.get(s.getOid()));
                        } catch (VCIError e) {
                            e.printStackTrace();
                        }
                    });
                }
            }
            WebUtil.setPersistence(true);
            boService.persistenceBatch(batchCBO);
            return codeList;
        }else {
            List<CodeBasicSecVO> secVOList = ruleVO.getSecVOList().stream().sorted(((o1, o2) -> o1.getOrderNum().compareTo(o2.getOrderNum()))).collect(Collectors.toList());
            List<String> serialUnitList = new LinkedList<>();
            List<String> secValueList = new ArrayList<>();
            Map<String, String> secValueMap = secDTOList.stream().collect(Collectors.toMap(s -> s.getSecOid(), s -> s.getSecValue()));
            List<CodeBasicSecVO> serialSecVOList = new ArrayList<>();
            List<CodeBasicSecVO> attrSecVOList = new ArrayList<>();
            for (int i = 0; i < secVOList.size(); i++) {
                CodeBasicSecVO secVO = secVOList.get(i);
                switchSecValue(secVO, secValueMap, classifyFullInfoBO, serialSecVOList, attrSecVOList, serialUnitList, secValueList);
            }
            //处理属性码段和流水码段
            Map<String/**流水码段的主键**/, Map<String/**流水依据**/, Double>> lastMaxSerialValueMap = new HashMap<>();
            List<CodeAllCodeDO> allCodeDOList = new ArrayList<>();
            //已经存储的最大流水号的内容
            Map<String/**码段的主键**/, Map<String, CodeSerialValueDO>> maxSerialValueMap = new HashMap<>();
            for (int i = 0; i < dataCBOList.size(); i++) {
                ClientBusinessObject cbo = dataCBOList.get(i);
                List<String> thisSecValueList = new LinkedList<>();
                for (int j = 0; j < secValueList.size(); j++) {
                    thisSecValueList.add(secValueList.get(j));
                }
                List<String> thisSerialUnitList = new LinkedList<>();
                //因为流水依据每次可能不一样,所以每次都拷贝一份
                for (int j = 0; j < serialUnitList.size(); j++) {
                    thisSerialUnitList.add(serialUnitList.get(j));
                }
                //先看看有没有属性的码段
                boolean attrSevIsSerialDepend = CollectionUtils.isEmpty(attrSecVOList) ? false : (attrSecVOList.stream().anyMatch(s -> VciBaseUtil.getBoolean(s.getSerialDependFlag())));
                switchAttrSecValue(attrSecVOList, cbo, thisSecValueList, attrSevIsSerialDepend, thisSerialUnitList);
                String serialUnitString = thisSerialUnitList.size() == 0 ? EMPTY_SERIAL_UNIT : thisSerialUnitList.stream().collect(Collectors.joining(SERIAL_UNIT_SPACE));
                switchSerialSecValue(serialSecVOList, attrSevIsSerialDepend, ruleVO, serialUnitString, maxSerialValueMap, thisSecValueList, lastMaxSerialValueMap, i == 0);
                //组装编码的值
                cbo.setId(thisSecValueList.stream().collect(Collectors.joining()));
                codeList.add(cbo.getId());
                StringBuilder sb = new StringBuilder();
                //把码段里面都找一下流水号
                for (int j = 0; j < serialSecVOList.size(); j++) {
                    CodeBasicSecVO secVO = serialSecVOList.get(j);
                    Double serialValue = lastMaxSerialValueMap.getOrDefault(secVO.getOid(), new HashMap<>()).getOrDefault(serialUnitString, 0d);
                    if (serialValue != null) {
                        sb.append(String.valueOf(serialValue.longValue())).append(SERIAL_VALUE_SPACE);
                    }
                }
                //要存储最后的全部allcode
                wrapperAllCode(classifyFullInfoBO, ruleVO, cbo, templateVO, allCodeDOList, serialUnitString, sb.toString());
            }
            batchCBO.copyFromOther(allCodeMapper.batchInsert(allCodeDOList));
            saveSerialValue(batchCBO, ruleVO, lastMaxSerialValueMap, maxSerialValueMap);
            Map<String, String> statusMap = allCodeDOList.stream().collect(Collectors.toMap(s -> s.getOid(), s -> s.getLcStatus()));
            batchCBO.getCreateCbos().stream().filter(s -> StringUtils.equalsIgnoreCase("codeallcode",s.getBtmName())).forEach(s -> {
                s.setLcStatus(statusMap.get(s.getOid()));
                try {
                    s.setAttributeValue("lcstatus",statusMap.get(s.getOid()));
                } catch (VCIError e) {
                    e.printStackTrace();
                }
            });
        }
        WebUtil.setPersistence(true);
        boService.persistenceBatch(batchCBO);
        return codeList;
    }
    /**
     * åŽ»é™¤è¡¥ä½å­—ç¬¦
     * @param s å­—符
     * @param fillString è¡¥ä½å­—符
     * @param left æ˜¯å¦å·¦è¡¥ä½
     * @return æ›¿æ¢åŽçš„值
     */
    private String killFillChar(String s, String fillString,boolean left){
        Integer index = 0;
        String value = s;
        if(left){
            for (int i = 0; i < s.length(); i++) {
                char c = s.charAt(i);
                if((new String(new char[]{c})).equalsIgnoreCase(fillString)){
                    index = i;
                }
            }
            if(index >0){
                value = value.substring(index);
            }
        }else{
            //从右往左找
            for (int i = s.length()-1; i >=0; i++) {
                char c = s.charAt(i);
                if((new String(new char[]{c})).equalsIgnoreCase(fillString)){
                    index = i;
                }
            }
            if(index >0){
                value = value.substring(0,index);
            }
        }
        return value;
    }
    /**
     * åŽ»æŽ‰ä¸æ˜¯æ•°å­—çš„å­—ç¬¦
     * @param s å­—符
     * @return æ›¿æ¢åŽçš„值
     */
    private String killUnNumberChar(String s){
        Integer lastUnNumberIndex = 0;
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if(!(new String(new char[]{c})).matches(RegExpConstant.NUMBER)){
                lastUnNumberIndex = i;
            }
        }
        String value = s;
        if(lastUnNumberIndex >0){
            value = value.substring(lastUnNumberIndex);
        }
        return value;
    }
    /**
     * å›žæ”¶ç å€¼
     *
     * @param btmId                 ä¸šåŠ¡æ•°æ®çš„ä¸šåŠ¡ç±»åž‹
     * @param businessOidCollection ä¸šåŠ¡æ•°æ®çš„ä¸»é”®
     * @return å—影响的数据内容
     */
    @Override
    public BatchCBO recycleCode(String btmId, Collection<String> businessOidCollection) {
        boolean oldPersistence =  WebUtil.isPersistence();
        WebUtil.setPersistence(false);
        BatchCBO batchCBO = new BatchCBO();
        VciBaseUtil.switchCollectionForOracleIn(businessOidCollection).stream().forEach(oids-> {
            Map<String, String> conditionMap = new HashMap<>();
            //编码要记录为回收的状态
            conditionMap.put("createcodeoid", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(oids.toArray(new String[0])) + ")");
            conditionMap.put("createcodebtm", btmId);
            List<CodeAllCodeDO> allCodeDOS = allCodeMapper.selectByCondition(conditionMap, new PageHelper(-1));
            if (!CollectionUtils.isEmpty(allCodeDOS)) {
                allCodeDOS.stream().forEach(codeDO->{
                    codeDO.setLcStatus(CodeAllCodeLC.TASK_BACK.getValue());
                });
                batchCBO.copyFromOther(allCodeMapper.batchUpdate(allCodeDOS));
            }
        });
        WebUtil.setPersistence(oldPersistence);
        return batchCBO;
    }
    /**
     * è½¬æ¢ç å€¼çš„内容
     * @param secVO ç æ®µçš„内容
     * @param secValueMap ç å€¼çš„内容,key是码段的主键,value是码值
     * @param classifyFullInfoBO åˆ†ç±»çš„全部信息
     * @param serialSecVOList æµæ°´ç æ®µ
     * @param attrSecVOList å±žæ€§ç æ®µ
     * @param serialUnitList æµæ°´ä¾æ®
     * @param secValueList ç å€¼åˆ—表
     */
    private void switchSecValue(CodeBasicSecVO secVO,Map<String,String> secValueMap,
                                CodeClassifyFullInfoBO classifyFullInfoBO,List<CodeBasicSecVO> serialSecVOList,
                                List<CodeBasicSecVO> attrSecVOList, List<String> serialUnitList,
                                List<String> secValueList ){
        CodeSecTypeEnum secType = CodeSecTypeEnum.forValue(secVO.getSectype());
        String secValue = secValueMap.getOrDefault(secVO.getOid(), "");
        switch (secType) {
            case CODE_FIXED_SEC:
                //固定码段的,直接用码值,不论码值的长度是多少,因为可变长度和固定长度是控制在码段管理里面的码值定义的
                break;
            case CODE_DATE_SEC:
                //时间码段,需要将当前时间依据时间格式进行转换.
                //时间码段不涉及到是否补位
                secValue = VciDateUtil.date2Str(new Date(), secVO.getCodeDateFormatStr());
                break;
            case CODE_CLASSIFY_SEC:
                //分类码段的,也是从前端选择了码值即可,不论码值的长度是多少
                break;
            case CODE_LEVEL_SEC:
                //层级码段,需要从分类上获取相应的信息
                if (CodeLevelTypeEnum.MIN.getValue().equalsIgnoreCase(secVO.getCodeLevelType())) {
                    //最小层,因为我们只能在叶子节点上申请编码,所以这个就是当前分类的
                    if (CodeGetValueTypeEnum.CURRENT.getValue().equalsIgnoreCase(secVO.getCodeGetValueType()) || CollectionUtils.isEmpty(classifyFullInfoBO.getParentClassifyVOs())) {
                        //就是当前分类的
                        secValue = classifyFullInfoBO.getCurrentClassifyVO().getId();
                    } else {
                        //我们需要从顶层开始找到当前分类为止
                        secValue = classifyFullInfoBO.getParentClassifyVOs().stream().sorted(((o1, o2) -> o1.getDataLevel().compareTo(o2.getDataLevel()))).map(CodeClassifyVO::getId).collect(Collectors.joining()) + classifyFullInfoBO.getCurrentClassifyVO().getId();
                    }
                } else {
                    //指定层,我们需要通过上级的来获取
                    if (CollectionUtils.isEmpty(classifyFullInfoBO.getParentClassifyVOs())) {
                        //说明当前已经是最高的了
                        secValue = classifyFullInfoBO.getCurrentClassifyVO().getId();
                    } else {
                        //这个我们需要看看,层级是不是大于了最大层级的数
                        List<CodeClassifyVO> parentClassifyVOList = classifyFullInfoBO.getParentClassifyVOs().stream().sorted(((o1, o2) -> o1.getDataLevel().compareTo(o2.getDataLevel()))).collect(Collectors.toList());
                        if (secVO.getCodeLevelValue() > (parentClassifyVOList.size() + 1)) {
                            //指定的层级比当前的层级还大了,所以只能获取当前层级了
                            if (CodeGetValueTypeEnum.CURRENT.getValue().equalsIgnoreCase(secVO.getCodeGetValueType())) {
                                secValue = classifyFullInfoBO.getCurrentClassifyVO().getId();
                            } else {
                                secValue = parentClassifyVOList.stream().map(CodeClassifyVO::getId).collect(Collectors.joining()) + classifyFullInfoBO.getCurrentClassifyVO().getId();
                            }
                        } else {
                            //我们获取其中指定层的内容
                            if (CodeGetValueTypeEnum.CURRENT.getValue().equalsIgnoreCase(secVO.getCodeGetValueType())) {
                                CodeClassifyVO classifyVO = parentClassifyVOList.stream().filter(s -> s.getDataLevel().intValue() == secVO.getCodeLevelValue().intValue()).findFirst().orElseGet(() -> null);
                                if (classifyVO != null) {
                                    secValue = classifyVO.getId();
                                }
                            } else {
                                //小于等于的全部拿出来
                                secValue = parentClassifyVOList.stream().filter(s -> s.getDataLevel().intValue() <= secVO.getCodeLevelValue().intValue()).sorted(((o1, o2) -> o1.getDataLevel().compareTo(o2.getDataLevel()))).map(CodeClassifyVO::getId).collect(Collectors.joining());
                            }
                        }
                    }
                }
                //看看长度是否需要截断
                if (!CodeCutTypeEnum.NONE.getValue().equalsIgnoreCase(secVO.getValueCutType()) &&
                        secVO.getValueCutLength() != null && secVO.getValueCutLength() > 0 && secValue.length() > secVO.getValueCutLength()) {
                    if (CodeCutTypeEnum.RIGHT.getValue().equalsIgnoreCase(secVO.getValueCutType())) {
                        //左截取是从左边剪掉,右截取是从右边剪掉--保留左边
                        secValue = secValue.substring(0, secVO.getValueCutLength());
                    } else {
                        secValue = secValue.substring(secValue.length() - secVO.getValueCutLength());
                    }
                }
                break;
            case CODE_REFER_SEC:
                //引用的在页面上已经选择了,所以直接使用前端上传递的值
                //引用就是参照,可能是其他的分类(业务类型)下的数据,所以只在页面上选择
                break;
            case CODE_ATTR_SEC:
                //属性与引用的区别是,属性是当前数据里的属性,而引用可能是引用其他的分类的(业务类型)
                //因为可能是批量的数据的操作,所以我们这里不能直接处理属性,需要后边一边处理
                secValue = "${attr_" + secVO.getOid() + "}";
                attrSecVOList.add(secVO);
                break;
            case CODE_VARIABLE_SEC:
                //可变码段,是在页面上输入内容
                if (secValue.length() > VciBaseUtil.getInt(secVO.getCodeSecLength())) {
                    throw new VciBaseException("【{0}】这个码段是可变码段,但是现在输入的码值的长度({1})超过了规定的长度{2}", new String[]{secVO.getName(), String.valueOf(secValue.length()), secVO.getCodeSecLength()});
                }
                OsCodeFillTypeEnum fillTypeEnum = OsCodeFillTypeEnum.forValue(secVO.getCodeFillType());
                secValue = fillString(VciBaseUtil.getInt(secVO.getCodeSecLength()), fillTypeEnum, secValue, secVO.getCodeFillSeparator());
                break;
            case CODE_SERIAL_SEC:
                //流水码段
                serialSecVOList.add(secVO);
                secValue = "${" + secVO.getOid() + "}";
            default:
                break;
        }
        if (VciBaseUtil.getBoolean(secVO.getSerialDependFlag())) {
            serialUnitList.add(secValue);
        }
        secValueList.add(secValue);
    }
    /**
     * è¡¥ä½
     * @param totalLength æ€»é•¿åº¦
     * @param fillTypeEnum è¡¥ä½æ–¹å¼
     * @param text å½“前的内容
     * @param fillChar è¡¥ä½çš„字符
     * @return ä¸å¡«å……位置和长度已经达到/超过的时候不会填充
     */
    private String fillString(int totalLength,OsCodeFillTypeEnum fillTypeEnum,String text,String fillChar){
        if(text.length() >= totalLength || OsCodeFillTypeEnum.NONE.equals(fillTypeEnum)){
            //不用补位了
            return  text;
        }
        int balance = totalLength - text.length();
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < balance; i++) {
            sb.append(fillChar);
        }
        if(OsCodeFillTypeEnum.LEFT.equals(fillTypeEnum)) {
            text = sb.toString() + text;
        }else {
            text = text + sb.toString();
        }
        return  text;
    }
    /**
     * è½¬æ¢å±žæ€§ç æ®µçš„值
     * @param attrSecVOList å±žæ€§ç æ®µçš„æ˜¾ç¤ºå¯¹è±¡
     * @param cbo ä¸šåŠ¡æ•°æ®ï¼Œç”¨äºŽèŽ·å–ç æ®µçš„å€¼
     * @param thisSecValueList ç å€¼çš„列表
     * @param attrSevIsSerialDepend æ˜¯å¦æœ‰ä½œä¸ºæµæ°´ä¾æ®
     * @param serialUnitList æµæ°´ä¾æ®çš„内容
     */
    private void switchAttrSecValue(List<CodeBasicSecVO> attrSecVOList,ClientBusinessObject cbo,
                                    List<String> thisSecValueList,boolean attrSevIsSerialDepend,
                                    List<String> serialUnitList){
        if (!CollectionUtils.isEmpty(attrSecVOList)) {
            attrSecVOList.stream().forEach(attrSevVO -> {
                String value = "";
                if (StringUtils.isNotBlank(attrSevVO.getGetValueClass())) {
                    //使用组合规则来处理的
                    value = getValueByFormulaForCBO(cbo, attrSevVO.getGetValueClass());
                } else {
                    value = cbo.getAttributeValue(attrSevVO.getReferAttributeId());
                }
                if (value == null) {
                    value = "";
                }
                //替换secValueList里面的内容
                for (int j = 0; j < thisSecValueList.size(); j++) {
                    String secValue = thisSecValueList.get(j);
                    if (secValue.equalsIgnoreCase("${attr_" + attrSevVO.getOid() + "}")) {
                        thisSecValueList.set(j, value);
                    }
                }
                if (attrSevIsSerialDepend) {
                    //是流水依赖的话,需要去替换一下
                    for (int j = 0; j < serialUnitList.size(); j++) {
                        String secValue = serialUnitList.get(j);
                        if (secValue.equalsIgnoreCase("${attr_" + attrSevVO.getOid() + "}")) {
                            serialUnitList.set(j, value);
                        }
                    }
                }
            });
        }
    }
    /**
     * ä½¿ç”¨CBO处理组合规则的内容
     * @param cbo æ•°æ®çš„内容
     * @param rule è§„则的内容
     * @return è½¬æ¢åŽçš„
     */
    private String getValueByFormulaForCBO(ClientBusinessObject cbo,String rule){
        Map<String,String> dataMap = new HashMap<>();
        WebUtil.copyValueToMapFromCbos(cbo,dataMap);
        return formulaService.getValueByFormula(dataMap,rule);
    }
    /**
     * è½¬æ¢æµæ°´ç æ®µçš„值
     * @param serialSecVOList æµæ°´ç æ®µ
     * @param attrSevIsSerialDepend æ˜¯å¦æœ‰å±žæ€§ç æ®µå‚与流水
     * @param ruleVO è§„则的内容
     * @param serialUnitString æµæ°´ä¾æ®
     * @param maxSerialValueMap æœ€å¤§çš„æµæ°´å·
     * @param thisSecValueList æœ¬æ¬¡çš„码值
     * @param lastMaxSerialValueMap å°è£…后
     * @param firstData æ˜¯å¦ä¸ºç¬¬ä¸€æ¡æ•°æ®
     */
    private void switchSerialSecValue(List<CodeBasicSecVO> serialSecVOList,boolean attrSevIsSerialDepend,
                                      CodeRuleVO ruleVO,String serialUnitString,
                                      Map<String/**码段的主键**/,Map<String/**流水依据**/,CodeSerialValueDO>> maxSerialValueMap,List<String> thisSecValueList,
                                      Map<String/**码段的主键**/,Map<String/**流水依据**/, Double>> lastMaxSerialValueMap,boolean firstData){
        if (!CollectionUtils.isEmpty(serialSecVOList)) {
            for (int j = 0; j < serialSecVOList.size(); j++) {
                CodeBasicSecVO secVO = serialSecVOList.get(j);
                if (attrSevIsSerialDepend || firstData) {
                    //如果属性码段也是依赖,则每次都要查询,如果属性码段不是依赖,则只查询一次
                    Map<String, String> conditionMap = new HashMap<>();
                    conditionMap.put("codeRuleOid", ruleVO.getOid());
                    conditionMap.put("serialUnit", serialUnitString);
                    //这个字段是为了解决多个流水的问题
                    conditionMap.put("codeSecOid", secVO.getOid());
                    List<CodeSerialValueDO> serialValueDOS = serialValueMapper.selectByCondition(conditionMap, new PageHelper(-1));
                    if (!CollectionUtils.isEmpty(serialValueDOS)) {
                        Map<String, CodeSerialValueDO> unitSerialMap = maxSerialValueMap.getOrDefault(secVO.getOid(), new HashMap<>());
                        CodeSerialValueDO serialValueDO = serialValueDOS.get(0);
                        unitSerialMap.put(serialValueDO.getSerialUnit(),serialValueDO);
                        maxSerialValueMap.put(secVO.getOid(), unitSerialMap);
                    }
                }
                Double startValue = null;
                if(maxSerialValueMap.containsKey(secVO.getOid()) && maxSerialValueMap.get(secVO.getOid()).containsKey(serialUnitString)){
                    startValue = VciBaseUtil.getDouble(maxSerialValueMap.get(secVO.getOid()).get(serialUnitString).getMaxSerial());
                }
                if(lastMaxSerialValueMap.containsKey(secVO.getOid()) && lastMaxSerialValueMap.get(secVO.getOid()).containsKey(serialUnitString)){
                    //说明多个申请,之前已经加了流水号了
                    startValue = lastMaxSerialValueMap.get(secVO.getOid()).get(serialUnitString);
                }
                Double thisSerialValue = 0d;
                if (startValue == null) {
                    //第一个编码
                    thisSerialValue = VciBaseUtil.getDouble(secVO.getSerialStart());
                } else {
                    //流水号肯定是数字
                    thisSerialValue = startValue + (j + 1) * secVO.getSerialStep();
                }
                //要看是否超过最大的流水值
                if (thisSerialValue >= secVO.getCodeFillLimit()) {
                    throw new VciBaseException("流水号已经超过允许的最大流水值{0}",new String[]{secVO.getCodeFillLimit().toString()});
                }
                //要看补位的内容
                Integer fillLength = VciBaseUtil.getInt(secVO.getCodeFillLength());
                if (fillLength == 0 || fillLength > VciBaseUtil.getInt(secVO.getCodeSecLength())) {
                    //防止在添加的地方没有控制正确
                    fillLength = VciBaseUtil.getInt(secVO.getCodeSecLength());
                }
                String serialString = String.valueOf(thisSerialValue.longValue());
                serialString = fillString(fillLength, OsCodeFillTypeEnum.forValue(secVO.getCodeFillType()), serialString, secVO.getCodeFillSeparator());
                for (int z = 0; z < thisSecValueList.size(); z++) {
                    String secValue = thisSecValueList.get(z);
                    if (secValue.equalsIgnoreCase("${" + secVO.getOid() + "}")) {
                        thisSecValueList.set(z, serialString);
                    }
                }
                Map<String, Double> unitSerialMap = lastMaxSerialValueMap.getOrDefault(secVO.getOid(), new HashMap<>());
                unitSerialMap.put(serialUnitString, thisSerialValue);
                lastMaxSerialValueMap.put(secVO.getOid(),unitSerialMap);
            }
        }
    }
    /**
     * å°è£…存储码值的对象
     * @param classifyFullInfoBO åˆ†ç±»å…¨éƒ¨çš„信息
     * @param ruleVO è§„则的内容
     * @param cbo ä¸šåŠ¡æ•°æ®
     * @param templateVO æ¨¡æ¿çš„信息
     * @param allCodeDOList æ‰€æœ‰çš„码值的对象列表
     */
    private void wrapperAllCode(CodeClassifyFullInfoBO classifyFullInfoBO,CodeRuleVO ruleVO,
                                ClientBusinessObject cbo,CodeClassifyTemplateVO templateVO,
                                List<CodeAllCodeDO> allCodeDOList,String serialUnitString,String serialValueString){
        CodeAllCodeDO allCodeDO = new CodeAllCodeDO();
        allCodeDO.setCodeClassifyOid(classifyFullInfoBO.getCurrentClassifyVO().getOid());
        allCodeDO.setCodeRuleOid(ruleVO.getOid());
        allCodeDO.setId(cbo.getId());
        allCodeDO.setCodeClassifyTemplateOid(templateVO.getOid());
        allCodeDO.setCreateCodeBtm(cbo.getBtmName());
        allCodeDO.setCreateCodeOid(cbo.getOid());
        allCodeDO.setSerialUnit(serialUnitString);
        allCodeDO.setUnFillSerial(serialValueString);
        allCodeDO.setLcStatus(cbo.getLcStatus());
        allCodeDOList.add(allCodeDO);
    }
    /**
     * ä¿å­˜æµæ°´çš„信息
     * @param batchCBO æ•°æ®å­˜å‚¨å®¹å™¨
     * @param ruleVO è§„则的显示对象
     * @param lastMaxSerialValueMap æœ€å¤§çš„æµæ°´å€¼æ˜ å°„
     * @param maxSerialValueMap ä¾æ®å­˜å‚¨çš„æœ€å¤§æµæ°´çš„内容
     */
    private void saveSerialValue(BatchCBO batchCBO,CodeRuleVO ruleVO,
                                 Map<String/**码段的主键**/,Map<String, Double>> lastMaxSerialValueMap,
                                 Map<String/**码段的主键**/,Map<String, CodeSerialValueDO>> maxSerialValueMap){
        List<CodeSerialValueDO> editSerialValueDOList = new ArrayList<>();
        List<CodeSerialValueDO> addSerialValueDOList = new ArrayList<>();
        //存储最大流水号
        lastMaxSerialValueMap.forEach((secOid,maxSerialMap)->{
            maxSerialMap.forEach((unit,maxSerial)->{
                CodeSerialValueDO serialValueDO = null;
                if(maxSerialValueMap.containsKey(secOid) && maxSerialValueMap.get(secOid).containsKey(unit)){
                    //说明有
                    serialValueDO = maxSerialValueMap.get(secOid).get(unit);
                    serialValueDO.setMaxSerial(maxSerial.toString());
                    editSerialValueDOList.add(serialValueDO);
                }else{
                    serialValueDO = new CodeSerialValueDO();
                    serialValueDO.setCodeRuleOid(ruleVO.getOid());
                    serialValueDO.setSerialUnit(unit);
                    serialValueDO.setCodeSecOid(secOid);
                    serialValueDO.setMaxSerial(maxSerial.toString());
                    addSerialValueDOList.add(serialValueDO);
                }
            });
        });
        if(!CollectionUtils.isEmpty(editSerialValueDOList)){
            batchCBO.copyFromOther(serialValueMapper.batchUpdate(editSerialValueDOList));
        }
        if(!CollectionUtils.isEmpty(addSerialValueDOList)){
            batchCBO.copyFromOther(serialValueMapper.batchInsert(addSerialValueDOList));
        }
    }
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/SysIntAuthorityServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,288 @@
package org.springblade.code.service.impl;
import com.vci.starter.revision.service.RevisionModelUtil;
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.BeanUtilForVCI;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.pageModel.BatchCBO;
import com.vci.web.service.WebBoServiceI;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.code.dao.SysIntAuthorityDaoI;
import org.springblade.code.dto.SysIntAuthorityDTO;
import org.springblade.code.enumpack.SysIntegrationAuthorityTypeEnum;
import org.springblade.code.model.SysIntAuthorityDO;
import org.springblade.code.service.SysIntAuthorityServiceI;
import org.springblade.code.service.SysIntInfoServiceI;
import org.springblade.code.vo.pagemodel.SysIntAuthorityVO;
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 static com.vci.frameworkcore.constant.FrameWorkLangCodeConstant.*;
/**
 * ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证服务
 * @author lihang
 * @date 2022-03-07
 */
@Service
public class SysIntAuthorityServiceImpl implements SysIntAuthorityServiceI {
    /**
    * æ—¥å¿—
    */
    private Logger logger = LoggerFactory.getLogger(getClass());
    /**
    * æ•°æ®æ“ä½œå±‚
    */
    @Resource
    private SysIntAuthorityDaoI sysIntAuthorityMapper;
    /**
    * ä¸šåŠ¡ç±»åž‹æ“ä½œçš„æœåŠ¡
    */
    @Autowired
    private WebBoServiceI boService;
    /**
    * å¯¹è±¡çš„æ“ä½œ
    */
    @Autowired
    private RevisionModelUtil revisionModelUtil;
    /**
     * ç³»ç»Ÿé›†æˆçš„æŽ¥å£ä¿¡æ¯æœåŠ¡
     */
    @Autowired
    private SysIntInfoServiceI sysIntInfoService;
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„系统集成接口的认证
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @param pageHelper åˆ†é¡µå’ŒæŽ’序
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException æŸ¥è¯¢æ¡ä»¶å’Œåˆ†é¡µå‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    @Override
    public DataGrid<SysIntAuthorityVO> gridSysIntAuthority(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException{
        if (pageHelper == null) {
            pageHelper = new PageHelper(-1);
        }
        pageHelper.addDefaultDesc("createTime");
        List<SysIntAuthorityDO> doList = sysIntAuthorityMapper.selectByCondition(conditionMap,pageHelper);
        DataGrid<SysIntAuthorityVO> dataGrid=new DataGrid<SysIntAuthorityVO>();
        if (!CollectionUtils.isEmpty(doList)) {
            dataGrid.setData(sysIntAuthorityDO2VOs(doList));
            dataGrid.setTotal(VciBaseUtil.getInt(String.valueOf(sysIntAuthorityMapper.countByCondition(conditionMap))));
        }
        return dataGrid;
    }
    /**
     * æ‰¹é‡æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param sysIntAuthorityDOs æ•°æ®å¯¹è±¡åˆ—表
     * @return æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException å‚数为空或者不存在的时候会抛出异常
     */
    @Override
    public List<SysIntAuthorityVO> sysIntAuthorityDO2VOs(Collection<SysIntAuthorityDO>  sysIntAuthorityDOs) throws VciBaseException{
        List<SysIntAuthorityVO> voList = new ArrayList<SysIntAuthorityVO>();
        if(!CollectionUtils.isEmpty(sysIntAuthorityDOs)){
           for(SysIntAuthorityDO s: sysIntAuthorityDOs){
                SysIntAuthorityVO vo =  sysIntAuthorityDO2VO(s);
                if(vo != null){
                    voList.add(vo);
                }
            }
        }
        return voList;
    }
    /**
     * æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param  sysIntAuthorityDO æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException æ‹·è´å±žæ€§å‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    @Override
    public  SysIntAuthorityVO sysIntAuthorityDO2VO(SysIntAuthorityDO sysIntAuthorityDO) throws VciBaseException{
              SysIntAuthorityVO vo = new SysIntAuthorityVO();
        if(sysIntAuthorityDO != null){
            BeanUtilForVCI.copyPropertiesIgnoreCase(sysIntAuthorityDO,vo);
            //如果有lcstatus的类的话
        }
        return vo;
    }
    /**
     * å¢žåŠ ç³»ç»Ÿé›†æˆæŽ¥å£çš„è®¤è¯
     * @param sysIntAuthorityDTO ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证数据传输对象
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException å‚数为空,唯一项,必输项不通过时会抛出异常
     */
    @Override
    public SysIntAuthorityVO addSave(SysIntAuthorityDTO sysIntAuthorityDTO) throws VciBaseException{
        VciBaseUtil.alertNotNull(sysIntAuthorityDTO,"需要添加的数据对象");
        if (SysIntegrationAuthorityTypeEnum.LOGIN.getValue().equals(sysIntAuthorityDTO.getType())){
            VciBaseUtil.alertNotNull(sysIntAuthorityDTO.getUseraccount(),"用户登录验证方式的验证用户",sysIntAuthorityDTO.getUsercode(),"用户登录验证方式的验证密码");
        } else if (SysIntegrationAuthorityTypeEnum.TOKEN.getValue().equals(sysIntAuthorityDTO.getType())) {
            VciBaseUtil.alertNotNull(sysIntAuthorityDTO.getToken(),"令牌验证方式的令牌");
        }
        //将DTO转换为DO
        SysIntAuthorityDO sysIntAuthorityDO = new SysIntAuthorityDO();
        BeanUtilForVCI.copyPropertiesIgnoreCase(sysIntAuthorityDTO,sysIntAuthorityDO);
        sysIntAuthorityMapper.insert(sysIntAuthorityDO);
        return sysIntAuthorityDO2VO(sysIntAuthorityDO);
    }
    /**
     * ä¿®æ”¹ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证
     * @param sysIntAuthorityDTO ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证数据传输对象
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException å‚数为空,唯一项,必输项不通过时会抛出异常
     */
     @Override
     public SysIntAuthorityVO editSave(SysIntAuthorityDTO sysIntAuthorityDTO) throws VciBaseException{
         VciBaseUtil.alertNotNull(sysIntAuthorityDTO,"数据对象",sysIntAuthorityDTO.getOid(),"系统集成接口的认证主键");
         //将DTO转换为DO
         SysIntAuthorityDO sysIntAuthorityDO = selectByOid(sysIntAuthorityDTO.getOid());
         revisionModelUtil.copyFromDTOIgnore(sysIntAuthorityDTO,sysIntAuthorityDO);
         sysIntAuthorityMapper.updateByPrimaryKey(sysIntAuthorityDO);
         return sysIntAuthorityDO2VO(sysIntAuthorityDO);
     }
    /**
     * æ ¡éªŒæ˜¯å¦å¯ä»¥åˆ é™¤ï¼Œå¦‚果存在下级,并且下级有数据引用则不能删除
     * @param sysIntAuthorityDTO æ•°æ®ä¼ è¾“对象
     * @param sysIntAuthorityDO æ•°æ®åº“中的数据对象
     * @return success为true为可以删除,false表示有数据引用,obj为true表示有下级
     */
    private BaseResult checkIsCanDeleteForDO(SysIntAuthorityDTO sysIntAuthorityDTO, SysIntAuthorityDO sysIntAuthorityDO) {
            SysIntAuthorityDO tsDO = new SysIntAuthorityDO();
            BeanUtilForVCI.copyPropertiesIgnoreCase(sysIntAuthorityDTO,tsDO);
        //boService.checkTs(tsDO);
        if(!checkIsLinked(sysIntAuthorityDO.getOid())) {
            return BaseResult.success();
        }else{
            return BaseResult.fail(DATA_LINKED_NOT_DELETE,new String[]{""});
        }
    }
    /**
    * æ ¡éªŒæ˜¯å¦è¢«å¼•用
    * @param oid ä¸»é”®
    * @throws VciBaseException è¢«å¼•用的时候会抛出异常
    */
    private boolean checkIsLinked(String oid) throws VciBaseException{
        return !sysIntInfoService.isAlreadyUse(null,oid);
    }
    /**
     * åˆ é™¤ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证
     * @param sysIntAuthorityDTO ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证数据传输对象,oid和ts需要传输
     * @return åˆ é™¤ç»“果反馈::success:成功,fail:失败
     * @throws VciBaseException å‚数为空,被引用时抛出异常
     */
    @Override
    public BaseResult deleteSysIntAuthority(SysIntAuthorityDTO sysIntAuthorityDTO) throws VciBaseException{
        VciBaseUtil.alertNotNull(sysIntAuthorityDTO,"系统集成接口的认证数据对象",sysIntAuthorityDTO.getOid(),"系统集成接口的认证的主键");
        SysIntAuthorityDO sysIntAuthorityDO = selectByOid(sysIntAuthorityDTO.getOid());
        BaseResult baseResult = checkIsCanDeleteForDO(sysIntAuthorityDTO,sysIntAuthorityDO);
        if(baseResult.isSuccess()) {
                    }else{
            return baseResult;
        }
        //执行删除操作
        BatchCBO batchCBO = sysIntAuthorityMapper.deleteByPrimaryKey(sysIntAuthorityDO.getOid());
        return (batchCBO!=null && batchCBO.getDeleteCbos() !=null &&batchCBO.getDeleteCbos().size() > 0)?BaseResult.successMsg(DELETE_SUCCESS):BaseResult.fail(DELETE_FAIL);
    }
    /**
    * ä¸»é”®èŽ·å–ç³»ç»Ÿé›†æˆæŽ¥å£çš„è®¤è¯
    * @param oid ä¸»é”®
    * @return ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证显示对象
    * @throws VciBaseException å‚数为空,数据不存在时会抛出异常
    */
    @Override
    public  SysIntAuthorityVO getObjectByOid(String oid) throws VciBaseException{
        return sysIntAuthorityDO2VO(selectByOid(oid));
    }
    /**
    * ä¸»é”®æŸ¥è¯¢æ•°æ®å¯¹è±¡
    * @param oid ä¸»é”®
    * @return  æ•°æ®å¯¹è±¡
    * @throws VciBaseException å‚数为空,并且数据不存在的时候会抛出异常
    */
    private SysIntAuthorityDO selectByOid(String oid) throws VciBaseException{
        VciBaseUtil.alertNotNull(oid,"主键");
        SysIntAuthorityDO sysIntAuthorityDO = sysIntAuthorityMapper.selectByPrimaryKey(oid.trim());
        if(sysIntAuthorityDO == null || StringUtils.isBlank(sysIntAuthorityDO.getOid())){
            throw new VciBaseException(DATA_OID_NOT_EXIST);
        }
        return sysIntAuthorityDO;
    }
    /**
     * ä¸»é”®æ‰¹é‡èŽ·å–ç³»ç»Ÿé›†æˆæŽ¥å£çš„è®¤è¯
     * @param oidCollections ä¸»é”®é›†åˆï¼Œä½†æ˜¯å—性能影响,建议一次查询不超过10000个
     * @return ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证显示对象
     * @throws VciBaseException æŸ¥è¯¢å‡ºçŽ°å¼‚å¸¸æ—¶ä¼šæŠ›å‡º
     */
    @Override
    public Collection<SysIntAuthorityVO> listSysIntAuthorityByOids(Collection<String> oidCollections) throws VciBaseException{
        VciBaseUtil.alertNotNull(oidCollections,"数据对象主键集合");
        List<SysIntAuthorityDO> sysIntAuthorityDOList = listSysIntAuthorityDOByOidCollections(oidCollections);
        return sysIntAuthorityDO2VOs(sysIntAuthorityDOList);
    }
    /**
    * ä½¿ç”¨ä¸»é”®é›†åˆæŸ¥è¯¢æ•°æ®å¯¹è±¡
    * @param oidCollections ä¸»é”®çš„集合
    * @return æ•°æ®å¯¹è±¡åˆ—表
    */
    private List<SysIntAuthorityDO> listSysIntAuthorityDOByOidCollections(Collection<String> oidCollections){
        List<SysIntAuthorityDO> sysIntAuthorityDOList = new ArrayList<SysIntAuthorityDO>();
        if(!CollectionUtils.isEmpty(oidCollections)){
            Collection<Collection<String>> oidCollectionsList = VciBaseUtil.switchCollectionForOracleIn(oidCollections);
            for(Collection<String> oids: oidCollectionsList){
                List<SysIntAuthorityDO> tempDOList =  sysIntAuthorityMapper.selectByPrimaryKeyCollection(oids);
                if(!CollectionUtils.isEmpty(tempDOList)){
                        sysIntAuthorityDOList.addAll(tempDOList);
                }
            }
        }
        return  sysIntAuthorityDOList;
    }
    /**
     * å‚照系统集成接口的认证列表
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @param pageHelper åˆ†é¡µå’ŒæŽ’序
     * @return ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证显示对象列表,生效的内容
     * @throws VciBaseException æŸ¥è¯¢æ¡ä»¶å’Œåˆ†é¡µå‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    @Override
    public DataGrid<SysIntAuthorityVO> refDataGridSysIntAuthority(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException{
        if(conditionMap == null){
            conditionMap = new HashMap<String, String>();
        }
        return gridSysIntAuthority(conditionMap,pageHelper);
    }
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/SysIntBaseServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,283 @@
package org.springblade.code.service.impl;
import com.vci.starter.revision.service.RevisionModelUtil;
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.BeanUtilForVCI;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.pageModel.BatchCBO;
import com.vci.web.service.WebBoServiceI;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.code.dao.SysIntBaseDaoI;
import org.springblade.code.dto.SysIntBaseDTO;
import org.springblade.code.model.SysIntBaseDO;
import org.springblade.code.service.SysIntBaseServiceI;
import org.springblade.code.service.SysIntInfoServiceI;
import org.springblade.code.vo.pagemodel.SysIntBaseVO;
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 static com.vci.frameworkcore.constant.FrameWorkLangCodeConstant.*;
/**
 * ç³»ç»Ÿé›†æˆçš„系统信息服务
 * @author lihang
 * @date 2022-03-07
 */
@Service
public class SysIntBaseServiceImpl implements SysIntBaseServiceI {
    /**
    * æ—¥å¿—
    */
    private Logger logger = LoggerFactory.getLogger(getClass());
    /**
    * æ•°æ®æ“ä½œå±‚
    */
    @Resource
    private SysIntBaseDaoI sysIntBaseMapper;
    /**
    * ä¸šåŠ¡ç±»åž‹æ“ä½œçš„æœåŠ¡
    */
    @Autowired
    private WebBoServiceI boService;
    /**
    * å¯¹è±¡çš„æ“ä½œ
    */
    @Autowired
    private RevisionModelUtil revisionModelUtil;
    /**
     * ç³»ç»Ÿé›†æˆçš„æŽ¥å£ä¿¡æ¯æœåŠ¡
     */
    @Autowired
    private SysIntInfoServiceI sysIntInfoService;
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„系统集成的系统信息
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @param pageHelper åˆ†é¡µå’ŒæŽ’序
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException æŸ¥è¯¢æ¡ä»¶å’Œåˆ†é¡µå‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    @Override
    public DataGrid<SysIntBaseVO> gridSysIntBase(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException{
        if (pageHelper == null) {
            pageHelper = new PageHelper(-1);
        }
        pageHelper.addDefaultDesc("createTime");
        List<SysIntBaseDO> doList = sysIntBaseMapper.selectByCondition(conditionMap,pageHelper);
        DataGrid<SysIntBaseVO> dataGrid=new DataGrid<SysIntBaseVO>();
        if (!CollectionUtils.isEmpty(doList)) {
            dataGrid.setData(sysIntBaseDO2VOs(doList));
            dataGrid.setTotal(VciBaseUtil.getInt(String.valueOf(sysIntBaseMapper.countByCondition(conditionMap))));
        }
        return dataGrid;
    }
    /**
     * æ‰¹é‡æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param sysIntBaseDOs æ•°æ®å¯¹è±¡åˆ—表
     * @return æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException å‚数为空或者不存在的时候会抛出异常
     */
    @Override
    public List<SysIntBaseVO> sysIntBaseDO2VOs(Collection<SysIntBaseDO>  sysIntBaseDOs) throws VciBaseException{
        List<SysIntBaseVO> voList = new ArrayList<SysIntBaseVO>();
        if(!CollectionUtils.isEmpty(sysIntBaseDOs)){
           for(SysIntBaseDO s: sysIntBaseDOs){
                SysIntBaseVO vo =  sysIntBaseDO2VO(s);
                if(vo != null){
                    voList.add(vo);
                }
            }
        }
        return voList;
    }
    /**
     * æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param  sysIntBaseDO æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException æ‹·è´å±žæ€§å‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    @Override
    public  SysIntBaseVO sysIntBaseDO2VO(SysIntBaseDO sysIntBaseDO) throws VciBaseException{
              SysIntBaseVO vo = new SysIntBaseVO();
        if(sysIntBaseDO != null){
            BeanUtilForVCI.copyPropertiesIgnoreCase(sysIntBaseDO,vo);
            //如果有lcstatus的类的话
        }
        return vo;
    }
    /**
     * å¢žåŠ ç³»ç»Ÿé›†æˆçš„ç³»ç»Ÿä¿¡æ¯
     * @param sysIntBaseDTO ç³»ç»Ÿé›†æˆçš„系统信息数据传输对象
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException å‚数为空,唯一项,必输项不通过时会抛出异常
     */
    @Override
    public SysIntBaseVO addSave(SysIntBaseDTO sysIntBaseDTO) throws VciBaseException{
        VciBaseUtil.alertNotNull(sysIntBaseDTO,"需要添加的数据对象");
        //将DTO转换为DO
        SysIntBaseDO sysIntBaseDO = new SysIntBaseDO();
        BeanUtilForVCI.copyPropertiesIgnoreCase(sysIntBaseDTO,sysIntBaseDO);
        sysIntBaseMapper.insert(sysIntBaseDO);
        return sysIntBaseDO2VO(sysIntBaseDO);
    }
    /**
     * ä¿®æ”¹ç³»ç»Ÿé›†æˆçš„系统信息
     * @param sysIntBaseDTO ç³»ç»Ÿé›†æˆçš„系统信息数据传输对象
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException å‚数为空,唯一项,必输项不通过时会抛出异常
     */
     @Override
     public SysIntBaseVO editSave(SysIntBaseDTO sysIntBaseDTO) throws VciBaseException{
         VciBaseUtil.alertNotNull(sysIntBaseDTO,"数据对象",sysIntBaseDTO.getOid(),"系统集成的系统信息主键");
         //将DTO转换为DO
         SysIntBaseDO sysIntBaseDO = selectByOid(sysIntBaseDTO.getOid());
         revisionModelUtil.copyFromDTOIgnore(sysIntBaseDTO,sysIntBaseDO);
         sysIntBaseMapper.updateByPrimaryKey(sysIntBaseDO);
         return sysIntBaseDO2VO(sysIntBaseDO);
     }
    /**
     * æ ¡éªŒæ˜¯å¦å¯ä»¥åˆ é™¤ï¼Œå¦‚果存在下级,并且下级有数据引用则不能删除
     * @param sysIntBaseDTO æ•°æ®ä¼ è¾“对象
     * @param sysIntBaseDO æ•°æ®åº“中的数据对象
     * @return success为true为可以删除,false表示有数据引用,obj为true表示有下级
     */
    private BaseResult checkIsCanDeleteForDO(SysIntBaseDTO sysIntBaseDTO, SysIntBaseDO sysIntBaseDO) {
            SysIntBaseDO tsDO = new SysIntBaseDO();
            BeanUtilForVCI.copyPropertiesIgnoreCase(sysIntBaseDTO,tsDO);
        //boService.checkTs(tsDO);
        if(!checkIsLinked(sysIntBaseDO.getOid())) {
            return BaseResult.success();
        }else{
            return BaseResult.fail(DATA_LINKED_NOT_DELETE,new String[]{""});
        }
    }
    /**
    * æ ¡éªŒæ˜¯å¦è¢«å¼•用
    * @param oid ä¸»é”®
    * @throws VciBaseException è¢«å¼•用的时候会抛出异常
    */
    private boolean checkIsLinked(String oid) throws VciBaseException{
        return !sysIntInfoService.isAlreadyUse(oid,null);
    }
    /**
     * åˆ é™¤ç³»ç»Ÿé›†æˆçš„系统信息
     * @param sysIntBaseDTO ç³»ç»Ÿé›†æˆçš„系统信息数据传输对象,oid和ts需要传输
     * @return åˆ é™¤ç»“果反馈::success:成功,fail:失败
     * @throws VciBaseException å‚数为空,被引用时抛出异常
     */
    @Override
    public BaseResult deleteSysIntBase(SysIntBaseDTO sysIntBaseDTO) throws VciBaseException{
        VciBaseUtil.alertNotNull(sysIntBaseDTO,"系统集成的系统信息数据对象",sysIntBaseDTO.getOid(),"系统集成的系统信息的主键");
        SysIntBaseDO sysIntBaseDO = selectByOid(sysIntBaseDTO.getOid());
        BaseResult baseResult = checkIsCanDeleteForDO(sysIntBaseDTO,sysIntBaseDO);
        if(baseResult.isSuccess()) {
        }else{
            return baseResult;
        }
        //执行删除操作
        BatchCBO batchCBO = sysIntBaseMapper.deleteByPrimaryKey(sysIntBaseDO.getOid());
        return (batchCBO!=null && batchCBO.getDeleteCbos() !=null &&batchCBO.getDeleteCbos().size() > 0)?BaseResult.successMsg(DELETE_SUCCESS):BaseResult.fail(DELETE_FAIL);
    }
    /**
    * ä¸»é”®èŽ·å–ç³»ç»Ÿé›†æˆçš„ç³»ç»Ÿä¿¡æ¯
    * @param oid ä¸»é”®
    * @return ç³»ç»Ÿé›†æˆçš„系统信息显示对象
    * @throws VciBaseException å‚数为空,数据不存在时会抛出异常
    */
    @Override
    public  SysIntBaseVO getObjectByOid(String oid) throws VciBaseException{
        return sysIntBaseDO2VO(selectByOid(oid));
    }
    /**
    * ä¸»é”®æŸ¥è¯¢æ•°æ®å¯¹è±¡
    * @param oid ä¸»é”®
    * @return  æ•°æ®å¯¹è±¡
    * @throws VciBaseException å‚数为空,并且数据不存在的时候会抛出异常
    */
    private SysIntBaseDO selectByOid(String oid) throws VciBaseException{
        VciBaseUtil.alertNotNull(oid,"主键");
        SysIntBaseDO sysIntBaseDO = sysIntBaseMapper.selectByPrimaryKey(oid.trim());
        if(sysIntBaseDO == null || StringUtils.isBlank(sysIntBaseDO.getOid())){
            throw new VciBaseException(DATA_OID_NOT_EXIST);
        }
        return sysIntBaseDO;
    }
    /**
     * ä¸»é”®æ‰¹é‡èŽ·å–ç³»ç»Ÿé›†æˆçš„ç³»ç»Ÿä¿¡æ¯
     * @param oidCollections ä¸»é”®é›†åˆï¼Œä½†æ˜¯å—性能影响,建议一次查询不超过10000个
     * @return ç³»ç»Ÿé›†æˆçš„系统信息显示对象
     * @throws VciBaseException æŸ¥è¯¢å‡ºçŽ°å¼‚å¸¸æ—¶ä¼šæŠ›å‡º
     */
    @Override
    public Collection<SysIntBaseVO> listSysIntBaseByOids(Collection<String> oidCollections) throws VciBaseException{
        VciBaseUtil.alertNotNull(oidCollections,"数据对象主键集合");
        List<SysIntBaseDO> sysIntBaseDOList = listSysIntBaseDOByOidCollections(oidCollections);
        return sysIntBaseDO2VOs(sysIntBaseDOList);
    }
    /**
    * ä½¿ç”¨ä¸»é”®é›†åˆæŸ¥è¯¢æ•°æ®å¯¹è±¡
    * @param oidCollections ä¸»é”®çš„集合
    * @return æ•°æ®å¯¹è±¡åˆ—表
    */
    private List<SysIntBaseDO> listSysIntBaseDOByOidCollections(Collection<String> oidCollections){
        List<SysIntBaseDO> sysIntBaseDOList = new ArrayList<SysIntBaseDO>();
        if(!CollectionUtils.isEmpty(oidCollections)){
            Collection<Collection<String>> oidCollectionsList = VciBaseUtil.switchCollectionForOracleIn(oidCollections);
            for(Collection<String> oids: oidCollectionsList){
                List<SysIntBaseDO> tempDOList =  sysIntBaseMapper.selectByPrimaryKeyCollection(oids);
                if(!CollectionUtils.isEmpty(tempDOList)){
                        sysIntBaseDOList.addAll(tempDOList);
                }
            }
        }
        return  sysIntBaseDOList;
    }
    /**
     * å‚照系统集成的系统信息列表
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @param pageHelper åˆ†é¡µå’ŒæŽ’序
     * @return ç³»ç»Ÿé›†æˆçš„系统信息显示对象列表,生效的内容
     * @throws VciBaseException æŸ¥è¯¢æ¡ä»¶å’Œåˆ†é¡µå‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    @Override
    public DataGrid<SysIntBaseVO> refDataGridSysIntBase(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException{
        if(conditionMap == null){
            conditionMap = new HashMap<String, String>();
        }
        return gridSysIntBase(conditionMap,pageHelper);
    }
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/SysIntInfoServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,1091 @@
package org.springblade.code.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;
import com.vci.frameworkcore.constant.FrameWorkDefaultValueConstant;
import com.vci.starter.revision.service.RevisionModelUtil;
import com.vci.starter.web.constant.QueryOptionConstant;
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.pagemodel.TreeQueryObject;
import com.vci.starter.web.util.BeanUtilForVCI;
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.pageModel.BatchCBO;
import com.vci.web.redis.RedisService;
import com.vci.web.service.WebBoServiceI;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.code.bo.CodeTemplateAttrSqlBO;
import org.springblade.code.constant.MdmBtmTypeConstant;
import org.springblade.code.dao.*;
import org.springblade.code.dto.SysIntHeaderDTO;
import org.springblade.code.dto.SysIntInfoDTO;
import org.springblade.code.dto.SysIntParamDTO;
import org.springblade.code.dto.UpdateSysInfoStatusDTO;
import org.springblade.code.dto.datapush.classify.JsonRootDataDTO;
import org.springblade.code.dto.datapush.classify.NodeClassifyDTO;
import org.springblade.code.dto.datapush.classify.NodeDataDTO;
import org.springblade.code.dto.datapush.classify.NodeLibraryDTO;
import org.springblade.code.dto.datapush.result.ResultJsonDTO;
import org.springblade.code.dto.datapush.result.ResultNodeDataDTO;
import org.springblade.code.dto.datapush.result.ResultNodeObjectDTO;
import org.springblade.code.enumpack.SysIntegrationAuthorityTypeEnum;
import org.springblade.code.enumpack.SysIntegrationRequestTypeEnum;
import org.springblade.code.enumpack.sysIntegrationPushTypeEnum;
import org.springblade.code.model.*;
import org.springblade.code.service.CodeClassifyServiceI;
import org.springblade.code.service.MdmEngineServiceI;
import org.springblade.code.service.SysIntBaseServiceI;
import org.springblade.code.service.SysIntInfoServiceI;
import org.springblade.code.utils.HttpUtils;
import org.springblade.code.utils.WsErpClientUtil;
import org.springblade.code.vo.pagemodel.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
import static com.vci.frameworkcore.constant.FrameWorkLangCodeConstant.*;
import static org.springblade.code.constant.MdmDuckingConstant.*;
import static org.springblade.code.constant.MdmEngineConstant.CODE_CLASSIFY_OID_FIELD;
/**
 * ç³»ç»Ÿé›†æˆåŸºç¡€ä¿¡æ¯æœåŠ¡
 * @author lihang
 * @date 2022-03-07
 */
@Service
public class SysIntInfoServiceImpl implements SysIntInfoServiceI {
    @Value("${dataSyncPush.dataParamName:xmlData}")
    public String DATA_PARAM_NAME;
    /**
    * æ—¥å¿—
    */
    private Logger logger = LoggerFactory.getLogger(getClass());
    /**
    * æ•°æ®æ“ä½œå±‚
    */
    @Resource
    private SysIntInfoDaoI sysIntInfoMapper;
    /**
    * ä¸šåŠ¡ç±»åž‹æ“ä½œçš„æœåŠ¡
    */
    @Autowired
    private WebBoServiceI boService;
    /**
    * å¯¹è±¡çš„æ“ä½œ
    */
    @Autowired
    private RevisionModelUtil revisionModelUtil;
    /**
     * ç³»ç»Ÿé›†æˆä¸­çš„系统信息服务
     */
    @Autowired
    private SysIntBaseServiceI sysIntBaseService;
    /**
     * æŽ¥å£å‚æ•°
     */
    @Autowired
    private SysIntParamDaoI sysIntParamDaoI;
    /**
     * æŽ¥å£éªŒè¯ä¿¡æ¯
     */
    @Autowired
    private SysIntHeaderDaoI sysIntHeaderDaoI;
    /**
     * åˆ†ç±»ä¸šåŠ¡ç±»åž‹æ“ä½œæœåŠ¡
     */
    @Autowired
    private CodeClassifyServiceI codeClassifyServiceI;
    /**
     * ç¼“存服务
     */
    @Autowired
    private RedisService redisService;
    /**
     * é›†æˆæ—¥å¿—数据操作层
     */
    @Resource
    private DockingLogeDaoI dockingLogeDaoI;
    @Resource
    private DockingTaskDaoI dockingTaskDaoI;
    /**
     * æ•°æ®æœåŠ¡
     */
    @Autowired(required = false)
    @Lazy
    private MdmEngineServiceI mdmEngineServiceI;
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„系统集成基础信息
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @param pageHelper åˆ†é¡µå’ŒæŽ’序
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException æŸ¥è¯¢æ¡ä»¶å’Œåˆ†é¡µå‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    @Override
    public DataGrid<SysIntInfoVO> gridSysIntInfo(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException{
        if (pageHelper == null) {
            pageHelper = new PageHelper(-1);
        }
        pageHelper.addDefaultDesc("createTime");
        List<SysIntInfoDO> doList = sysIntInfoMapper.selectByCondition(conditionMap,pageHelper);
//        Set<String> targetIdList = doList.stream().map(SysIntInfoDO::getTargetSystemOid).collect(Collectors.toSet());
//        Set<String> sourceIdList = doList.stream().map(SysIntInfoDO::getSourceSystemOid).collect(Collectors.toSet());
//        List<String> oidList = new ArrayList<>();
//        oidList.addAll(targetIdList);
//        oidList.addAll(sourceIdList);
//        if (!CollectionUtils.isEmpty(oidList)) {
//            List<SysIntBaseVO> sysIntBaseVOList = (List<SysIntBaseVO>) sysIntBaseService.listSysIntBaseByOids(oidList);
//            matchSysOid2BuildInfoDO(doList, sysIntBaseVOList);
//        }
        DataGrid<SysIntInfoVO> dataGrid=new DataGrid<SysIntInfoVO>();
        if (!CollectionUtils.isEmpty(doList)) {
            dataGrid.setData(sysIntInfoDO2VOs(doList));
            dataGrid.setTotal(VciBaseUtil.getInt(String.valueOf(sysIntInfoMapper.countByCondition(conditionMap))));
        }
        return dataGrid;
    }
    /**
     * æ ¹æ®BaseVO集合中的oid对InfoDO的目标系统主键、来源系统主键进行匹配,组装系统名称和系统标识
     * @param doList ç³»ç»Ÿé›†æˆåŸºç¡€ä¿¡æ¯å¯¹è±¡é›†åˆ
     * @param sysIntBaseVOList ç³»ç»Ÿé›†æˆç³»ç»Ÿä¿¡æ¯é›†åˆ
     */
    private void matchSysOid2BuildInfoDO(List<SysIntInfoDO> doList, List<SysIntBaseVO> sysIntBaseVOList) {
        doList.forEach(info -> {
            sysIntBaseVOList.stream().filter(vo -> {
                return info.getTargetSystemOid().equals(vo.getOid());
            }).forEach(base -> {
                info.setTargetSysId(base.getId());
                info.setTargetSysName(base.getName());
            });
            sysIntBaseVOList.stream().filter(vo -> {
                return info.getSourceSystemOid().equals(vo.getOid());
            }).forEach(base -> {
                info.setSourceSysId(base.getId());
                info.setSourceSysName(base.getName());
                info.setAuthorityTypeText(SysIntegrationAuthorityTypeEnum.getTextByValue(info.getAuthorityType()));
            });
        });
    }
    @Override
    public List<SysIntInfoDO> selectAll(Map conditonMap){
        return sysIntInfoMapper.selectAll(conditonMap);
    }
    /**
     * æ‰¹é‡æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param sysIntInfoDOs æ•°æ®å¯¹è±¡åˆ—表
     * @return æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException å‚数为空或者不存在的时候会抛出异常
     */
    @Override
    public List<SysIntInfoVO> sysIntInfoDO2VOs(Collection<SysIntInfoDO>  sysIntInfoDOs) throws VciBaseException{
        List<SysIntInfoVO> voList = new ArrayList<SysIntInfoVO>();
        if(!CollectionUtils.isEmpty(sysIntInfoDOs)){
           for(SysIntInfoDO s: sysIntInfoDOs){
                SysIntInfoVO vo =  sysIntInfoDO2VO(s);
                if(vo != null){
                    voList.add(vo);
                }
            }
        }
        return voList;
    }
    /**
     * æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param  sysIntInfoDO æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException æ‹·è´å±žæ€§å‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    @Override
    public  SysIntInfoVO sysIntInfoDO2VO(SysIntInfoDO sysIntInfoDO) throws VciBaseException{
              SysIntInfoVO vo = new SysIntInfoVO();
        if(sysIntInfoDO != null){
            BeanUtilForVCI.copyPropertiesIgnoreCase(sysIntInfoDO,vo);
            //如果有lcstatus的类的话
            vo.setPushTypeText(sysIntegrationPushTypeEnum.getTextByValue(vo.getPushType()));
        }
        return vo;
    }
    /**
     * å¢žåŠ ç³»ç»Ÿé›†æˆåŸºç¡€ä¿¡æ¯
     * @param sysIntInfoDTO ç³»ç»Ÿé›†æˆåŸºç¡€ä¿¡æ¯æ•°æ®ä¼ è¾“对象
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException å‚数为空,唯一项,必输项不通过时会抛出异常
     */
    @Override
    public SysIntInfoVO addSave(SysIntInfoDTO sysIntInfoDTO) throws VciBaseException{
        VciBaseUtil.alertNotNull(sysIntInfoDTO,"需要添加的数据对象");
        checkColumnNotNull(sysIntInfoDTO);
        String sourcesystemoid = sysIntInfoDTO.getSourcesystemoid();
        SysIntBaseVO sysIntBaseVO = sysIntBaseService.getObjectByOid(sourcesystemoid);
        sysIntInfoDTO.setSysbaseoid(sourcesystemoid);
        sysIntInfoDTO.setSysbaseid(sysIntBaseVO.getId());
        sysIntInfoDTO.setSysbasename(sysIntBaseVO.getName());
        sysIntInfoDTO.setUsedflag("true");//设置默认启用状态
        //将DTO转换为DO
        SysIntInfoDO sysIntInfoDO = new SysIntInfoDO();
        BeanUtilForVCI.copyPropertiesIgnoreCase(sysIntInfoDTO,sysIntInfoDO);
        WebUtil.setPersistence(false);//不执行保存
        BatchCBO batchCBO_update = new BatchCBO();
        BatchCBO sysIntInfoBo=  sysIntInfoMapper.insert(sysIntInfoDO);
        List<SysIntParamDTO> sysIntParamDTOS=  sysIntInfoDTO.getSysIntParamDTOs();
        List<SysIntParamDO> sysIntParamDOS=new ArrayList<>();
        if(!CollectionUtils.isEmpty(sysIntParamDTOS)) {
            sysIntParamDTOS.stream().forEach(sysIntParamDTO -> {
                SysIntParamDO sysIntParamDO = new SysIntParamDO();
                sysIntParamDTO.setInfoOid(sysIntInfoDO.getOid());
                BeanUtilForVCI.copyPropertiesIgnoreCase(sysIntParamDTO, sysIntParamDO);
                sysIntParamDOS.add(sysIntParamDO);
            });
        }
        List<SysIntHeaderDTO> sysIntHeaderDTOs= sysIntInfoDTO.getSysIntHeaderDTOS();
        List<SysIntHeaderDO> sysIntHeaderDOS = new ArrayList<>();
        if(!CollectionUtils.isEmpty(sysIntHeaderDTOs)) {
            sysIntHeaderDTOs.stream().forEach(sysIntHeaderDTO -> {
                SysIntHeaderDO sysIntHeaderDO = new SysIntHeaderDO();
                sysIntHeaderDTO.setInfoOid(sysIntInfoDO.getOid());
                BeanUtilForVCI.copyPropertiesIgnoreCase(sysIntHeaderDTO, sysIntHeaderDO);
                sysIntHeaderDOS.add(sysIntHeaderDO);
            });
        }
        batchCBO_update.copyFromOther(sysIntInfoBo);
        //批量处理保存header对象
        if(!CollectionUtils.isEmpty(sysIntHeaderDOS)) {
            BatchCBO sysIntHeaderBO = sysIntHeaderDaoI.batchInsert(sysIntHeaderDOS);
            batchCBO_update.copyFromOther(sysIntHeaderBO);
        }
        //批量处理保存Param对象
        if(!CollectionUtils.isEmpty(sysIntParamDOS)) {
            BatchCBO sysIntParamBO = sysIntParamDaoI.batchInsert(sysIntParamDOS);
            batchCBO_update.copyFromOther(sysIntParamBO);
        }
        WebUtil.setPersistence(true);
        boService.persistenceBatch(batchCBO_update);//一起执行保存
        return sysIntInfoDO2VO(sysIntInfoDO,sysIntHeaderDOS,sysIntParamDOS);
    }
    /**
     *
     * @param sysIntInfoDO
     * @param sysIntHeaderDOS
     * @param sysIntParamDOS
     * @return
     */
    private SysIntInfoVO sysIntInfoDO2VO(SysIntInfoDO sysIntInfoDO, List<SysIntHeaderDO> sysIntHeaderDOS, List<SysIntParamDO> sysIntParamDOS) {
        SysIntInfoVO vo = new SysIntInfoVO();
        if(sysIntInfoDO != null){
            BeanUtilForVCI.copyPropertiesIgnoreCase(sysIntInfoDO,vo);
            //如果有lcstatus的类的话
            List<SysIntParamVO> sysIntParamVOs=new ArrayList<>();
            if(!CollectionUtils.isEmpty(sysIntParamDOS)){
                sysIntParamDOS.stream().forEach(sysIntParamDO -> {
                    SysIntParamVO sysIntParamVO=new SysIntParamVO();
                    BeanUtilForVCI.copyPropertiesIgnoreCase(sysIntParamDO,sysIntParamVO);
                    sysIntParamVOs.add(sysIntParamVO);
                });
                vo.setSysIntParamVOs(sysIntParamVOs);
            }
            List<SysIntHeaderVO> sysIntHeaderVOs=new ArrayList<>();
            if(!CollectionUtils.isEmpty(sysIntHeaderDOS)){
                sysIntHeaderDOS.stream().forEach(sysIntHeaderDO -> {
                    SysIntHeaderVO sysIntHeaderVO=new SysIntHeaderVO();
                    BeanUtilForVCI.copyPropertiesIgnoreCase(sysIntHeaderDO,sysIntHeaderVO);
                    sysIntHeaderVOs.add(sysIntHeaderVO);
                });
                vo.setSysIntHeaderVOs(sysIntHeaderVOs);
            }
        }
        return vo;
    }
    /**
     * ç³»ç»Ÿé›†æˆæŽ¥å£åŸºç¡€ä¿¡æ¯Null字段检验
     * @param sysIntInfoDTO ç³»ç»Ÿé›†æˆåŸºç¡€ä¿¡æ¯æ•°æ®ä¼ è¾“对象
     * @throws VciBaseException å‚数为空,唯一项,必输项不通过时会抛出异常
     */
    private void checkColumnNotNull(SysIntInfoDTO sysIntInfoDTO) throws VciBaseException {
        if (SysIntegrationRequestTypeEnum.HTTP.getValue().equals(sysIntInfoDTO.getInterfacetype())){
            VciBaseUtil.alertNotNull(sysIntInfoDTO.getRequesturl(),"HTTP接口的请求地址",sysIntInfoDTO.getRequestmethod(),"HTTP接口的请求方式");
        }
        if (SysIntegrationRequestTypeEnum.WEB_SERVICE.getValue().equals(sysIntInfoDTO.getInterfacetype())){
            VciBaseUtil.alertNotNull(sysIntInfoDTO.getInterfaceFunction(),"WebService的接口函数");
        }
        if (SysIntegrationRequestTypeEnum.CLASSPATH.getValue().equals(sysIntInfoDTO.getInterfacetype())){
            VciBaseUtil.alertNotNull(sysIntInfoDTO.getClassPath(),"类路径");
        }
    }
    /**
     * ä¿®æ”¹ç³»ç»Ÿé›†æˆåŸºç¡€ä¿¡æ¯
     * @param sysIntInfoDTO ç³»ç»Ÿé›†æˆåŸºç¡€ä¿¡æ¯æ•°æ®ä¼ è¾“对象
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException å‚数为空,唯一项,必输项不通过时会抛出异常
     */
     @Override
     public SysIntInfoVO editSave(SysIntInfoDTO sysIntInfoDTO) throws VciBaseException{
         VciBaseUtil.alertNotNull(sysIntInfoDTO,"数据对象",sysIntInfoDTO.getOid(),"系统集成基础信息主键");
         String sourcesystemoid = sysIntInfoDTO.getSourcesystemoid();
         SysIntBaseVO sysIntBaseVO = sysIntBaseService.getObjectByOid(sourcesystemoid);
         sysIntInfoDTO.setSysbaseoid(sourcesystemoid);
         sysIntInfoDTO.setSysbaseid(sysIntBaseVO.getId());
         sysIntInfoDTO.setSysbasename(sysIntBaseVO.getName());
         //将DTO转换为DO
         SysIntInfoDO sysIntInfoDO = selectByOid(sysIntInfoDTO.getOid());
         revisionModelUtil.copyFromDTOIgnore(sysIntInfoDTO,sysIntInfoDO);
        String sysInfoOid=sysIntInfoDO.getOid();
         List<SysIntParamDTO> sysIntParamDTOS=  sysIntInfoDTO.getSysIntParamDTOs();
         List<SysIntParamDO> sysIntParamDOS=new ArrayList<>();
         if(!CollectionUtils.isEmpty(sysIntParamDTOS)) {
             sysIntParamDTOS.stream().forEach(sysIntParamDTO -> {
                 SysIntParamDO sysIntParamDO = new SysIntParamDO();
                 BeanUtilForVCI.copyPropertiesIgnoreCase(sysIntParamDTO, sysIntParamDO);
                 sysIntParamDOS.add(sysIntParamDO);
             });
         }
         List<SysIntHeaderDTO> sysIntHeaderDTOs= sysIntInfoDTO.getSysIntHeaderDTOS();
         List<SysIntHeaderDO> sysIntHeaderDOS = new ArrayList<>();
         if(!CollectionUtils.isEmpty(sysIntHeaderDTOs)) {
             sysIntHeaderDTOs.stream().forEach(sysIntHeaderDTO -> {
                 SysIntHeaderDO sysIntHeaderDO = new SysIntHeaderDO();
                 BeanUtilForVCI.copyPropertiesIgnoreCase(sysIntHeaderDTO, sysIntHeaderDO);
                 sysIntHeaderDOS.add(sysIntHeaderDO);
             });
         }
         WebUtil.setPersistence(false);//不执行保存
         BatchCBO batchCBO_update = new BatchCBO();
         BatchCBO sysIntInfoBo=  sysIntInfoMapper.updateByPrimaryKey(sysIntInfoDO);
         batchCBO_update.copyFromOther(sysIntInfoBo);
         //批量处理保存header对象
         if(!CollectionUtils.isEmpty(sysIntHeaderDOS)) {
             List<String> idList=new ArrayList<>();
             List<SysIntHeaderDO> headers_old = getHeadersBySystemInfoOid(sysInfoOid);
             for (SysIntHeaderDO sysIntHeaderDO:headers_old){
                 sysIntHeaderDO.setUsedflag(FLAG_FAIL);
                 idList.add(sysIntHeaderDO.getOid());
             }
             if(idList.size()!=0){
                 BatchCBO sysIntHeaderDeleteBO = sysIntHeaderDaoI.batchDeleteByOids(idList);
                 batchCBO_update.copyFromOther(sysIntHeaderDeleteBO);
             }
             //再新增headers
             for(SysIntHeaderDO sysIntHeaderDO:sysIntHeaderDOS){
                 sysIntHeaderDO.setUsedflag(FLAG_TRUE);
                 sysIntHeaderDO.setInfoOid(sysIntInfoDTO.getOid());
             }
             BatchCBO batchCBO_insert = sysIntHeaderDaoI.batchInsert(sysIntHeaderDOS);
             batchCBO_update.copyFromOther(batchCBO_insert);
         }
         //批量处理保存Param对象
         if(!CollectionUtils.isEmpty(sysIntParamDOS)) {
            //先删除params_old
             List<String> idList=new ArrayList<>();
             List<SysIntParamDO> params_old = getParamsBySystemInfoOid(sysInfoOid);
             for (SysIntParamDO sysIntParamDO:params_old){
                 sysIntParamDO.setUsedflag(FLAG_FAIL);
                 idList.add(sysIntParamDO.getOid());
             }
             if(idList.size()!=0){
                 BatchCBO sysIntParamDeleteBO = sysIntParamDaoI.batchDeleteByOids(idList);
                 batchCBO_update.copyFromOther(sysIntParamDeleteBO);
             }
             //再新增params
             for(SysIntParamDO sysIntParamDOi:sysIntParamDOS){
                 sysIntParamDOi.setUsedflag(FLAG_TRUE);
                 sysIntParamDOi.setInfoOid(sysIntInfoDTO.getOid());
             }
             BatchCBO sysIntParamBO = sysIntParamDaoI.batchInsert(sysIntParamDOS);
             batchCBO_update.copyFromOther(sysIntParamBO);
         }
         WebUtil.setPersistence(true);//不执行保存
         boService.persistenceBatch(batchCBO_update);//一起执行保存
         return sysIntInfoDO2VO(sysIntInfoDO,sysIntHeaderDOS,sysIntParamDOS);
     }
    /**
     * æ ¡éªŒæ˜¯å¦å¯ä»¥åˆ é™¤ï¼Œå¦‚果存在下级,并且下级有数据引用则不能删除
     * @param sysIntInfoDTO æ•°æ®ä¼ è¾“对象
     * @param sysIntInfoDO æ•°æ®åº“中的数据对象
     * @return success为true为可以删除,false表示有数据引用,obj为true表示有下级
     */
    private BaseResult checkIsCanDeleteForDO(SysIntInfoDTO sysIntInfoDTO, SysIntInfoDO sysIntInfoDO) {
            SysIntInfoDO tsDO = new SysIntInfoDO();
            BeanUtilForVCI.copyPropertiesIgnoreCase(sysIntInfoDTO,tsDO);
        boService.checkTs(tsDO);
        if(!checkIsLinked(sysIntInfoDO.getOid())) {
            return BaseResult.success();
        }else{
            return BaseResult.fail(DATA_LINKED_NOT_DELETE,new String[]{""});
        }
    }
    /**
    * æ ¡éªŒæ˜¯å¦è¢«å¼•用
    * @param oid ä¸»é”®
    * @throws VciBaseException è¢«å¼•用的时候会抛出异常
    */
    private boolean checkIsLinked(String oid) throws VciBaseException{
        //TODO æ·»åŠ éœ€è¦æ ¡éªŒå¼•ç”¨çš„åœ°æ–¹
        return false;
    }
    /**
     * åˆ é™¤ç³»ç»Ÿé›†æˆåŸºç¡€ä¿¡æ¯
     * @param sysIntInfoDTO ç³»ç»Ÿé›†æˆåŸºç¡€ä¿¡æ¯æ•°æ®ä¼ è¾“对象,oid和ts需要传输
     * @return åˆ é™¤ç»“果反馈::success:成功,fail:失败
     * @throws VciBaseException å‚数为空,被引用时抛出异常
     */
    @Override
    public BaseResult deleteSysIntInfo(SysIntInfoDTO sysIntInfoDTO) throws VciBaseException{
        VciBaseUtil.alertNotNull(sysIntInfoDTO,"系统集成基础信息数据对象",sysIntInfoDTO.getOid(),"系统集成基础信息的主键");
        SysIntInfoDO sysIntInfoDO = selectByOid(sysIntInfoDTO.getOid());
        BaseResult baseResult = checkIsCanDeleteForDO(sysIntInfoDTO,sysIntInfoDO);
        if(baseResult.isSuccess()) {
                    }else{
            return baseResult;
        }
        WebUtil.setPersistence(false);
        BatchCBO batchCBO_update = new BatchCBO();
        //执行删除操作
        BatchCBO batchCBO = sysIntInfoMapper.deleteByPrimaryKey(sysIntInfoDO.getOid());
        batchCBO_update.copyFromOther(batchCBO);
        List<SysIntHeaderDO> sysIntHeaderDOS=sysIntHeaderDaoI.selectBySysinfoOid(sysIntInfoDO.getOid());
        if(!CollectionUtils.isEmpty(sysIntHeaderDOS)){
            List<String>headerIdList=new ArrayList<>();
            sysIntHeaderDOS.stream().forEach(sysIntHeaderDO -> {
                headerIdList.add(sysIntHeaderDO.getOid());
            });
            BatchCBO  headerBO=sysIntHeaderDaoI.batchDeleteByOids(headerIdList);
            batchCBO_update.copyFromOther(headerBO);
        }
        List<SysIntParamDO> sysIntParamDOS=sysIntParamDaoI.selectBySysinfoOid (sysIntInfoDO.getOid());
        if(!CollectionUtils.isEmpty(sysIntParamDOS)){
            List<String>paramIdList=new ArrayList<>();
            sysIntParamDOS.stream().forEach(sysIntParamDO -> {
                paramIdList.add(sysIntParamDO.getOid());
            });
            BatchCBO paramBO=  sysIntParamDaoI.batchDeleteByOids(paramIdList);
            batchCBO_update.copyFromOther(paramBO);
        }
        WebUtil.setPersistence(true);
        boService.persistenceBatch(batchCBO_update);//一起执行保存
        return (batchCBO_update!=null && batchCBO_update.getDeleteCbos() !=null &&batchCBO_update.getDeleteCbos().size() > 0)?BaseResult.successMsg(DELETE_SUCCESS):BaseResult.fail(DELETE_FAIL);
    }
    /**
    * ä¸»é”®èŽ·å–ç³»ç»Ÿé›†æˆåŸºç¡€ä¿¡æ¯
    * @param oid ä¸»é”®
    * @return ç³»ç»Ÿé›†æˆåŸºç¡€ä¿¡æ¯æ˜¾ç¤ºå¯¹è±¡
    * @throws VciBaseException å‚数为空,数据不存在时会抛出异常
    */
    @Override
    public  SysIntInfoVO getObjectByOid(String oid) throws VciBaseException{
        SysIntInfoDO sysIntInfoDO= selectByOid(oid);
        List<SysIntHeaderDO> sysIntHeaderDOS=sysIntHeaderDaoI.selectBySysinfoOid(oid.trim());
        List<SysIntParamDO> sysIntParamDOS=sysIntParamDaoI.selectBySysinfoOid(oid.trim());
        return sysIntInfoDO2VO(sysIntInfoDO,sysIntHeaderDOS,sysIntParamDOS);
    }
    /**
    * ä¸»é”®æŸ¥è¯¢æ•°æ®å¯¹è±¡
    * @param oid ä¸»é”®
    * @return  æ•°æ®å¯¹è±¡
    * @throws VciBaseException å‚数为空,并且数据不存在的时候会抛出异常
    */
    private SysIntInfoDO selectByOid(String oid) throws VciBaseException{
        VciBaseUtil.alertNotNull(oid,"主键");
        SysIntInfoDO sysIntInfoDO = sysIntInfoMapper.selectByPrimaryKey(oid.trim());
        if(sysIntInfoDO == null || StringUtils.isBlank(sysIntInfoDO.getOid())){
            throw new VciBaseException(DATA_OID_NOT_EXIST);
        }
        return sysIntInfoDO;
    }
    /**
     * ä¸»é”®æ‰¹é‡èŽ·å–ç³»ç»Ÿé›†æˆåŸºç¡€ä¿¡æ¯
     * @param oidCollections ä¸»é”®é›†åˆï¼Œä½†æ˜¯å—性能影响,建议一次查询不超过10000个
     * @return ç³»ç»Ÿé›†æˆåŸºç¡€ä¿¡æ¯æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException æŸ¥è¯¢å‡ºçŽ°å¼‚å¸¸æ—¶ä¼šæŠ›å‡º
     */
    @Override
    public Collection<SysIntInfoVO> listSysIntInfoByOids(Collection<String> oidCollections) throws VciBaseException{
        VciBaseUtil.alertNotNull(oidCollections,"数据对象主键集合");
        List<SysIntInfoDO> sysIntInfoDOList = listSysIntInfoDOByOidCollections(oidCollections);
        return sysIntInfoDO2VOs(sysIntInfoDOList);
    }
    /**
    * ä½¿ç”¨ä¸»é”®é›†åˆæŸ¥è¯¢æ•°æ®å¯¹è±¡
    * @param oidCollections ä¸»é”®çš„集合
    * @return æ•°æ®å¯¹è±¡åˆ—表
    */
    private List<SysIntInfoDO> listSysIntInfoDOByOidCollections(Collection<String> oidCollections){
        List<SysIntInfoDO> sysIntInfoDOList = new ArrayList<SysIntInfoDO>();
        if(!CollectionUtils.isEmpty(oidCollections)){
            Collection<Collection<String>> oidCollectionsList = VciBaseUtil.switchCollectionForOracleIn(oidCollections);
            for(Collection<String> oids: oidCollectionsList){
                List<SysIntInfoDO> tempDOList =  sysIntInfoMapper.selectByPrimaryKeyCollection(oids);
                Set<String> oidSet = tempDOList.stream().map(SysIntInfoDO::getTargetSystemOid).collect(Collectors.toSet());
                oidSet.addAll(tempDOList.stream().map(SysIntInfoDO::getSourceSystemOid).collect(Collectors.toSet()));
                List<SysIntBaseVO> baseVOList = (List<SysIntBaseVO>) sysIntBaseService.listSysIntBaseByOids(oidSet);
                matchSysOid2BuildInfoDO(tempDOList,baseVOList);
                if(!CollectionUtils.isEmpty(tempDOList)){
                    sysIntInfoDOList.addAll(tempDOList);
                }
            }
        }
        return  sysIntInfoDOList;
    }
    /**
     * å‚照系统集成基础信息列表
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @param pageHelper åˆ†é¡µå’ŒæŽ’序
     * @return ç³»ç»Ÿé›†æˆåŸºç¡€ä¿¡æ¯æ˜¾ç¤ºå¯¹è±¡åˆ—表,生效的内容
     * @throws VciBaseException æŸ¥è¯¢æ¡ä»¶å’Œåˆ†é¡µå‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    @Override
    public DataGrid<SysIntInfoVO> refDataGridSysIntInfo(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException{
        if(conditionMap == null){
            conditionMap = new HashMap<String, String>();
        }
        return gridSysIntInfo(conditionMap,pageHelper);
    }
    /**
     * å½“前接口信息是否有使用目标信息
     * @param sysOid ç³»ç»ŸOid
     * @param authorityOid è®¤è¯æ–¹å¼Oid
     * @return true = åœ¨ä½¿ç”¨ ï¼›false = æœªä½¿ç”¨
     * @throws VciBaseException æŸ¥è¯¢æ¡ä»¶å’Œåˆ†é¡µå‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    @Override
    public boolean isAlreadyUse(String sysOid, String authorityOid) throws VciBaseException {
        Map<String,String> conditionMap = new HashMap<>();
        if (StringUtils.isNotBlank(sysOid)){
            conditionMap.put("sourceSystemOid",sysOid);
            Long countSource = sysIntInfoMapper.countByCondition(conditionMap);
            if (countSource > 0){
                return true;
            }
            conditionMap.clear();
            conditionMap.put("targetSystemOid",sysOid);
            Long countTarget = sysIntInfoMapper.countByCondition(conditionMap);
            if (countTarget > 0){
                return true;
            }
            conditionMap.clear();
        }
        if (StringUtils.isNotBlank(authorityOid)){
            conditionMap.put("authorityOid",authorityOid);
            Long countAuthority = sysIntInfoMapper.countByCondition(conditionMap);
            if (countAuthority > 0){
                return true;
            }
        }
        return false;
    }
    //=========以下系统参数和验证信息
    /**
     * æ ¹æ®ç³»ç»Ÿä¿¡æ¯æŸ¥è¯¢æŽ¥å£param
     * @param sysInfoOid
     * @return
     */
    @Override
    public List<SysIntParamDO> getParamsBySystemInfoOid(String sysInfoOid){
        VciQueryWrapperForDO queryWrapper = new VciQueryWrapperForDO(SysIntParamDO.class);
        queryWrapper.addQueryMap("infoOid",sysInfoOid);
        queryWrapper.addQueryMap("usedflag",FLAG_TRUE);
        List<SysIntParamDO> all_params = sysIntParamDaoI.selectByWrapper(queryWrapper);
        return all_params;
    }
    /**
     * 1、先删除以前所有param
     * 2、再查询传入的所有param
     * @return
     */
    @Override
    public BaseResult updateParams(String sysInfoOid,List<SysIntParamDO> params){
        //先作废所有的params_old
        List<SysIntParamDO> params_old = getParamsBySystemInfoOid(sysInfoOid);
        for (SysIntParamDO sysIntParamDO:params_old){
            sysIntParamDO.setUsedflag(FLAG_FAIL);
        }
        WebUtil.setPersistence(false);//不执行保存
        BatchCBO batchCBO_update = new BatchCBO();
        if(params_old.size()!=0){
            batchCBO_update = sysIntParamDaoI.batchUpdate(params_old);
        }
        if(params!=null&&params.size()!=0) {
            //再新增params
            for(SysIntParamDO sysIntParamDOi:params){
                sysIntParamDOi.setUsedflag(FLAG_TRUE);
            }
            BatchCBO batchCBO_insert = sysIntParamDaoI.batchInsert(params);
            batchCBO_update.copyFromOther(batchCBO_insert);
        }
        WebUtil.setPersistence(true);//执行保存
        boService.persistenceBatch(batchCBO_update);//一起执行保存
        return BaseResult.success("保存成功!");
    }
    /**
     * æ ¹æ®ç³»ç»Ÿä¿¡æ¯æŸ¥è¯¢æŽ¥å£header
     * @param sysInfoOid
     * @return
     */
    @Override
    public List<SysIntHeaderDO> getHeadersBySystemInfoOid(String sysInfoOid){
        VciQueryWrapperForDO queryWrapper = new VciQueryWrapperForDO(SysIntHeaderDO.class);
        queryWrapper.addQueryMap("infoOid",sysInfoOid);
        queryWrapper.addQueryMap("usedflag",FLAG_TRUE);
        List<SysIntHeaderDO> all_headers = sysIntHeaderDaoI.selectByWrapper(queryWrapper);
        return all_headers;
    }
    /**
     * 1、先删除以前所有header
     * 2、再查询传入的所有header
     * @return
     */
    @Override
    public BaseResult updateHeaders(String sysInfoOid,List<SysIntHeaderDO> headers){
        //先作废所有的headers_old
        List<SysIntHeaderDO> headers_old = getHeadersBySystemInfoOid(sysInfoOid);
        for (SysIntHeaderDO sysIntHeaderDO:headers_old){
            sysIntHeaderDO.setUsedflag(FLAG_FAIL);
        }
        WebUtil.setPersistence(false);//不执行保存
        BatchCBO batchCBO_update = new BatchCBO();
        if(headers_old.size()!=0){
            batchCBO_update = sysIntHeaderDaoI.batchUpdate(headers_old);
        }
        if(headers!=null&&headers.size()!=0) {
            //再新增headers
            for(SysIntHeaderDO sysIntHeaderDO:headers){
                sysIntHeaderDO.setUsedflag(FLAG_TRUE);
            }
            BatchCBO batchCBO_insert = sysIntHeaderDaoI.batchInsert(headers);
            batchCBO_update.copyFromOther(batchCBO_insert);
        }
        WebUtil.setPersistence(true);//执行保存
        boService.persistenceBatch(batchCBO_update);//一起执行保存
        return BaseResult.success("保存成功!");
    }
    @Override
    public List<SysIntInfoDO> getSysInfoByClassifyOid(String[] classifyOids) {
        return null;
    }
    /***
     *设置是否启用/停用
     * @param sysInfoStatusDTO
     * @return
     */
    @Override
    public BaseResult updateStatus(UpdateSysInfoStatusDTO sysInfoStatusDTO){
        VciBaseUtil.alertNotNull(sysInfoStatusDTO.getOid(),"数据对象",sysInfoStatusDTO.getOid(),"系统集成基础信息主键");
        SysIntInfoDO sysIntInfoDO = selectByOid(sysInfoStatusDTO.getOid());
        try {
            sysIntInfoDO.setTs(VciDateUtil.str2Date(sysInfoStatusDTO.getTs(), VciDateUtil.DateTimeFormat));
        } catch (Exception e) {
            e.printStackTrace();
        }
        if(sysInfoStatusDTO.getUpdate().equals("disable")) {
            sysIntInfoDO.setUsedflag("false");
        }else{
            sysIntInfoDO.setUsedflag("true");
        }
        sysIntInfoMapper.updateByPrimaryKey(sysIntInfoDO);
        return BaseResult.success();
    }
    /***
     * æŽ¨é€åˆ†ç±»/数据
     * @param sysIntInfoDTO
     * @return
     * @throws VciBaseException
     */
    @Override
    public BaseResult pushData(SysIntInfoDTO sysIntInfoDTO) throws VciBaseException {
        VciBaseUtil.alertNotNull(sysIntInfoDTO,"数据对象",sysIntInfoDTO.getOid(),"系统集成基础信息主键");
        boolean issuccess=false;
        String type="数据推送";
        if(sysIntInfoDTO.getPushType().equalsIgnoreCase("1")){//推送数据
            pushDockingTasks(sysIntInfoDTO);
        }else if(sysIntInfoDTO.getPushType().equalsIgnoreCase("2")){//推送分类
            issuccess= pushClsfDatas(sysIntInfoDTO);
            type="分类推送";
        }
        return issuccess?BaseResult.successMsg(type+"成功!"):BaseResult.successMsg(type+"失败!");
    }
    private  BaseResult pushDockingTasks(SysIntInfoDTO sysIntInfoDTO) {
        String msg="数据推送到定时任务成功!";
        try {
            SysIntInfoVO sysIntInfoVO = getObjectByOid(sysIntInfoDTO.getOid());
            String codeClassifyOid = sysIntInfoVO.getClassifyoid();
            CodeClassifyTemplateVO templateVO = mdmEngineServiceI.getUsedTemplateByClassifyOid(codeClassifyOid);
            CodeClassifyVO topClassifyVO = codeClassifyServiceI.getTopClassifyVO(codeClassifyOid);
            String btmTypeId = topClassifyVO.getBtmtypeid();
            if (StringUtils.isBlank(btmTypeId)) {
                return BaseResult.fail("这个分类所属顶层分类没有添加业务类型");
            }
            List<CodeClassifyVO> codeClassifyIdPathVOS = codeClassifyServiceI.listChildrenClassify(topClassifyVO.getOid(), true, "id", false);
            List<CodeClassifyVO> codeClassifynamePathVOS = codeClassifyServiceI.listChildrenClassify(topClassifyVO.getOid(), true, "name", false);
            Map<String/**分类oid**/, String/**分类代号链接符**/> clsfOidIdMap = codeClassifyIdPathVOS.stream().collect(Collectors.toMap(s -> s.getOid(), t -> reverseOrderByList(t.getPath(), topClassifyVO, 1).toLowerCase(Locale.ROOT), (o1, o2) -> o2));
            Map<String/**分类oid**/, String/**分类名称链接符**/> clsfOidNameMap = codeClassifynamePathVOS.stream().collect(Collectors.toMap(s -> s.getOid(), t -> reverseOrderByList(t.getPath(), topClassifyVO, 2).toLowerCase(Locale.ROOT), (o1, o2) -> o2));
            PageHelper pageHelper = new PageHelper();
            pageHelper.setPage(1);
            pageHelper.setLimit(1000000);
            pageHelper.setStart(0);
            HashMap<String, String> conditionMap = new HashMap<>();
            if (!codeClassifyServiceI.checkHasChild(codeClassifyOid)) {
                conditionMap.put(CODE_CLASSIFY_OID_FIELD, codeClassifyOid);
            } else {
                conditionMap.put(CODE_CLASSIFY_OID_FIELD, QueryOptionConstant.IN + "(select oid from " + VciBaseUtil.getTableName(MdmBtmTypeConstant.CODE_CLASSIFY)
                        + " where lcstatus='" + FrameWorkDefaultValueConstant.FRAMEWORK_DATA_ENABLED +
                        "' start with parentCodeClassifyOid = '" + codeClassifyOid + "' CONNECT BY PRIOR OID = parentCodeClassifyOid )");
            }
            conditionMap.put("islastr", "1");
            conditionMap.put("islastv", "1");
            List<String> lcstatusList = new ArrayList<>(Arrays.asList(new String[]{"TakeBack", "Released", "Disabled"}));
            conditionMap.put("lcstatus", QueryOptionConstant.IN + VciBaseUtil.toInSql(lcstatusList.toArray(new String[0])));
            CodeTemplateAttrSqlBO sqlBO = mdmEngineServiceI.getSqlByTemplateVO(btmTypeId, templateVO, conditionMap, pageHelper);
            List<Map> maps = boService.queryByOnlySqlForMap(sqlBO.getSqlHasPage());
            List<DockingTaskDO> dockingTaskDO_insert = new ArrayList<>();
            if (!CollectionUtils.isEmpty(maps)) {
                maps.stream().forEach(map -> {
                    String btmoid = map.get("oid".toUpperCase(Locale.ROOT)) == null ? "" : map.get("oid".toUpperCase(Locale.ROOT)).toString();//数据oid
                    String sendtype = map.get("lcstatus".toUpperCase(Locale.ROOT)) == null ? "" : map.get("lcstatus".toUpperCase(Locale.ROOT)).toString();//数据推送类型
                    String id = map.get("id".toUpperCase(Locale.ROOT)) == null ? "" : map.get("id".toUpperCase(Locale.ROOT)).toString();//编码
                    String btmid = topClassifyVO.getBtmtypeid();//数据业务类型
                    String classifyoid = map.get("codeclsfid".toUpperCase(Locale.ROOT)) == null ? "" : map.get("codeclsfid".toUpperCase(Locale.ROOT)).toString();//数据所在的分类id
                    String date2Str = VciDateUtil.date2Str(new Date(), VciDateUtil.DateTimeFormatStr);
                    DockingTaskDO dockingTaskDO = new DockingTaskDO();
                    dockingTaskDO.setOid(date2Str +"_"+id);
                    dockingTaskDO.setSendflag(SEND_FLAG_FALSE);
                    dockingTaskDO.setId(id);//编码
                    dockingTaskDO.setUniquecode("");
                    dockingTaskDO.setBtmoid(btmoid);//数据oid
                    dockingTaskDO.setBtmid(btmid);//数据业务类型id
                    if (clsfOidIdMap.containsKey(classifyoid)) {
                        String classifyid = clsfOidIdMap.get(classifyoid);
                        dockingTaskDO.setClassifyid(classifyid);//数据在分类id
                    }
                    dockingTaskDO.setClassifyoid(classifyoid);//数据所在分类oid
                    if (clsfOidNameMap.containsKey(classifyoid)) {
                        String classifyname = clsfOidNameMap.get(classifyoid);
                        dockingTaskDO.setClassifyname(classifyname);//数据所在分类名称
                    }
                    dockingTaskDO.setSendtype(sendtype);//数据推送类型
                    //String dataoid=redisService.getUUIDEveryDay();
                    dockingTaskDO.setDataoid(date2Str +"_"+ btmoid);
                    //intinfo
                    dockingTaskDO.setSysinfooid(sysIntInfoVO.getOid());//intinfo的oid
                    dockingTaskDO.setSystemoid(sysIntInfoVO.getSysbaseoid());//系统oid
                    dockingTaskDO.setSystemcode(sysIntInfoVO.getSysbaseid());//系统编码
                    dockingTaskDO.setSystemname(sysIntInfoVO.getSysbasename());//系统name
                    dockingTaskDO_insert.add(dockingTaskDO);
                });
            }
            BatchCBO bo = dockingTaskDaoI.batchInsert(dockingTaskDO_insert);
        }catch (Throwable e){
            msg="数据推送到定时任务失败!";
            logger.error("数据推送到定时任务失败!"+e);
            e.printStackTrace();
        }finally {
            logger.info(msg);
            return BaseResult.successMsg("数据推送到定时任务成功!");
        }
    }
    private String reverseOrderByList(String StringValue, CodeClassifyVO topClassifyVO,int type){
        String[] s=StringValue.split("#");
        StringBuffer sb=new StringBuffer();
        List<String> list=new ArrayList<>(Arrays.asList(s));
        Collections.reverse(list);
        System.out.println(list.toString());
        for (String o:list){
            if(StringUtils.isNotBlank(o)){
                sb.append(o).append(",");
            }
        }
        sb.append(type==1?topClassifyVO.getId():topClassifyVO.getName());
        System.out.println(sb.toString());
        return sb.toString();
    }
    /***
     * åˆ†ç±»æŽ¨é€é›†æˆ
     * @param sysIntInfoDTO
     * @return
     */
    private  boolean pushClsfDatas(SysIntInfoDTO sysIntInfoDTO){
        SysIntInfoVO sysIntInfoVO= getObjectByOid(sysIntInfoDTO.getOid());
        String classOid= sysIntInfoVO.getClassifyoid();
        List<CodeClassifyVO> listChildrenClassify=  codeClassifyServiceI.listChildrenClassify(classOid,true,"id",false);
        List<NodeClassifyDTO>nodeClassifyDTOList=new ArrayList<>();
        JsonRootDataDTO jsonRootDataDTO=new JsonRootDataDTO();
        NodeDataDTO nodeDataDTO=new NodeDataDTO();
        //每个task一个事务,开启
        WebUtil.setPersistence(false);
        BatchCBO batchCBO = new BatchCBO();
        boolean isSuccess=false;
        try {
            String sendString = "";
            if (!CollectionUtils.isEmpty(listChildrenClassify)) {
                listChildrenClassify.stream().forEach(codeClassifyVO -> {
                    NodeClassifyDTO nodeClassifyDTO = new NodeClassifyDTO();
                    nodeClassifyDTO.setClassCode(codeClassifyVO.getId());//分类代号
                    nodeClassifyDTO.setDescription(codeClassifyVO.getDescription());//分类描述
                    nodeClassifyDTO.setFullPathName(codeClassifyVO.getPath());//全路径
                    nodeClassifyDTO.setLcStatus(codeClassifyVO.getLcStatus());//状态
                    nodeClassifyDTO.setPid(codeClassifyVO.getId());//父id节点
                    nodeClassifyDTO.setId(codeClassifyVO.getOid());//分类oid
                    nodeClassifyDTO.setName(codeClassifyVO.getName());//分类名称
                    nodeClassifyDTOList.add(nodeClassifyDTO);
                });
                NodeLibraryDTO nodeLibraryDTO = new NodeLibraryDTO();
                nodeLibraryDTO.setClassify(nodeClassifyDTOList);
                CodeClassifyVO rootClassify = codeClassifyServiceI.getTopClassifyVO(classOid);
                nodeLibraryDTO.setId(rootClassify.getOid());
                nodeLibraryDTO.setName(rootClassify.getName());
                nodeDataDTO.setLibrary(nodeLibraryDTO);
                jsonRootDataDTO.setData(nodeDataDTO);
                String paramType = sysIntInfoDTO.getParamtype();//xml/json
                if (paramType.equals(DATATYPE_JSON)) {
                    Object object = JSONObject.toJSON(jsonRootDataDTO);
                    sendString = object.toString();
                } else {
                    //组织返回接口信息
                    XStream xStream = new XStream(new DomDriver());
                    xStream.processAnnotations(NodeDataDTO.class);
                    xStream.autodetectAnnotations(true);
                    sendString = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" + xStream.toXML(nodeDataDTO);
                }
                //调用接口
                callInterface(sendString, sysIntInfoVO, batchCBO);
                isSuccess=true;
            }
        }catch (Throwable e){
            e.printStackTrace();
            isSuccess=false;
        }finally {
            //每一个task一个事物
            WebUtil.setPersistence(true);
            boService.persistenceBatch(batchCBO);
            return true;
        }
    }
    /***
     * è°ƒç”¨æŽ¥å£
     * @param sysIntInfoVO
     * @throws Throwable
     */
    private void callInterface(String  sendString , SysIntInfoVO sysIntInfoVO,BatchCBO batchCBO) throws  Throwable{
        String paramString = "";
        String backString = "";
        String msg="";
        String url = sysIntInfoVO.getRequesturl();//url
        List<ResultNodeObjectDTO> resultNodeObjectDTOS =new ArrayList<>();
        try {
            String type = sysIntInfoVO.getInterfacetype().toLowerCase(Locale.ROOT);//get/post/webserver/corba
            String paramType = sysIntInfoVO.getParamtype();//xml/json
            String returnType = sysIntInfoVO.getReturntype();//xml/json
            String requestmethod= sysIntInfoVO.getRequestmethod();
            String interfaceFunction = sysIntInfoVO.getInterfaceFunction();//主要是webservice的方法名
            String namespace = sysIntInfoVO.getNamespace();//namespace
            String soapaction = sysIntInfoVO.getSoapaction();//soapaction
            String targName = sysIntInfoVO.getTargName();//targName
            String cxfaxis = sysIntInfoVO.getCxfaxis();//webservice是cxf/axis
            //查询param
            List<SysIntParamVO> sysIntParamVOList = sysIntInfoVO.getSysIntParamVOs();
            //查询header
            List<SysIntHeaderVO> sysIntHeaderVOList =sysIntInfoVO.getSysIntHeaderVOs();
            if(type.equals(URLTYPE_HTTP)) {
                if (requestmethod.equals(URLTYPE_GET)) {//GET请求
                    String sendurl = url + "?" + DATA_PARAM_NAME + "=" + sendString;
                    //拼接param
                    for (SysIntParamVO sysIntParamVO : sysIntParamVOList) {
                        sendurl = sendurl + "&" + sysIntParamVO.getParamkey() + "=" + sysIntParamVO.getParamvalue();
                    }
                    paramString = sendurl;
                    backString = HttpUtils.get(sendurl);
                } else if (requestmethod.equals(URLTYPE_POST)) {//POST请求
                    MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
                    if(!CollectionUtils.isEmpty(sysIntParamVOList)) {
                        for (SysIntParamVO sysIntParamVO : sysIntParamVOList) {
                            params.add(sysIntParamVO.getParamkey(), sysIntParamVO.getParamvalue());
                        }
                    }
                    params.add(DATA_PARAM_NAME,sendString);
                    paramString = params.toString();
                    MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
                    if(!CollectionUtils.isEmpty(sysIntHeaderVOList)) {
                        for (SysIntHeaderVO sysIntHeaderVO : sysIntHeaderVOList) {
                            headers.add(sysIntHeaderVO.getHeaderkey(), sysIntHeaderVO.getHeaderalue());
                        }
                    }
                    backString = HttpUtils.post(url, params, headers);
                }
                if(backString.startsWith("\"")){
                    backString=backString.substring(backString.indexOf("\"")+1);
                }
                if(backString.endsWith("\"")){
                    backString=backString.substring(0,backString.lastIndexOf("\""));
                }
                if(backString.contains("\n")){
                    String res="\n";
                    backString=  backString.replaceAll(res,"");
                }
                if(backString.contains("\\")){
                    String res="\\\\\"";
                    backString=  backString.replaceAll(res,"\"").trim();
                }
            }else if (type.equals(URLTYPE_WEBSERVICE)) {//webserver请求
                MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
                for (SysIntParamVO sysIntParamVO : sysIntParamVOList) {
                    params.add(sysIntParamVO.getParamkey(), sysIntParamVO.getParamvalue());
                }
                paramString = sendString;
                MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
                for (SysIntHeaderVO sysIntHeaderVO : sysIntHeaderVOList) {
                    headers.add(sysIntHeaderVO.getHeaderkey(), sysIntHeaderVO.getHeaderalue());
                }
                backString = WsErpClientUtil.sendMsg(url, namespace, soapaction, interfaceFunction, targName, sendString, 10000);
            } else {//corba接口
                //paramString=sendString;
                //  backString = jacorbClient.getBOFactoryService().sendCode(sendString);
            }
            ResultJsonDTO resultJsonDTO = new ResultJsonDTO();
            if(returnType.equals(DATATYPE_JSON)){
                resultJsonDTO =JSONObject.toJavaObject(JSONObject.parseObject(backString), ResultJsonDTO.class);
            }else {
                //组织返回接口信息
                XStream xStream = new XStream(new DomDriver());
                xStream.processAnnotations(ResultNodeDataDTO.class);
                xStream.autodetectAnnotations(true);
                ResultNodeDataDTO resultNodeDataDTO = (ResultNodeDataDTO) xStream.fromXML(backString);
                resultJsonDTO.setData(resultNodeDataDTO);
            }
            ResultNodeDataDTO resultNodeDataDTO=resultJsonDTO.getData();
            resultNodeObjectDTOS=resultNodeDataDTO.getObject();
        }catch (Throwable e){
            msg="调用接口失败:"+e;
            e.printStackTrace();
            //   throw  new Throwable("调用接口失败:"+e);
            ResultNodeObjectDTO   resultNodeObjectDTO=new ResultNodeObjectDTO();
            resultNodeObjectDTO.setErroid("1");
            resultNodeObjectDTO.setMsg(msg);
            resultNodeObjectDTO.setCode(sysIntInfoVO.getClassifyid());
            resultNodeObjectDTO.setOid(sysIntInfoVO.getClassifyoid());
            resultNodeObjectDTOS.add(resultNodeObjectDTO);
        }finally {
            boolean isSend = false;
            for (ResultNodeObjectDTO resultNodeObjectDTO:resultNodeObjectDTOS){
                String erroid = resultNodeObjectDTO.getErroid();
                msg = resultNodeObjectDTO.getMsg();
                if("0".equals(erroid)){
                    isSend = true;
                }else if("1".equals(erroid)){
                    isSend=false;
                }else{
                    isSend=false;
                }
                DockingLogeDO dockingLogeDO = new DockingLogeDO();
                String oid=redisService.getUUIDEveryDay();
                dockingLogeDO.setOid(oid);
                dockingLogeDO.setSystemcode(sysIntInfoVO.getSysbaseid());
                dockingLogeDO.setSystemname(sysIntInfoVO.getSysbasename());
                dockingLogeDO.setSystemoid(sysIntInfoVO.getSysbaseoid());
                dockingLogeDO.setClassifyoid(sysIntInfoVO.getClassifyoid());
                dockingLogeDO.setClassifyid(sysIntInfoVO.getClassifyid());
                dockingLogeDO.setClassifyname(sysIntInfoVO.getClassifyname());
                dockingLogeDO.setId(sysIntInfoVO.getId());
                dockingLogeDO.setUniquecode("");
                dockingLogeDO.setInterfacestatus(isSend?"true":"false");
                dockingLogeDO.setParamstring(paramString);
                dockingLogeDO.setType(DATA_LOGE_OUT);
                dockingLogeDO.setReturnstring(backString);
                dockingLogeDO.setMsg(msg);
                logger.info("集成推送数据,systemcode:"+sysIntInfoVO.getSysbaseid()+",systemname:"+sysIntInfoVO.getSysbasename()+",url:"+url+",param:"+paramString+",e:"+msg);
                BatchCBO dockingLogeDOBo = dockingLogeDaoI.insert(dockingLogeDO);
                batchCBO.copyFromOther(dockingLogeDOBo);
            }
        }
    }
    private void initData(String rootClassOid , Map<String,String> clsfOidIdMap,Map<String,String> clsfOidNameMap){
        TreeQueryObject treeQueryObject=new TreeQueryObject();
        treeQueryObject.setParentOid(rootClassOid);
        treeQueryObject.setQueryAllLevel(true);
        List<CodeClassifyDO>  codeClassifyDOList=codeClassifyServiceI.selectCodeClassifyDOByTree(treeQueryObject);
        if(!CollectionUtils.isEmpty(codeClassifyDOList)){
            codeClassifyDOList.stream().forEach(codeClassify->{
                String id=codeClassify.getId();
                String name=codeClassify.getName();
            });
        }
    }
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/service/impl/UniversalInterfaceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,913 @@
package org.springblade.code.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;
import com.vci.starter.web.constant.QueryOptionConstant;
import com.vci.starter.web.pagemodel.SessionInfo;
import com.vci.starter.web.pagemodel.TreeQueryObject;
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.pageModel.BatchCBO;
import com.vci.web.redis.RedisService;
import com.vci.web.service.WebBoServiceI;
import com.vci.webservice.annotation.VciWebservice;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.code.bo.CodeClassifyFullInfoBO;
import org.springblade.code.constant.MdmDuckingConstant;
import org.springblade.code.dao.DockingLogeDaoI;
import org.springblade.code.dto.CodeOrderDTO;
import org.springblade.code.dto.CodeOrderSecDTO;
import org.springblade.code.enumpack.CodeSecTypeEnum;
import org.springblade.code.model.CodeClassifyDO;
import org.springblade.code.model.DockingLogeDO;
import org.springblade.code.service.CodeClassifyServiceI;
import org.springblade.code.service.MdmEngineServiceI;
import org.springblade.code.service.MdmIOServiceI;
import org.springblade.code.service.UniversalInterfaceI;
import org.springblade.code.utils.AttributeMapConfig;
import org.springblade.code.utils.gennerAttrMapUtil;
import org.springblade.code.vo.pagemodel.*;
import org.springblade.code.vo.universalInter.apply.*;
import org.springblade.code.vo.universalInter.attrmap.ClsfAttrMappingDO;
import org.springblade.code.vo.universalInter.attrmap.LibraryClsfDO;
import org.springblade.code.vo.universalInter.attrmap.LibraryDO;
import org.springblade.code.vo.universalInter.attrmap.RowDatas;
import org.springblade.code.vo.universalInter.classify.*;
import org.springblade.code.vo.universalInter.data.*;
import org.springblade.code.vo.universalInter.result.json.*;
import org.springblade.code.vo.universalInter.result.xml.XMLResultClassfyVO;
import org.springblade.code.vo.universalInter.result.xml.XMLResultDataObjectDetailDO;
import org.springblade.code.vo.universalInter.result.xml.XMLResultSystemVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import plm.bs.bom.clientobject.ClientBusinessObject;
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
import static org.springblade.code.constant.MdmEngineConstant.DEFAULT_SYNC_ATTR_LIST;
/***
 * ç»Ÿä¸€æŽ¥å£
 */
@VciWebservice(path = "/universalInterface")
public class UniversalInterfaceImpl implements UniversalInterfaceI {
    /**
     * æ—¥å¿—
     */
    private Logger logger = LoggerFactory.getLogger(getClass());
    @Autowired
    private AttributeMapConfig attributeMapConfig;
    /**
     * ç¼“存服务
     */
    @Autowired
    private RedisService redisService;
    /**
     * ä¸»é¢˜åº“分类的服务
     */
    @Autowired
    private CodeClassifyServiceI classifyService;
    /**
     * ä¸»æ•°æ®å¼•擎的服务
     */
    @Autowired
    private MdmEngineServiceI engineService;
    /**
     * é›†æˆæŽ¥å£æ—¥å¿—服务的配置
     */
    @Resource
    private DockingLogeDaoI dockingLogeDao;
    /**
     * å¯†çº§çš„æœåŠ¡
     */
    @Autowired
    private MdmIOServiceI mdmIOService;
    /**
     * æ•°æ®çš„æœåŠ¡
     */
    @Autowired
    private WebBoServiceI boService;
    private  static String separator="##VCI##";
    private  String errorid="0";
    private String msg="成功";
    private  String objerrorCode="0";
    private String objerrorMsg="成功";
    @Override
    public String applyCode(String data, String dataType) throws Throwable {
        String resultStr = "";
        String errorid="0";
        msg="成功";
        objerrorCode="0";
        objerrorMsg="成功";
        logger.info("申请编码的数据参数:->"+data);
        logger.info("申请编码的数据类型:->"+dataType);
        String systemId="";
        List<XMLResultClassfyVO> resultClassfyVOList = new ArrayList<>();
        try {
            if(StringUtils.isBlank(data)) {
                errorid="101";
                throw new Throwable("接口参数:传递为空");
            }
            InterParameterVO interParameterVO  =new InterParameterVO();
            //如果dataType是xml则,通过xml序列化成对象形式,如果是json则通过json转换成对象格式
            try {
                if ("xml".equals(dataType)) {
                    XStream xStream = new XStream(new DomDriver());
                    xStream.processAnnotations(RootDataVO.class);
                    xStream.autodetectAnnotations(true);
                    RootDataVO rootDataVO = (RootDataVO) xStream.fromXML(data);
                    interParameterVO.setData(rootDataVO);
                } else {
                    interParameterVO = JSONObject.toJavaObject(JSONObject.parseObject(data), InterParameterVO.class);
                }
            }catch (Throwable e){
                errorid="101";
                throw new Throwable("接口参数:传入数据参数解析失败");
            }
            ClassfysVO classfysVO = interParameterVO.getData().getClassifys();
            systemId = interParameterVO.getData().getSystemId();
            UserVO userVo = interParameterVO.getData().getUser();
            List<ClassfyVO> classVOList = classfysVO.getClassify();
            InterParameterVO finalInterParameterVO = interParameterVO;
            //这是账号信息
            SessionInfo sessionInfo = new SessionInfo();
            sessionInfo.setUserId(userVo.getUserName());
            sessionInfo.setUserName(userVo.getTrueName());
            sessionInfo.setIp(userVo.getIp());
            VciBaseUtil.setCurrentUserSessionInfo(sessionInfo);
            String finalSystemId = systemId;
            classVOList.stream().forEach(classVO -> {
                logger.info("参数:分类COde:" + classVO.getClassCode());
                LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs = new LinkedList<>();
                //获取分类信息
                try {
                    String libray = classVO.getLibrary();
                    CodeClassifyVO codeClassifyVO = getClassfy(classVO);
                    logger.info("end:分类查询完毕");
                    //获取分类模板信息
                    if(codeClassifyVO==null || StringUtils.isBlank(codeClassifyVO.getOid())){
                        objerrorCode="100";
                        throw  new  Throwable ("根据传输的分类,未获取到分类信息");
                    }
                    CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(codeClassifyVO.getOid());
                    if(templateVO==null||StringUtils.isBlank(templateVO.getOid())){
                        objerrorCode="1";
                        throw  new  Throwable ("根据传输的分类,未获取MDM系统中对应模板");
                    }
                    logger.info("end:模板查询完毕");
                    ApplyDatasVO applyDatasVO = classVO.getObjects();
                    org.springblade.code.vo.universalInter.attrmap.DataObjectVO dataObjectVO = new org.springblade.code.vo.universalInter.attrmap.DataObjectVO();
                    List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) && VciBaseUtil.getBoolean(s.getFormdisplayflag())
                    ).collect(Collectors.toList());
                    this.getConfigDatas(finalSystemId, libray, applyDatasVO, attrVOS, dataObjectVO);
                    logger.info("end:数据组织完毕");
                    //规则的主键需要去获取
                    CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(codeClassifyVO.getOid());
                    if(classifyFullInfo==null ||classifyFullInfo.getCurrentClassifyVO()==null || StringUtils.isBlank(classifyFullInfo.getCurrentClassifyVO().getOid())){
                        objerrorCode="1";
                        logger.info("classifyFullInfo:"+"根据传输的分类,未获取分类相关信息");
                        throw  new  Throwable ("根据传输的分类,未获取分类相关信息");
                    }
                    CodeRuleVO ruleVO = engineService.getCodeRuleByClassifyFullInfo(classifyFullInfo);
                    if(ruleVO==null||StringUtils.isBlank(ruleVO.getOid())){
                        objerrorCode="102";
                        throw  new  Throwable ("根据传输的分类,未获取MDM系统中对应规则");
                    }
                    logger.info("end:规则获取完毕");
                    List<CodeOrderSecDTO> codeOrderSecDTOList = getRuleCodeOrderSecDTOs(classVO.getSections().getSection(), ruleVO);
                    logger.info("end:码段获取完毕");
                    CodeOrderDTO orderDTO = new CodeOrderDTO();
                    orderDTO.setCodeClassifyOid(codeClassifyVO.getOid());//分类主键
                    orderDTO.setSecDTOList(codeOrderSecDTOList);//分类码段
                    mdmIOService.batchSyncApplyCode(orderDTO, dataObjectVO, resultDataObjectDetailDOs);
                    logger.info("end:申请获取完毕");
                } catch (Throwable e) {
                    XMLResultDataObjectDetailDO xmlResultDataObjectDetailDO=new XMLResultDataObjectDetailDO();
                    xmlResultDataObjectDetailDO.setCode("");
                    xmlResultDataObjectDetailDO.setId("");
                    xmlResultDataObjectDetailDO.setErrorid(objerrorCode);
                    xmlResultDataObjectDetailDO.setMsg("编码申请失败:"+e.getMessage());
                    resultDataObjectDetailDOs.add(xmlResultDataObjectDetailDO);
                    e.printStackTrace();
                }finally {
                    XMLResultClassfyVO resultClassfyVO = new XMLResultClassfyVO();
                    resultClassfyVO.setClassCode(classVO.getClassCode());
                    resultClassfyVO.setLibrary(classVO.getLibrary());
                    resultClassfyVO.setFullclsfNamePath(classVO.getFullclsfNamePath());
                    resultClassfyVO.setObjects(resultDataObjectDetailDOs);
                    resultClassfyVOList.add(resultClassfyVO);
                }
            });
            XMLResultSystemVO xmlResultSystemVO=new XMLResultSystemVO();
            xmlResultSystemVO.setClassifys(resultClassfyVOList);
            xmlResultSystemVO.setMsg(msg);
            xmlResultSystemVO.setErrorid(errorid);
            resultStr= transferResultXMl(xmlResultSystemVO,dataType);
        }catch (Throwable e){
            e.printStackTrace();;
            msg="申请编码失败:"+e.getMessage();
          /*  XMLResultSystemVO XMLResultSystemVO=new XMLResultSystemVO();
            XMLResultSystemVO.setErrorid(errorid);
            XMLResultSystemVO.setMsg("申请编码失败:->"+e.getMessage());
            XMLResultSystemVO.setClassifys(resultClassfyVOList);
            resultStr=transferResultXMl(XMLResultSystemVO,dataType);
            logger.error("申请编码失败:->"+e);
            return resultStr;*/
        }finally {
            XMLResultSystemVO xmlResultSystemVO=new XMLResultSystemVO();
            xmlResultSystemVO.setClassifys(resultClassfyVOList);
            xmlResultSystemVO.setMsg(msg);
            xmlResultSystemVO.setErrorid(errorid);
            resultStr= transferResultXMl(xmlResultSystemVO,dataType);
            final boolean[] issucess = {true};
            if(!errorid.equals("0")) {
                issucess[0] = false;
            }else {
                if(!CollectionUtils.isEmpty(resultClassfyVOList)) {
                    resultClassfyVOList.stream().forEach(xMLResultClassfyVO -> {
                        xMLResultClassfyVO.getObjects().stream().forEach(objec -> {
                            if (!(objec.getErrorid().equals("0") || objec.getErrorid().equals("204"))) {
                                issucess[0] = false;
                                msg=objec.getMsg();
                            }
                        });
                    });
                }
            }
            try {
                //记录日志
                this.saveLogs(systemId, systemId, data, resultStr, issucess[0], msg, "applyCode");
            }catch (Throwable e){
                e.printStackTrace();
            }
        }
        logger.info("返回参数:"+resultStr);
        return resultStr;
    }
    /***
     * é›†æˆæ›´æ–°æŽ¥å£
     * @param data ï¼šæ•°æ®ä¿¡æ¯å‚数:根据datatype定义其格式xml/json
     * @param dataType ç¡®å®šå±žæ€§ä¿¡æ¯å‚数传输格式
     * @return
     * @throws Throwable
     */
    @Override
    public String syncEditData(String data, String dataType) throws Throwable {
        String resultStr = "";
        String errorid="0";
        msg="成功";
        String systemId="";
        objerrorCode="0";
        objerrorMsg="成功";
        logger.info("更改编码的数据参数:->"+data);
        logger.info("更改编码的数据类型:->"+dataType);
        List<XMLResultClassfyVO> resultClassfyVOList = new ArrayList<>();
        try {
            if (StringUtils.isBlank(data)) {
                errorid = "101";
                throw new Throwable("接口参数:传递为空");
            }
            InterParameterVO interParameterVO = new InterParameterVO();
            //如果dataType是xml则,通过xml序列化成对象形式,如果是json则通过json转换成对象格式
            try {
                if ("xml".equals(dataType)) {
                    XStream xStream = new XStream(new DomDriver());
                    xStream.processAnnotations(RootDataVO.class);
                    xStream.autodetectAnnotations(true);
                    RootDataVO rootDataVO = (RootDataVO) xStream.fromXML(data);
                    interParameterVO.setData(rootDataVO);
                } else {
                    interParameterVO = JSONObject.toJavaObject(JSONObject.parseObject(data), InterParameterVO.class);
                }
            } catch (Throwable e) {
                errorid = "101";
                throw new Throwable("接口参数:传入数据参数解析失败");
            }
            ClassfysVO classfysVO = interParameterVO.getData().getClassifys();
            systemId = interParameterVO.getData().getSystemId();
            UserVO userVo = interParameterVO.getData().getUser();
            List<ClassfyVO> classVOList = classfysVO.getClassify();
            InterParameterVO finalInterParameterVO = interParameterVO;
            //这是账号信息
            SessionInfo sessionInfo = new SessionInfo();
            sessionInfo.setUserId(userVo.getUserName());
            sessionInfo.setUserName(userVo.getTrueName());
            sessionInfo.setIp(userVo.getIp());
            VciBaseUtil.setCurrentUserSessionInfo(sessionInfo);
            String finalSystemId = systemId;
            classVOList.stream().forEach(classVO->{
                    logger.info("参数:分类COde:" + classVO.getClassCode());
                    LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs = new LinkedList<>();
                    //获取分类信息
                    try {
                        String libray = classVO.getLibrary();
                        CodeClassifyVO codeClassifyVO = getClassfy(classVO);
                        if(codeClassifyVO==null || StringUtils.isBlank(codeClassifyVO.getOid())){
                            objerrorCode="100";
                            throw  new  Throwable ("根据传输的分类,未获取到分类信息");
                        }
                        logger.info("end:分类查询完毕");
                        //获取分类模板信息
                        CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(codeClassifyVO.getOid());
                        if(templateVO==null||StringUtils.isBlank(templateVO.getOid())){
                            objerrorCode="102";
                            throw  new  Throwable ("根据传输的分类,未获取MDM系统中对应模板");
                        }
                        logger.info("end:模板查询完毕");
                        ApplyDatasVO applyDatasVO = classVO.getObjects();
                        org.springblade.code.vo.universalInter.attrmap.DataObjectVO dataObjectVO = new org.springblade.code.vo.universalInter.attrmap.DataObjectVO();
                        //将默认的属性全部替换掉
                        List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) && VciBaseUtil.getBoolean(s.getFormdisplayflag())
                        ).collect(Collectors.toList());
                        this.getConfigDatas(finalSystemId, libray, applyDatasVO, attrVOS, dataObjectVO);
                        logger.info("end:数据构建完毕");
                        logger.info("start:修改数据执行完毕");
                        mdmIOService.batchSyncEditDatas(codeClassifyVO,dataObjectVO, resultDataObjectDetailDOs);
                        logger.info("end:修改数据执行完毕");
                    } catch (Throwable e) {
                        XMLResultDataObjectDetailDO xmlResultDataObjectDetailDO=new XMLResultDataObjectDetailDO();
                        xmlResultDataObjectDetailDO.setCode("");
                        xmlResultDataObjectDetailDO.setId("");
                        xmlResultDataObjectDetailDO.setErrorid(objerrorCode);
                        xmlResultDataObjectDetailDO.setMsg("编码更改/状态更改/删除:"+e.getMessage());
                        resultDataObjectDetailDOs.add(xmlResultDataObjectDetailDO);
                        e.printStackTrace();
                    }finally {
                        XMLResultClassfyVO resultClassfyVO = new XMLResultClassfyVO();
                        resultClassfyVO.setClassCode(classVO.getClassCode());
                        resultClassfyVO.setLibrary(classVO.getLibrary());
                        resultClassfyVO.setFullclsfNamePath(classVO.getFullclsfNamePath());
                        resultClassfyVO.setObjects(resultDataObjectDetailDOs);
                        resultClassfyVOList.add(resultClassfyVO);
                    }
            });
        }catch (Throwable e){
            e.printStackTrace();;
            msg="编码更改/状态更改/删除:"+e.getMessage();
          /*  XMLResultSystemVO XMLResultSystemVO=new XMLResultSystemVO();
            XMLResultSystemVO.setErrorid(errorid);
            XMLResultSystemVO.setMsg("申请编码失败:->"+e.getMessage());
            XMLResultSystemVO.setClassifys(resultClassfyVOList);
            resultStr=transferResultXMl(XMLResultSystemVO,dataType);
            logger.error("申请编码失败:->"+e);
            return resultStr;*/
        }finally {
            XMLResultSystemVO xmlResultSystemVO=new XMLResultSystemVO();
            xmlResultSystemVO.setClassifys(resultClassfyVOList);
            xmlResultSystemVO.setMsg(msg);
            xmlResultSystemVO.setErrorid(errorid);
            resultStr= transferResultXMl(xmlResultSystemVO,dataType);
            final boolean[] issucess = {true};
            if(!errorid.equals("0")) {
                issucess[0] = false;
            }else {
                if(!CollectionUtils.isEmpty(resultClassfyVOList)) {
                    resultClassfyVOList.stream().forEach(xMLResultClassfyVO -> {
                        xMLResultClassfyVO.getObjects().stream().forEach(objec -> {
                            if (!(objec.getErrorid().equals("0") || objec.getErrorid().equals("204"))) {
                                issucess[0] = false;
                                msg=objec.getMsg();
                            }
                        });
                    });
                }
            }
            try {
                //记录日志
                this.saveLogs(systemId, systemId, data, resultStr, issucess[0], msg, "syncEditData");
            }catch (Throwable e){
                e.printStackTrace();
            }
        }
        logger.info("返回参数:"+resultStr);
        //存储日志
        return resultStr;
    }
    /****
     * æŸ¥è¯¢åˆ†ç±»
     * @param data
     * @param dataType
     * @return
     * @throws Throwable
     */
    @Override
    public String queryClassify(String data, String dataType) throws Throwable{
        boolean issucess=false;
        String resultStr = "";
        String errorid="0";
        msg="成功";
        String systemId="";
        logger.info("查询分类的数据参数:->"+data);
        logger.info("查询分类的数据类型:->"+dataType);
        ResultClassifyVO resultClassifyVO =new ResultClassifyVO();
        List<ClassifyVO> classifyVOList=new ArrayList<>();
        ResultData resultData=new ResultData();
        try {
            if (StringUtils.isBlank(data)) {
                errorid = "101";
                throw new Throwable("接口参数:传递为空");
            }
            QueryClassifyVO queryClassifyVO = new QueryClassifyVO();
            //如果dataType是xml则,通过xml序列化成对象形式,如果是json则通过json转换成对象格式
            try {
                if ("xml".equals(dataType)) {
                    XStream xStream = new XStream(new DomDriver());
                    xStream.processAnnotations(QueryData.class);
                    xStream.autodetectAnnotations(true);
                    QueryData queryData = (QueryData) xStream.fromXML(data);
                    queryClassifyVO.setData(queryData);
                } else {
                    queryClassifyVO = JSONObject.toJavaObject(JSONObject.parseObject(data), QueryClassifyVO.class);
                }
            } catch (Throwable e) {
                errorid = "101";
                msg="接口参数:传入数据参数解析失败";
                e.printStackTrace();
                throw new Throwable("接口参数:传入数据参数解析失败");
            }
            QueryData queryData=queryClassifyVO.getData();
            UserVO userVo=queryData.getUserVo();
            systemId=queryData.getSystemId();
            QueryLibraryVO libraryVO= queryData.getLibrary();
            String libId= libraryVO.getId();
            List<String> classifyIdList=  libraryVO.getClassifyid();
            List<CodeClassifyDO> codeClassifyDOS =new ArrayList<>();
            //这是账号信息
            //这是账号信息
            SessionInfo sessionInfo = new SessionInfo();
            sessionInfo.setUserId(userVo.getUserName());
            sessionInfo.setUserName(userVo.getTrueName());
            sessionInfo.setIp(userVo.getIp());
            VciBaseUtil.setCurrentUserSessionInfo(sessionInfo);
            if(!CollectionUtils.isEmpty(classifyIdList)){
                //先简称是否有关联模板,有模板要先删除
                VciQueryWrapperForDO queryWrapper = new VciQueryWrapperForDO(CodeClassifyDO.class);
                queryWrapper.addQueryMap("id", QueryOptionConstant.IN  + VciBaseUtil.toInSql(classifyIdList.toArray(new String[0])));
                codeClassifyDOS=classifyService.selectByWrapper(queryWrapper);
            }else {
                VciQueryWrapperForDO queryWrapper = new VciQueryWrapperForDO(CodeClassifyDO.class);
                queryWrapper.addQueryMap("id", QueryOptionConstant.IN  + VciBaseUtil.toInSql(libId));
                List<CodeClassifyDO> libIdDos =classifyService.selectByWrapper(queryWrapper);
                String oid= libIdDos.get(0).getOid();
                TreeQueryObject treeQueryObject=new TreeQueryObject();
                treeQueryObject.setParentOid(oid);
                treeQueryObject.setQueryAllLevel(true);
                codeClassifyDOS=classifyService.selectCodeClassifyDOByTree(treeQueryObject);
            }
            LibraryVO libraryVo=new LibraryVO();
            libraryVo.setId(libId);
            libraryVo.setName("");
            if(!CollectionUtils.isEmpty(codeClassifyDOS)){
                errorid = "0";
                msg="成功!";
                codeClassifyDOS.stream().forEach(codeClassifyDO -> {
                    ClassifyVO classifyVO=new ClassifyVO();
                    classifyVO.setId(codeClassifyDO.getOid());
                    classifyVO.setLcStatus(codeClassifyDO.getLcStatus());
                    classifyVO.setClassCode(codeClassifyDO.getId());
                    classifyVO.setDescription(codeClassifyDO.getDescription());
                    classifyVO.setName(codeClassifyDO.getName());
                    classifyVO.setPid(codeClassifyDO.getParentCodeClassifyOid());
                    classifyVO.setFullPathName(codeClassifyDO.getPath());
                    classifyVOList.add(classifyVO);
                });
                libraryVo.setClassify(classifyVOList);
            }else{
                errorid = "100";
                msg="未查询到相关的分类信息";
            }
            issucess=true;
            resultData.setLibrary(libraryVo);
        }catch (Throwable e){
            e.printStackTrace();;
            msg="查询分类失败:"+e.getMessage();
        }finally {
            resultData.setErrorid(errorid);
            resultData.setMsg(msg);
            resultClassifyVO.setResultData(resultData);
        }
        if(dataType.equals("xml")){
            //组织返回接口信息
            XStream xStream = new XStream(new DomDriver());
            xStream.processAnnotations(XMLResultSystemVO.class);
            xStream.autodetectAnnotations(true);
            resultStr = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" + xStream.toXML(resultData);
        }else{
            Object object = JSONObject.toJSON(resultClassifyVO);
            resultStr = object.toString();
        }
        try {
            //记录日志
            this.saveLogs(systemId, systemId, data, resultStr, issucess, msg, "queryClassify");
        }catch (Throwable e){
            e.printStackTrace();
        }
        logger.info("返回参数:"+resultStr);
        return resultStr;
    }
    /***
     *
     * @param data
     * @param dataType
     * @return
     * @throws Throwable
     */
    @Override
    public String queryData(String data, String dataType) throws Throwable {
        boolean issucess=false;
        String resultStr = "";
        String errorid="0";
        msg="成功";
        String systemId="";
        logger.info("查询分类的数据参数:->"+data);
        logger.info("查询分类的数据类型:->"+dataType);
        DataCondtionsVO dataCondtionsVO=new DataCondtionsVO();
        ResultDataVO resultDataVO=new ResultDataVO();
        try {
            try {
                if ("xml".equals(dataType)) {
                    XStream xStream = new XStream(new DomDriver());
                    xStream.processAnnotations(CondtionsVO.class);
                    xStream.autodetectAnnotations(true);
                    CondtionsVO condtionsVO = (CondtionsVO) xStream.fromXML(data);
                    dataCondtionsVO.setCondtions(condtionsVO);
                } else {
                    dataCondtionsVO = JSONObject.toJavaObject(JSONObject.parseObject(data), DataCondtionsVO.class);
                }
            } catch (Throwable e) {
                errorid = "101";
                msg = "接口参数:传入数据参数解析失败";
                e.printStackTrace();
                throw new Throwable("接口参数:传入数据参数解析失败");
            }
            CondtionsVO condtionsVO=dataCondtionsVO.getCondtions();
            systemId=condtionsVO.getSystemId();
            UserVO userVo=condtionsVO.getUser();
            CondtionVO condtionVO= condtionsVO.getCondtion();
            SessionInfo sessionInfo = new SessionInfo();
            sessionInfo.setUserId(userVo.getUserName());
            sessionInfo.setUserName(userVo.getTrueName());
            sessionInfo.setIp(userVo.getIp());
            VciBaseUtil.setCurrentUserSessionInfo(sessionInfo);
            String classCode=condtionVO.getClassCode();
            String library= condtionVO.getLibrary();
            String queryFileds= condtionVO.getQueryFileds();
            List<CodeClassifyDO> codeClassifyDOS =new ArrayList<>();
            //先简称是否有关联模板,有模板要先删除
            VciQueryWrapperForDO queryWrapper = new VciQueryWrapperForDO(CodeClassifyDO.class);
            queryWrapper.addQueryMap("id", QueryOptionConstant.IN  + VciBaseUtil.toInSql(classCode));
            List<CodeClassifyDO> libIdDos =classifyService.selectByWrapper(queryWrapper);
            if(!CollectionUtils.isEmpty(libIdDos)){
                CodeClassifyDO currentCodeClassifyDO=libIdDos.get(0);
                String oid=currentCodeClassifyDO.getOid();
                TreeQueryObject treeQueryObject=new TreeQueryObject();
                treeQueryObject.setParentOid(oid);
                treeQueryObject.setQueryAllLevel(true);
                codeClassifyDOS=classifyService.selectCodeClassifyDOByTree(treeQueryObject);
                codeClassifyDOS.add(currentCodeClassifyDO);
                Map<String, CodeClassifyDO> oidCodeclassifyDOMap = codeClassifyDOS.stream().filter(systeDataObject -> systeDataObject != null && StringUtils.isNotBlank(systeDataObject.getOid())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getOid(), t -> t));
                List<PropertyVO>  propertyVOS=condtionVO.getPro();
                Map<String,String> condtionMap=new HashMap<>();
                propertyVOS.stream().forEach(propertyVO -> {
                    condtionMap.put(propertyVO.getFiledName(),propertyVO.getFiledValue());
                });
                condtionMap.put("codeclsfid", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(oidCodeclassifyDOMap.keySet().toArray(new String[0])) + ")");
                List<ClientBusinessObject> clientBusinessObjects= boService.queryCBO( currentCodeClassifyDO.getBtmTypeId(),condtionMap);
                List<DataObjectVO> dataObjectVOS=new ArrayList<>();
                if(!CollectionUtils.isEmpty(clientBusinessObjects)){
                    CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(currentCodeClassifyDO.getOid());
                    Map<String, CodeClassifyTemplateAttrVO> filedAttributeMap = templateVO.getAttributes().stream().filter(attribute -> attribute != null && StringUtils.isNotBlank(attribute.getId())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getId(), t -> t));
                    clientBusinessObjects.stream().forEach(cbo -> {
                        DataObjectVO dataObjectVO=new DataObjectVO();
                        dataObjectVO.setCode(cbo.getId());
                        dataObjectVO.setStatus(cbo.getLcStatus());
                        String codeclsfid=cbo.getAttributeValue("codeclsfid");
                        if(oidCodeclassifyDOMap.containsKey(codeclsfid)){
                            CodeClassifyDO classifyDO=  oidCodeclassifyDOMap.get(codeclsfid);
                            dataObjectVO.setClassCode(classifyDO.getId());
                        }
                        dataObjectVO.setLibrary(library);
                        String [] newQueryFileds=queryFileds.split(",");
                        List<PropertyVO> propertyVOList=new ArrayList<>();
                        for(String filed:newQueryFileds){
                            String value=cbo.getAttributeValue(filed);
                            if(filedAttributeMap.containsKey(filed)){
                                CodeClassifyTemplateAttrVO attrVO=  filedAttributeMap.get(filed);
                                PropertyVO propertyVO=new PropertyVO();
                                propertyVO.setFiledName(filed);
                                propertyVO.setFiledValue(value);
                                propertyVO.setOutname(attrVO.getName());
                                propertyVOList.add(propertyVO);
                            }
                        }
                        dataObjectVO.setPro(propertyVOList);
                        dataObjectVOS.add(dataObjectVO);
                    });
                    resultDataVO.setObject(dataObjectVOS);
                }
            }
            errorid = "0";
            msg = "数据查询成功";
        }catch (Throwable e){
            e.printStackTrace();;
            msg="查询数据失败:"+e.getMessage();
        }finally {
            resultDataVO.setErrorid(errorid);
            resultDataVO.setMsg(msg);
        }
        ResultVO resultVO=new ResultVO();
        resultVO.setData(resultDataVO);
        if(dataType.equals("xml")){
            //组织返回接口信息
            XStream xStream = new XStream(new DomDriver());
            xStream.processAnnotations(XMLResultSystemVO.class);
            xStream.autodetectAnnotations(true);
            resultStr = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" + xStream.toXML(resultDataVO);
        }else{
            Object object = JSONObject.toJSON(resultVO);
            resultStr = object.toString();
        }
        try {    //记录日志
            this.saveLogs(systemId, systemId, data, resultStr, issucess, msg, "queryClassify");
        }catch (Throwable e){
            e.printStackTrace();
        }
        logger.info("返回参数:"+resultStr);
        return resultStr;
    }
    /***
     * æŸ¥è¯¢æ ¡éªŒåˆ†ç±»ä¿¡æ¯
     * @param classfyVO
     */
    private  CodeClassifyVO getClassfy(ClassfyVO classfyVO) throws Throwable{
        CodeClassifyVO classifyVO = new CodeClassifyVO();
        try {
            String classCode = classfyVO.getClassCode();
            String className = classfyVO.getFullclsfNamePath();
            //根据分类代号查询分类信息
            if (StringUtils.isNotBlank(classfyVO.getClassCode())) {
                Map<String, String> conditionMap = new HashMap<>();
                conditionMap.put("id", classCode);
                VciQueryWrapperForDO wrapper = new VciQueryWrapperForDO(conditionMap, CodeClassifyDO.class);
                List<CodeClassifyDO> codeClassifyDOS = classifyService.selectByWrapper(wrapper);
                if (!CollectionUtils.isEmpty(codeClassifyDOS)) {
                    CodeClassifyDO classifyDO = codeClassifyDOS.get(0);
                    //将DTO转换为DO
                    classifyVO = new CodeClassifyVO();
                    BeanUtilForVCI.copyPropertiesIgnoreCase(classifyDO, classifyVO);
                    if(StringUtils.isBlank(classifyVO.getOid())){
                        throw new  Throwable("根据分类代号未查询到相应的分类信息");
                    }
                }else{
                    throw new  Throwable("根据分类代号未查询到相应的分类信息");
                }
            } else {
                classifyVO = classifyService.getObjectByClsfNamePath(className.replace(separator, "/"));
                if(StringUtils.isBlank(classifyVO.getOid())){
                    throw new  Throwable("根据分类名称路径未查询到相应的分类信息");
                }
            }
        }catch (Throwable e){
            objerrorCode="100";
            new  Throwable("获取分类信息失败:"+e.getMessage());
        }
        return classifyVO;
    }
    /***
     * æ ¹æ®ç©¿å…¥çš„参数信息校验码段规则
     */
    private List<CodeOrderSecDTO> getRuleCodeOrderSecDTOs(List<SectionVO> SectionVOList,CodeRuleVO ruleVO) throws Throwable{
        List<CodeBasicSecVO>  codeBasicSecVOS= ruleVO.getSecVOList();
        Map<String,String> sectionVOMap=new HashMap<>();
        SectionVOList.stream().forEach(SectionVO->{
            sectionVOMap.put(SectionVO.getName(),SectionVO.getValue());
        });
        List<CodeOrderSecDTO> codeOrderSecDTOList=new ArrayList<>();
        for(CodeBasicSecVO codeBasicSecVO: codeBasicSecVOS) {
            String sectype = codeBasicSecVO.getSectype();
            if (!sectype.equals(CodeSecTypeEnum.CODE_SERIAL_SEC.getValue())) {
                String name = codeBasicSecVO.getName();
                String sectypeText = codeBasicSecVO.getSectypeText();
                logger.info("码段名称:"+name);
                logger.info("描述:"+sectypeText);
                CodeOrderSecDTO CodeOrderSecDTO = new CodeOrderSecDTO();
                if (sectionVOMap.containsKey(name)) {
                    CodeOrderSecDTO.setSecOid(codeBasicSecVO.getOid());
                    String sectypeValue = sectionVOMap.get(name);
                    logger.info("码段值:"+sectypeValue);
                    CodeOrderSecDTO.setSecValue(sectypeValue);
                    codeOrderSecDTOList.add(CodeOrderSecDTO);
                } else {
                    objerrorCode="101";
                    throw new Throwable("传入的码段规则缺少" + name + "码段");
                }
            }
        }
        return codeOrderSecDTOList;
    }
    /***
     * æ ¹æ®å±žæ€§æ˜ å°„转换编码所需字段
     */
    public void getConfigDatas(String systemId, String libray, ApplyDatasVO applyDatasVO, List<CodeClassifyTemplateAttrVO> codeClassifyTemplateAttrVOList, org.springblade.code.vo.universalInter.attrmap.DataObjectVO dataObjectVO) throws Throwable {
        List<ApplyDataVO> applyDataVOList=applyDatasVO.getObject();
        LinkedHashMap<String,LinkedHashMap<String,String>> dataKeyValueMap=new LinkedHashMap<>();
        //如果将数据转换成所需要的数据对象
        Map<String, String> attrMapConfigMap=new HashMap<>();
        Map<String, String> propMaps=new HashMap<>();
        try {
            Map<String, String> stringStringMap=attributeMapConfig.getSystem_attrmap();
            //stringStringMap.put("RLM","D:\\RLM.xml");
            LibraryDO libraryDO= gennerAttrMapUtil.getNewInstance().gennerAttrMapBySystem(systemId,stringStringMap);
            List<LibraryClsfDO> libraryClsfDOList=libraryDO.getClsf();
            Map<String, List<ClsfAttrMappingDO>> libPropMaps = libraryClsfDOList.stream().collect(Collectors.toMap(LibraryClsfDO::getLibrary, LibraryClsfDO::getProp, (key1, key2) -> key2));
            if(libPropMaps.containsKey(libray)){
                List<ClsfAttrMappingDO> clsfAttrMappingDOList=libPropMaps.get(libray);
                propMaps = clsfAttrMappingDOList.stream().collect(Collectors.toMap(ClsfAttrMappingDO::getSourceKey, ClsfAttrMappingDO::getTargetKey, (key1, key2) -> key2));
            }
        }catch (Throwable e){
            objerrorCode="1";
            throw new Throwable("MDM集成属性配置文件读取失败");
        }
        LinkedList<String> rowNameList=new LinkedList<>();
        LinkedHashMap<String,Integer> filedIndexMap=new LinkedHashMap<>();
            //根据分类模板组织数据
        final int[] index = {0};
        try {
            codeClassifyTemplateAttrVOList.stream().forEach(codeClassifyTemplateAttrVO -> {
                String attrName = codeClassifyTemplateAttrVO.getName();
                String field = codeClassifyTemplateAttrVO.getId();
                rowNameList.add(attrName);
                filedIndexMap.put(field, index[0]++);
            });
            dataObjectVO.setColName(rowNameList);//放入属性
            attrMapConfigMap.putAll(propMaps);
            LinkedList<RowDatas> rowDataList = new LinkedList<>();
            //Map<String, List<ProppertyVO>> dataPropMap = applyDataVOList.stream().collect(Collectors.toMap(ApplyDataVO::getId, ApplyDataVO::getProp, (key1, key2) -> key2));
            final int[] rowIndex = {0};
            applyDataVOList.stream().forEach(applyDataVO -> {
                rowIndex[0]++;
                RowDatas rowDatas = new RowDatas();
                rowDatas.setOid(applyDataVO.getId());
                rowDatas.setCreator(applyDataVO.getCreator());
                rowDatas.setEditor(applyDataVO.getEditor());
                rowDatas.setCode(applyDataVO.getCode());
                rowDatas.setOperation(applyDataVO.getOperate());
                rowDatas.setStatus(applyDataVO.getStatus());
                rowDatas.setRowIndex(rowIndex[0] + "");
                List<ProppertyVO> proppertyVOList = applyDataVO.getProp();
                LinkedHashMap<Integer, String> integerValueMap = new LinkedHashMap<>();
                Map<String, String> filedValueMap = new HashMap<>();
                if (!CollectionUtils.isEmpty(proppertyVOList)) {
                    Map<String, String> sourceKeyValueMap = proppertyVOList.stream().collect(Collectors.toMap(ProppertyVO::getKey, ProppertyVO::getValue, (key1, key2) -> key2));
                    Map<String, String> keyValueMap = new HashMap<>();
                    //判断attrMapConfigMap是否有值,如果没有则说明基础默认的是编码系统字段
                    if (!CollectionUtils.isEmpty(attrMapConfigMap)) {
                        sourceKeyValueMap.keySet().forEach(sourceKey -> {
                            String dataValue = sourceKeyValueMap.get(sourceKey);
                            if (attrMapConfigMap.containsKey(sourceKey)) {
                                String targetKey = attrMapConfigMap.get(sourceKey);
                                keyValueMap.put(targetKey, StringUtils.isBlank(dataValue)?"":dataValue);
                            }
                        });
                    } else {
                        sourceKeyValueMap.forEach((filed,value)->{
                            keyValueMap.put(filed,StringUtils.isBlank(value)?"":value) ;
                        });
                    }
                    filedIndexMap.forEach((attrKey, column) -> {
                        String keyValue = "";
                        if (keyValueMap.containsKey(attrKey)) {
                            keyValue =StringUtils.isBlank(keyValueMap.get(attrKey))?"":keyValueMap.get(attrKey);
                        }
                        integerValueMap.put(column, keyValue);
                        filedValueMap.put(attrKey, keyValue);
                    });
                }
                rowDatas.setData(integerValueMap);
                rowDatas.setFiledValue(filedValueMap);
                rowDataList.add(rowDatas);
            });
            dataObjectVO.setRowData(rowDataList);
        }catch (Throwable e){
            objerrorCode="1";
            throw new   Throwable("组织数据映射值失败");
        }
    }
    /***
     * æ•°æ®ç»´æŠ¤ä¸Žç¼–码申请返回
     * @param resultSystemVO
     * @param dataType
     * @return
     */
    private String transferResultXMl(XMLResultSystemVO resultSystemVO,String dataType){
        String resultStr="";
        if ("xml".equals(dataType)) {
            //组织返回接口信息
            XStream xStream = new XStream(new DomDriver());
            xStream.processAnnotations(XMLResultSystemVO.class);
            xStream.autodetectAnnotations(true);
            resultStr = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" + xStream.toXML(resultSystemVO);
        } else {
            List<XMLResultClassfyVO> resultClassfyVOList =resultSystemVO.getClassifys();
            JSONResultDataVO resultDataVO = new JSONResultDataVO();
            JSONResultSystemVO jsonResultSystemVO = new JSONResultSystemVO();
            JSONResultClassfysVO jsonResultClassfysVO = new JSONResultClassfysVO();
            List<JSONResultClassfyVO> jSONResultClassfyVOList = new ArrayList<>();
            resultClassfyVOList.stream().forEach(resultClassfyVO -> {
                List<XMLResultDataObjectDetailDO> xmlResultDataObjectDetailDOS = resultClassfyVO.getObjects();
                List<JSONResultDataObjectDetailDO> JSONResultDataObjectDetailDOList = new ArrayList<>();
                xmlResultDataObjectDetailDOS.stream().forEach(xmlResultDataObjectDetail -> {
                    JSONResultDataObjectDetailDO jsonResultDataObjectDetail = new JSONResultDataObjectDetailDO();
                    BeanUtilForVCI.copyPropertiesIgnoreCase(xmlResultDataObjectDetail, jsonResultDataObjectDetail);
                    JSONResultDataObjectDetailDOList.add(jsonResultDataObjectDetail);
                });
                JSONResultClassfyVO jsonResultClassfyVO = new JSONResultClassfyVO();
                jsonResultClassfyVO.setClassCode(resultClassfyVO.getClassCode());
                jsonResultClassfyVO.setLibrary(resultClassfyVO.getLibrary());
                jsonResultClassfyVO.setFullclsfNamePath(resultClassfyVO.getFullclsfNamePath());
                JSONResultDataObjectDO JSONResultDataObjectDO = new JSONResultDataObjectDO();
                JSONResultDataObjectDO.setObject(JSONResultDataObjectDetailDOList);
                jsonResultClassfyVO.setObjects(JSONResultDataObjectDO);
                jSONResultClassfyVOList.add(jsonResultClassfyVO);
            });
            jsonResultClassfysVO.setClassify(jSONResultClassfyVOList);
            jsonResultSystemVO.setClassifys(jsonResultClassfysVO);
            jsonResultSystemVO.setErrorid(resultSystemVO.getErrorid());
            jsonResultSystemVO.setMsg(resultSystemVO.getMsg());
            resultDataVO.setData(jsonResultSystemVO);
            Object object = JSONObject.toJSON(resultDataVO);
            resultStr = object.toString();
        }
        return resultStr;
    }
    /***
     * è®°å½•日志信息
     * @param systemId
     * @param parmaData
     * @param result
     * @return
     */
    private  void saveLogs(String systemId,String systemName,String parmaData, String result,boolean isSucess,String msg,String operation){
        //记录日志信息
        DockingLogeDO dockingLogeDO=new DockingLogeDO();
        String oid=redisService.getUUIDEveryDay();
        dockingLogeDO.setSystemcode(StringUtils.isBlank(systemId)?"-":systemId);//设置系统标识
        dockingLogeDO.setSystemname(StringUtils.isBlank(systemName)?"-":systemName);
        dockingLogeDO.setMsg(msg);//日志消息
        dockingLogeDO.setClassifyid("-");//分类编号
        dockingLogeDO.setClassifyname("-");//分类名称
        dockingLogeDO.setClassifyoid("-");//分类主键
        dockingLogeDO.setUniquecode("-");//唯一标识
        dockingLogeDO.setSystemoid("-");//系统标识
//        dockingLogeDO.setName(operation);
        dockingLogeDO.setOid(oid);//日志主键
        dockingLogeDO.setParamstring(parmaData);//参数信息
        dockingLogeDO.setReturnstring(result);//返回信息
        dockingLogeDO.setType(operation);//日志操作类型
        if(isSucess) {
            dockingLogeDO.setInterfacestatus(MdmDuckingConstant.INTERFACE_STATUS_TRUE);//接口集成状态
        }else{
            dockingLogeDO.setInterfacestatus(MdmDuckingConstant.INTERFACE_STATUS_FALSE);//接口集成状态
        }
        BatchCBO insert = dockingLogeDao.insert(dockingLogeDO);
        logger.info("集成推送数据成功,systemId:"+systemId+",systemname:"+systemName+",operation:"+operation+",param:"+parmaData);
    }
}
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/utils/XmlUtil.java
@@ -15,7 +15,8 @@
import java.util.List;
import java.util.Map;
import static com.vci.mdm.constant.MdmDuckingConstant.*;
import static org.springblade.code.constant.MdmDuckingConstant.*;
public class XmlUtil {
    /*
Source/BladeX/blade-service/blade-code/src/main/java/org/springblade/code/utils/gennerAttrMapUtil.java
@@ -2,9 +2,9 @@
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;
import com.vci.mdm.model.universalInter.attrmap.LibraryDO;
import com.vci.starter.web.util.LocalFileUtil;
import org.apache.commons.lang3.StringUtils;
import org.springblade.code.vo.universalInter.attrmap.LibraryDO;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.Map;
@@ -25,7 +25,7 @@
     * èŽ·å–
     * @param systemId
     */
    public LibraryDO gennerAttrMapBySystem(String systemId,Map<String, String> system_attrmap) throws Throwable{
    public LibraryDO gennerAttrMapBySystem(String systemId, Map<String, String> system_attrmap) throws Throwable{
        if(StringUtils.isBlank(systemId)){
            throw new Throwable("系统标识为空");
        }
Source/BladeX/blade-service/blade-code/src/main/resources/application-dev.yml
@@ -12,6 +12,9 @@
    url: ${blade.datasource.dev.url}
    username: ${blade.datasource.dev.username}
    password: ${blade.datasource.dev.password}
  messages:
    encoding: UTF-8
    basename: i18n/messages
#####应用基本配置
app:
@@ -20,13 +23,6 @@
  description: å¹³å°B/S客户端
  private-token-key: vciweb20210212
###log4j2的配置,需要哪个包下的文件开启某个等级,就直接xxxxx: yy这样方式
logging:
  config: "classpath:log4j2-spring-dev.xml"
  level:
    com.vci: debug
  root: info
  show-log: false
###本项目的配置,注意spring家族读取配置时,大写字母需要转换为-的方式,而feign需要大小写完全相同
session:
  session-info-storage-type: "database"
Source/BladeX/blade-service/blade-code/src/main/resources/application-test.yml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
#服务器端口
server:
  port: 8102
#数据源配置
spring:
  datasource:
    url: ${blade.datasource.test.url}
    username: ${blade.datasource.test.username}
    password: ${blade.datasource.test.password}
Source/BladeX/blade-service/blade-user/src/main/java/org/springblade/system/user/controller/UserController.java
@@ -334,7 +334,7 @@
     * ç”¨æˆ·è§£é”
     */
    @PostMapping("/check-renexpr")
    @ApiOperationSupport(order = 19)
    @ApiOperationSupport(order = 20)
    @ApiOperation(value = "查询用户密码策略是否需要提醒", notes = "传入id")
    public R<Long> checkRenAndExpr(BladeUser user) {
        System.out.println("==============================="+user.getUserId());
Source/BladeX/blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java
@@ -489,7 +489,7 @@
        }
        Strategy strategy = sysClient.getByUserId(userId).getData();
        //是否提醒通过最后一次修改密码的时间加上过期时间减去当前时间,如果小于过期提醒时间就进行提醒,如果<=0就提醒必须修改密码
        long reminder = pwdupdateday+strategy.getExpirationTime()-dateToDay(pwdUpdateTime);
        long reminder = pwdupdateday+strategy.getExpirationTime()-dateToDay(new Date());
        //提醒用户必须修改密码
        if(reminder<=0){
            return -1L;
Source/BladeX/blade-service/pom.xml
@@ -22,7 +22,6 @@
        <module>blade-system</module>
        <module>blade-user</module>
        <module>blade-code</module>
        <module>blade-omd</module>
    </modules>
    <dependencies>