ludc
2023-04-07 7df1d61319149a666e8b2801a3c89c1d80900d2e
编码规则相关代码上传
已修改95个文件
已删除255个文件
已添加46个文件
55534 ■■■■ 文件已修改
Source/UBCS.zip 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-common/src/main/java/com/vci/ubcs/common/constant/CommonConstant.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-common/src/main/java/com/vci/ubcs/common/constant/LauncherConstant.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/pom.xml 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/bo/CodeTemplateAttrSqlBO.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeBasicSecDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeButtonDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeClassifyDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeClassifyProcessTempDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeClassifyTempMapItemDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeClassifyTemplateAttrDTO.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeClassifyTemplateButtonDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeClassifyTemplateDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeClassifyTemplateMapDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeClassifyValueDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeFixedValueDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeKeyAttrRepeatRuleDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodePhaseAttrDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeResembleRuleDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeRuleDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeSynonymDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeTemplatePhaseDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/DockingDataDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/DockingLogeDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/DockingPreApplyDataDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/DockingPreApplyDataInfoDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/DockingPreAttrMappingDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/DockingPreAttrRangeDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/DockingTaskDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/SysIntAuthorityDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/SysIntBaseDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/SysIntHeaderDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/SysIntInfoBseDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/SysIntInfoDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/SysIntParamDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/datapush/BaseModelDTO.java 150 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/datapush/classify/NodeClassifyDTO.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/datapush/classify/NodeDataDTO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/datapush/classify/NodeLibraryDTO.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/datapush/data/NodeJosnDTO.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/datapush/data/NodeObjectDTO.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/datapush/data/NodeProDTO.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/datapush/data/NodedataDTO.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/datapush/data/data.json 137 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/datapush/data/result.json 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/datapush/result/ResultNodeDataDTO.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/datapush/result/ResultNodeObjectDTO.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/BaseModel.java 354 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeAllcode.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeBasicSec.java 275 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClassify.java 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClassifyValue.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeFixedValue.java 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeRule.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/po/CodeClassifyPO.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/BaseModelVO.java 328 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeAllcodeVO.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeBasicSecVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeButtonVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeClassifyAttributeVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeClassifyProcessTempVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeClassifyTempMapItemVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeClassifyTemplateAttrVO.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeClassifyTemplateButtonVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeClassifyTemplateMapVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeClassifyTemplateVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeClassifyVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeClassifyValueVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeFixedValueVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeImportResultVO.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeKeyAttrRepeatRuleVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodePhaseAttrVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeResembleRuleVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeRuleVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeSynonymVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeTemplatePhaseVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/DockingDataVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/DockingLogeVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/DockingPreApplyDataInfoVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/DockingPreApplyDataVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/DockingPreAttrMappingVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/DockingPreAttrRangeVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/DockingTaskVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/MdmUIInfoVO.java 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/SysIntAuthorityVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/SysIntBaseVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/SysIntHeaderVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/SysIntInfoVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/SysIntParamVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/apply/ApplyDataVO.java 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/apply/ApplyDatasVO.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/apply/ClassfyVO.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/apply/ClassfysVO.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/apply/InterParameterVO.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/apply/ProppertyVO.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/apply/RootDataVO.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/apply/SectionVO.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/apply/SectionsVO.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/apply/UserVO.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/attrmap/ClsfAttrMappingDO.java 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/attrmap/DataAttributeVO.java 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/attrmap/DataObjectVO.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/attrmap/GeneralMappingUtil.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/attrmap/LibraryClsfDO.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/attrmap/LibraryDO.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/attrmap/RowDatas.java 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/attrmap/appcode.xml 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/attrmap/clsfAttrMap.xml 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/attrmap/tt.xml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/attrmap/xxx.json 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/attrmap/xxxxxxxxx.json 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/classify/ClassifyVO.java 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/classify/LibraryVO.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/classify/QueryClassifyVO.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/classify/QueryData.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/classify/QueryLibraryVO.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/classify/ResultClassifyVO.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/classify/ResultData.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/classify/classify.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/classify/xxx.json 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/data/CondtionVO.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/data/CondtionsVO.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/data/DataCondtionsVO.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/data/DataObjectVO.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/data/PropertyVO.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/data/ResultDataVO.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/data/ResultVO.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/data/result.json 135 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/data/xx.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/result/json/JSONResultClassfyVO.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/result/json/JSONResultClassfysVO.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/result/json/JSONResultDataObjectDO.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/result/json/JSONResultDataObjectDetailDO.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/result/json/JSONResultDataVO.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/result/json/JSONResultSystemVO.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/result/json/tt.json 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/result/xml/XMLResultClassfyVO.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/result/xml/XMLResultDataObjectDetailDO.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/result/xml/XMLResultDataVO.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/result/xml/XMLResultSystemVO.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/annotation/Transient.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/annotation/VciEnum.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/exception/VciBaseException.java 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/revision/model/ReleasedObjDO.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/revision/model/RevisionInfo.java 147 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/revision/service/RevisionModelUtil.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/revision/service/VciRevisionServiceI.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/util/VciBaseUtil.java 1101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/enumpck/BaseEnumInt.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/enumpck/UserSecretEnum.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/pagemodel/SessionInfo.java 421 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/service/VciSecretServiceI.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/util/BeanUtilForVCI.java 163 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/util/Lunar.java 194 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/util/MessageUtils.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/util/VciBaseUtil.java 1098 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/util/VciDateUtil.java 639 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/util/WebThreadLocalUtil.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/pom.xml 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/CodeApplication.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/Scheduling/DockingClassSyncScheduling.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/Scheduling/DockingDataSyncScheduling.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/Scheduling/DockingScheduling.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/algorithm/CustomSerialAlgorithmExample.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/annotation/BaseEnum.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/annotation/MdmIntegrationMap.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/annotation/MdmIntegrationMapMethod.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/annotation/MdmSerialAlgorithm.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/annotation/MdmSerialAlgorithmMethod.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/constant/FrameWorkDefaultValueConstant.java 169 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/constant/FrameWorkLangCodeConstant.java 321 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeAllcodeController.java 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeApplySyncController.java 169 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeBasicSecController.java 190 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeButtonController.java 136 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyController.java 255 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyProcessTempController.java 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyTempMapItemController.java 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyTemplateAttrController.java 165 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyTemplateButtonController.java 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyTemplateController.java 190 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyTemplateMapController.java 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyValueController.java 146 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeDuckingController.java 293 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeFixedValueController.java 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeKeyAttrRepeatRuleController.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodePhaseAttrController.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeResembleRuleController.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeRuleController.java 254 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeSerialAlgorithmController.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeSynonymController.java 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeTemplatePhaseController.java 138 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/dto/CodeCodeAllcodeDTO.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/dto/CodeRuleDTO.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodeAllCodeDO.java 156 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodeBasicSecDO.java 730 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodeButtonDO.java 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodeClassifyDO.java 278 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodeClassifyProcessPhaseDO.java 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodeClassifyProcessTempDO.java 171 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodeClassifyTempMapItemDO.java 183 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodeClassifyTemplateAttrDO.java 860 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodeClassifyTemplateButtonDO.java 137 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodeClassifyTemplateDO.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodeClassifyTemplateMapDO.java 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodeClassifyValueDO.java 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodeFixedValueDO.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodeKeyAttrRepeatRuleDO.java 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodePhaseAttrDO.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodeResembleRuleDO.java 139 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodeRuleDO.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodeSerialValueDO.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodeSynonymDO.java 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodeTemplatePhaseDO.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/DockingDataDO.java 150 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/DockingLogeDO.java 230 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/DockingPreApplyDataDO.java 268 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/DockingPreApplyDataInfoDO.java 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/DockingPreAttrMappingDO.java 209 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/DockingPreAttrRangeDO.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/DockingTaskDO.java 226 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/SysIntAuthorityDO.java 161 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/SysIntBaseDO.java 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/SysIntHeaderDO.java 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/SysIntInfoDO.java 658 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/SysIntParamDO.java 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/TaskDuckingDO.java 236 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeButtonUseEnum.java 140 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeClassifyProcessUseEnum.java 150 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeCutTypeEnum.java 135 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeGetValueTypeEnum.java 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeLevelTypeEnum.java 135 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeMapRuleTypeEnum.java 145 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeSecLengthTypeEnum.java 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeSecTypeEnum.java 260 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeUseButtonPositionTypeEnum.java 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationAuthorityTypeEnum.java 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationDataFlowTypeEnum.java 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationParamAndReturnTypeEnum.java 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationRequestMethodEnum.java 136 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationRequestTypeEnum.java 135 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/sysIntegrationPushTypeEnum.java 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/lifecycle/CodeAllCodeLC.java 165 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/lifecycle/CodeClassifyTemplateLC.java 144 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/lifecycle/CodeDefaultLC.java 159 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/lifecycle/CodeRuleLC.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeAllCodeMapper.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeBasicSecMapper.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeButtonMapper.java 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyMapper.java 224 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyProcessTempMapper.java 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyTempMapItemMapper.java 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyTemplateAttrMapper.java 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyTemplateButtonMapper.java 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyTemplateMapMapper.java 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyTemplateMapper.java 170 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyValueMapper.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeFixedValueMapper.java 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeKeyAttrRepeatRuleMapper.java 148 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodePhaseAttrMapper.java 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeResembleRuleMapper.java 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeRuleMapper.java 153 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeSerialValueMapper.java 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeSynonymMapper.java 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeTemplatePhaseMapper.java 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/DockingDataMapper.java 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/DockingLogeMapper.java 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/DockingPreApplyDataInfoMapper.java 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/DockingPreApplyDataMapper.java 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/DockingPreAttrMappingMapper.java 133 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/DockingPreAttrRangeMapper.java 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/DockingTaskMapper.java 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/SysIntAuthorityMapper.java 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/SysIntBaseMapper.java 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/SysIntHeaderMapper.java 143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/SysIntInfoMapper.java 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/SysIntParamMapper.java 144 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeBasicSecServiceI.java 182 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeButtonServiceI.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeClassifyProcessTempServiceI.java 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeClassifyServiceI.java 240 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeClassifyTempMapItemServiceI.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeClassifyTemplateAttrServiceI.java 133 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeClassifyTemplateButtonServiceI.java 133 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeClassifyTemplateMapServiceI.java 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeClassifyTemplateServiceI.java 199 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeClassifyValueServiceI.java 152 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeDuckingServiceI.java 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeDuckingSyncServiceI.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeFixedValueServiceI.java 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeKeyAttrRepeatRuleServiceI.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodePhaseAttrServiceI.java 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeResembleRuleServiceI.java 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeRuleServiceI.java 175 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeSerialAlgorithmServiceI.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeSynonymServiceI.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeTemplatePhaseServiceI.java 137 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/DockingPreApplyDataInfoServiceI.java 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/DockingPreApplyDataServiceI.java 152 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/DockingPreAttrMappingSeviceI.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeAllcodeService.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeBasicSecService.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyService.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyValueService.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeFixedValueService.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeRuleService.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineServiceI.java 361 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmIOServiceI.java 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmProductCodeServiceI.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/SysIntAuthorityServiceI.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/SysIntBaseServiceI.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/SysIntInfoServiceI.java 159 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/UniversalInterfaceI.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeAllcodeServiceImpl.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java 881 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeButtonServiceImpl.java 324 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyProcessTempServiceImpl.java 359 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java 1026 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyTempMapItemServiceImpl.java 297 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyTemplateAttrServiceImpl.java 728 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyTemplateButtonServiceImpl.java 382 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyTemplateMapServiceImpl.java 278 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyTemplateServiceImpl.java 1086 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyValueServiceImpl.java 475 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeDuckingServiceImpl.java 1104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeDuckingSyncServiceImpl.java 634 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeFixedValueServiceImpl.java 366 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeKeyAttrRepeatRuleServiceImpl.java 344 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodePhaseAttrServiceImpl.java 301 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeResembleRuleServiceImpl.java 279 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeRuleServiceImpl.java 866 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeSerialAlgorithmServiceImpl.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeSynonymServiceImpl.java 278 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeTemplatePhaseServiceImpl.java 510 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingPreApplyDataInfoServiceImpl.java 277 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingPreApplyDataServiceImpl.java 1116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingPreAttrMappingSeviceImpl.java 531 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/ICodeClassifyServiceImpl.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java 2755 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java 4013 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmProductCodeServiceImpl.java 743 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/SysIntAuthorityServiceImpl.java 290 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/SysIntBaseServiceImpl.java 285 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/SysIntInfoServiceImpl.java 1093 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java 915 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/utils/AttributeMapConfig.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/utils/BackXml.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/utils/DateUtils.java 527 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/utils/EnumVO.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/utils/HttpUtils.java 194 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/utils/Json2XmlUtil.java 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/utils/PatternUtil.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/utils/Pro.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/utils/WsAxis2ClientUtil.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/utils/WsErpClientUtil.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/utils/XmlData.java 143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/utils/XmlUtil.java 770 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/utils/gennerAttrMapUtil.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeAllcodeWrapper.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeClassifyWrapper.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeRuleWrapper.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/application-dev.yml 131 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/application.yml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeALlCodeMapper.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeBasicSecMapper.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeButtonMapper.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClassifyProcessTempMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClassifyTempMapItemMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClassifyTemplateAttrMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClassifyTemplateButtonMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClassifyTemplateMapMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClassifyTemplateMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeFixedValueMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeKeyAttrRepeatRuleMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodePhaseAttrMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeResembleRuleMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeRuleMapper.xml 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeSerialValueMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeSynonymMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeTemplatePhaseMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/DockingDataMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/DockingLogeMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/DockingPreApplyDataInfoMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/DockingPreApplyDataMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/DockingPreAttrMappingMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/DockingPreAttrRangeMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/DockingTaskMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/SysIntAuthorityMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/SysIntBaseMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/SysIntHeaderMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/SysIntInfoMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/SysIntParamMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/mapper/StrategyMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/mapper/ValueRangeMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/StrategyServiceImpl.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-system/src/main/resources/mapper/ValueRangeMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS.zip
Binary files differ
Source/UBCS/ubcs-common/src/main/java/com/vci/ubcs/common/constant/CommonConstant.java
@@ -49,6 +49,16 @@
    Integer NOT_SEALED_ID = 0;
    /**
     * æ˜¯é»˜è®¤å¯†ç ç­–略值
     */
    Integer IS_DEFAULT = 1;
    /**
     * ä¸æ˜¯é»˜è®¤å¯†ç ç­–略值
     */
    Integer NOT_DEFAULT = 0;
    /**
     * é»˜è®¤å¯†ç 
     */
    String DEFAULT_PASSWORD = "123456";
Source/UBCS/ubcs-common/src/main/java/com/vci/ubcs/common/constant/LauncherConstant.java
@@ -41,7 +41,7 @@
     * nacos dev åœ°å€
     */
    //String NACOS_DEV_ADDR = "dev.vci-tech.com:38848";
    String NACOS_DEV_ADDR = "192.168.93.133:38848";
    String NACOS_DEV_ADDR = "192.168.93.140:38848";
    /**
     * nacos prod åœ°å€
Source/UBCS/ubcs-service-api/ubcs-code-api/pom.xml
@@ -13,22 +13,32 @@
    <version>${bladex.project.version}</version>
    <dependencies>
        <dependency>
            <groupId>com.thoughtworks.xstream</groupId>
            <artifactId>xstream</artifactId>
        </dependency>
        <dependency>
            <groupId>com.vci</groupId>
            <artifactId>vci-starter-poi</artifactId>
            <version>1.0-SNAPSHOT</version>
            <scope>compile</scope>
        </dependency>
<!--        <dependency>-->
<!--            <groupId>com.thoughtworks.xstream</groupId>-->
<!--            <artifactId>xstream</artifactId>-->
<!--        </dependency>-->
<!--        <dependency>-->
<!--            <groupId>com.vci</groupId>-->
<!--            <artifactId>vci-starter-poi</artifactId>-->
<!--            <version>1.0-SNAPSHOT</version>-->
<!--            <scope>compile</scope>-->
<!--        </dependency>-->
        <dependency>
        <!--<dependency>
            <groupId>com.vci</groupId>
            <artifactId>vci-platform-web</artifactId>
            <version>2022.1-SNAPSHOT</version>
            <scope>compile</scope>
            <exclusions>
                <exclusion>
                    <artifactId>vci-starter-web</artifactId>
                    <groupId>com.vci</groupId>
                </exclusion>
                <exclusion>
                    <groupId>com.vci</groupId>
                    <artifactId>vci-starter-corba</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
@@ -47,6 +57,10 @@
            <groupId>de.odysseus.staxon</groupId>
            <artifactId>staxon</artifactId>
            <version>1.3</version>
        </dependency>-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
        </dependency>
    </dependencies>
    <packaging>jar</packaging>
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/bo/CodeTemplateAttrSqlBO.java
@@ -1,7 +1,5 @@
package com.vci.ubcs.code.bo;
import com.vci.starter.web.pagemodel.PageHelper;
import java.util.List;
import java.util.Map;
@@ -30,7 +28,7 @@
    /**
     * åˆ†é¡µå¯¹è±¡
     */
    private PageHelper pageHelper;
    //private PageHelper pageHelper;
    /**
     * åŒ…含分页的sql语句
@@ -76,13 +74,13 @@
        this.joinTable = joinTable;
    }
    public PageHelper getPageHelper() {
        return pageHelper;
    }
    public void setPageHelper(PageHelper pageHelper) {
        this.pageHelper = pageHelper;
    }
//    public PageHelper getPageHelper() {
//        return pageHelper;
//    }
//
//    public void setPageHelper(PageHelper pageHelper) {
//        this.pageHelper = pageHelper;
//    }
    public String getSqlHasPage() {
        return sqlHasPage;
@@ -122,7 +120,7 @@
                "tableName='" + tableName + '\'' +
                ", nickName='" + nickName + '\'' +
                ", joinTable=" + joinTable +
                ", pageHelper=" + pageHelper +
                //", pageHelper=" + pageHelper +
                ", sqlHasPage='" + sqlHasPage + '\'' +
                ", sqlUnPage='" + sqlUnPage + '\'' +
                ", sqlCount='" + sqlCount + '\'' +
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeBasicSecDTO.java
@@ -1,7 +1,7 @@
package com.vci.ubcs.code.dto;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * ç æ®µåŸºç¡€ä¿¡æ¯æ•°æ®ä¼ è¾“对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeButtonDTO.java
@@ -1,7 +1,7 @@
package com.vci.ubcs.code.dto;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * ä¸»æ•°æ®ä¸­çš„æŒ‰é’®æ‰©å±•数据传输对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeClassifyDTO.java
@@ -1,7 +1,7 @@
package com.vci.ubcs.code.dto;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * ä¸»é¢˜åº“分类数据传输对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeClassifyProcessTempDTO.java
@@ -1,7 +1,7 @@
package com.vci.ubcs.code.dto;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * åˆ†ç±»ä½¿ç”¨çš„æµç¨‹æ¨¡æ¿æ•°æ®ä¼ è¾“对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeClassifyTempMapItemDTO.java
@@ -1,7 +1,7 @@
package com.vci.ubcs.code.dto;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * æ˜ å°„规则的明细数据传输对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeClassifyTemplateAttrDTO.java
@@ -1,8 +1,7 @@
package com.vci.ubcs.code.dto;
import com.vci.starter.web.annotation.Column;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * ä¸»é¢˜åº“分类的模板属性数据传输对象
@@ -262,31 +261,26 @@
    /**
     * è¯´æ˜Ž
     */
    @Column(columnDefinition = "说明")
    private String explain;
    /**
     * é€‰æ‹©åº“标识
     */
    @Column(columnDefinition = "选择库标识")
    private String libraryIdentification;
    /**
     * çº§è”属性编号
     */
    @Column(columnDefinition = "级联属性编号")
    private String parentCode;
    /**
     * çº§è”属性名称
     */
    @Column(columnDefinition = "级联属性名称")
    private String parentName;
    /**
     * çº§è”查询属性
     */
    @Column(columnDefinition = "级联查询属性")
    private String parentQueryAttr;
    public String getExplain() {
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeClassifyTemplateButtonDTO.java
@@ -1,7 +1,7 @@
package com.vci.ubcs.code.dto;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * ä¸»é¢˜åº“里模板包含的按钮数据传输对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeClassifyTemplateDTO.java
@@ -1,7 +1,7 @@
package com.vci.ubcs.code.dto;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * åˆ†ç±»æ¨¡æ¿å¯¹è±¡æ•°æ®ä¼ è¾“对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeClassifyTemplateMapDTO.java
@@ -1,7 +1,7 @@
package com.vci.ubcs.code.dto;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * ä¸»é¢˜åº“模板映射规则数据传输对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeClassifyValueDTO.java
@@ -1,7 +1,7 @@
package com.vci.ubcs.code.dto;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * åˆ†ç±»ç æ®µçš„码值数据传输对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeFixedValueDTO.java
@@ -1,7 +1,7 @@
package com.vci.ubcs.code.dto;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * å›ºå®šç æ®µçš„码值数据传输对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeKeyAttrRepeatRuleDTO.java
@@ -1,7 +1,7 @@
package com.vci.ubcs.code.dto;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * å…³é”®æ•°æ®æŸ¥é‡è§„则数据传输对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodePhaseAttrDTO.java
@@ -1,7 +1,7 @@
package com.vci.ubcs.code.dto;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * é˜¶æ®µçš„属性数据传输对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeResembleRuleDTO.java
@@ -1,7 +1,7 @@
package com.vci.ubcs.code.dto;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * ç›¸ä¼¼æŸ¥è¯¢è§„则数据传输对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeRuleDTO.java
@@ -1,7 +1,7 @@
package com.vci.ubcs.code.dto;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
import java.util.List;
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeSynonymDTO.java
@@ -1,7 +1,7 @@
package com.vci.ubcs.code.dto;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * åŒä¹‰è¯é…ç½®æ•°æ®ä¼ è¾“对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeTemplatePhaseDTO.java
@@ -1,7 +1,7 @@
package com.vci.ubcs.code.dto;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
import java.util.List;
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/DockingDataDTO.java
@@ -1,6 +1,6 @@
package com.vci.ubcs.code.dto;
import com.vci.starter.web.model.BaseModel;
import com.vci.ubcs.code.entity.BaseModel;
/**
 * è¦æŽ¨é€å¾—数据
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/DockingLogeDTO.java
@@ -1,7 +1,7 @@
package com.vci.ubcs.code.dto;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * èµ„源对接通知、查询接口日志数据传输对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/DockingPreApplyDataDTO.java
@@ -1,7 +1,7 @@
package com.vci.ubcs.code.dto;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * è®°å½•工艺推送过来的数据信息数据传输对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/DockingPreApplyDataInfoDTO.java
@@ -1,7 +1,7 @@
package com.vci.ubcs.code.dto;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * è®°å½•工艺推送过来的数据信息数据传输对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/DockingPreAttrMappingDTO.java
@@ -1,7 +1,7 @@
package com.vci.ubcs.code.dto;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
import java.util.List;
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/DockingPreAttrRangeDTO.java
@@ -1,6 +1,6 @@
package com.vci.ubcs.code.dto;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
public class DockingPreAttrRangeDTO extends BaseModelVO {
    /**
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/DockingTaskDTO.java
@@ -1,7 +1,7 @@
package com.vci.ubcs.code.dto;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * èµ„源对接通知、查询接口待推送任务数据传输对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/SysIntAuthorityDTO.java
@@ -1,7 +1,7 @@
package com.vci.ubcs.code.dto;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证数据传输对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/SysIntBaseDTO.java
@@ -1,7 +1,7 @@
package com.vci.ubcs.code.dto;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * ç³»ç»Ÿé›†æˆçš„系统信息数据传输对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/SysIntHeaderDTO.java
@@ -1,7 +1,7 @@
package com.vci.ubcs.code.dto;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证数据传输对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/SysIntInfoBseDTO.java
@@ -1,6 +1,6 @@
package com.vci.ubcs.code.dto;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
import java.util.List;
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/SysIntInfoDTO.java
@@ -1,7 +1,7 @@
package com.vci.ubcs.code.dto;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
import java.util.List;
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/SysIntParamDTO.java
@@ -1,7 +1,7 @@
package com.vci.ubcs.code.dto;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证数据传输对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/datapush/BaseModelDTO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,150 @@
package com.vci.web.dto;
import com.vci.ubcs.code.entity.BaseModel;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * ç¼–辑的数据,在单条数据增加和修改的时候使用
 * @author weidy
 * @date 2021-2-12
 */
public class BaseModelDTO extends BaseModel {
    /**
     * æ•°æ®
     */
    private Map<String,String> data = new HashMap<>();
    /**
     * å­è¡¨çš„业务类型
     */
    private String subBtmType;
    /**
     * å­è¡¨çš„æ•°æ®
     */
    private List<Map<String,String>> subTableData = new ArrayList<Map<String,String>>();
    /**
     * å‰ç½®äº‹ä»¶
     */
    private String preEvent;
    /**
     * åŽç½®äº‹ä»¶
     */
    private String postEvent;
    /**
     * è¦å‘布的文件的主键
     */
    private List<String> releaseFileOids = new ArrayList<>();
    /**
     * å‡ç‰ˆæ¬¡
     */
    private boolean upVersion = false;
    /**
     * æ¥æºæ•°æ®
     */
    private List<Map<String,String>> sourceData = new ArrayList<>();
    /**
     * é€‰æ‹©æ•°æ®
     */
    private List<Map<String,String>> selectData = new ArrayList<>();
    public List<Map<String, String>> getSourceData() {
        return sourceData;
    }
    public void setSourceData(List<Map<String, String>> sourceData) {
        this.sourceData = sourceData;
    }
    public List<Map<String, String>> getSelectData() {
        return selectData;
    }
    public void setSelectData(List<Map<String, String>> selectData) {
        this.selectData = selectData;
    }
    public boolean isUpVersion() {
        return upVersion;
    }
    public void setUpVersion(boolean upVersion) {
        this.upVersion = upVersion;
    }
    public String getPreEvent() {
        return preEvent;
    }
    public void setPreEvent(String preEvent) {
        this.preEvent = preEvent;
    }
    public String getPostEvent() {
        return postEvent;
    }
    public void setPostEvent(String postEvent) {
        this.postEvent = postEvent;
    }
    @Override
    public Map<String, String> getData() {
        return data;
    }
    @Override
    public void setData(Map<String, String> data) {
        this.data = data;
    }
    public String getSubBtmType() {
        return subBtmType;
    }
    public void setSubBtmType(String subBtmType) {
        this.subBtmType = subBtmType;
    }
    public List<Map<String, String>> getSubTableData() {
        return subTableData;
    }
    public void setSubTableData(List<Map<String, String>> subTableData) {
        this.subTableData = subTableData;
    }
    public List<String> getReleaseFileOids() {
        return releaseFileOids;
    }
    public void setReleaseFileOids(List<String> releaseFileOids) {
        this.releaseFileOids = releaseFileOids;
    }
    @Override
    public String toString() {
        return "BaseModelDTO{" +
            "data=" + data +
            ", subBtmType='" + subBtmType + '\'' +
            ", subTableData=" + subTableData +
            ", preEvent='" + preEvent + '\'' +
            ", postEvent='" + postEvent + '\'' +
            ", releaseFileOids=" + releaseFileOids +
            ", upVersion=" + upVersion +
            ", sourceData=" + sourceData +
            ", selectData=" + selectData +
            "} " + super.toString();
    }
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/datapush/classify/NodeClassifyDTO.java
@@ -1,44 +1,44 @@
package com.vci.ubcs.code.dto.datapush.classify;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
//import com.thoughtworks.xstream.annotations.XStreamAlias;
//import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
@XStreamAlias("classify")
//@XStreamAlias("classify")
public class NodeClassifyDTO {
        /**
         * åˆ†ç±»id
         */
        @XStreamAsAttribute
        //@XStreamAsAttribute
        private String id;
        /***
         * åˆ†ç±»åç§°
         */
        @XStreamAsAttribute
        //@XStreamAsAttribute
        private String name;
        /***
         * çˆ¶èŠ‚ç‚¹id
         */
        @XStreamAsAttribute
       // @XStreamAsAttribute
        private String pid;
        /***
         * åˆ†ç±»ä»£å·
         */
        @XStreamAsAttribute
        //@XStreamAsAttribute
        private String classCode;
        /***
         * æè¿°
         */
        @XStreamAsAttribute
        //@XStreamAsAttribute
        private  String description;
        /***
         * åˆ†ç±»é“¾æŽ¥è·¯å¾„
         */
        @XStreamAsAttribute
        //@XStreamAsAttribute
        private  String fullPathName;
        /***
         * åˆ†ç±»çŠ¶æ€
         */
        @XStreamAsAttribute
        //@XStreamAsAttribute
        private String lcStatus;
        public String getId() {
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/datapush/classify/NodeDataDTO.java
@@ -1,8 +1,8 @@
package com.vci.ubcs.code.dto.datapush.classify;
import com.thoughtworks.xstream.annotations.XStreamAlias;
//import com.thoughtworks.xstream.annotations.XStreamAlias;
@XStreamAlias("data")
//@XStreamAlias("data")
public class NodeDataDTO {
    private NodeLibraryDTO library;
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/datapush/classify/NodeLibraryDTO.java
@@ -1,18 +1,14 @@
package com.vci.ubcs.code.dto.datapush.classify;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import com.thoughtworks.xstream.annotations.XStreamImplicit;
import java.util.List;
@XStreamAlias("library")
//@XStreamAlias("library")
public class NodeLibraryDTO {
    @XStreamAsAttribute
    //@XStreamAsAttribute
    private String id;
    @XStreamAsAttribute
    //@XStreamAsAttribute
    private String name;
    @XStreamImplicit
    //@XStreamImplicit
    private List<NodeClassifyDTO> classify;
    public String getId() {
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/datapush/data/NodeJosnDTO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/datapush/data/NodeObjectDTO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/datapush/data/NodeProDTO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/datapush/data/NodedataDTO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/datapush/data/data.json
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/datapush/data/result.json
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/datapush/result/ResultNodeDataDTO.java
@@ -1,14 +1,14 @@
package com.vci.ubcs.code.dto.datapush.result;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamImplicit;
//import com.thoughtworks.xstream.annotations.XStreamAlias;
//import com.thoughtworks.xstream.annotations.XStreamImplicit;
import java.util.List;
@XStreamAlias("data")
//@XStreamAlias("data")
public class ResultNodeDataDTO {
    @XStreamImplicit
    //@XStreamImplicit
    private List<ResultNodeObjectDTO> object;
    public List<ResultNodeObjectDTO> getObject() {
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/datapush/result/ResultNodeObjectDTO.java
@@ -1,29 +1,29 @@
package com.vci.ubcs.code.dto.datapush.result;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
//import com.thoughtworks.xstream.annotations.XStreamAlias;
//import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
@XStreamAlias("object")
//@XStreamAlias("object")
public class ResultNodeObjectDTO {
    /***
     * æ•°æ®ç¼–码
     */
    @XStreamAsAttribute
    //@XStreamAsAttribute
    private  String code;
    /***
     * æ•°æ®oid
     */
    @XStreamAsAttribute
    //@XStreamAsAttribute
    private  String oid;
    /***
     * é”™è¯¯æ ‡è¯†
     */
    @XStreamAsAttribute
    //@XStreamAsAttribute
    private String erroid;
    /***
     * é”™è¯¯ä¿¡æ¯
     */
    @XStreamAsAttribute
    //@XStreamAsAttribute
    private String msg;
    public String getCode() {
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/BaseModel.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,354 @@
package com.vci.ubcs.code.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.data.annotation.Transient;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
import java.util.Map;
public class BaseModel implements Serializable {
    @JsonSerialize(
        using = ToStringSerializer.class
    )
    @ApiModelProperty("主键id")
    @TableId(value = "OID")
    private String oid;
    private String id;
    private String name;
    private String description;
    private String revisionOid;
    private String nameOid;
    private String btmname;
    private String lastR;
    private String firstR;
    private String lastV;
    private String firstV;
    private String creator;
    @DateTimeFormat(
        pattern = "yyyy-MM-dd HH:mm:ss"
    )
    @JsonFormat(
        pattern = "yyyy-MM-dd HH:mm:ss"
    )
    private Date createTime;
    private String lastModifier;
    @DateTimeFormat(
        pattern = "yyyy-MM-dd HH:mm:ss"
    )
    @JsonFormat(
        pattern = "yyyy-MM-dd HH:mm:ss"
    )
    private Date lastModifyTime;
    private String revisionRule;
    private Integer revisionSeq;
    private String revisionValue;
    private String versionRule;
    private Integer versionSeq;
    private String versionValue;
    @Transient
    private String lctid;
    private String lcStatus;
    @TableField(exist = false)
    private String lcStatusText;
    @JsonFormat(
        pattern = "yyyy-MM-dd HH:mm:ss.SSS"
    )
    private Date ts;
    private String owner;
    private String copyFromVersion;
    //    @VciUseEnum(
//        value = "Enumsecretgrade",
//        showTextField = "secretGradeText"
//    )
    @TableField(exist = false)
    private Integer secretGrade;
    @Transient
    @TableField(exist = false)
    private String secretGradeText;
    @Transient
    @TableField(exist = false)
    private Map<String, String> data;
    public BaseModel() {
    }
    public String getOid() {
        return this.oid;
    }
    public void setOid(String oid) {
        this.oid = oid;
    }
    public String getId() {
        return this.id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return this.name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getDescription() {
        return this.description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
    public String getRevisionOid() {
        return this.revisionOid;
    }
    public void setRevisionOid(String revisionOid) {
        this.revisionOid = revisionOid;
    }
    public String getNameOid() {
        return this.nameOid;
    }
    public void setNameOid(String nameOid) {
        this.nameOid = nameOid;
    }
    public String getBtmname() {
        return this.btmname;
    }
    public void setBtmname(String btmname) {
        this.btmname = btmname;
    }
    public String getLastR() {
        return this.lastR;
    }
    public void setLastR(String lastR) {
        this.lastR = lastR;
    }
    public String getFirstR() {
        return this.firstR;
    }
    public void setFirstR(String firstR) {
        this.firstR = firstR;
    }
    public String getLastV() {
        return this.lastV;
    }
    public void setLastV(String lastV) {
        this.lastV = lastV;
    }
    public String getFirstV() {
        return this.firstV;
    }
    public void setFirstV(String firstV) {
        this.firstV = firstV;
    }
    public String getCreator() {
        return this.creator;
    }
    public void setCreator(String creator) {
        this.creator = creator;
    }
    public String getLastModifier() {
        return this.lastModifier;
    }
    public void setLastModifier(String lastModifier) {
        this.lastModifier = lastModifier;
    }
    public Date getLastModifyTime() {
        return this.lastModifyTime;
    }
    public void setLastModifyTime(Date lastModifyTime) {
        this.lastModifyTime = lastModifyTime;
    }
    public String getRevisionRule() {
        return this.revisionRule;
    }
    public void setRevisionRule(String revisionRule) {
        this.revisionRule = revisionRule;
    }
    public String getVersionRule() {
        return this.versionRule;
    }
    public void setVersionRule(String versionRule) {
        this.versionRule = versionRule;
    }
    public Integer getRevisionSeq() {
        return this.revisionSeq;
    }
    public void setRevisionSeq(Integer revisionSeq) {
        this.revisionSeq = revisionSeq;
    }
    public String getRevisionValue() {
        return this.revisionValue;
    }
    public void setRevisionValue(String revisionValue) {
        this.revisionValue = revisionValue;
    }
    public Integer getVersionSeq() {
        return this.versionSeq;
    }
    public void setVersionSeq(Integer versionSeq) {
        this.versionSeq = versionSeq;
    }
    public String getVersionValue() {
        return this.versionValue;
    }
    public void setVersionValue(String versionValue) {
        this.versionValue = versionValue;
    }
    public String getLcStatus() {
        return this.lcStatus;
    }
    public void setLcStatus(String lcStatus) {
        this.lcStatus = lcStatus;
    }
    public Date getTs() {
        return this.ts;
    }
    public void setTs(Date ts) {
        this.ts = ts;
    }
    public String getOwner() {
        return this.owner;
    }
    public void setOwner(String owner) {
        this.owner = owner;
    }
    public String getCopyFromVersion() {
        return this.copyFromVersion;
    }
    public void setCopyFromVersion(String copyFromVersion) {
        this.copyFromVersion = copyFromVersion;
    }
    public String getLcStatusText() {
        return this.lcStatusText;
    }
    public void setLcStatusText(String lcStatusText) {
        this.lcStatusText = lcStatusText;
    }
    public Date getCreateTime() {
        return this.createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public Integer getSecretGrade() {
        return this.secretGrade;
    }
    public void setSecretGrade(Integer secretGrade) {
        this.secretGrade = secretGrade;
    }
    public String getSecretGradeText() {
        return this.secretGradeText;
    }
    public void setSecretGradeText(String secretGradeText) {
        this.secretGradeText = secretGradeText;
    }
    public String getLctid() {
        return this.lctid;
    }
    public void setLctid(String lctid) {
        this.lctid = lctid;
    }
    public Map<String, String> getData() {
        return this.data;
    }
    public void setData(Map<String, String> data) {
        this.data = data;
    }
    @Override
    public String toString() {
        return "BaseModel{oid='" + this.oid + '\'' + ", id='" + this.id + '\'' + ", name='" + this.name + '\'' + ", description='" + this.description + '\'' + ", revisionOid='" + this.revisionOid + '\'' + ", nameOid='" + this.nameOid + '\'' + ", btmname='" + this.btmname + '\'' + ", lastR='" + this.lastR + '\'' + ", firstR='" + this.firstR + '\'' + ", lastV='" + this.lastV + '\'' + ", firstV='" + this.firstV + '\'' + ", creator='" + this.creator + '\'' + ", createTime=" + this.createTime + ", lastModifier='" + this.lastModifier + '\'' + ", lastModifyTime=" + this.lastModifyTime + ", revisionRule='" + this.revisionRule + '\'' + ", revisionSeq=" + this.revisionSeq + ", revisionValue='" + this.revisionValue + '\'' + ", versionRule='" + this.versionRule + '\'' + ", versionSeq=" + this.versionSeq + ", versionValue='" + this.versionValue + '\'' + ", lctid='" + this.lctid + '\'' + ", lcStatus='" + this.lcStatus + '\'' + ", lcStatusText='" + this.lcStatusText + '\'' + ", ts=" + this.ts + ", owner='" + this.owner + '\''  + ", copyFromVersion='" + this.copyFromVersion + '\'' + ", secretGrade=" + this.secretGrade + ", secretGradeText='" + this.secretGradeText + '\'' + ", data=" + this.data + '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeAllcode.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,89 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill åº„骞 (smallchill@163.com)
 */
package com.vci.ubcs.code.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.data.annotation.Transient;
/**
 * å…¨éƒ¨ç å€¼ å®žä½“ç±»
 *
 * @author ludc
 * @since 2023-04-03
 */
@Data
@TableName("PL_CODE_ALLCODE")
@ApiModel(value = "CodeAllcode对象", description = "全部码值")
@EqualsAndHashCode(callSuper = true)
public class CodeAllcode extends BaseModel {
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = 5020487634341415429L;
    /**
     * åˆ†ç±»çš„主键
     */
    private String codeClassifyOid;
    /**
     * è§„则的主键
     */
    private String codeRuleOid;
    /**
     * è§„则的名称
     */
    @Transient
    @TableField(exist = false)
    private String codeRuleOidName;
    /**
     * å­˜å‚¨æ•°æ®çš„æ¨¡æ¿
     */
    private String codeClassifyTemplateOid;
    /**
     * ç å€¼çš„值
     */
    private String id;
    /**
     * åˆ›å»ºç¼–码的业务类型
     */
    private String createCodeBtm;
    /**
     * åˆ›å»ºç¼–码的业务数据主键
     */
    private String createCodeOid;
    /***
     * æµæ°´ä¾èµ–
     */
    private String serialUnit;
    /**
     * æ²¡æœ‰å¡«å……前的流水号
     */
    private String unFillSerial;
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeBasicSec.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,275 @@
package com.vci.ubcs.code.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.vci.ubcs.com.vci.starter.annotation.Transient;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
 * åŸºç¡€ç æ®µçš„信息
 * æ–¹ä¾¿åœ¨åŒä¸€ä¸ªé¡µé¢é‡Œæ˜¾ç¤ºæ‰€æœ‰çš„码段
 * @author weidy
 * @date 2022-1-18
 */
@Data
@TableName("PL_CODE_BASICSEC")
@ApiModel(value = "CodeBasicSec对象", description = "码段基础信息")
@EqualsAndHashCode(callSuper = true)
public class CodeBasicSec extends BaseModel{
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = 1803476098497357359L;
    /**
     * ç æ®µä¿¡æ¯
     */
    private String id;
    /**
     * ç æ®µåç§°
     */
    private String name;
    /**
     * ç æ®µç±»åž‹
     */
    private String secType;
    /**
     * ç æ®µé•¿åº¦ç±»åž‹æ˜¾ç¤ºæ–‡æœ¬
     */
    @Transient
    @TableField(exist = false)
    private String secTypeText;
    /**
     * æ‰€å±žç¼–码规则
     */
    private String pkCodeRule;
    /**
     * ç æ®µæŽ’序号
     */
    private Integer orderNum;
    /**
     * å¼•用的属性的文本
     */
    private String referAttributeName;
    /**
     * å¼•用的属性英文名称
     */
    private String referAttributeId;
    /**
     * å–值规则
     */
    private String getValueClass ;
    //前端输入后自动加入到枚举中
    /**
     * æ—¥æœŸæ ¼å¼
     */
    private String codeDateFormatStr;
    /**
     * ç æ®µé•¿åº¦ç±»åž‹
     */
    private String codeSecLengthType;
    /**
     * ç æ®µé•¿åº¦ç±»åž‹æ˜¾ç¤ºæ–‡æœ¬
     */
    @TableField(exist = false)
    private String codeSecLengthTypeText;
    /**
     * ç æ®µçš„长度
     */
    private String codeSecLength;
    /**
     * å±‚级类型
     */
    private String codeLevelType;
    /**
     * å±‚级类型显示文本
     */
    @TableField(exist = false)
    private String codeLevelTypeText;
    /**
     * å±‚级的值
     */
    private Integer codeLevelValue;
    /**
     * å€¼æˆªå–长度
     */
    private Integer valueCutLength;
    /**
     * å­—符截取类型
     */
    private String valueCutType;
    /**
     * å­—符串截取类型显示文本
     */
    @Transient
    @TableField(exist = false)
    private String valueCutTypeText;
    /**
     * å–值类型
     */
    private String codeGetValueType;
    /**
     * å–值类型显示文本
     */
    @Transient
    @TableField(exist = false)
    private String codeGetValueTypeText;
    /**
     * å¼•用的属性所属的库分类
     */
    private String referCodeClassifyOid;
    /**
     * å¼•用的属性所属库分类的名称
     */
    @Transient(referColumn = "referCodeClassifyOid.name")
    @TableField(exist = false)
    private String referCodeClassifyOidName;
    /**
     * å¼•用的业务类型
     */
    private String referBtmId;
    /**
     * å¼•用的业务类型名称
     */
    private String referBtmName;
    /**
     * å‚照的窗口配置
     */
    private String referConfig;
    /**
     * æ˜¾ç¤ºä¿¡æ¯
     */
    private String referValueInfo;
    /**
     * è¿‡æ»¤çš„sql内容
     */
    private String filterSql ;
    /**
     * æµæ°´å·èµ·å§‹å€¼
     */
    private String serialStart;
    /**
     * æµæ°´çš„æ­¥é•¿
     */
    private Integer serialStep;
    /**
     * ç¼–码补位方式
     */
    //@VciUseEnum(value = EnumIdConstant.CODE_FILL_TYPE,showTextField = "codeFillTypeText")
    private String codeFillType;
    /**
     * ç¼–码补位方式显示文本
     */
    private String codeFillTypeText;
    /**
     * è¡¥ä½æ—¶çš„字符
     */
    private String codeFillSeparator;
    /**
     * å¡«å……长度
     */
    private String codeFillLength;
    /**
     * ä¸Šé™
     */
    private Integer codeFillLimit;
    /**
     * æµæ°´æ˜¯å¦è¡¥ç 
     */
    //@VciFieldType(VciFieldTypeEnum.VTBoolean)
    private String codeFillFlag;
    /**
     * è‡ªå®šä¹‰çš„æµæ°´ç®—法类
     */
    private String customCodeSerialClass;
    /**
     * æ˜¯å¦è‡ªåŠ¨åŒ¹é…åˆ†ç±»å€¼
     */
    //@VciFieldType(VciFieldTypeEnum.VTBoolean)
    private String matchClassifyValueFlag;
    /**
     * çˆ¶åˆ†ç±»ç æ®µä¸»é”®
     */
    private String parentClassifySecOid;
    /**
     * çˆ¶åˆ†ç±»ç æ®µåç§°
     */
    //@Transient(referColumn = "parentClassifySecOid.name")
    @Transient
    @TableField(exist = false)
    private String parentClassifySecText;
    /**
     * æ˜¯å¦å¯ä»¥ä¸ºç©º
     */
    //@VciFieldType(VciFieldTypeEnum.VTBoolean)
    private String nullableFlag;
    /**
     * æ˜¯å¦å‚与编码
     */
    //@VciFieldType(VciFieldTypeEnum.VTBoolean)
    private String componentCodeFlag;
    /**
     * æ˜¯å¦æµæ°´ä¾èµ–
     */
    //@VciFieldType(VciFieldTypeEnum.VTBoolean)
    private String serialDependFlag;
    /**
     * æ˜¯å¦æ˜¾ç¤º
     */
    //@VciFieldType(VciFieldTypeEnum.VTBoolean)
    private String displayFlag;
    /**
     * æµæ°´ä¾èµ–顺序
     */
    private Integer serialDependOrder;
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClassify.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,124 @@
package com.vci.ubcs.code.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.vci.ubcs.com.vci.starter.annotation.Transient;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
 * ä¸»é¢˜åº“的分类
 * @author weidy
 * @date 2022-1-14
 */
//@VciBtmType(name = MdmBtmTypeConstant.CODE_CLASSIFY,text = "主题库分类",lifeCycle = FrameWorkLcStatusConstant.FRAME_WORK_LIFE_CYCLE_NAME)
@Data
@TableName("PL_CODE_CLASSIFY")
@ApiModel(value = "CodeClassify对象", description = "主题库的分类")
@EqualsAndHashCode(callSuper = true)
public class CodeClassify extends BaseModel {
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = 2217599544701726951L;
    /**
     * åˆ†ç±»çš„编号
     */
    private String id;
    /**
     * åˆ†ç±»çš„名称
     */
    private String name;
    /**
     * ä¸Šçº§çš„主键
     */
    private String parentCodeClassifyOid;
    /**
     * æŽ’序号
     */
    private Integer orderNum;
    /**
     * å­˜å‚¨çš„业务类型
     */
    private String btmTypeId;
    /**
     * å­˜å‚¨çš„业务类型的中文名称
     */
    private String btmTypeName;
    /**
     * ç¼–码规则的主键
     */
    //@VciUseRefer(MdmBtmTypeConstant.CODE_RULE)
    private String codeRuleOid;
    /**
     * ç¼–码规则的名称
     */
    @Transient(referColumn = "codeRuleOid.name")
    @TableField(exist = false)
    private String codeRuleOidName;
    /**
     * å…³é”®å±žæ€§æŸ¥è¯¢çš„规则
     */
    //@VciUseRefer(MdmBtmTypeConstant.CODE_KEY_ATTR_REPEAT_RULE)
    private String codeKeyAttrRepeatOid;
    /**
     * å…³é”®å±žæ€§æŸ¥è¯¢çš„规则名称
     */
    @Transient(referColumn = "codeKeyAttrRepeatOid.name")
    @TableField(exist = false)
    private String codeKeyAttrRepeatOidName;
    /**
     * ç›¸ä¼¼é¡¹æŸ¥è¯¢çš„规则主键
     */
    //@VciUseRefer(MdmBtmTypeConstant.CODE_RESEMBLE_RULE)
    private String codeResembleRuleOid;
    /**
     * ç›¸ä¼¼é¡¹æŸ¥è¯¢è§„则名称
     */
    @Transient(referColumn = "codeResembleRuleOid.name")
    @TableField(exist = false)
    private String codeResembleRuleOidName;
    /**
     * æ•°æ®æ‰€åœ¨çš„层级
     */
    @Transient
    @TableField(exist = false)
    private Integer dataLevel;
    /**
     * è·¯å¾„
     */
    @Transient
    @TableField(exist = false)
    private String path;
    /***
     * åç§°è·¯å¾„
     */
    @Transient
    @TableField(exist = false)
    private String namePath;
    /***
     * ä»£ç è·¯å¾„
     */
    @Transient
    @TableField(exist = false)
    private String idPath;
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClassifyValue.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,51 @@
package com.vci.ubcs.code.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
 * åˆ†ç±»ç æ®µçš„码值
 * ç›¸å½“于级联的下拉框
 * @author weidy
 * @date 2022-1-18
 */
@Data
@TableName("PL_CODE_CLASSIFYVALUE")
@ApiModel(value = "CodeClassify对象", description = "分类码段的码值")
@EqualsAndHashCode(callSuper = true)
public class CodeClassifyValue extends BaseModel {
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = 5238387322464830032L;
    /**
     * åˆ†ç±»ç æ®µä¸»é”®
     */
    //@VciUseRefer(MdmBtmTypeConstant.CODE_BASIC_SEC)
    private String codeClassifySecOid;
    /**
     * åˆ†ç±»ç å€¼
     */
    private String id;
    /**
     * åˆ†ç±»åç§°
     */
    private String name;
    /**
     * ç å€¼åºå·
     */
    private Integer orderNum;
    /**
     * ä¸Šçº§åˆ†ç±»ç å€¼ä¸»é”®
     */
    private String parentClassifyValueOid;
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeFixedValue.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,91 @@
package com.vci.ubcs.code.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
 * å›ºå®šç æ®µçš„码值
 * ç›¸å½“于在枚举的作用,会有多个
 * @author weidy
 * @date 2022-1-18
 */
@Data
@TableName("PL_CODE_FIXEDVALUE")
@ApiModel(value = "CodeFixedValue对象", description = "固定码段的码值")
@EqualsAndHashCode(callSuper = true)
public class CodeFixedValue extends BaseModel {
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = 3392365440606832597L;
    /**
     * å›ºå®šç æ®µä¸»é”®
     */
    //@VciUseRefer(MdmBtmTypeConstant.CODE_BASIC_SEC)
    private String codeFixedSecOid;
    /**
     * å›ºå®šç æ®µçš„码值
     */
    private String id;
    /**
     * å›ºå®šç æ®µç å€¼çš„æè¿°
     */
    private String name;
    /**
     * å±žæ€§æŽ’序号
     */
    private Integer orderNum;
    @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;
    }
    public String getCodeFixedSecOid() {
        return codeFixedSecOid;
    }
    public void setCodeFixedSecOid(String codeFixedSecOid) {
        this.codeFixedSecOid = codeFixedSecOid;
    }
    public Integer getOrderNum() {
        return orderNum;
    }
    public void setOrderNum(Integer orderNum) {
        this.orderNum = orderNum;
    }
    @Override
    public String toString() {
        return "CodeFixedValueDO{" +
            "codeFixedSecOid='" + codeFixedSecOid + '\'' +
            ", id='" + id + '\'' +
            ", name='" + name + '\'' +
            ", orderNum=" + orderNum +
            "} " + super.toString();
    }
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeRule.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,56 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill åº„骞 (smallchill@163.com)
 */
package com.vci.ubcs.code.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
 * ç¼–码规则 å®žä½“ç±»
 *
 * @author ludc
 * @since 2023-04-03
 */
@Data
@TableName("PL_CODE_RULE")
@ApiModel(value = "CodeRule对象", description = "编码规则")
@EqualsAndHashCode(callSuper = true)
public class CodeRule extends BaseModel {
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = -7142347409110551299L;
    /**
     * è§„则编号
     */
    private String id;
    /**
     * è§„则的名称
     */
    private String name;
    /**
     * è§„则的描述
     */
    private String description;
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/po/CodeClassifyPO.java
@@ -1,7 +1,5 @@
package com.vci.ubcs.code.po;
import com.vci.starter.poi.annotation.ExcelColumn;
/**
 * ä¸»é¢˜åº“分类的导入导出对象
 * @author weidy
@@ -15,55 +13,46 @@
    /**
     * æ‰€åœ¨æ•°æ®è¡Œ
     */
    @ExcelColumn(rowIndexColumn = true,value = "")
    private String rowIndex;
    /**
     * åˆ†ç±»ç¼–号
     */
    @ExcelColumn(value="分类编号",nullable = false)
    private String id;
    /**
     * åˆ†ç±»åç§°
     */
    @ExcelColumn(value="分类名称",nullable = false)
    private String name;
    /**
     * æè¿°
     */
    @ExcelColumn(value = "描述")
    private String description;
    /**
     * ç¼–码规则编号
     */
    @ExcelColumn(value = "编码规则编号")
    private String codeRuleId;
    /**
     * ä¸šåŠ¡ç±»åž‹ç¼–å·
     */
    @ExcelColumn(value = "业务类型编号")
    private String btmTypeId;
    /**
     * æŸ¥é‡è§„则编号
     */
    @ExcelColumn(value = "查重规则编号")
    private String keyRepeatRuleId;
    /**
     * åˆ†ç±»è·¯å¾„
     */
    @ExcelColumn(value = "分类路径",nullable = false)
    private String path;
    /**
     * çŠ¶æ€æ–‡æœ¬
     */
    @ExcelColumn(value = "状态")
    private String lcStatusText;
    /**
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/BaseModelVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,328 @@
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package com.vci.ubcs.code.vo.pagemodel;
import org.springframework.data.annotation.Transient;
import java.io.Serializable;
import java.util.Date;
import java.util.Map;
public class BaseModelVO implements Serializable {
    private String oid;
    private String id;
    private String name;
    private String description;
    private String revisionOid;
    private String nameOid;
    private String btmname;
    private String lastR;
    private String firstR;
    private String lastV;
    private String firstV;
    private String creator;
    private Date createTime;
    private String lastModifier;
    private Date lastModifyTime;
    private String revisionRule;
    private int revisionSeq;
    private String revisionValue;
    private String versionRule;
    private int versionSeq;
    private String versionValue;
    private String lcStatus;
    private String lcStatusText;
    private Date ts;
    private String owner;
    private String checkInBy;
    private Date checkInTime;
    private String checkOutBy;
    private Date checkOutTime;
    private String copyFromVersion;
    private Integer secretGrade;
    private String secretGradeText;
    private String lctid;
    @Transient
    private Map<String, String> data;
    public BaseModelVO() {
    }
    public String getOid() {
        return this.oid;
    }
    public void setOid(String oid) {
        this.oid = oid;
    }
    public String getId() {
        return this.id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return this.name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getDescription() {
        return this.description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
    public String getRevisionOid() {
        return this.revisionOid;
    }
    public void setRevisionOid(String revisionOid) {
        this.revisionOid = revisionOid;
    }
    public String getNameOid() {
        return this.nameOid;
    }
    public void setNameOid(String nameOid) {
        this.nameOid = nameOid;
    }
    public String getBtmname() {
        return this.btmname;
    }
    public void setBtmname(String btmname) {
        this.btmname = btmname;
    }
    public String getLastR() {
        return this.lastR;
    }
    public void setLastR(String lastR) {
        this.lastR = lastR;
    }
    public String getFirstR() {
        return this.firstR;
    }
    public void setFirstR(String firstR) {
        this.firstR = firstR;
    }
    public String getLastV() {
        return this.lastV;
    }
    public void setLastV(String lastV) {
        this.lastV = lastV;
    }
    public String getFirstV() {
        return this.firstV;
    }
    public void setFirstV(String firstV) {
        this.firstV = firstV;
    }
    public String getCreator() {
        return this.creator;
    }
    public void setCreator(String creator) {
        this.creator = creator;
    }
    public String getLastModifier() {
        return this.lastModifier;
    }
    public void setLastModifier(String lastModifier) {
        this.lastModifier = lastModifier;
    }
    public Date getLastModifyTime() {
        return this.lastModifyTime;
    }
    public void setLastModifyTime(Date lastModifyTime) {
        this.lastModifyTime = lastModifyTime;
    }
    public String getRevisionRule() {
        return this.revisionRule;
    }
    public void setRevisionRule(String revisionRule) {
        this.revisionRule = revisionRule;
    }
    public String getVersionRule() {
        return this.versionRule;
    }
    public void setVersionRule(String versionRule) {
        this.versionRule = versionRule;
    }
    public int getRevisionSeq() {
        return this.revisionSeq;
    }
    public void setRevisionSeq(int revisionSeq) {
        this.revisionSeq = revisionSeq;
    }
    public String getRevisionValue() {
        return this.revisionValue;
    }
    public void setRevisionValue(String revisionValue) {
        this.revisionValue = revisionValue;
    }
    public int getVersionSeq() {
        return this.versionSeq;
    }
    public void setVersionSeq(int versionSeq) {
        this.versionSeq = versionSeq;
    }
    public String getVersionValue() {
        return this.versionValue;
    }
    public void setVersionValue(String versionValue) {
        this.versionValue = versionValue;
    }
    public String getLcStatus() {
        return this.lcStatus;
    }
    public void setLcStatus(String lcStatus) {
        this.lcStatus = lcStatus;
    }
    public Date getTs() {
        return this.ts;
    }
    public void setTs(Date ts) {
        this.ts = ts;
    }
    public String getOwner() {
        return this.owner;
    }
    public void setOwner(String owner) {
        this.owner = owner;
    }
    public String getCheckInBy() {
        return this.checkInBy;
    }
    public void setCheckInBy(String checkInBy) {
        this.checkInBy = checkInBy;
    }
    public Date getCheckInTime() {
        return this.checkInTime;
    }
    public void setCheckInTime(Date checkInTime) {
        this.checkInTime = checkInTime;
    }
    public String getCheckOutBy() {
        return this.checkOutBy;
    }
    public void setCheckOutBy(String checkOutBy) {
        this.checkOutBy = checkOutBy;
    }
    public Date getCheckOutTime() {
        return this.checkOutTime;
    }
    public void setCheckOutTime(Date checkOutTime) {
        this.checkOutTime = checkOutTime;
    }
    public String getCopyFromVersion() {
        return this.copyFromVersion;
    }
    public void setCopyFromVersion(String copyFromVersion) {
        this.copyFromVersion = copyFromVersion;
    }
    public String getLcStatusText() {
        return this.lcStatusText;
    }
    public void setLcStatusText(String lcStatusText) {
        this.lcStatusText = lcStatusText;
    }
    public Date getCreateTime() {
        return this.createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public Integer getSecretGrade() {
        return this.secretGrade;
    }
    public void setSecretGrade(Integer secretGrade) {
        this.secretGrade = secretGrade;
    }
    public String getSecretGradeText() {
        return this.secretGradeText;
    }
    public void setSecretGradeText(String secretGradeText) {
        this.secretGradeText = secretGradeText;
    }
    public String getLctid() {
        return this.lctid;
    }
    public void setLctid(String lctid) {
        this.lctid = lctid;
    }
    public Map<String, String> getData() {
        return this.data;
    }
    public void setData(Map<String, String> data) {
        this.data = data;
    }
    @Override
    public String toString() {
        return "BaseModelVO{oid='" + this.oid + '\'' + ", id='" + this.id + '\'' + ", name='" + this.name + '\'' + ", description='" + this.description + '\'' + ", revisionOid='" + this.revisionOid + '\'' + ", nameOid='" + this.nameOid + '\'' + ", btmname='" + this.btmname + '\'' + ", lastR='" + this.lastR + '\'' + ", firstR='" + this.firstR + '\'' + ", lastV='" + this.lastV + '\'' + ", firstV='" + this.firstV + '\'' + ", creator='" + this.creator + '\'' + ", createTime=" + this.createTime + ", lastModifier='" + this.lastModifier + '\'' + ", lastModifyTime=" + this.lastModifyTime + ", revisionRule='" + this.revisionRule + '\'' + ", revisionSeq=" + this.revisionSeq + ", revisionValue='" + this.revisionValue + '\'' + ", versionRule='" + this.versionRule + '\'' + ", versionSeq=" + this.versionSeq + ", versionValue='" + this.versionValue + '\'' + ", lcStatus='" + this.lcStatus + '\'' + ", lcStatusText='" + this.lcStatusText + '\'' + ", ts=" + this.ts + ", owner='" + this.owner + '\'' + ", checkInBy='" + this.checkInBy + '\'' + ", checkInTime=" + this.checkInTime + ", checkOutBy='" + this.checkOutBy + '\'' + ", checkOutTime=" + this.checkOutTime + ", copyFromVersion='" + this.copyFromVersion + '\'' + ", secretGrade=" + this.secretGrade + ", secretGradeText='" + this.secretGradeText + '\'' + ", lctid='" + this.lctid + '\'' + ", data=" + this.data + '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeAllcodeVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill åº„骞 (smallchill@163.com)
 */
package com.vci.ubcs.code.vo.pagemodel;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
 * å…¨éƒ¨ç å€¼ è§†å›¾å®žä½“ç±»
 *
 * @author ludc
 * @since 2023-04-03
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class CodeAllcodeVO extends BaseModelVO {
    private static final long serialVersionUID = 1L;
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeBasicSecVO.java
@@ -1,6 +1,6 @@
package com.vci.ubcs.code.vo.pagemodel;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
import java.util.List;
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeButtonVO.java
@@ -1,6 +1,6 @@
package com.vci.ubcs.code.vo.pagemodel;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * ä¸»æ•°æ®ä¸­çš„æŒ‰é’®æ‰©å±•显示对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeClassifyAttributeVO.java
@@ -1,6 +1,6 @@
package com.vci.ubcs.code.vo.pagemodel;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * ä¸»é¢˜åº“分类所需属性集显示对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeClassifyProcessTempVO.java
@@ -1,6 +1,6 @@
package com.vci.ubcs.code.vo.pagemodel;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
import java.util.List;
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeClassifyTempMapItemVO.java
@@ -1,6 +1,6 @@
package com.vci.ubcs.code.vo.pagemodel;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * æ˜ å°„规则的明细显示对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeClassifyTemplateAttrVO.java
@@ -1,8 +1,5 @@
package com.vci.ubcs.code.vo.pagemodel;
import com.vci.starter.web.annotation.Column;
import com.vci.starter.web.pagemodel.BaseModelVO;
/**
 * ä¸»é¢˜åº“分类的模板属性显示对象
 *
@@ -311,31 +308,26 @@
    /**
     * è¯´æ˜Ž
     */
    @Column(columnDefinition = "说明")
    private String explain;
    /**
     * é€‰æ‹©åº“标识
     */
    @Column(columnDefinition = "选择库标识")
    private String libraryIdentification;
    /**
     * çº§è”属性编号
     */
    @Column(columnDefinition = "级联属性编号")
    private String parentCode;
    /**
     * çº§è”属性名称
     */
    @Column(columnDefinition = "级联属性名称")
    private String parentName;
    /**
     * çº§è”查询属性
     */
    @Column(columnDefinition = "级联查询属性")
    private String parentQueryAttr;
    public String getExplain() {
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeClassifyTemplateButtonVO.java
@@ -1,6 +1,6 @@
package com.vci.ubcs.code.vo.pagemodel;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * ä¸»é¢˜åº“里模板包含的按钮显示对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeClassifyTemplateMapVO.java
@@ -1,6 +1,6 @@
package com.vci.ubcs.code.vo.pagemodel;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * ä¸»é¢˜åº“模板映射规则显示对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeClassifyTemplateVO.java
@@ -1,6 +1,6 @@
package com.vci.ubcs.code.vo.pagemodel;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
import java.util.List;
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeClassifyVO.java
@@ -1,8 +1,5 @@
package com.vci.ubcs.code.vo.pagemodel;
import com.vci.starter.web.pagemodel.BaseModelVO;
/**
 * ä¸»é¢˜åº“分类显示对象
 *
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeClassifyValueVO.java
@@ -1,6 +1,6 @@
package com.vci.ubcs.code.vo.pagemodel;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * åˆ†ç±»ç æ®µçš„码值显示对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeFixedValueVO.java
@@ -1,6 +1,6 @@
package com.vci.ubcs.code.vo.pagemodel;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * å›ºå®šç æ®µçš„码值显示对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeImportResultVO.java
@@ -1,6 +1,5 @@
package com.vci.ubcs.code.vo.pagemodel;
import plm.bs.bom.clientobject.ClientBusinessObject;
import java.util.*;
@@ -33,7 +32,7 @@
    /***
     * æ ¹æ®å…³é”®ç†Ÿæ‚‰æŸ¥è¯¢çš„重复的数据对象
     */
    private Map<String,  List<ClientBusinessObject>> indexTODataMap=new HashMap<>();
    //private Map<String,  List<ClientBusinessObject>> indexTODataMap=new HashMap<>();
    /**
     * excel自身重复的行号
@@ -90,7 +89,7 @@
        this.selfRepeatRowIndexList = selfRepeatRowIndexList;
    }
    public Map<String,List<ClientBusinessObject>> getIndexTODataMap() {
    /*public Map<String,List<ClientBusinessObject>> getIndexTODataMap() {
        return indexTODataMap;
    }
@@ -117,7 +116,7 @@
                ", nullRowIndexList=" + nullRowIndexList +
                ", unPassVerifyRowIndexSet=" + unPassVerifyRowIndexSet +
                '}';
    }
    }*/
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeKeyAttrRepeatRuleVO.java
@@ -1,6 +1,6 @@
package com.vci.ubcs.code.vo.pagemodel;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * å…³é”®æ•°æ®æŸ¥é‡è§„则显示对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodePhaseAttrVO.java
@@ -1,6 +1,6 @@
package com.vci.ubcs.code.vo.pagemodel;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * é˜¶æ®µçš„属性显示对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeResembleRuleVO.java
@@ -1,6 +1,6 @@
package com.vci.ubcs.code.vo.pagemodel;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * ç›¸ä¼¼æŸ¥è¯¢è§„则显示对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeRuleVO.java
@@ -1,6 +1,6 @@
package com.vci.ubcs.code.vo.pagemodel;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
import java.util.List;
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeSynonymVO.java
@@ -1,6 +1,6 @@
package com.vci.ubcs.code.vo.pagemodel;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * åŒä¹‰è¯é…ç½®æ˜¾ç¤ºå¯¹è±¡
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeTemplatePhaseVO.java
@@ -1,6 +1,6 @@
package com.vci.ubcs.code.vo.pagemodel;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * æ¨¡æ¿é˜¶æ®µæ˜¾ç¤ºå¯¹è±¡
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/DockingDataVO.java
@@ -1,6 +1,6 @@
package com.vci.ubcs.code.vo.pagemodel;
import com.vci.starter.web.model.BaseModel;
import com.vci.ubcs.code.entity.BaseModel;
/**
 * è¦æŽ¨é€å¾—数据
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/DockingLogeVO.java
@@ -1,6 +1,6 @@
package com.vci.ubcs.code.vo.pagemodel;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * èµ„源对接通知、查询接口日志显示对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/DockingPreApplyDataInfoVO.java
@@ -1,6 +1,6 @@
package com.vci.ubcs.code.vo.pagemodel;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * è®°å½•工艺推送过来的数据信息显示对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/DockingPreApplyDataVO.java
@@ -1,6 +1,6 @@
package com.vci.ubcs.code.vo.pagemodel;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
import java.util.List;
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/DockingPreAttrMappingVO.java
@@ -1,7 +1,7 @@
package com.vci.ubcs.code.vo.pagemodel;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
import java.util.List;
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/DockingPreAttrRangeVO.java
@@ -1,6 +1,6 @@
package com.vci.ubcs.code.vo.pagemodel;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
public class DockingPreAttrRangeVO extends BaseModelVO {
    /**
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/DockingTaskVO.java
@@ -1,6 +1,6 @@
package com.vci.ubcs.code.vo.pagemodel;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * èµ„源对接通知、查询接口待推送任务显示对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/MdmUIInfoVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/SysIntAuthorityVO.java
@@ -1,6 +1,6 @@
package com.vci.ubcs.code.vo.pagemodel;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证显示对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/SysIntBaseVO.java
@@ -1,6 +1,6 @@
package com.vci.ubcs.code.vo.pagemodel;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * ç³»ç»Ÿé›†æˆçš„系统信息显示对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/SysIntHeaderVO.java
@@ -1,6 +1,6 @@
package com.vci.ubcs.code.vo.pagemodel;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证显示对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/SysIntInfoVO.java
@@ -1,6 +1,6 @@
package com.vci.ubcs.code.vo.pagemodel;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
import java.util.List;
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/SysIntParamVO.java
@@ -1,6 +1,6 @@
package com.vci.ubcs.code.vo.pagemodel;
import com.vci.starter.web.pagemodel.BaseModelVO;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
/**
 * ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证显示对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/apply/ApplyDataVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/apply/ApplyDatasVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/apply/ClassfyVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/apply/ClassfysVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/apply/InterParameterVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/apply/ProppertyVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/apply/RootDataVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/apply/SectionVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/apply/SectionsVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/apply/UserVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/attrmap/ClsfAttrMappingDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/attrmap/DataAttributeVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/attrmap/DataObjectVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/attrmap/GeneralMappingUtil.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/attrmap/LibraryClsfDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/attrmap/LibraryDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/attrmap/RowDatas.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/attrmap/appcode.xml
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/attrmap/clsfAttrMap.xml
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/attrmap/tt.xml
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/attrmap/xxx.json
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/attrmap/xxxxxxxxx.json
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/classify/ClassifyVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/classify/LibraryVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/classify/QueryClassifyVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/classify/QueryData.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/classify/QueryLibraryVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/classify/ResultClassifyVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/classify/ResultData.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/classify/classify.xml
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/classify/xxx.json
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/data/CondtionVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/data/CondtionsVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/data/DataCondtionsVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/data/DataObjectVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/data/PropertyVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/data/ResultDataVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/data/ResultVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/data/result.json
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/data/xx.xml
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/result/json/JSONResultClassfyVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/result/json/JSONResultClassfysVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/result/json/JSONResultDataObjectDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/result/json/JSONResultDataObjectDetailDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/result/json/JSONResultDataVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/result/json/JSONResultSystemVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/result/json/tt.json
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/result/xml/XMLResultClassfyVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/result/xml/XMLResultDataObjectDetailDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/result/xml/XMLResultDataVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/universalInter/result/xml/XMLResultSystemVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/annotation/Transient.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.vci.ubcs.com.vci.starter.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface Transient {
    boolean value() default true;
    String referColumn() default "";
    String valueField() default "oid";
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/annotation/VciEnum.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
package com.vci.ubcs.com.vci.starter.annotation;
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
//package com.vci.starter.web.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface VciEnum {
    String name() default "";
    Class valueType() default String.class;
    String text() default "";
    String description() default "";
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/exception/VciBaseException.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,80 @@
package com.vci.ubcs.com.vci.starter.exception;
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.vci.ubcs.com.vci.starter.web.util.MessageUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.text.MessageFormat;
public class VciBaseException extends RuntimeException {
    private Logger log = LoggerFactory.getLogger(this.getClass());
    public static final String paramNull = "com.vci.base.paramNull";
    public static final String fieldValueRepeat = "com.vci.base.fieldValueRepeat";
    public static final String objectNotFoundInDb = "com.vci.base.objectNotFoundInDb";
    public static final String tsNotEqual = "com.vci.base.tsNotEqual";
    public static final String dateValueFormatError = "com.vci.base.dateValueForamtError";
    public static final String notLogin = "com.vci.base.notLogin";
    public static final String notRight = "com.vci.base.notRight";
    public static final String notDataRight = "com.vci.base.notDataRight";
    public static final String notUIRight = "com.vci.base.notUIRight";
    public static final String connectCorbaFail = "com.vci.base.connectCorbaFail";
    public static final String corbaNotConfig = "com.vci.base.corbaNotConfig ";
    private String code;
    private Object[] objs = new Object[0];
    public VciBaseException(String code) {
        this.code = code;
    }
    public VciBaseException(String code, Object[] objs) {
        this.code = code;
        this.objs = objs;
    }
    public VciBaseException(String code, Object[] objs, Throwable e) {
        super(e);
        this.code = code;
        this.objs = objs;
    }
    public String getCode() {
        return this.code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public Object[] getObjs() {
        return this.objs;
    }
    public void setObjs(Object[] objs) {
        this.objs = objs;
    }
    public String getErrorMsg() {
        if (!(this instanceof VciBaseException) && !this.getClass().getSuperclass().equals(VciBaseException.class)) {
            return this instanceof Exception ? this.getMessage() : this.code;
        } else {
            if (StringUtils.isNotBlank(this.code)) {
                this.code = MessageUtils.get(this.code, this.objs);
            }
            this.code = MessageFormat.format(this.code, this.objs);
            return this.code;
        }
    }
    @Override
    public String getMessage() {
        return this.getCode() + "," + this.getErrorMsg();
    }
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/revision/model/ReleasedObjDO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,58 @@
package com.vci.ubcs.com.vci.starter.revision.model;
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
//package com.vci.starter.revision.model;
import java.io.Serializable;
public class ReleasedObjDO implements Serializable {
    private static final long serialVersionUID = -7258896338253286905L;
    private String oid;
    private String revisionOid;
    private String nameOid;
    private String btmName;
    public ReleasedObjDO() {
    }
    public String getOid() {
        return this.oid;
    }
    public void setOid(String oid) {
        this.oid = oid;
    }
    public String getRevisionOid() {
        return this.revisionOid;
    }
    public void setRevisionOid(String revisionOid) {
        this.revisionOid = revisionOid;
    }
    public String getNameOid() {
        return this.nameOid;
    }
    public void setNameOid(String nameOid) {
        this.nameOid = nameOid;
    }
    public String getBtmName() {
        return this.btmName;
    }
    public void setBtmName(String btmName) {
        this.btmName = btmName;
    }
    @Override
    public String toString() {
        return "ReleasedObjDO{oid='" + this.oid + '\'' + ", revisionOid='" + this.revisionOid + '\'' + ", nameOid='" + this.nameOid + '\'' + ", btmName='" + this.btmName + '\'' + '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/revision/model/RevisionInfo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,147 @@
package com.vci.ubcs.com.vci.starter.revision.model;
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
//package com.vci.starter.revision.model;
import java.io.Serializable;
public class RevisionInfo implements Serializable {
    private static final long serialVersionUID = 7167255550437885283L;
    private String oid;
    private String nameOid;
    private String revisionOid;
    private String lastR;
    private String firstR;
    private String lastV;
    private String firstV;
    private String revisionRule;
    private Integer revisionSeq;
    private String revisionValue;
    private String versionRule;
    private Integer versionSeq;
    private String versionValue;
    private String btmname;
    public RevisionInfo() {
    }
    public String getBtmname() {
        return this.btmname;
    }
    public void setBtmname(String btmname) {
        this.btmname = btmname;
    }
    public String getOid() {
        return this.oid;
    }
    public void setOid(String oid) {
        this.oid = oid;
    }
    public String getNameOid() {
        return this.nameOid;
    }
    public void setNameOid(String nameOid) {
        this.nameOid = nameOid;
    }
    public String getRevisionOid() {
        return this.revisionOid;
    }
    public void setRevisionOid(String revisionOid) {
        this.revisionOid = revisionOid;
    }
    public String getLastR() {
        return this.lastR;
    }
    public void setLastR(String lastR) {
        this.lastR = lastR;
    }
    public String getFirstR() {
        return this.firstR;
    }
    public void setFirstR(String firstR) {
        this.firstR = firstR;
    }
    public String getLastV() {
        return this.lastV;
    }
    public void setLastV(String lastV) {
        this.lastV = lastV;
    }
    public String getFirstV() {
        return this.firstV;
    }
    public void setFirstV(String firstV) {
        this.firstV = firstV;
    }
    public String getRevisionRule() {
        return this.revisionRule;
    }
    public void setRevisionRule(String revisionRule) {
        this.revisionRule = revisionRule;
    }
    public int getRevisionSeq() {
        return this.revisionSeq;
    }
    public void setRevisionSeq(Integer revisionSeq) {
        this.revisionSeq = revisionSeq;
    }
    public String getRevisionValue() {
        return this.revisionValue;
    }
    public void setRevisionValue(String revisionValue) {
        this.revisionValue = revisionValue;
    }
    public String getVersionRule() {
        return this.versionRule;
    }
    public void setVersionRule(String versionRule) {
        this.versionRule = versionRule;
    }
    public int getVersionSeq() {
        return this.versionSeq;
    }
    public void setVersionSeq(Integer versionSeq) {
        this.versionSeq = versionSeq;
    }
    public String getVersionValue() {
        return this.versionValue;
    }
    public void setVersionValue(String versionValue) {
        this.versionValue = versionValue;
    }
    @Override
    public String toString() {
        return "RevisionInfo{oid='" + this.oid + '\'' + ", nameOid='" + this.nameOid + '\'' + ", revisionOid='" + this.revisionOid + '\'' + ", lastR='" + this.lastR + '\'' + ", firstR='" + this.firstR + '\'' + ", lastV='" + this.lastV + '\'' + ", firstV='" + this.firstV + '\'' + ", revisionRule='" + this.revisionRule + '\'' + ", revisionSeq=" + this.revisionSeq + ", revisionValue='" + this.revisionValue + '\'' + ", versionRule='" + this.versionRule + '\'' + ", versionSeq=" + this.versionSeq + ", versionValue='" + this.versionValue + '\'' + ", btmname='" + this.btmname + '\'' + '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/revision/service/RevisionModelUtil.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
package com.vci.ubcs.com.vci.starter.revision.service;
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
//package com.vci.starter.revision.service;
import com.vci.ubcs.code.entity.BaseModel;
import com.vci.ubcs.com.vci.starter.util.VciBaseUtil;
import com.vci.ubcs.com.vci.starter.web.service.VciSecretServiceI;
import com.vci.ubcs.com.vci.starter.web.util.BeanUtilForVCI;
import org.springframework.stereotype.Component;
@Component
public class RevisionModelUtil implements VciSecretServiceI {
    public void copyFromDTOIgnore(Object dto, BaseModel baseModel) {
        VciBaseUtil.alertNotNull(new Object[]{dto, "数据传输对象", baseModel, "数据库中的数据对象"});
        BaseModel tempModel = new BaseModel();
        BeanUtilForVCI.copyPropertiesIgnoreCase(baseModel, tempModel);
        BeanUtilForVCI.copyPropertiesIgnoreCase(dto, baseModel);
        BeanUtilForVCI.copyPropertiesIgnoreCase(tempModel, baseModel);
        baseModel.setId(VciBaseUtil.getStringValueFromObject(VciBaseUtil.getValueFromField("id", dto)));
        baseModel.setName(VciBaseUtil.getStringValueFromObject(VciBaseUtil.getValueFromField("name", dto)));
        baseModel.setDescription(VciBaseUtil.getStringValueFromObject(VciBaseUtil.getValueFromField("description", dto)));
        tempModel = null;
    }
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/revision/service/VciRevisionServiceI.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,36 @@
package com.vci.ubcs.com.vci.starter.revision.service;
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
//package com.vci.starter.revision.service;
import com.vci.ubcs.com.vci.starter.revision.model.ReleasedObjDO;
import com.vci.ubcs.com.vci.starter.revision.model.RevisionInfo;
public interface VciRevisionServiceI {
    RevisionInfo selectLastRevision(String var1, String var2);
    RevisionInfo selectLastVersion(String var1, String var2, String var3);
    RevisionInfo selectRelease(String var1, String var2, String var3);
    int saveReleased(ReleasedObjDO var1);
    int resetLastRevision(String var1, String var2);
    int resetOldRevision(String var1, String var2);
    RevisionInfo selectByOid(String var1, String var2);
    int resetLastVersion(String var1, String var2, String var3);
    int resetOldVersion(String var1, String var2);
    int countByProperties(String var1, Object var2, String var3);
    int countByPropertiesNotIncludeSelf(String var1, Object var2, String var3, String var4);
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/util/VciBaseUtil.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,1101 @@
package com.vci.ubcs.com.vci.starter.util;
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.vci.ubcs.com.vci.starter.exception.VciBaseException;
import com.vci.ubcs.com.vci.starter.web.pagemodel.SessionInfo;
import com.vci.ubcs.com.vci.starter.web.util.VciDateUtil;
import com.vci.ubcs.com.vci.starter.web.util.WebThreadLocalUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ResourceUtils;
import java.beans.IntrospectionException;
import java.beans.PropertyDescriptor;
import java.io.File;
import java.io.IOException;
import java.lang.Character.UnicodeBlock;
import java.lang.annotation.Annotation;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
public class VciBaseUtil {
    private static Logger log = LoggerFactory.getLogger(VciBaseUtil.class);
    public static final String NOTIN = "not in";
    private static String localIp = null;
    public VciBaseUtil() {
    }
    public static String getPk() {
        return UUID.randomUUID().toString();
    }
    public static int getIntForBoolean(boolean b) {
        return b ? 1 : 0;
    }
    public static int getIntFromHibernateResult(Object obj) {
        if (obj == null) {
            return 0;
        } else if (obj instanceof BigDecimal) {
            return ((BigDecimal)obj).intValue();
        } else if (obj instanceof BigInteger) {
            return ((BigInteger)obj).intValue();
        } else if (obj instanceof Double) {
            return ((Double)obj).intValue();
        } else if (obj instanceof Long) {
            return ((Long)obj).intValue();
        } else if (obj instanceof Short) {
            return ((Short)obj).intValue();
        } else if (obj instanceof Float) {
            return ((Float)obj).intValue();
        } else if (obj instanceof String) {
            try {
                return Integer.valueOf(obj.toString());
            } catch (Exception var2) {
                return 0;
            }
        } else {
            return 0;
        }
    }
    public static long getLong(String s) {
        long l = 0L;
        if (s == null) {
            return 0L;
        } else {
            try {
                l = Long.parseLong(s);
                return l;
            } catch (Exception var4) {
                return 0L;
            }
        }
    }
    public static float getFloat(String s) {
        float f = 0.0F;
        if (s == null) {
            return 0.0F;
        } else {
            try {
                f = Float.parseFloat(s);
                return f;
            } catch (Exception var3) {
                return 0.0F;
            }
        }
    }
    public static int getInt(String string) {
        //int i = false;
        if (string != null && !"".equals(string.trim())) {
            if (string.contains(".")) {
                string = string.substring(0, string.indexOf("."));
            }
            try {
                int i = Integer.parseInt(string);
                return i;
            } catch (Exception var3) {
                return 0;
            }
        } else {
            return 0;
        }
    }
    public static double getDouble(String s) {
        double d = 0.0D;
        if (isNull(s)) {
            return 0.0D;
        } else {
            try {
                d = Double.parseDouble(s);
                return d;
            } catch (Exception var4) {
                return 0.0D;
            }
        }
    }
    public static String removeComma(String s) {
        if (s != null && s.trim().length() != 0) {
            if (s.startsWith(",")) {
                s = s.substring(1, s.length());
            }
            if (s.endsWith(",")) {
                s = s.substring(0, s.length() - 1);
            }
            return s;
        } else {
            return s;
        }
    }
    public static String toInSql(String s) {
        s = removeComma(s);
        if (s != null && s.trim().length() != 0) {
            String[] temp = s.split(",");
            return toInSql(temp);
        } else {
            return "";
        }
    }
    public static String toInSql(String[] s) {
        if (s != null && s.length > 0) {
            StringBuilder sb = new StringBuilder();
            if (s != null && s.length > 0) {
                for(int i = 0; i < s.length; ++i) {
                    if (s[i] != null && s[i].trim().length() > 0 && !s[i].startsWith("'")) {
                        sb.append("'").append(s[i]).append("',");
                    }
                }
            }
            return removeComma(sb.toString());
        } else {
            return "";
        }
    }
    public static String toInSql(String field, String s) {
        return !StringUtils.isBlank(field) && !StringUtils.isBlank(s) ? toInSql(field, removeComma(s).split(","), "") : "";
    }
    public static String toInSql(String field, String[] s) {
        return toInSql(field, s, "in");
    }
    public static String toInSql(String field, String[] s, String operation) {
        if (!StringUtils.isBlank(field) && s != null && s.length != 0) {
            StringBuilder sb = new StringBuilder();
            if (s != null && s.length > 0) {
                String andOr = "or";
                if (operation.trim().toLowerCase().equals("not in")) {
                    andOr = "and";
                }
                for(int i = 0; i < s.length; ++i) {
                    if (s[i] != null && s[i].trim().length() > 0 && !s[i].startsWith("'")) {
                        if (i == 0) {
                            sb.append(field).append(" ").append(operation).append(" (");
                        }
                        if (i % 500 == 0 && i != 0) {
                            sb.append(" ").append(andOr).append(" ").append(field).append(" ").append(operation).append(" (");
                        }
                        sb.append("'").append(s[i]).append("'");
                        if (i % 500 != 499 && i != s.length - 1) {
                            sb.append(",");
                        }
                        if (i % 500 == 499 || i == s.length - 1) {
                            sb.append(") ");
                        }
                    }
                }
            }
            return sb.toString();
        } else {
            return "";
        }
    }
    /** @deprecated */
    @Deprecated
    public static String arrayToString(String[] array) {
        if (array != null && array.length > 0) {
            StringBuilder sb = new StringBuilder();
            for(int i = 0; i < array.length; ++i) {
                String record = array[i];
                if (StringUtils.isNotBlank(record)) {
                    sb.append(record).append(",");
                }
            }
            return removeComma(sb.toString());
        } else {
            return "";
        }
    }
    public static String collectionToString(Collection collection) {
        if (CollectionUtils.isEmpty(collection)) {
            return "";
        } else {
            StringBuilder sb = new StringBuilder();
            Iterator it = collection.iterator();
            while(true) {
                Object record;
                do {
                    do {
                        if (!it.hasNext()) {
                            return removeComma(sb.toString());
                        }
                        record = it.next();
                    } while(record == null);
                } while(record instanceof String && !StringUtils.isNotBlank((String)record));
                sb.append(record.toString()).append(",");
            }
        }
    }
    public static String toUpForFirst(String s) {
        if (s != null && s.trim().length() != 0) {
            String temp = s.substring(0, 1);
            temp = temp.toUpperCase();
            return temp + s.substring(1, s.length());
        } else {
            return "";
        }
    }
    public static String toLowForFirst(String s) {
        if (s != null && s.trim().length() != 0) {
            String temp = s.substring(0, 1);
            temp = temp.toLowerCase();
            return temp + s.substring(1, s.length());
        } else {
            return "";
        }
    }
    public static int countOfString(String s, char findC) {
        Map<String, Integer> charMap = new HashMap();
        char[] cs = s.toCharArray();
        char[] var4 = cs;
        int var5 = cs.length;
        for(int var6 = 0; var6 < var5; ++var6) {
            char c = var4[var6];
            charMap.put(String.valueOf(c), !charMap.containsKey(String.valueOf(c)) ? 1 : (Integer)charMap.get(String.valueOf(c)) + 1);
        }
        return (Integer)charMap.get(String.valueOf(findC));
    }
    public static List<String> str2List(String s) {
        if (isNull(s)) {
            return null;
        } else {
            List<String> l = new ArrayList();
            Collections.addAll(l, removeComma(s).split(","));
            return l;
        }
    }
    public static String list2String(List<String> ls) {
        return ls != null && ls.size() != 0 ? (String)ls.stream().collect(Collectors.joining(",")) : "";
    }
    public static boolean isNull(String o) {
        return StringUtils.isEmpty(o);
    }
    public static boolean isNotNull(String o) {
        return !isNull(o);
    }
    public static boolean isNullOrNullString(String o) {
        return StringUtils.isBlank(o);
    }
    public static boolean inArray(String[] arr, String s) {
        if (arr != null && s != null) {
            String[] var2 = arr;
            int var3 = arr.length;
            for(int var4 = 0; var4 < var3; ++var4) {
                String a = var2[var4];
                if (s.trim().equalsIgnoreCase(a)) {
                    return true;
                }
            }
        }
        return false;
    }
    public static boolean inArray(Object[] arr, Object o) {
        if (arr != null && o != null) {
            Object[] var2 = arr;
            int var3 = arr.length;
            for(int var4 = 0; var4 < var3; ++var4) {
                Object a = var2[var4];
                if (a.equals(o)) {
                    return true;
                }
            }
        }
        return false;
    }
    public static double round(double value, int scale, int roundingMode) {
        BigDecimal bd = new BigDecimal(value);
        bd = bd.setScale(scale, roundingMode);
        double d = bd.doubleValue();
        bd = null;
        return d;
    }
    public static double round(double value, int scale) {
        return round(value, scale, 4);
    }
    public static boolean isEmail(String string) {
        if (StringUtils.isBlank(string)) {
            return false;
        } else {
            String regEx1 = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
            Pattern p = Pattern.compile(regEx1);
            Matcher m = p.matcher(string);
            return m.matches();
        }
    }
    public static boolean isNumber(String s) {
        return StringUtils.isNotBlank(s) && s.matches("\\d+\\.?\\d*");
    }
    public static Field getFieldForObject(String fieldName, List<Field> fieldsList) {
        if (StringUtils.isBlank(fieldName)) {
            return null;
        } else {
            if (fieldsList != null && fieldsList.size() > 0) {
                Iterator var2 = fieldsList.iterator();
                while(var2.hasNext()) {
                    Field field = (Field)var2.next();
                    if (field.getName().toLowerCase().equals(fieldName.toLowerCase())) {
                        return field;
                    }
                }
            }
            return null;
        }
    }
    public static Method getSetmethod(Class c, String fieldName) {
        if (c != null && StringUtils.isNotBlank(fieldName)) {
            try {
                PropertyDescriptor pd = new PropertyDescriptor(fieldName, c);
                return pd.getWriteMethod();
            } catch (SecurityException var3) {
                if (log.isErrorEnabled()) {
                    log.error("获取getter出错", var3);
                }
            } catch (IntrospectionException var4) {
                if (log.isErrorEnabled()) {
                    log.error("获取getter出错", var4);
                }
            }
        }
        return null;
    }
    public static Method getGetmethod(Class c, String fieldName) {
        if (c != null && StringUtils.isNotBlank(fieldName)) {
            try {
                PropertyDescriptor pd = new PropertyDescriptor(fieldName, c);
                return pd.getReadMethod();
            } catch (SecurityException var3) {
                if (log.isErrorEnabled()) {
                    log.error("获取getter出错", var3);
                }
            } catch (IntrospectionException var4) {
                if (log.isErrorEnabled()) {
                    log.error("获取getter出错", var4);
                }
            }
        }
        return null;
    }
    public static String getColumnAnnotaionNameValue(Annotation[] fieldAnnotaions) {
        return getAnnotationValue("com.vci.starter.web.annotation.Column,javax.persistence.Column", "name", fieldAnnotaions);
    }
    public static String getAnnotationValue(String annotationName, String methodName, Annotation[] fieldAnnotaions) {
        String[] annotaionNameArray = annotationName.split(",");
        Annotation[] var4 = fieldAnnotaions;
        int var5 = fieldAnnotaions.length;
        for(int var6 = 0; var6 < var5; ++var6) {
            Annotation annotation = var4[var6];
            String anname = annotation.annotationType().getName();
            if (inArray(annotaionNameArray, anname)) {
                String name = null;
                try {
                    name = (String)annotation.getClass().getMethod(methodName).invoke(annotation);
                } catch (IllegalAccessException var11) {
                    var11.printStackTrace();
                } catch (InvocationTargetException var12) {
                    var12.printStackTrace();
                } catch (NoSuchMethodException var13) {
                    var13.printStackTrace();
                }
                return name;
            }
        }
        return null;
    }
    public static Object getValueFromField(String fieldName, Object sourceObject) {
        if (StringUtils.isNotBlank(fieldName)) {
            try {
                Method getMethod = getGetmethod(sourceObject.getClass(), fieldName);
                if (getMethod != null) {
                    return getMethod.invoke(sourceObject);
                }
                Field field = getFieldForObject(fieldName, sourceObject);
                if (field != null) {
                    field.setAccessible(true);
                    return field.get(sourceObject);
                }
            } catch (SecurityException var4) {
                if (log.isErrorEnabled()) {
                    log.error("从属性上获取值", var4);
                }
            } catch (IllegalAccessException var5) {
                if (log.isErrorEnabled()) {
                    log.error("从属性上获取值", var5);
                }
            } catch (IllegalArgumentException var6) {
                if (log.isErrorEnabled()) {
                    log.error("从属性上获取值", var6);
                }
            } catch (InvocationTargetException var7) {
                if (log.isErrorEnabled()) {
                    log.error("从属性上获取值", var7);
                }
            }
        }
        return null;
    }
    public static void setValueForMethod(Field field, Object obj, Object value) {
        try {
            if (field != null) {
                field.setAccessible(true);
                Method setMethod = getSetmethod(field.getDeclaringClass(), field.getName());
                setMethod.invoke(obj, value);
            }
        } catch (Exception var4) {
            log.error("反射调用方法出现了错误,", var4);
        }
    }
    public static void alertNotNull(Object... s) throws VciBaseException {
        if (s != null && s.length > 0) {
            for(int i = 0; i < s.length; ++i) {
                Object obj = s[i];
                String param = "";
                try {
                    ++i;
                    param = s[i].toString();
                } catch (Exception var5) {
                }
                if (obj == null) {
                    throw new VciBaseException("参数[{0}]不能为空", new String[]{param});
                }
                if (obj instanceof Collection) {
                    if (CollectionUtils.isEmpty((Collection)obj)) {
                        throw new VciBaseException("参数[{0}]不能为空", new String[]{param});
                    }
                } else if (StringUtils.isBlank(obj.toString())) {
                    throw new VciBaseException("参数[{0}]不能为空", new String[]{param});
                }
            }
        }
    }
    /** @deprecated */
    @Deprecated
    public static void alertCollectionNotNull(String param, Collection collections) throws VciBaseException {
        if (CollectionUtils.isEmpty(collections)) {
            throw new VciBaseException("参数{0}不能为空", new String[]{param});
        }
    }
    public static <T> Set<Set<T>> switchSetForOracleIn(Set<T> set) {
        Set<Set<T>> listHasList = new HashSet();
        if (set == null) {
            return listHasList;
        } else {
            int muti = 1;
            if (set.size() > 500) {
                int balance = set.size() % 500;
                muti = (set.size() - balance) / 500 + (balance == 0 ? 0 : 1);
            }
            List list = new ArrayList();
            Iterator it = set.iterator();
            while(it.hasNext()) {
                list.add(it.next());
            }
            for(int i = 0; i < muti; ++i) {
                int start = i * 500;
                int end = start + 500;
                if (i == muti - 1 || end > set.size()) {
                    end = set.size();
                }
                List subList = list.subList(start, end);
                Set subSet = new HashSet();
                Iterator var10 = subList.iterator();
                while(var10.hasNext()) {
                    Object obj = var10.next();
                    subSet.add(obj);
                }
                listHasList.add(subSet);
            }
            return listHasList;
        }
    }
    public static <T> Vector<Vector<T>> switchVectorForOracleIn(Vector<T> vector) {
        Vector<Vector<T>> listHasList = new Vector();
        if (vector == null) {
            return listHasList;
        } else {
            int muti = 1;
            if (vector.size() > 500) {
                int balance = vector.size() % 500;
                muti = (vector.size() - balance) / 500 + (balance == 0 ? 0 : 1);
            }
            List list = new ArrayList();
            Iterator it = vector.iterator();
            while(it.hasNext()) {
                list.add(it.next());
            }
            for(int i = 0; i < muti; ++i) {
                int start = i * 500;
                int end = start + 500;
                if (i == muti - 1 || end > vector.size()) {
                    end = vector.size();
                }
                List subList = list.subList(start, end);
                Vector subSet = new Vector();
                Iterator var10 = subList.iterator();
                while(var10.hasNext()) {
                    Object obj = var10.next();
                    subSet.add(obj);
                }
                listHasList.add(subSet);
            }
            return listHasList;
        }
    }
    public static <T> T jsonString2JavaBean(String jsonString, Class<T> beanClass) {
        return JSONObject.parseObject(jsonString, beanClass);
    }
    public static void ifNullSetDefautl(String str, String defaultValue) {
        if (isNull(str)) {
            ;
        }
    }
    public static <T> T getFristObjectFromJson(String jsonString, Class<T> beanClass) {
        return !isNull(jsonString) ? JSONObject.parseArray(jsonString, beanClass).get(0) : null;
    }
    public static String getJSONStringWithDateFormat(Object obj) {
        return JSONObject.toJSONStringWithDateFormat(obj, "yyyy-MM-dd HH:mm:ss.SSS", new SerializerFeature[]{SerializerFeature.WriteDateUseDateFormat});
    }
    public static Map<String, Object> objectToMap(Object o) {
        Map<String, Object> map = new HashMap();
        if (o != null) {
            String jsonString = JSONObject.toJSONStringWithDateFormat(o, "yyyy-MM-dd HH:mm:ss.SSS", new SerializerFeature[]{SerializerFeature.WriteDateUseDateFormat});
            if (StringUtils.isNotBlank(jsonString)) {
                JSONObject jsonObject = JSONObject.parseObject(jsonString);
                if (jsonObject != null) {
                    Iterator var4 = jsonObject.keySet().iterator();
                    while(var4.hasNext()) {
                        String key = (String)var4.next();
                        map.put(key, jsonObject.get(key));
                    }
                }
            }
        }
        return map;
    }
    public static Map<String, String> objectToMapString(Object o) {
        Map<String, String> map = new HashMap();
        if (o != null) {
            String jsonString = JSONObject.toJSONStringWithDateFormat(o, "yyyy-MM-dd HH:mm:ss.SSS", new SerializerFeature[]{SerializerFeature.WriteDateUseDateFormat});
            if (StringUtils.isNotBlank(jsonString)) {
                JSONObject jsonObject = JSONObject.parseObject(jsonString);
                if (jsonObject != null) {
                    Iterator var4 = jsonObject.keySet().iterator();
                    while(var4.hasNext()) {
                        String key = (String)var4.next();
                        map.put(key, jsonObject.getString(key));
                    }
                }
            }
        }
        return map;
    }
    public static boolean isNotNullForField(Object obj, Field f) {
        return !"serialVersionUID".equalsIgnoreCase(f.getName()) && !"DEFAULT_INITIAL_CAPACITY".equalsIgnoreCase(f.getName()) && null != obj && !isNullOrNullString(obj.toString());
    }
    public static String array2String(String[] array) {
        if (null != array && array.length != 0) {
            String ss = "";
            String[] var2 = array;
            int var3 = array.length;
            for(int var4 = 0; var4 < var3; ++var4) {
                String s = var2[var4];
                ss = ss + s + ",";
            }
            return removeComma(ss);
        } else {
            return "";
        }
    }
    public static void copyValueForMap(Map source, Map target, String[] copyField) {
        Map<String, String> copyFieldMap = new HashMap();
        String[] var4 = copyField;
        int var5 = copyField.length;
        for(int var6 = 0; var6 < var5; ++var6) {
            String field = var4[var6];
            copyFieldMap.put(field, field);
        }
        copyValueForMap(source, target, (Map)copyFieldMap);
    }
    public static void copyValueForMap(Map source, Map target, Map<String, String> copyField) {
        try {
            Iterator it = copyField.keySet().iterator();
            while(it.hasNext()) {
                String field = (String)it.next();
                target.put(field, source.get(copyField.get(field)));
            }
        } catch (Exception var5) {
        }
    }
    public static Double getDoubleFromMap(String field, Map<String, Object> record) {
        if (!isNullOrNullString(field) && record != null && record.containsKey(field)) {
            Object v = record.get(field);
            if (v instanceof BigDecimal) {
                return ((BigDecimal)v).doubleValue();
            } else {
                return v instanceof Double ? (Double)v : getDouble((String)v);
            }
        } else {
            return null;
        }
    }
    public static String getDataByKey(String key, Map<String, Object> data) {
        String value = "";
        if (data.containsKey(key)) {
            value = (String)data.get(key);
        }
        if (value == null) {
            value = "";
        }
        return value;
    }
    public static Map getNotNullMap(Map map) {
        if (map == null) {
            return new HashMap();
        } else {
            Iterator it = map.keySet().iterator();
            HashMap unNullMap = new HashMap();
            while(true) {
                while(true) {
                    String newKey;
                    Object value;
                    do {
                        if (!it.hasNext()) {
                            return unNullMap;
                        }
                        Object key = it.next();
                        newKey = key.toString().toLowerCase();
                        value = map.get(key);
                    } while(value == null);
                    if (value instanceof String && isNotNull(value.toString())) {
                        unNullMap.put(newKey, value);
                    } else if (!(value instanceof String)) {
                        unNullMap.put(newKey, value);
                    }
                }
            }
        }
    }
    public static List<Field> getAllFieldForObj(Class c) {
        List<Field> allField = new ArrayList();
        Set<String> fieldNameSet = new HashSet();
        for(Class classz = c; classz != Object.class; classz = classz.getSuperclass()) {
            Field[] thisClassField = classz.getDeclaredFields();
            Field[] var5 = thisClassField;
            int var6 = thisClassField.length;
            for(int var7 = 0; var7 < var6; ++var7) {
                Field field = var5[var7];
                if (!field.getName().equals("serialVersionUID")) {
                    String fieldLowerName = field.getName().toLowerCase();
                    if (!fieldNameSet.contains(fieldLowerName)) {
                        fieldNameSet.add(fieldLowerName);
                        allField.add(field);
                    }
                }
            }
        }
        return allField;
    }
    public static Field getTsField(Class c) {
        List<Field> allField = getAllFieldForObj(c);
        if (allField != null && allField.size() > 0) {
            Iterator var2 = allField.iterator();
            while(var2.hasNext()) {
                Field field = (Field)var2.next();
                if (field.getName().equals("ts")) {
                    return field;
                }
            }
        }
        return null;
    }
    public static Field getFieldForObject(String fieldName, Object obj) {
        return obj == null ? null : getFieldForObject(fieldName, obj.getClass());
    }
    public static Field getFieldForObject(String fieldName, Class c) {
        List<Field> allField = getAllFieldForObj(c);
        if (allField != null && allField.size() > 0) {
            Iterator var3 = allField.iterator();
            while(var3.hasNext()) {
                Field field = (Field)var3.next();
                if (field.getName().toLowerCase().equalsIgnoreCase(fieldName.toLowerCase())) {
                    return field;
                }
            }
        }
        return null;
    }
    public static Method getSetmethod(Class c, Field field) {
        return getSetmethod(c, field.getName());
    }
    public static Method getGetmethod(Class c, Field field) {
        return getGetmethod(c, field.getName());
    }
    public static Method getMethodByName(Class<?> classObj, String methodName) {
        alertNotNull(classObj, "获取方法的对象所属的类", methodName, "方法的名字");
        Method[] methods = classObj.getMethods();
        List<Method> sameMethods = (List)Arrays.stream(methods).filter((method) -> {
            return method.getName().equalsIgnoreCase(methodName);
        }).collect(Collectors.toList());
        return !CollectionUtils.isEmpty(sameMethods) ? (Method)sameMethods.get(0) : null;
    }
    public static Map<String, String> whereSql2Map(String whereSql) {
        Map<String, String> map = new HashMap();
        if (isNotNull(whereSql)) {
            String[] selects = whereSql.split("and");
            if (selects != null && selects.length > 0) {
                String[] var3 = selects;
                int var4 = selects.length;
                for(int var5 = 0; var5 < var4; ++var5) {
                    String s = var3[var5];
                    s = s.trim();
                    map.put(s.substring(0, s.indexOf(" ")).trim(), s.substring(s.indexOf(" ") + 1).trim());
                }
            }
        }
        return map;
    }
    public static synchronized String getRoundFilename(String prefix) {
        if (prefix == null) {
            prefix = "";
        }
        return prefix + System.currentTimeMillis();
    }
    public static String getLocalIp() {
        if (localIp == null) {
            try {
                InetAddress inetAddress = getLocalHostLANAddress();
                if (inetAddress == null) {
                    localIp = "127.0.0.1";
                } else {
                    localIp = inetAddress.getHostAddress();
                }
            } catch (Exception var1) {
                localIp = "127.0.0.1";
            }
        }
        return localIp;
    }
    private static InetAddress getLocalHostLANAddress() throws Exception {
        try {
            InetAddress candidateAddress = null;
            Enumeration ifaces = NetworkInterface.getNetworkInterfaces();
            while(ifaces.hasMoreElements()) {
                NetworkInterface iface = (NetworkInterface)ifaces.nextElement();
                Enumeration inetAddrs = iface.getInetAddresses();
                while(inetAddrs.hasMoreElements()) {
                    InetAddress inetAddr = (InetAddress)inetAddrs.nextElement();
                    if (!inetAddr.isLoopbackAddress()) {
                        if (inetAddr.isSiteLocalAddress()) {
                            return inetAddr;
                        }
                        if (candidateAddress == null) {
                            candidateAddress = inetAddr;
                        }
                    }
                }
            }
            if (candidateAddress != null) {
                return candidateAddress;
            } else {
                InetAddress jdkSuppliedAddress = InetAddress.getLocalHost();
                return jdkSuppliedAddress;
            }
        } catch (Exception var5) {
            var5.printStackTrace();
            return null;
        }
    }
    public static String getProjectPath() {
        String path = "";
        try {
            String jarFilePath = ResourceUtils.getURL("classpath:").getPath();
            if (jarFilePath.contains("!")) {
                path = (new File(jarFilePath)).getParentFile().getParentFile().getParent();
            } else {
                path = (new File(jarFilePath)).getParent();
            }
        } catch (IOException var2) {
            throw new VciBaseException("获取当前服务所在的文件夹出现了错误");
        }
        if (path.startsWith("file:\\")) {
            path = path.substring(6);
        }
        return path;
    }
    public static Map<String, String> getParamsByUrl(String url) {
        if (StringUtils.isBlank(url)) {
            return new HashMap();
        } else {
            String[] array = url.split("&");
            Map<String, String> params = new HashMap();
            String[] var3 = array;
            int var4 = array.length;
            for(int var5 = 0; var5 < var4; ++var5) {
                String temp = var3[var5];
                if (temp.contains("=")) {
                    String[] keyValues = temp.split("=");
                    params.put(keyValues[0], keyValues[1]);
                } else {
                    params.put(temp, "");
                }
            }
            return params;
        }
    }
    public static boolean isChinese(char c) {
        UnicodeBlock ub = UnicodeBlock.of(c);
        return ub == UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS || ub == UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS || ub == UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A || ub == UnicodeBlock.GENERAL_PUNCTUATION || ub == UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION || ub == UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS;
    }
    public static boolean containsKeyUnCaseForMap(Map map, String key) {
        if (!CollectionUtils.isEmpty(map)) {
            boolean[] finded = new boolean[]{false};
            map.forEach((k, value) -> {
                if (k instanceof String && k.toString().toLowerCase(Locale.ROOT).equalsIgnoreCase(key)) {
                    finded[0] = true;
                }
            });
            return finded[0];
        } else {
            return false;
        }
    }
    public static boolean isChinese(String str) {
        char[] ch = str.toCharArray();
        char[] var2 = ch;
        int var3 = ch.length;
        for(int var4 = 0; var4 < var3; ++var4) {
            char c = var2[var4];
            if (isChinese(c)) {
                return true;
            }
        }
        return false;
    }
    public static String toDBC(String input) {
        if (StringUtils.isBlank(input)) {
            return input;
        } else {
            char[] c = input.toCharArray();
            for(int i = 0; i < c.length; ++i) {
                if (c[i] == 12288) {
                    c[i] = ' ';
                } else if (c[i] > '\uff00' && c[i] < '⦅') {
                    c[i] -= 'ï» ';
                }
            }
            return new String(c);
        }
    }
    public static String toSBC(String input) {
        if (StringUtils.isBlank(input)) {
            return input;
        } else {
            char[] c = input.toCharArray();
            for(int i = 0; i < c.length; ++i) {
                if (c[i] == 12288) {
                    c[i] = ' ';
                } else if (c[i] > '\uff00' && c[i] < '⦅') {
                    c[i] += 'ï» ';
                }
            }
            return new String(c);
        }
    }
    public static SessionInfo getCurrentUserSessionInfoNotException() {
        return (SessionInfo) WebThreadLocalUtil.getCurrentUserSessionInfoInThread().get();
    }
    public static String getStringValueFromObject(Object obj) {
        if (obj == null) {
            return "";
        } else if (!(obj instanceof Integer) && !(obj instanceof Float) && !(obj instanceof Long) && !(obj instanceof Double)) {
            return obj instanceof Date ? VciDateUtil.date2Str((Date)obj, "yyyy-MM-dd HH:mm:ss.SSS") : obj.toString();
        } else {
            if (obj instanceof Double) {
                Double aDouble = (Double)obj;
                if (aDouble != null && aDouble % 1.0D == 0.0D) {
                    return String.valueOf(aDouble.intValue());
                }
            }
            return String.valueOf(obj);
        }
    }
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/enumpck/BaseEnumInt.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
package com.vci.ubcs.com.vci.starter.web.enumpck;
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
//package com.vci.starter.web.enumpck;
public interface BaseEnumInt {
    int getValue();
    String getText();
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/enumpck/UserSecretEnum.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,90 @@
package com.vci.ubcs.com.vci.starter.web.enumpck;
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
//package com.vci.starter.web.enumpck;
//import com.vci.starter.web.annotation.VciEnum;
import com.vci.ubcs.com.vci.starter.annotation.VciEnum;
@VciEnum(
    name = "usersecurityenum",
    text = "人员密级",
    description = "用户,人员的密级"
)
public enum UserSecretEnum implements BaseEnumInt {
    NONE(10, "内部"),
    SECRET(20, "一般"),
    PRIVACY(30, "重要");
    private int value;
    private String text;
    @Override
    public int getValue() {
        return this.value;
    }
    public void setValue(int value) {
        this.value = value;
    }
    @Override
    public String getText() {
        return this.text;
    }
    public void setText(String text) {
        this.text = text;
    }
    private UserSecretEnum(int secret, String secretText) {
        this.value = secret;
        this.text = secretText;
    }
    public static String getSecretText(int secret) {
        UserSecretEnum[] var1 = values();
        int var2 = var1.length;
        for(int var3 = 0; var3 < var2; ++var3) {
            UserSecretEnum eu = var1[var3];
            if (eu.value == secret) {
                return eu.text;
            }
        }
        return NONE.text;
    }
    public static boolean isValid(int secret) {
        UserSecretEnum[] var1 = values();
        int var2 = var1.length;
        for(int var3 = 0; var3 < var2; ++var3) {
            UserSecretEnum eu = var1[var3];
            if (eu.value == secret) {
                return true;
            }
        }
        return false;
    }
    public static int getSecretValueByText(String text) {
        UserSecretEnum[] var1 = values();
        int var2 = var1.length;
        for(int var3 = 0; var3 < var2; ++var3) {
            UserSecretEnum eu = var1[var3];
            if (eu.text.equalsIgnoreCase(text)) {
                return eu.value;
            }
        }
        return NONE.value;
    }
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/pagemodel/SessionInfo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,421 @@
package com.vci.ubcs.com.vci.starter.web.pagemodel;
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
//package com.vci.starter.web.pagemodel;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class SessionInfo implements Serializable {
    private static final long serialVersionUID = 7950268190988911233L;
    private String orgsOid;
    private String orgsName;
    private String deptOid;
    private String deptName;
    private String userOid;
    private String userId;
    private String userName;
    private String personOid;
    private String personId;
    private String personName;
    private String dutyOid;
    private String dutyName;
    private String workgroupOid;
    private String workgroupName;
    private String workTypeOid;
    private String workTypeName;
    private String usertype;
    private String usertypeText;
    private String sex;
    private String sexText;
    private Map<String, String> rolesName;
    private List<String> functionOids;
    private String photoUrl;
    private String ip;
    private String language;
    private String userSecret;
    private String userSecretText;
    private String ipSecret;
    private String ipSecretText;
    private String machine;
    private String os;
    private String browser;
    private String osUser;
    private List<String> deviceInfo = new ArrayList();
    private String email;
    private String phoneNo;
    private String rtxNo;
    private String portalId;
    private String IMId;
    private boolean sso;
    private String ssoServiceName;
    private String token;
    private Map<String, String> globalAttributeMap = new HashMap();
    private String workNo;
    public SessionInfo() {
    }
    public String getDutyOid() {
        return this.dutyOid;
    }
    public void setDutyOid(String dutyOid) {
        this.dutyOid = dutyOid;
    }
    public String getDutyName() {
        return this.dutyName;
    }
    public void setDutyName(String dutyName) {
        this.dutyName = dutyName;
    }
    public String getOrgsOid() {
        return this.orgsOid;
    }
    public void setOrgsOid(String orgsOid) {
        this.orgsOid = orgsOid;
    }
    public String getOrgsName() {
        return this.orgsName;
    }
    public void setOrgsName(String orgsName) {
        this.orgsName = orgsName;
    }
    public String getDeptOid() {
        return this.deptOid;
    }
    public void setDeptOid(String deptOid) {
        this.deptOid = deptOid;
    }
    public String getDeptName() {
        return this.deptName;
    }
    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }
    public String getUserOid() {
        return this.userOid;
    }
    public void setUserOid(String userOid) {
        this.userOid = userOid;
    }
    public String getUserId() {
        return this.userId;
    }
    public void setUserId(String userId) {
        this.userId = userId;
    }
    public String getUserName() {
        return this.userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getPersonOid() {
        return this.personOid;
    }
    public void setPersonOid(String personOid) {
        this.personOid = personOid;
    }
    public String getPersonName() {
        return this.personName;
    }
    public void setPersonName(String personName) {
        this.personName = personName;
    }
    public String getWorkgroupOid() {
        return this.workgroupOid;
    }
    public void setWorkgroupOid(String workgroupOid) {
        this.workgroupOid = workgroupOid;
    }
    public String getWorkgroupName() {
        return this.workgroupName;
    }
    public void setWorkgroupName(String workgroupName) {
        this.workgroupName = workgroupName;
    }
    public String getUsertype() {
        return this.usertype;
    }
    public void setUsertype(String usertype) {
        this.usertype = usertype;
    }
    public String getUsertypeText() {
        return this.usertypeText;
    }
    public void setUsertypeText(String usertypeText) {
        this.usertypeText = usertypeText;
    }
    public String getSex() {
        return this.sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public List<String> getFunctionOids() {
        return this.functionOids;
    }
    public void setFunctionOids(List<String> functionOids) {
        this.functionOids = functionOids;
    }
    public String getPhotoUrl() {
        return this.photoUrl;
    }
    public void setPhotoUrl(String photoUrl) {
        this.photoUrl = photoUrl;
    }
    public String getIp() {
        return this.ip;
    }
    public void setIp(String ip) {
        this.ip = ip;
    }
    public String getLanguage() {
        return this.language;
    }
    public void setLanguage(String language) {
        this.language = language;
    }
    public String getUserSecret() {
        return this.userSecret;
    }
    public void setUserSecret(String userSecret) {
        this.userSecret = userSecret;
    }
    public String getUserSecretText() {
        return this.userSecretText;
    }
    public void setUserSecretText(String userSecretText) {
        this.userSecretText = userSecretText;
    }
    public String getIpSecret() {
        return this.ipSecret;
    }
    public void setIpSecret(String ipSecret) {
        this.ipSecret = ipSecret;
    }
    public String getIpSecretText() {
        return this.ipSecretText;
    }
    public void setIpSecretText(String ipSecretText) {
        this.ipSecretText = ipSecretText;
    }
    public String getMachine() {
        return this.machine;
    }
    public void setMachine(String machine) {
        this.machine = machine;
    }
    public String getOs() {
        return this.os;
    }
    public void setOs(String os) {
        this.os = os;
    }
    public String getBrowser() {
        return this.browser;
    }
    public void setBrowser(String browser) {
        this.browser = browser;
    }
    public String getOsUser() {
        return this.osUser;
    }
    public void setOsUser(String osUser) {
        this.osUser = osUser;
    }
    public List<String> getDeviceInfo() {
        return this.deviceInfo;
    }
    public void setDeviceInfo(List<String> deviceInfo) {
        this.deviceInfo = deviceInfo;
    }
    public String getEmail() {
        return this.email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public String getPhoneNo() {
        return this.phoneNo;
    }
    public void setPhoneNo(String phoneNo) {
        this.phoneNo = phoneNo;
    }
    public String getRtxNo() {
        return this.rtxNo;
    }
    public void setRtxNo(String rtxNo) {
        this.rtxNo = rtxNo;
    }
    public String getPortalId() {
        return this.portalId;
    }
    public void setPortalId(String portalId) {
        this.portalId = portalId;
    }
    public String getIMId() {
        return this.IMId;
    }
    public void setIMId(String IMId) {
        this.IMId = IMId;
    }
    public boolean isSso() {
        return this.sso;
    }
    public void setSso(boolean sso) {
        this.sso = sso;
    }
    public String getSsoServiceName() {
        return this.ssoServiceName;
    }
    public void setSsoServiceName(String ssoServiceName) {
        this.ssoServiceName = ssoServiceName;
    }
    public String getToken() {
        return this.token;
    }
    public void setToken(String token) {
        this.token = token;
    }
    public Map<String, String> getGlobalAttributeMap() {
        return this.globalAttributeMap;
    }
    public void setGlobalAttributeMap(Map<String, String> globalAttributeMap) {
        this.globalAttributeMap = globalAttributeMap;
    }
    public String getPersonId() {
        return this.personId;
    }
    public void setPersonId(String personId) {
        this.personId = personId;
    }
    public String getSexText() {
        return this.sexText;
    }
    public void setSexText(String sexText) {
        this.sexText = sexText;
    }
    public Map<String, String> getRolesName() {
        return this.rolesName;
    }
    public void setRolesName(Map<String, String> rolesName) {
        this.rolesName = rolesName;
    }
    public String getWorkNo() {
        return this.workNo;
    }
    public void setWorkNo(String workNo) {
        this.workNo = workNo;
    }
    public String getWorkTypeOid() {
        return this.workTypeOid;
    }
    public void setWorkTypeOid(String workTypeOid) {
        this.workTypeOid = workTypeOid;
    }
    public String getWorkTypeName() {
        return this.workTypeName;
    }
    public void setWorkTypeName(String workTypeName) {
        this.workTypeName = workTypeName;
    }
    public String toString() {
        return "SessionInfo{orgsOid='" + this.orgsOid + '\'' + ", orgsName='" + this.orgsName + '\'' + ", deptOid='" + this.deptOid + '\'' + ", deptName='" + this.deptName + '\'' + ", userOid='" + this.userOid + '\'' + ", userId='" + this.userId + '\'' + ", userName='" + this.userName + '\'' + ", personOid='" + this.personOid + '\'' + ", personId='" + this.personId + '\'' + ", personName='" + this.personName + '\'' + ", dutyOid='" + this.dutyOid + '\'' + ", dutyName='" + this.dutyName + '\'' + ", workgroupOid='" + this.workgroupOid + '\'' + ", workgroupName='" + this.workgroupName + '\'' + ", workTypeOid='" + this.workTypeOid + '\'' + ", workTypeName='" + this.workTypeName + '\'' + ", usertype='" + this.usertype + '\'' + ", usertypeText='" + this.usertypeText + '\'' + ", sex='" + this.sex + '\'' + ", sexText='" + this.sexText + '\'' + ", rolesName=" + this.rolesName + ", functionOids=" + this.functionOids + ", photoUrl='" + this.photoUrl + '\'' + ", ip='" + this.ip + '\'' + ", language='" + this.language + '\'' + ", userSecret='" + this.userSecret + '\'' + ", userSecretText='" + this.userSecretText + '\'' + ", ipSecret='" + this.ipSecret + '\'' + ", ipSecretText='" + this.ipSecretText + '\'' + ", machine='" + this.machine + '\'' + ", os='" + this.os + '\'' + ", browser='" + this.browser + '\'' + ", osUser='" + this.osUser + '\'' + ", deviceInfo=" + this.deviceInfo + ", email='" + this.email + '\'' + ", phoneNo='" + this.phoneNo + '\'' + ", rtxNo='" + this.rtxNo + '\'' + ", portalId='" + this.portalId + '\'' + ", IMId='" + this.IMId + '\'' + ", sso=" + this.sso + ", ssoServiceName='" + this.ssoServiceName + '\'' + ", token='" + this.token + '\'' + ", globalAttributeMap=" + this.globalAttributeMap + ", workNo='" + this.workNo + '\'' + '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/service/VciSecretServiceI.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
package com.vci.ubcs.com.vci.starter.web.service;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.vci.ubcs.com.vci.starter.util.VciBaseUtil;
import com.vci.ubcs.com.vci.starter.web.enumpck.UserSecretEnum;
import com.vci.ubcs.com.vci.starter.web.pagemodel.SessionInfo;
public interface VciSecretServiceI {
    default String getLessThanUserSecretSql() {
        SessionInfo sessionInfo = VciBaseUtil.getCurrentUserSessionInfoNotException();
        return sessionInfo != null ? sessionInfo.getUserSecret() : "";
    }
    default boolean checkUserSecret(int dataSecret) {
        SessionInfo sessionInfo = VciBaseUtil.getCurrentUserSessionInfoNotException();
        if (sessionInfo != null) {
            if (StringUtils.isBlank(sessionInfo.getUserSecret())) {
                sessionInfo.setUserSecret(UserSecretEnum.NONE.getValue() + "");
            }
            return VciBaseUtil.getInt(sessionInfo.getUserSecret()) >= dataSecret;
        } else {
            return false;
        }
    }
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/util/BeanUtilForVCI.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,163 @@
package com.vci.ubcs.com.vci.starter.web.util;
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.vci.ubcs.com.vci.starter.util.VciBaseUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.CollectionUtils;
import java.lang.reflect.Field;
import java.util.*;
public class BeanUtilForVCI {
    private static Logger logger = LoggerFactory.getLogger(BeanUtilForVCI.class);
    public BeanUtilForVCI() {
    }
    public static void copyPropertiesIgnoreCase(Object source, Object target) {
        copyPropertiesIgnoreCase(source, target, false);
    }
    public static void copyPropertiesIgnoreCase(Object source, Object target, Map<String, String> fieldMap) {
        copyPropertiesIgnoreCase(source, target, false, fieldMap);
    }
    public static void copyPropertiesIgnoreCase(Object source, Object target, boolean ignoreNull) {
        copyPropertiesIgnoreCase(source, target, ignoreNull, (Map)null);
    }
    public static void copyDeclaredIgnoreCase(Object source, Object target) {
        copyDeclaredIgnoreCase(source, target, false);
    }
    public static void copyDeclaredIgnoreCase(Object source, Object target, boolean ignoreNull) {
        copyDeclaredIgnoreCase(source, target, ignoreNull, (Map)null);
    }
    public static void copyDeclaredIgnoreCase(Object source, Object target, boolean ignoreNull, Map<String, String> fieldMap) {
        copyDeclaredIgnoreCase(source, target, ignoreNull, fieldMap, (Collection)null);
    }
    public static void copyDeclaredIgnoreCase(Object source, Object target, boolean ignoreNull, Map<String, String> fieldMap, Collection<String> ignoreField) {
        Map<String, Field> sourceMap = BeanUtilForVCI.CacheFieldMap.getDeclaredFieldMap(source.getClass());
        Map<String, Field> targetMap = BeanUtilForVCI.CacheFieldMap.getDeclaredFieldMap(target.getClass());
        copyPropertiesIgnoreCase(source, target, ignoreNull, fieldMap, ignoreField, sourceMap, targetMap);
    }
    public static void copyPropertiesIgnoreCase(Object source, Object target, boolean ignoreNull, Map<String, String> fieldMap, Collection<String> ignoreField) {
        Map<String, Field> sourceMap = BeanUtilForVCI.CacheFieldMap.getFieldMap(source.getClass());
        Map<String, Field> targetMap = BeanUtilForVCI.CacheFieldMap.getFieldMap(target.getClass());
        copyPropertiesIgnoreCase(source, target, ignoreNull, fieldMap, ignoreField, sourceMap, targetMap);
    }
    public static void copyPropertiesIgnoreCase(Object source, Object target, boolean ignoreNull, Map<String, String> fieldMap, Collection<String> ignoreField, Map<String, Field> sourceMap, Map<String, Field> targetMap) {
        if (fieldMap == null) {
            fieldMap = new HashMap();
        }
        Map<String, String> finalFieldMap = fieldMap;
        targetMap.values().forEach((it) -> {
            boolean not = false;
            if (ignoreField != null && ignoreField.contains(it.getName())) {
                not = true;
            }
            if (!not) {
                String itFieldName = it.getName().toLowerCase().replace("_", "");
                itFieldName = (String) finalFieldMap.getOrDefault(itFieldName, itFieldName);
                Field field = (Field)sourceMap.getOrDefault(itFieldName, (Field) null);
                if (field != null) {
                    it.setAccessible(true);
                    field.setAccessible(true);
                    try {
                        String sourceClassName = field.getClass().getName();
                        String targetClassName = it.getClass().getName();
                        if ((sourceClassName.equalsIgnoreCase(Boolean.class.getName()) || sourceClassName.equalsIgnoreCase(Boolean.TYPE.getName())) && targetClassName.equalsIgnoreCase(String.class.getName()) || (targetClassName.equalsIgnoreCase(Boolean.class.getName()) || targetClassName.equalsIgnoreCase(Boolean.TYPE.getName())) && sourceClassName.equalsIgnoreCase(String.class.getName())) {
                            if (targetClassName.equalsIgnoreCase(String.class.getName())) {
                                it.set(target, String.valueOf((Boolean)field.get(source)));
                            } else {
                                it.set(target, Boolean.valueOf((String)field.get(source)));
                            }
                        } else if (!ignoreNull) {
                            it.set(target, field.get(source));
                        } else {
                            Object sourceValue = field.get(source);
                            if (sourceValue != null && StringUtils.isNotBlank(sourceValue.toString())) {
                                it.set(target, sourceValue);
                            }
                        }
                    } catch (IllegalAccessException var13) {
                        if (logger.isErrorEnabled()) {
                            logger.error("拷贝属性出错" + var13);
                        }
                    }
                }
            }
        });
    }
    public static void copyPropertiesIgnoreCase(Object source, Object target, boolean ignoreNull, Map<String, String> fieldMap) {
        copyPropertiesIgnoreCase(source, target, ignoreNull, fieldMap, (Collection)null);
    }
    private static class CacheFieldMap {
        private static Map<String, Map<String, Field>> cacheMap = new HashMap();
        private static Map<String, Map<String, Field>> declaredCacheMap = new HashMap();
        private CacheFieldMap() {
        }
        private static Map<String, Field> getFieldMap(Class clazz) {
            Map<String, Field> result = (Map)cacheMap.get(clazz.getName());
            if (result == null) {
                Class var2 = BeanUtilForVCI.CacheFieldMap.class;
                synchronized(BeanUtilForVCI.CacheFieldMap.class) {
                    if (result == null) {
                        Map<String, Field> fieldMap = new HashMap();
                        List<Field> allFields = VciBaseUtil.getAllFieldForObj(clazz);
                        if (!CollectionUtils.isEmpty(allFields)) {
                            allFields.stream().forEach((field) -> {
                                fieldMap.put(field.getName().toLowerCase().replace("_", ""), field);
                            });
                        }
                        cacheMap.put(clazz.getName(), fieldMap);
                        result = (Map)cacheMap.get(clazz.getName());
                    }
                }
            }
            return result;
        }
        private static Map<String, Field> getDeclaredFieldMap(Class clazz) {
            Map<String, Field> result = (Map)declaredCacheMap.get(clazz.getName());
            if (result == null) {
                Class var2 = BeanUtilForVCI.CacheFieldMap.class;
                synchronized(BeanUtilForVCI.CacheFieldMap.class) {
                    if (result == null) {
                        Map<String, Field> fieldMap = new HashMap();
                        Field[] allFields = clazz.getDeclaredFields();
                        if (allFields != null && allFields.length > 0) {
                            Arrays.stream(allFields).forEach((field) -> {
                                fieldMap.put(field.getName().toLowerCase().replace("_", ""), field);
                            });
                        }
                        declaredCacheMap.put(clazz.getName(), fieldMap);
                        result = (Map)declaredCacheMap.get(clazz.getName());
                    }
                }
            }
            return result;
        }
    }
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/util/Lunar.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,194 @@
package com.vci.ubcs.com.vci.starter.web.util;
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
//package com.vci.starter.web.util;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Lunar {
    private int year;
    private int month;
    private int day;
    private boolean leap;
    static final String[] chineseNumber = new String[]{"一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二"};
    static SimpleDateFormat chineseDateFormat = new SimpleDateFormat("yyyyå¹´MM月dd日");
    static final long[] lunarInfo = new long[]{19416L, 19168L, 42352L, 21717L, 53856L, 55632L, 91476L, 22176L, 39632L, 21970L, 19168L, 42422L, 42192L, 53840L, 119381L, 46400L, 54944L, 44450L, 38320L, 84343L, 18800L, 42160L, 46261L, 27216L, 27968L, 109396L, 11104L, 38256L, 21234L, 18800L, 25958L, 54432L, 59984L, 28309L, 23248L, 11104L, 100067L, 37600L, 116951L, 51536L, 54432L, 120998L, 46416L, 22176L, 107956L, 9680L, 37584L, 53938L, 43344L, 46423L, 27808L, 46416L, 86869L, 19872L, 42448L, 83315L, 21200L, 43432L, 59728L, 27296L, 44710L, 43856L, 19296L, 43748L, 42352L, 21088L, 62051L, 55632L, 23383L, 22176L, 38608L, 19925L, 19152L, 42192L, 54484L, 53840L, 54616L, 46400L, 46496L, 103846L, 38320L, 18864L, 43380L, 42160L, 45690L, 27216L, 27968L, 44870L, 43872L, 38256L, 19189L, 18800L, 25776L, 29859L, 59984L, 27480L, 21952L, 43872L, 38613L, 37600L, 51552L, 55636L, 54432L, 55888L, 30034L, 22176L, 43959L, 9680L, 37584L, 51893L, 43344L, 46240L, 47780L, 44368L, 21977L, 19360L, 42416L, 86390L, 21168L, 43312L, 31060L, 27296L, 44368L, 23378L, 19296L, 42726L, 42208L, 53856L, 60005L, 54576L, 23200L, 30371L, 38608L, 19415L, 19152L, 42192L, 118966L, 53840L, 54560L, 56645L, 46496L, 22224L, 21938L, 18864L, 42359L, 42160L, 43600L, 111189L, 27936L, 44448L};
    private static final int yearDays(int y) {
        int sum = 348;
        for(int i = 32768; i > 8; i >>= 1) {
            if ((lunarInfo[y - 1900] & (long)i) != 0L) {
                ++sum;
            }
        }
        return sum + leapDays(y);
    }
    private static final int leapDays(int y) {
        if (leapMonth(y) != 0) {
            return (lunarInfo[y - 1900] & 65536L) != 0L ? 30 : 29;
        } else {
            return 0;
        }
    }
    private static final int leapMonth(int y) {
        return (int)(lunarInfo[y - 1900] & 15L);
    }
    private static final int monthDays(int y, int m) {
        return (lunarInfo[y - 1900] & (long)(65536 >> m)) == 0L ? 29 : 30;
    }
    public final String animalsYear() {
        String[] Animals = new String[]{"é¼ ", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪"};
        return Animals[(this.year - 4) % 12];
    }
    private static final String cyclicalm(int num) {
        String[] Gan = new String[]{"甲", "乙", "丙", "丁", "戊", "å·±", "庚", "辛", "壬", "癸"};
        String[] Zhi = new String[]{"子", "丑", "寅", "卯", "è¾°", "å·³", "午", "未", "申", "酉", "戌", "亥"};
        return Gan[num % 10] + Zhi[num % 12];
    }
    public final String cyclical() {
        int num = this.year - 1900 + 36;
        return cyclicalm(num);
    }
    public Lunar(Calendar cal) {
        //int leapMonth = false;
        Date baseDate = null;
        try {
            baseDate = chineseDateFormat.parse("1900å¹´1月31日");
        } catch (ParseException var12) {
            var12.printStackTrace();
        }
        int offset = (int)((cal.getTime().getTime() - baseDate.getTime()) / 86400000L);
        int dayCyl = offset + 40;
        int monCyl = 14;
        int daysOfYear = 0;
        int iYear;
        for(iYear = 1900; iYear < 2050 && offset > 0; ++iYear) {
            daysOfYear = yearDays(iYear);
            offset -= daysOfYear;
            monCyl += 12;
        }
        if (offset < 0) {
            offset += daysOfYear;
            --iYear;
            monCyl -= 12;
        }
        this.year = iYear;
        int yearCyl = iYear - 1864;
        int leapMonth = leapMonth(iYear);
        this.leap = false;
        int daysOfMonth = 0;
        int iMonth;
        for(iMonth = 1; iMonth < 13 && offset > 0; ++iMonth) {
            if (leapMonth > 0 && iMonth == leapMonth + 1 && !this.leap) {
                --iMonth;
                this.leap = true;
                daysOfMonth = leapDays(this.year);
            } else {
                daysOfMonth = monthDays(this.year, iMonth);
            }
            offset -= daysOfMonth;
            if (this.leap && iMonth == leapMonth + 1) {
                this.leap = false;
            }
            if (!this.leap) {
                ++monCyl;
            }
        }
        if (offset == 0 && leapMonth > 0 && iMonth == leapMonth + 1) {
            if (this.leap) {
                this.leap = false;
            } else {
                this.leap = true;
                --iMonth;
                --monCyl;
            }
        }
        if (offset < 0) {
            offset += daysOfMonth;
            --iMonth;
            --monCyl;
        }
        this.month = iMonth;
        this.day = offset + 1;
    }
    public static String getChinaDayString(int day) {
        String[] chineseTen = new String[]{"初", "十", "廿", "卅"};
        int n = day % 10 == 0 ? 9 : day % 10 - 1;
        if (day > 30) {
            return "";
        } else {
            return day == 10 ? "初十" : chineseTen[day / 10] + chineseNumber[n];
        }
    }
    @Override
    public String toString() {
        String m = chineseNumber[this.month - 1];
        if (m != null && m.trim().equals("一")) {
            m = "æ­£";
        }
        if (m != null && m.trim().equals("十一")) {
            m = "冬";
        }
        if (m != null && m.trim().equals("十二")) {
            m = "腊";
        }
        return this.year + this.cyclical() + this.animalsYear() + "å¹´" + (this.leap ? "闰" : "") + m + "月" + getChinaDayString(this.day);
    }
    public String getDate() {
        String m = chineseNumber[this.month - 1];
        if (m != null && m.trim().equals("一")) {
            m = "æ­£";
        }
        if (m != null && m.trim().equals("十一")) {
            m = "冬";
        }
        if (m != null && m.trim().equals("十二")) {
            m = "腊";
        }
        return this.animalsYear() + "å¹´" + (this.leap ? "闰" : "") + m + "月" + getChinaDayString(this.day);
    }
    public static void main(String[] args) throws ParseException {
        Calendar today = Calendar.getInstance();
        today.setTime(chineseDateFormat.parse("2013å¹´2月1日"));
        Lunar lunar = new Lunar(today);
        System.out.println(lunar.toString());
        System.out.println("北京时间:" + chineseDateFormat.format(today.getTime()) + " 农历" + lunar);
    }
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/util/MessageUtils.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
package com.vci.ubcs.com.vci.starter.web.util;
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
//package com.vci.starter.web.util;
import org.springframework.context.MessageSource;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.stereotype.Component;
@Component
public class MessageUtils {
    private static MessageSource messageSource;
    public MessageUtils(MessageSource messageSource) {
        MessageUtils.messageSource = messageSource;
    }
    public static String get(String msgKey) {
        try {
            return messageSource.getMessage(msgKey, (Object[])null, LocaleContextHolder.getLocale());
        } catch (Throwable var2) {
            return msgKey;
        }
    }
    public static String get(String msgKey, Object[] objects) {
        try {
            return messageSource.getMessage(msgKey, objects, LocaleContextHolder.getLocale());
        } catch (Throwable var3) {
            return msgKey;
        }
    }
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/util/VciBaseUtil.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,1098 @@
package com.vci.ubcs.com.vci.starter.web.util;
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.vci.ubcs.com.vci.starter.exception.VciBaseException;
import com.vci.ubcs.com.vci.starter.web.pagemodel.SessionInfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ResourceUtils;
import java.beans.IntrospectionException;
import java.beans.PropertyDescriptor;
import java.io.File;
import java.io.IOException;
import java.lang.Character.UnicodeBlock;
import java.lang.annotation.Annotation;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
public class VciBaseUtil {
    private static Logger log = LoggerFactory.getLogger(VciBaseUtil.class);
    public static final String NOTIN = "not in";
    private static String localIp = null;
    public VciBaseUtil() {
    }
    public static String getPk() {
        return UUID.randomUUID().toString();
    }
    public static int getIntForBoolean(boolean b) {
        return b ? 1 : 0;
    }
    public static int getIntFromHibernateResult(Object obj) {
        if (obj == null) {
            return 0;
        } else if (obj instanceof BigDecimal) {
            return ((BigDecimal)obj).intValue();
        } else if (obj instanceof BigInteger) {
            return ((BigInteger)obj).intValue();
        } else if (obj instanceof Double) {
            return ((Double)obj).intValue();
        } else if (obj instanceof Long) {
            return ((Long)obj).intValue();
        } else if (obj instanceof Short) {
            return ((Short)obj).intValue();
        } else if (obj instanceof Float) {
            return ((Float)obj).intValue();
        } else if (obj instanceof String) {
            try {
                return Integer.valueOf(obj.toString());
            } catch (Exception var2) {
                return 0;
            }
        } else {
            return 0;
        }
    }
    public static long getLong(String s) {
        long l = 0L;
        if (s == null) {
            return 0L;
        } else {
            try {
                l = Long.parseLong(s);
                return l;
            } catch (Exception var4) {
                return 0L;
            }
        }
    }
    public static float getFloat(String s) {
        float f = 0.0F;
        if (s == null) {
            return 0.0F;
        } else {
            try {
                f = Float.parseFloat(s);
                return f;
            } catch (Exception var3) {
                return 0.0F;
            }
        }
    }
    public static int getInt(String string) {
        //int i = false;
        if (string != null && !"".equals(string.trim())) {
            if (string.contains(".")) {
                string = string.substring(0, string.indexOf("."));
            }
            try {
                int i = Integer.parseInt(string);
                return i;
            } catch (Exception var3) {
                return 0;
            }
        } else {
            return 0;
        }
    }
    public static double getDouble(String s) {
        double d = 0.0D;
        if (isNull(s)) {
            return 0.0D;
        } else {
            try {
                d = Double.parseDouble(s);
                return d;
            } catch (Exception var4) {
                return 0.0D;
            }
        }
    }
    public static String removeComma(String s) {
        if (s != null && s.trim().length() != 0) {
            if (s.startsWith(",")) {
                s = s.substring(1, s.length());
            }
            if (s.endsWith(",")) {
                s = s.substring(0, s.length() - 1);
            }
            return s;
        } else {
            return s;
        }
    }
    public static String toInSql(String s) {
        s = removeComma(s);
        if (s != null && s.trim().length() != 0) {
            String[] temp = s.split(",");
            return toInSql(temp);
        } else {
            return "";
        }
    }
    public static String toInSql(String[] s) {
        if (s != null && s.length > 0) {
            StringBuilder sb = new StringBuilder();
            if (s != null && s.length > 0) {
                for(int i = 0; i < s.length; ++i) {
                    if (s[i] != null && s[i].trim().length() > 0 && !s[i].startsWith("'")) {
                        sb.append("'").append(s[i]).append("',");
                    }
                }
            }
            return removeComma(sb.toString());
        } else {
            return "";
        }
    }
    public static String toInSql(String field, String s) {
        return !StringUtils.isBlank(field) && !StringUtils.isBlank(s) ? toInSql(field, removeComma(s).split(","), "") : "";
    }
    public static String toInSql(String field, String[] s) {
        return toInSql(field, s, "in");
    }
    public static String toInSql(String field, String[] s, String operation) {
        if (!StringUtils.isBlank(field) && s != null && s.length != 0) {
            StringBuilder sb = new StringBuilder();
            if (s != null && s.length > 0) {
                String andOr = "or";
                if (operation.trim().toLowerCase().equals("not in")) {
                    andOr = "and";
                }
                for(int i = 0; i < s.length; ++i) {
                    if (s[i] != null && s[i].trim().length() > 0 && !s[i].startsWith("'")) {
                        if (i == 0) {
                            sb.append(field).append(" ").append(operation).append(" (");
                        }
                        if (i % 500 == 0 && i != 0) {
                            sb.append(" ").append(andOr).append(" ").append(field).append(" ").append(operation).append(" (");
                        }
                        sb.append("'").append(s[i]).append("'");
                        if (i % 500 != 499 && i != s.length - 1) {
                            sb.append(",");
                        }
                        if (i % 500 == 499 || i == s.length - 1) {
                            sb.append(") ");
                        }
                    }
                }
            }
            return sb.toString();
        } else {
            return "";
        }
    }
    /** @deprecated */
    @Deprecated
    public static String arrayToString(String[] array) {
        if (array != null && array.length > 0) {
            StringBuilder sb = new StringBuilder();
            for(int i = 0; i < array.length; ++i) {
                String record = array[i];
                if (StringUtils.isNotBlank(record)) {
                    sb.append(record).append(",");
                }
            }
            return removeComma(sb.toString());
        } else {
            return "";
        }
    }
    public static String collectionToString(Collection collection) {
        if (CollectionUtils.isEmpty(collection)) {
            return "";
        } else {
            StringBuilder sb = new StringBuilder();
            Iterator it = collection.iterator();
            while(true) {
                Object record;
                do {
                    do {
                        if (!it.hasNext()) {
                            return removeComma(sb.toString());
                        }
                        record = it.next();
                    } while(record == null);
                } while(record instanceof String && !StringUtils.isNotBlank((String)record));
                sb.append(record.toString()).append(",");
            }
        }
    }
    public static String toUpForFirst(String s) {
        if (s != null && s.trim().length() != 0) {
            String temp = s.substring(0, 1);
            temp = temp.toUpperCase();
            return temp + s.substring(1, s.length());
        } else {
            return "";
        }
    }
    public static String toLowForFirst(String s) {
        if (s != null && s.trim().length() != 0) {
            String temp = s.substring(0, 1);
            temp = temp.toLowerCase();
            return temp + s.substring(1, s.length());
        } else {
            return "";
        }
    }
    public static int countOfString(String s, char findC) {
        Map<String, Integer> charMap = new HashMap();
        char[] cs = s.toCharArray();
        char[] var4 = cs;
        int var5 = cs.length;
        for(int var6 = 0; var6 < var5; ++var6) {
            char c = var4[var6];
            charMap.put(String.valueOf(c), !charMap.containsKey(String.valueOf(c)) ? 1 : (Integer)charMap.get(String.valueOf(c)) + 1);
        }
        return (Integer)charMap.get(String.valueOf(findC));
    }
    public static List<String> str2List(String s) {
        if (isNull(s)) {
            return null;
        } else {
            List<String> l = new ArrayList();
            Collections.addAll(l, removeComma(s).split(","));
            return l;
        }
    }
    public static String list2String(List<String> ls) {
        return ls != null && ls.size() != 0 ? (String)ls.stream().collect(Collectors.joining(",")) : "";
    }
    public static boolean isNull(String o) {
        return StringUtils.isEmpty(o);
    }
    public static boolean isNotNull(String o) {
        return !isNull(o);
    }
    public static boolean isNullOrNullString(String o) {
        return StringUtils.isBlank(o);
    }
    public static boolean inArray(String[] arr, String s) {
        if (arr != null && s != null) {
            String[] var2 = arr;
            int var3 = arr.length;
            for(int var4 = 0; var4 < var3; ++var4) {
                String a = var2[var4];
                if (s.trim().equalsIgnoreCase(a)) {
                    return true;
                }
            }
        }
        return false;
    }
    public static boolean inArray(Object[] arr, Object o) {
        if (arr != null && o != null) {
            Object[] var2 = arr;
            int var3 = arr.length;
            for(int var4 = 0; var4 < var3; ++var4) {
                Object a = var2[var4];
                if (a.equals(o)) {
                    return true;
                }
            }
        }
        return false;
    }
    public static double round(double value, int scale, int roundingMode) {
        BigDecimal bd = new BigDecimal(value);
        bd = bd.setScale(scale, roundingMode);
        double d = bd.doubleValue();
        bd = null;
        return d;
    }
    public static double round(double value, int scale) {
        return round(value, scale, 4);
    }
    public static boolean isEmail(String string) {
        if (StringUtils.isBlank(string)) {
            return false;
        } else {
            String regEx1 = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
            Pattern p = Pattern.compile(regEx1);
            Matcher m = p.matcher(string);
            return m.matches();
        }
    }
    public static boolean isNumber(String s) {
        return StringUtils.isNotBlank(s) && s.matches("\\d+\\.?\\d*");
    }
    public static Field getFieldForObject(String fieldName, List<Field> fieldsList) {
        if (StringUtils.isBlank(fieldName)) {
            return null;
        } else {
            if (fieldsList != null && fieldsList.size() > 0) {
                Iterator var2 = fieldsList.iterator();
                while(var2.hasNext()) {
                    Field field = (Field)var2.next();
                    if (field.getName().toLowerCase().equals(fieldName.toLowerCase())) {
                        return field;
                    }
                }
            }
            return null;
        }
    }
    public static Method getSetmethod(Class c, String fieldName) {
        if (c != null && StringUtils.isNotBlank(fieldName)) {
            try {
                PropertyDescriptor pd = new PropertyDescriptor(fieldName, c);
                return pd.getWriteMethod();
            } catch (SecurityException var3) {
                if (log.isErrorEnabled()) {
                    log.error("获取getter出错", var3);
                }
            } catch (IntrospectionException var4) {
                if (log.isErrorEnabled()) {
                    log.error("获取getter出错", var4);
                }
            }
        }
        return null;
    }
    public static Method getGetmethod(Class c, String fieldName) {
        if (c != null && StringUtils.isNotBlank(fieldName)) {
            try {
                PropertyDescriptor pd = new PropertyDescriptor(fieldName, c);
                return pd.getReadMethod();
            } catch (SecurityException var3) {
                if (log.isErrorEnabled()) {
                    log.error("获取getter出错", var3);
                }
            } catch (IntrospectionException var4) {
                if (log.isErrorEnabled()) {
                    log.error("获取getter出错", var4);
                }
            }
        }
        return null;
    }
    public static String getColumnAnnotaionNameValue(Annotation[] fieldAnnotaions) {
        return getAnnotationValue("com.vci.starter.web.annotation.Column,javax.persistence.Column", "name", fieldAnnotaions);
    }
    public static String getAnnotationValue(String annotationName, String methodName, Annotation[] fieldAnnotaions) {
        String[] annotaionNameArray = annotationName.split(",");
        Annotation[] var4 = fieldAnnotaions;
        int var5 = fieldAnnotaions.length;
        for(int var6 = 0; var6 < var5; ++var6) {
            Annotation annotation = var4[var6];
            String anname = annotation.annotationType().getName();
            if (inArray(annotaionNameArray, anname)) {
                String name = null;
                try {
                    name = (String)annotation.getClass().getMethod(methodName).invoke(annotation);
                } catch (IllegalAccessException var11) {
                    var11.printStackTrace();
                } catch (InvocationTargetException var12) {
                    var12.printStackTrace();
                } catch (NoSuchMethodException var13) {
                    var13.printStackTrace();
                }
                return name;
            }
        }
        return null;
    }
    public static Object getValueFromField(String fieldName, Object sourceObject) {
        if (StringUtils.isNotBlank(fieldName)) {
            try {
                Method getMethod = getGetmethod(sourceObject.getClass(), fieldName);
                if (getMethod != null) {
                    return getMethod.invoke(sourceObject);
                }
                Field field = getFieldForObject(fieldName, sourceObject);
                if (field != null) {
                    field.setAccessible(true);
                    return field.get(sourceObject);
                }
            } catch (SecurityException var4) {
                if (log.isErrorEnabled()) {
                    log.error("从属性上获取值", var4);
                }
            } catch (IllegalAccessException var5) {
                if (log.isErrorEnabled()) {
                    log.error("从属性上获取值", var5);
                }
            } catch (IllegalArgumentException var6) {
                if (log.isErrorEnabled()) {
                    log.error("从属性上获取值", var6);
                }
            } catch (InvocationTargetException var7) {
                if (log.isErrorEnabled()) {
                    log.error("从属性上获取值", var7);
                }
            }
        }
        return null;
    }
    public static void setValueForMethod(Field field, Object obj, Object value) {
        try {
            if (field != null) {
                field.setAccessible(true);
                Method setMethod = getSetmethod(field.getDeclaringClass(), field.getName());
                setMethod.invoke(obj, value);
            }
        } catch (Exception var4) {
            log.error("反射调用方法出现了错误,", var4);
        }
    }
    public static void alertNotNull(Object... s) throws VciBaseException {
        if (s != null && s.length > 0) {
            for(int i = 0; i < s.length; ++i) {
                Object obj = s[i];
                String param = "";
                try {
                    ++i;
                    param = s[i].toString();
                } catch (Exception var5) {
                }
                if (obj == null) {
                    throw new VciBaseException("参数[{0}]不能为空", new String[]{param});
                }
                if (obj instanceof Collection) {
                    if (CollectionUtils.isEmpty((Collection)obj)) {
                        throw new VciBaseException("参数[{0}]不能为空", new String[]{param});
                    }
                } else if (StringUtils.isBlank(obj.toString())) {
                    throw new VciBaseException("参数[{0}]不能为空", new String[]{param});
                }
            }
        }
    }
    /** @deprecated */
    @Deprecated
    public static void alertCollectionNotNull(String param, Collection collections) throws VciBaseException {
        if (CollectionUtils.isEmpty(collections)) {
            throw new VciBaseException("参数{0}不能为空", new String[]{param});
        }
    }
    public static <T> Set<Set<T>> switchSetForOracleIn(Set<T> set) {
        Set<Set<T>> listHasList = new HashSet();
        if (set == null) {
            return listHasList;
        } else {
            int muti = 1;
            if (set.size() > 500) {
                int balance = set.size() % 500;
                muti = (set.size() - balance) / 500 + (balance == 0 ? 0 : 1);
            }
            List list = new ArrayList();
            Iterator it = set.iterator();
            while(it.hasNext()) {
                list.add(it.next());
            }
            for(int i = 0; i < muti; ++i) {
                int start = i * 500;
                int end = start + 500;
                if (i == muti - 1 || end > set.size()) {
                    end = set.size();
                }
                List subList = list.subList(start, end);
                Set subSet = new HashSet();
                Iterator var10 = subList.iterator();
                while(var10.hasNext()) {
                    Object obj = var10.next();
                    subSet.add(obj);
                }
                listHasList.add(subSet);
            }
            return listHasList;
        }
    }
    public static <T> Vector<Vector<T>> switchVectorForOracleIn(Vector<T> vector) {
        Vector<Vector<T>> listHasList = new Vector();
        if (vector == null) {
            return listHasList;
        } else {
            int muti = 1;
            if (vector.size() > 500) {
                int balance = vector.size() % 500;
                muti = (vector.size() - balance) / 500 + (balance == 0 ? 0 : 1);
            }
            List list = new ArrayList();
            Iterator it = vector.iterator();
            while(it.hasNext()) {
                list.add(it.next());
            }
            for(int i = 0; i < muti; ++i) {
                int start = i * 500;
                int end = start + 500;
                if (i == muti - 1 || end > vector.size()) {
                    end = vector.size();
                }
                List subList = list.subList(start, end);
                Vector subSet = new Vector();
                Iterator var10 = subList.iterator();
                while(var10.hasNext()) {
                    Object obj = var10.next();
                    subSet.add(obj);
                }
                listHasList.add(subSet);
            }
            return listHasList;
        }
    }
    public static <T> T jsonString2JavaBean(String jsonString, Class<T> beanClass) {
        return JSONObject.parseObject(jsonString, beanClass);
    }
    public static void ifNullSetDefautl(String str, String defaultValue) {
        if (isNull(str)) {
            ;
        }
    }
    public static <T> T getFristObjectFromJson(String jsonString, Class<T> beanClass) {
        return !isNull(jsonString) ? JSONObject.parseArray(jsonString, beanClass).get(0) : null;
    }
    public static String getJSONStringWithDateFormat(Object obj) {
        return JSONObject.toJSONStringWithDateFormat(obj, "yyyy-MM-dd HH:mm:ss.SSS", new SerializerFeature[]{SerializerFeature.WriteDateUseDateFormat});
    }
    public static Map<String, Object> objectToMap(Object o) {
        Map<String, Object> map = new HashMap();
        if (o != null) {
            String jsonString = JSONObject.toJSONStringWithDateFormat(o, "yyyy-MM-dd HH:mm:ss.SSS", new SerializerFeature[]{SerializerFeature.WriteDateUseDateFormat});
            if (StringUtils.isNotBlank(jsonString)) {
                JSONObject jsonObject = JSONObject.parseObject(jsonString);
                if (jsonObject != null) {
                    Iterator var4 = jsonObject.keySet().iterator();
                    while(var4.hasNext()) {
                        String key = (String)var4.next();
                        map.put(key, jsonObject.get(key));
                    }
                }
            }
        }
        return map;
    }
    public static Map<String, String> objectToMapString(Object o) {
        Map<String, String> map = new HashMap();
        if (o != null) {
            String jsonString = JSONObject.toJSONStringWithDateFormat(o, "yyyy-MM-dd HH:mm:ss.SSS", new SerializerFeature[]{SerializerFeature.WriteDateUseDateFormat});
            if (StringUtils.isNotBlank(jsonString)) {
                JSONObject jsonObject = JSONObject.parseObject(jsonString);
                if (jsonObject != null) {
                    Iterator var4 = jsonObject.keySet().iterator();
                    while(var4.hasNext()) {
                        String key = (String)var4.next();
                        map.put(key, jsonObject.getString(key));
                    }
                }
            }
        }
        return map;
    }
    public static boolean isNotNullForField(Object obj, Field f) {
        return !"serialVersionUID".equalsIgnoreCase(f.getName()) && !"DEFAULT_INITIAL_CAPACITY".equalsIgnoreCase(f.getName()) && null != obj && !isNullOrNullString(obj.toString());
    }
    public static String array2String(String[] array) {
        if (null != array && array.length != 0) {
            String ss = "";
            String[] var2 = array;
            int var3 = array.length;
            for(int var4 = 0; var4 < var3; ++var4) {
                String s = var2[var4];
                ss = ss + s + ",";
            }
            return removeComma(ss);
        } else {
            return "";
        }
    }
    public static void copyValueForMap(Map source, Map target, String[] copyField) {
        Map<String, String> copyFieldMap = new HashMap();
        String[] var4 = copyField;
        int var5 = copyField.length;
        for(int var6 = 0; var6 < var5; ++var6) {
            String field = var4[var6];
            copyFieldMap.put(field, field);
        }
        copyValueForMap(source, target, (Map)copyFieldMap);
    }
    public static void copyValueForMap(Map source, Map target, Map<String, String> copyField) {
        try {
            Iterator it = copyField.keySet().iterator();
            while(it.hasNext()) {
                String field = (String)it.next();
                target.put(field, source.get(copyField.get(field)));
            }
        } catch (Exception var5) {
        }
    }
    public static Double getDoubleFromMap(String field, Map<String, Object> record) {
        if (!isNullOrNullString(field) && record != null && record.containsKey(field)) {
            Object v = record.get(field);
            if (v instanceof BigDecimal) {
                return ((BigDecimal)v).doubleValue();
            } else {
                return v instanceof Double ? (Double)v : getDouble((String)v);
            }
        } else {
            return null;
        }
    }
    public static String getDataByKey(String key, Map<String, Object> data) {
        String value = "";
        if (data.containsKey(key)) {
            value = (String)data.get(key);
        }
        if (value == null) {
            value = "";
        }
        return value;
    }
    public static Map getNotNullMap(Map map) {
        if (map == null) {
            return new HashMap();
        } else {
            Iterator it = map.keySet().iterator();
            HashMap unNullMap = new HashMap();
            while(true) {
                while(true) {
                    String newKey;
                    Object value;
                    do {
                        if (!it.hasNext()) {
                            return unNullMap;
                        }
                        Object key = it.next();
                        newKey = key.toString().toLowerCase();
                        value = map.get(key);
                    } while(value == null);
                    if (value instanceof String && isNotNull(value.toString())) {
                        unNullMap.put(newKey, value);
                    } else if (!(value instanceof String)) {
                        unNullMap.put(newKey, value);
                    }
                }
            }
        }
    }
    public static List<Field> getAllFieldForObj(Class c) {
        List<Field> allField = new ArrayList();
        Set<String> fieldNameSet = new HashSet();
        for(Class classz = c; classz != Object.class; classz = classz.getSuperclass()) {
            Field[] thisClassField = classz.getDeclaredFields();
            Field[] var5 = thisClassField;
            int var6 = thisClassField.length;
            for(int var7 = 0; var7 < var6; ++var7) {
                Field field = var5[var7];
                if (!field.getName().equals("serialVersionUID")) {
                    String fieldLowerName = field.getName().toLowerCase();
                    if (!fieldNameSet.contains(fieldLowerName)) {
                        fieldNameSet.add(fieldLowerName);
                        allField.add(field);
                    }
                }
            }
        }
        return allField;
    }
    public static Field getTsField(Class c) {
        List<Field> allField = getAllFieldForObj(c);
        if (allField != null && allField.size() > 0) {
            Iterator var2 = allField.iterator();
            while(var2.hasNext()) {
                Field field = (Field)var2.next();
                if (field.getName().equals("ts")) {
                    return field;
                }
            }
        }
        return null;
    }
    public static Field getFieldForObject(String fieldName, Object obj) {
        return obj == null ? null : getFieldForObject(fieldName, obj.getClass());
    }
    public static Field getFieldForObject(String fieldName, Class c) {
        List<Field> allField = getAllFieldForObj(c);
        if (allField != null && allField.size() > 0) {
            Iterator var3 = allField.iterator();
            while(var3.hasNext()) {
                Field field = (Field)var3.next();
                if (field.getName().toLowerCase().equalsIgnoreCase(fieldName.toLowerCase())) {
                    return field;
                }
            }
        }
        return null;
    }
    public static Method getSetmethod(Class c, Field field) {
        return getSetmethod(c, field.getName());
    }
    public static Method getGetmethod(Class c, Field field) {
        return getGetmethod(c, field.getName());
    }
    public static Method getMethodByName(Class<?> classObj, String methodName) {
        alertNotNull(classObj, "获取方法的对象所属的类", methodName, "方法的名字");
        Method[] methods = classObj.getMethods();
        List<Method> sameMethods = (List)Arrays.stream(methods).filter((method) -> {
            return method.getName().equalsIgnoreCase(methodName);
        }).collect(Collectors.toList());
        return !CollectionUtils.isEmpty(sameMethods) ? (Method)sameMethods.get(0) : null;
    }
    public static Map<String, String> whereSql2Map(String whereSql) {
        Map<String, String> map = new HashMap();
        if (isNotNull(whereSql)) {
            String[] selects = whereSql.split("and");
            if (selects != null && selects.length > 0) {
                String[] var3 = selects;
                int var4 = selects.length;
                for(int var5 = 0; var5 < var4; ++var5) {
                    String s = var3[var5];
                    s = s.trim();
                    map.put(s.substring(0, s.indexOf(" ")).trim(), s.substring(s.indexOf(" ") + 1).trim());
                }
            }
        }
        return map;
    }
    public static synchronized String getRoundFilename(String prefix) {
        if (prefix == null) {
            prefix = "";
        }
        return prefix + System.currentTimeMillis();
    }
    public static String getLocalIp() {
        if (localIp == null) {
            try {
                InetAddress inetAddress = getLocalHostLANAddress();
                if (inetAddress == null) {
                    localIp = "127.0.0.1";
                } else {
                    localIp = inetAddress.getHostAddress();
                }
            } catch (Exception var1) {
                localIp = "127.0.0.1";
            }
        }
        return localIp;
    }
    private static InetAddress getLocalHostLANAddress() throws Exception {
        try {
            InetAddress candidateAddress = null;
            Enumeration ifaces = NetworkInterface.getNetworkInterfaces();
            while(ifaces.hasMoreElements()) {
                NetworkInterface iface = (NetworkInterface)ifaces.nextElement();
                Enumeration inetAddrs = iface.getInetAddresses();
                while(inetAddrs.hasMoreElements()) {
                    InetAddress inetAddr = (InetAddress)inetAddrs.nextElement();
                    if (!inetAddr.isLoopbackAddress()) {
                        if (inetAddr.isSiteLocalAddress()) {
                            return inetAddr;
                        }
                        if (candidateAddress == null) {
                            candidateAddress = inetAddr;
                        }
                    }
                }
            }
            if (candidateAddress != null) {
                return candidateAddress;
            } else {
                InetAddress jdkSuppliedAddress = InetAddress.getLocalHost();
                return jdkSuppliedAddress;
            }
        } catch (Exception var5) {
            var5.printStackTrace();
            return null;
        }
    }
    public static String getProjectPath() {
        String path = "";
        try {
            String jarFilePath = ResourceUtils.getURL("classpath:").getPath();
            if (jarFilePath.contains("!")) {
                path = (new File(jarFilePath)).getParentFile().getParentFile().getParent();
            } else {
                path = (new File(jarFilePath)).getParent();
            }
        } catch (IOException var2) {
            throw new VciBaseException("获取当前服务所在的文件夹出现了错误");
        }
        if (path.startsWith("file:\\")) {
            path = path.substring(6);
        }
        return path;
    }
    public static Map<String, String> getParamsByUrl(String url) {
        if (StringUtils.isBlank(url)) {
            return new HashMap();
        } else {
            String[] array = url.split("&");
            Map<String, String> params = new HashMap();
            String[] var3 = array;
            int var4 = array.length;
            for(int var5 = 0; var5 < var4; ++var5) {
                String temp = var3[var5];
                if (temp.contains("=")) {
                    String[] keyValues = temp.split("=");
                    params.put(keyValues[0], keyValues[1]);
                } else {
                    params.put(temp, "");
                }
            }
            return params;
        }
    }
    public static boolean isChinese(char c) {
        UnicodeBlock ub = UnicodeBlock.of(c);
        return ub == UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS || ub == UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS || ub == UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A || ub == UnicodeBlock.GENERAL_PUNCTUATION || ub == UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION || ub == UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS;
    }
    public static boolean containsKeyUnCaseForMap(Map map, String key) {
        if (!CollectionUtils.isEmpty(map)) {
            boolean[] finded = new boolean[]{false};
            map.forEach((k, value) -> {
                if (k instanceof String && k.toString().toLowerCase(Locale.ROOT).equalsIgnoreCase(key)) {
                    finded[0] = true;
                }
            });
            return finded[0];
        } else {
            return false;
        }
    }
    public static boolean isChinese(String str) {
        char[] ch = str.toCharArray();
        char[] var2 = ch;
        int var3 = ch.length;
        for(int var4 = 0; var4 < var3; ++var4) {
            char c = var2[var4];
            if (isChinese(c)) {
                return true;
            }
        }
        return false;
    }
    public static String toDBC(String input) {
        if (StringUtils.isBlank(input)) {
            return input;
        } else {
            char[] c = input.toCharArray();
            for(int i = 0; i < c.length; ++i) {
                if (c[i] == 12288) {
                    c[i] = ' ';
                } else if (c[i] > '\uff00' && c[i] < '⦅') {
                    c[i] -= 'ï» ';
                }
            }
            return new String(c);
        }
    }
    public static String toSBC(String input) {
        if (StringUtils.isBlank(input)) {
            return input;
        } else {
            char[] c = input.toCharArray();
            for(int i = 0; i < c.length; ++i) {
                if (c[i] == 12288) {
                    c[i] = ' ';
                } else if (c[i] > '\uff00' && c[i] < '⦅') {
                    c[i] += 'ï» ';
                }
            }
            return new String(c);
        }
    }
    public static SessionInfo getCurrentUserSessionInfoNotException() {
        return (SessionInfo) WebThreadLocalUtil.getCurrentUserSessionInfoInThread().get();
    }
    public static String getStringValueFromObject(Object obj) {
        if (obj == null) {
            return "";
        } else if (!(obj instanceof Integer) && !(obj instanceof Float) && !(obj instanceof Long) && !(obj instanceof Double)) {
            return obj instanceof Date ? VciDateUtil.date2Str((Date)obj, "yyyy-MM-dd HH:mm:ss.SSS") : obj.toString();
        } else {
            if (obj instanceof Double) {
                Double aDouble = (Double)obj;
                if (aDouble != null && aDouble % 1.0D == 0.0D) {
                    return String.valueOf(aDouble.intValue());
                }
            }
            return String.valueOf(obj);
        }
    }
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/util/VciDateUtil.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,639 @@
package com.vci.ubcs.com.vci.starter.web.util;
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.vci.ubcs.com.vci.starter.util.VciBaseUtil;
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
public class VciDateUtil {
    private static final String DEFAULT_FORMAT = "yyyy-MM-dd HH:mm:ss.SSS";
    public static final String DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
    public static final String DateTimeFormatStr = "yyyyMMddHHmmss";
    public static final String DateTimeMillFormatStr = "yyyyMMddHHmmssSSS";
    public static final String DateTimeMillFormat = "yyyy-MM-dd HH:mm:ss.SSS";
    public static final String DateFormat = "yyyy-MM-dd";
    public static final String TimeFormat = "HH:mm:ss";
    private VciDateUtil() {
    }
    public static Date str2Date(String str, String format) throws Exception {
        if (null != str && !"".equals(str) && !str.equals("null")) {
            if (null == format || "".equals(format) || format.equals("null")) {
                format = "yyyy-MM-dd HH:mm:ss.SSS";
            }
            SimpleDateFormat sdf = new SimpleDateFormat(format);
            Date date = null;
            try {
                date = sdf.parse(str);
                return date;
            } catch (ParseException var5) {
                throw new Exception(var5);
            }
        } else {
            return null;
        }
    }
    public static Date getCurrentMonday() {
        return getCurrentWeekDay(2);
    }
    public static Date getCurrentWeekDay(int dayOfWeek) {
        if (dayOfWeek > 7) {
            dayOfWeek = 7;
        }
        if (dayOfWeek < 1) {
            dayOfWeek = 1;
        }
        Date date = new Date();
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.set(7, dayOfWeek);
        calendar.set(11, 0);
        calendar.set(12, 0);
        calendar.set(13, 0);
        calendar.set(14, 0);
        return calendar.getTime();
    }
    public static Date getCurrentFriday() {
        return getCurrentWeekDay(6);
    }
    public static String date2Str(Date date, String format) {
        if (null == date) {
            return null;
        } else {
            if (format == null || format.trim().length() == 0) {
                format = "yyyy-MM-dd HH:mm:ss.SSS";
            }
            SimpleDateFormat sdf = new SimpleDateFormat(format);
            return sdf.format(date);
        }
    }
    public static String timestamp2Str(Timestamp time) {
        Date date = null;
        if (null == time) {
            return null;
        } else {
            if (null != time) {
                date = new Date(time.getTime());
            }
            return date2Str(date, "yyyy-MM-dd HH:mm:ss.SSS");
        }
    }
    public static Timestamp str2Timestamp(String str) throws Exception {
        if (str != null && str.trim().length() != 0) {
            Date date = str2Date(str, "yyyy-MM-dd HH:mm:ss.SSS");
            return new Timestamp(date.getTime());
        } else {
            return null;
        }
    }
    public static String compareDate(String date, String date1) throws Exception {
        if (date != null && date.trim().length() != 0 && date1 != null && date1.trim().length() != 0) {
            try {
                long time = str2Date(date, "yyyy-MM-dd").getTime();
                long time1 = str2Date(date1, "yyyy-MM-dd").getTime();
                if (time == time1) {
                    return "=";
                } else if (time < time1) {
                    return "<";
                } else {
                    return time > time1 ? ">" : "";
                }
            } catch (Exception var6) {
                throw var6;
            }
        } else {
            throw new Exception("传入compareDate的参数为空");
        }
    }
    public static String compareDate(Date date, Date date1) {
        if (date != null && date1 != null) {
            long time = date.getTime();
            long time1 = date1.getTime();
            if (time == time1) {
                return "=";
            } else if (time < time1) {
                return "<";
            } else {
                return time > time1 ? ">" : "";
            }
        } else {
            return "";
        }
    }
    public static String dateTimeAddMinutes(String date, int minute) throws Exception {
        String ret = "";
        if (date == null || date.equals("")) {
            date = date2Str(getNow(), "yyyy-MM-dd HH:mm:ss.SSS");
        }
        if (minute == 0) {
            return date;
        } else {
            Date d = str2Date(date, "yyyy-MM-dd HH:mm:ss");
            Calendar cal = Calendar.getInstance();
            cal.setTime(d);
            cal.add(12, minute);
            return date2Str(cal.getTime(), "yyyy-MM-dd HH:mm:ss");
        }
    }
    public static Date getDateAddDay(String date, int dayCount) throws Exception {
        if (date != null && !date.equals("") && !date.equals("null")) {
            if (dayCount == 0) {
                return str2Date(date, "yyyy-MM-dd");
            } else {
                Date d = str2Date(date, "yyyy-MM-dd");
                Calendar cal = Calendar.getInstance();
                cal.setTime(d);
                cal.add(5, dayCount);
                return cal.getTime();
            }
        } else {
            return getNow();
        }
    }
    public static Date getDateAddDay(Date date, int dayCount) {
        if (dayCount == 0) {
            return date;
        } else {
            Calendar cal = Calendar.getInstance();
            cal.setTime(date);
            cal.add(5, dayCount);
            return cal.getTime();
        }
    }
    public static long getDaySub(String beginDateStr, String endDateStr) {
        if (beginDateStr != null && !beginDateStr.trim().equals("") && endDateStr != null && !endDateStr.trim().equals("")) {
            long day = 0L;
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            try {
                Date beginDate = format.parse(beginDateStr);
                Date endDate = format.parse(endDateStr);
                day = (endDate.getTime() - beginDate.getTime()) / 86400000L;
            } catch (ParseException var8) {
                var8.printStackTrace();
            }
            return day;
        } else {
            return 0L;
        }
    }
    public static long getDaySub(Date date, Date date1) {
        return (date.getTime() - date1.getTime()) / 86400000L;
    }
    public static Date addOrSubDate(Date d, int addDayType, int addCount) {
        Calendar cal = Calendar.getInstance();
        cal.setTime(d);
        cal.add(addDayType, addCount);
        return cal.getTime();
    }
    public static Date getNow() {
        return new Date();
    }
    public static String getNowString() {
        return getNowString("yyyy-MM-dd HH:mm:ss.SSS");
    }
    public static String getNowString(String simpleDateFormat) {
        Date currentTime = new Date();
        SimpleDateFormat formatter = new SimpleDateFormat(simpleDateFormat);
        return formatter.format(currentTime);
    }
    public static Date getNow(String simpleDateFormat) throws Exception {
        return str2Date(getNowString(simpleDateFormat), simpleDateFormat);
    }
    public static String getCountdown(String oldtime, String newTime) {
        if (oldtime != null && !oldtime.trim().equals("") && newTime != null && !newTime.equals("")) {
            try {
                Date date1 = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).parse(oldtime);
                Date date2 = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).parse(newTime);
                long l = date1.getTime() - date2.getTime() > 0L ? date1.getTime() - date2.getTime() : date2.getTime() - date1.getTime();
                long d = 0L;
                long yushu = l;
                long h = 0L;
                long m = 0L;
                if (l > 86400000L) {
                    yushu = l % 86400000L;
                    d = (l - yushu) / 86400000L;
                }
                if (yushu > 3600000L) {
                    h = (yushu - yushu % 3600000L) / 3600000L;
                    yushu %= 3600000L;
                }
                if (yushu > 60000L) {
                    m = (yushu - yushu % 60000L) / 60000L;
                }
                return date1.getTime() - date2.getTime() < 0L ? "已经超期" + d + "天" + h + "小时" + m + "分" : "还剩下" + d + "天" + h + "小时" + m + "分";
            } catch (Exception var14) {
                return "";
            }
        } else {
            return "";
        }
    }
    public static long getDateDiffer(String oldTime, String newTime) {
        if (oldTime != null && !oldTime.trim().equals("") && newTime != null && !newTime.equals("")) {
            try {
                Date date1 = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).parse(oldTime);
                Date date2 = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).parse(newTime);
                return date1.getTime() - date2.getTime();
            } catch (Exception var4) {
                return 0L;
            }
        } else {
            return 0L;
        }
    }
    public static int getWeeks(int year) {
        if (year == 0) {
            return year;
        } else {
            //int week = false;
            int days = 365;
            if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0) {
                days = 366;
            }
            int week = days / 7;
            return week;
        }
    }
    public static int getWeekOnDate(Date date) {
        GregorianCalendar g = new GregorianCalendar();
        g.setTime(date);
        return isSunday(date) ? g.get(3) - 1 : g.get(3);
    }
    public static Calendar getCalendarFromWeek(String year, int week) throws Exception {
        Date newDate = str2Date(year + "-01-01", "yyyy-MM-dd");
        Calendar caleNew = Calendar.getInstance();
        caleNew.setTime(newDate);
        caleNew.add(3, week - 1);
        return caleNew;
    }
    public static String[] getDaysInWeek(int year, int week) {
        String[] thisWeek = new String[7];
        try {
            GregorianCalendar gc = (GregorianCalendar)getCalendarFromWeek(year + "-01-01", week);
            for(int i = 0; i < 7; ++i) {
                Calendar myCale = Calendar.getInstance();
                myCale.setTime(gc.getTime());
                myCale.set(5, gc.get(5) - gc.get(7) + i + 2);
                thisWeek[i] = date2Str(myCale.getTime(), "yyyy-MM-dd");
            }
        } catch (Exception var6) {
            System.out.println(var6.getMessage());
        }
        return thisWeek;
    }
    public static boolean isSunday() {
        return isSunday(new Date());
    }
    public static boolean isSunday(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        int week = calendar.get(7) - 1;
        return week == 0;
    }
    public static boolean isWeekend(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        int week = calendar.get(7) - 1;
        return week == 0 || week == 1;
    }
    public static boolean isFriday(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        int week = calendar.get(7) - 1;
        return week == 5;
    }
    public static boolean isMouthEnd(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        int dayOfMonth = calendar.get(5);
        int endMonth = calendar.getActualMaximum(5);
        return endMonth == dayOfMonth;
    }
    public static boolean isSeasonEnd(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        int y = calendar.get(2) + 1;
        int d = calendar.get(5);
        if (y == 3 && d == 31) {
            return true;
        } else if (y == 6 && d == 30) {
            return true;
        } else if (y == 9 && d == 30) {
            return true;
        } else {
            return y == 12 && d == 31;
        }
    }
    public static boolean isYearEnd(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        int y = calendar.get(2) + 1;
        int d = calendar.get(5);
        return y == 12 && d == 31;
    }
    public static Long getProcessedTime(Date newDate, Date startDate) {
        try {
            Long p = newDate.getTime() - startDate.getTime();
            return p;
        } catch (Exception var3) {
            return 0L;
        }
    }
    public static String getProcessedTime(Date startDate) {
        return getProcessedTime(new Date(), startDate) + "ms";
    }
    public static String getCurrentYear() {
        Calendar c = Calendar.getInstance();
        return String.valueOf(c.get(1) + 1900);
    }
    public static String getCurrentYearStart() {
        return getCurrentYear() + "-01-01 00:00:00";
    }
    public static String getCurrentYearEnd() {
        return getCurrentYear() + "-12-31 23:59:59";
    }
    public static String getCurrentQuarter() {
        String currentMouth = getCurrentMouth();
        int currentMouthInt = getInt(currentMouth);
        if (currentMouthInt > 0 && currentMouthInt <= 3) {
            return "1";
        } else if (currentMouthInt > 3 && currentMouthInt <= 6) {
            return "2";
        } else {
            return currentMouthInt > 6 && currentMouthInt <= 9 ? "3" : "4";
        }
    }
    private static int getInt(String s) {
        try {
            return Integer.valueOf(s);
        } catch (Exception var2) {
            return 0;
        }
    }
    public static String getCurrentQuarterStart() {
        String currentQuarter = getCurrentQuarter();
        if ("1".equalsIgnoreCase(currentQuarter)) {
            return getCurrentYearStart();
        } else if ("2".equalsIgnoreCase(currentQuarter)) {
            return getCurrentYear() + "-04-01 00:00:00";
        } else {
            return "3".equalsIgnoreCase(currentQuarter) ? getCurrentYear() + "-07-01 00:00:00" : getCurrentYear() + "-10-01 00:00:00";
        }
    }
    public static String getCurrentQuarterEnd() {
        String currentQuarter = getCurrentQuarter();
        if ("1".equalsIgnoreCase(currentQuarter)) {
            return getCurrentYear() + "-03-31 23:59:59";
        } else if ("2".equalsIgnoreCase(currentQuarter)) {
            return getCurrentYear() + "-06-30 23:59:59";
        } else {
            return "3".equalsIgnoreCase(currentQuarter) ? getCurrentYear() + "-09-30 23:59:59" : getCurrentYear() + "-12-31 23:59:59";
        }
    }
    public static String getCurrentMouth() {
        Calendar cal = Calendar.getInstance();
        cal.setTime(getNow());
        int m = cal.get(2);
        return m < 10 ? "0" + String.valueOf(m) : String.valueOf(m);
    }
    public static String getCurrentMouthStart() {
        String currentMouth = getCurrentMouth();
        return getCurrentYear() + "-" + currentMouth + "-01 00:00:00";
    }
    public static String getCurrentMouthEnd() {
        String currentMouth = getCurrentMouth();
        int currentMouthInt = getInt(currentMouth);
        if (currentMouthInt != 1 && currentMouthInt != 3 && currentMouthInt != 5 && currentMouthInt != 7 && currentMouthInt != 8 && currentMouthInt != 10 && currentMouthInt != 12) {
            if (currentMouthInt == 2) {
                return isLeapYear(getInt(getCurrentYear())) ? getCurrentYear() + "-" + currentMouth + "-29 23:59:59" : getCurrentYear() + "-" + currentMouth + "-28 23:59:59";
            } else {
                return getCurrentYear() + "-" + currentMouth + "-30 23:59:59";
            }
        } else {
            return getCurrentYear() + "-" + currentMouth + "-31 23:59:59";
        }
    }
    public static boolean isLeapYear(int year) {
        return year % 4 == 0 && year % 100 != 0 || year % 400 == 0;
    }
    public static String getCurrentDay() {
        Calendar cal = Calendar.getInstance();
        cal.setTime(getNow());
        int day = cal.get(5);
        return day < 10 ? "0" + String.valueOf(day) : String.valueOf(day);
    }
    public static String getCurrentDayStart() {
        return LocalDateTime.of(LocalDateTime.now().toLocalDate(), LocalTime.MIN).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
    }
    public static String getCurrentDayEnd() {
        return LocalDateTime.of(LocalDateTime.now().toLocalDate(), LocalTime.MAX).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
    }
    public static List<Date> getDateInRange(Date dBegin, Date dEnd) {
        List lDate = new ArrayList();
        lDate.add(dBegin);
        Calendar calBegin = Calendar.getInstance();
        calBegin.setTime(dBegin);
        Calendar calEnd = Calendar.getInstance();
        calEnd.setTime(dEnd);
        while(dEnd.after(calBegin.getTime())) {
            calBegin.add(5, 1);
            lDate.add(calBegin.getTime());
        }
        return lDate;
    }
    public static Date getDateFromStringForVci(String value) {
        Date d = null;
        if (StringUtils.isNotBlank(value)) {
            try {
                if (value.indexOf("-") > -1 && value.indexOf(".") > -1 && value.indexOf(" ") > -1 && value.substring(value.lastIndexOf(".") + 1).length() >= 9) {
                    String ymd = value.substring(0, value.indexOf("."));
                    value = value.substring(value.indexOf(".") + 1);
                    if (value.indexOf(".") > -1) {
                        String hms = value.substring(0, value.lastIndexOf("."));
                        String nano = value.substring(value.lastIndexOf(".") + 1).trim();
                        if (nano.length() > 3) {
                            nano = nano.substring(0, 3);
                        }
                        hms = hms.replace(".", ":").replace(" ", "");
                        Date tempDate = str2Date(ymd + " " + hms, "yyyy-M-d h:m:s");
                        if (tempDate != null) {
                            d = str2Date(date2Str(tempDate, "yyyy-MM-dd HH:mm:ss") + "." + nano, "yyyy-MM-dd HH:mm:ss.SSS");
                        }
                    }
                } else if (VciBaseUtil.isNumber(value)) {
                    d = new Date();
                    try {
                        d = str2Date(value, "yyyyMMddHHmmssSSS");
                    } catch (Exception var8) {
                        if (value.length() != 14) {
                            d.setTime(VciBaseUtil.getLong(value));
                        } else {
                            try {
                                d = str2Date(value, "yyyyMMddHHmmss");
                                Calendar cal = Calendar.getInstance();
                                cal.setTime(d);
                                if (cal.get(1) < 1900) {
                                    d.setTime(VciBaseUtil.getLong(value));
                                }
                            } catch (Exception var7) {
                                d.setTime(VciBaseUtil.getLong(value));
                            }
                        }
                    }
                } else {
                    d = str2Date(value, "yyyy-MM-dd HH:mm:ss.SSS");
                }
            } catch (Exception var9) {
                try {
                    d = str2Date(value, "yyyy-MM-dd HH:mm:ss.SSS");
                } catch (Exception var6) {
                }
            }
        }
        return d;
    }
    public static Date readText2Date(String text) {
        if (VciBaseUtil.isNullOrNullString(text)) {
            return null;
        } else {
            SimpleDateFormat dateFormat = null;
            int exactDateLength = 0;
            if (text.trim().indexOf("/") > -1 && text.trim().length() == 19) {
                exactDateLength = 19;
                dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
            } else if (text.trim().indexOf("/") > -1 && text.trim().length() == 17) {
                exactDateLength = 17;
                dateFormat = new SimpleDateFormat("yy/MM/dd HH:mm:ss");
            } else if (text.trim().indexOf("/") > -1 && text.trim().length() == 8) {
                exactDateLength = 8;
                dateFormat = new SimpleDateFormat("yy/MM/dd");
            } else if (text.trim().indexOf("-") > -1 && text.trim().length() >= 19) {
                if (text.trim().length() == 19) {
                    exactDateLength = 19;
                    dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                } else if (text.trim().length() == 23) {
                    exactDateLength = 23;
                    dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
                }
            } else if (text.trim().indexOf("-") > -1 && text.trim().length() == 17) {
                exactDateLength = 17;
                dateFormat = new SimpleDateFormat("yy-MM-dd HH:mm:ss");
            } else if (text.trim().indexOf("-") > -1 && text.trim().length() == 8) {
                exactDateLength = 8;
                dateFormat = new SimpleDateFormat("yy-MM-dd");
            } else {
                exactDateLength = 19;
                dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            }
            if (text != null && exactDateLength >= 0 && text.length() != exactDateLength) {
                throw new IllegalArgumentException("不能初始化时间,因为内容不到" + exactDateLength + "长度");
            } else {
                try {
                    return str2Date(date2Str(dateFormat.parse(text), "yyyy-MM-dd HH:mm:ss"), "yyyy-MM-dd HH:mm:ss.SSS");
                } catch (ParseException var4) {
                    throw new IllegalArgumentException("不能格式化日期: " + var4.getMessage(), var4);
                } catch (Exception var5) {
                    throw new IllegalArgumentException("不能格式化日期: " + var5.getMessage(), var5);
                }
            }
        }
    }
    public static String getChinaDate(String d) throws Exception {
        Date s = str2Date(d, "yyyy-MM-dd");
        SimpleDateFormat chineseDateFormat = new SimpleDateFormat("yyyyå¹´MM月dd日");
        Calendar today = Calendar.getInstance();
        try {
            today.setTime(chineseDateFormat.parse(date2Str(s, "yyyyå¹´MM月dd日")));
        } catch (ParseException var5) {
            throw new Exception(var5);
        }
        Lunar lunar = new Lunar(today);
        return lunar.getDate();
    }
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/com/vci/starter/web/util/WebThreadLocalUtil.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
package com.vci.ubcs.com.vci.starter.web.util;
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
//package com.vci.starter.web.util;
import com.vci.ubcs.com.vci.starter.web.pagemodel.SessionInfo;
public class WebThreadLocalUtil {
    private static ThreadLocal<SessionInfo> currentUserSessionInfoInThread = new ThreadLocal();
    private static ThreadLocal<String> needQueryTotalInThread = new ThreadLocal();
    public WebThreadLocalUtil() {
    }
    public static ThreadLocal<SessionInfo> getCurrentUserSessionInfoInThread() {
        return currentUserSessionInfoInThread;
    }
    public static void setCurrentUserSessionInfoInThread(ThreadLocal<SessionInfo> currentUserSessionInfoInThread) {
        WebThreadLocalUtil.currentUserSessionInfoInThread = currentUserSessionInfoInThread;
    }
    public static ThreadLocal<String> getNeedQueryTotalInThread() {
        return needQueryTotalInThread;
    }
    public static void setNeedQueryTotalInThread(ThreadLocal<String> needQueryTotalInThread) {
        WebThreadLocalUtil.needQueryTotalInThread = needQueryTotalInThread;
    }
}
Source/UBCS/ubcs-service/ubcs-code/pom.xml
@@ -24,84 +24,6 @@
    <dependencies>
        <dependency>
            <groupId>com.vci</groupId>
            <artifactId>vci-platform-web</artifactId>
            <version>2022.1-SNAPSHOT</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-starter-openfeign</artifactId>
                </exclusion>
<!--                <exclusion>-->
<!--                    <groupId>com.vci</groupId>-->
<!--                    <artifactId>vci-starter-corba</artifactId>-->
<!--                </exclusion>-->
                <exclusion>
                    <groupId>org.apache.logging.log4j</groupId>
                    <artifactId>log4j-slf4j-impl</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.vci</groupId>
            <artifactId>vci-platform-webservice</artifactId>
            <version>2022.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>com.vci.mdm</groupId>
            <artifactId>vci-mdm-wrj-webducking</artifactId>
            <version>2022.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>de.odysseus.staxon</groupId>
            <artifactId>staxon</artifactId>
            <version>1.3</version>
        </dependency>
        <!--axis2 begin -->
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-adb</artifactId>
            <version>${axis2.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-kernel</artifactId>
            <version>${axis2.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-transport-http</artifactId>
            <version>${axis2.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>javax-servlet</groupId>
                    <artifactId>servlet-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-transport-local</artifactId>
            <version>${axis2.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-jaxws</artifactId>
            <version>${axis2.version}</version>
        </dependency>
        <!--axis2 end -->
        <!--webservice的内容-->
        <dependency>
            <groupId>com.vci</groupId>
            <artifactId>vci-platform-webservice</artifactId>
            <version>2022.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>com.vci.ubcs</groupId>
            <artifactId>ubcs-code-api</artifactId>
            <version>3.0.1.RELEASE</version>
@@ -117,8 +39,13 @@
            <artifactId>blade-core-boot</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <groupId>org.springblade</groupId>
            <artifactId>blade-starter-swagger</artifactId>
        </dependency>
        <dependency>
            <groupId>cn.easyproject</groupId>
            <artifactId>orai18n</artifactId>
            <version>${orai18n.version}</version>
        </dependency>
    </dependencies>
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/CodeApplication.java
@@ -16,13 +16,9 @@
 */
package com.vci.ubcs.code;
import org.springblade.core.cloud.client.UbcsCloudApplication;
import org.springblade.core.launch.UbcsApplication;
import org.springblade.core.launch.constant.AppConstant;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.scheduling.annotation.EnableScheduling;
/**
 * Code启动器
@@ -30,11 +26,7 @@
 * @author
 * ludc
 */
@SpringBootApplication
@EnableFeignClients(basePackages = {"com.vci.*"})
@ComponentScan({"com.vci.*"})
@EnableScheduling
@EnableCaching
@UbcsCloudApplication
public class CodeApplication {
    public static void main(String[] args) {
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/Scheduling/DockingClassSyncScheduling.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/Scheduling/DockingDataSyncScheduling.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/Scheduling/DockingScheduling.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/algorithm/CustomSerialAlgorithmExample.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/annotation/BaseEnum.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
package com.vci.ubcs.code.annotation;
public interface BaseEnum {
    String getValue();
    String getText();
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/annotation/MdmIntegrationMap.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/annotation/MdmIntegrationMapMethod.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/annotation/MdmSerialAlgorithm.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/annotation/MdmSerialAlgorithmMethod.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/constant/FrameWorkDefaultValueConstant.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,169 @@
package com.vci.ubcs.code.constant;
/**
 * å¹³å°æ¡†æž¶çš„一些默认值,在一些客户不需要管理某些档案时,默认一个值
 * @author weidy
 * @date 2019/12/30
 */
public class FrameWorkDefaultValueConstant {
    /**
     * é»˜è®¤çš„组织主键
     */
    public static final String DEFAULT_ORGANIZATION_OID = "defaultOrg";
    /**
     * é»˜è®¤çš„组织名称
     */
    public static final String DEFAULT_ORGANIZATION_NAME = "默认组织";
    /**
     * é»˜è®¤çš„库房主键
     */
    public static final String DEFAULT_WAREHOUSE_OID = "defaultWarehouse";
    /**
     * é»˜è®¤çš„库房名称
     */
    public static final String DEFAULT_WAREHOUSE_NAME ="默认库房";
    /**
     * é»˜è®¤çš„货位主键
     */
    public static final String DEFAULT_GOODS_LOCATION_OID = "defaultGoodsLocation";
    /**
     * é»˜è®¤çš„货位名称
     */
    public static final String DEFAULT_GOODS_LOCATION_NAME = "默认货位";
    /**
     * é»˜è®¤çš„库房管理员
     */
    public static final String DEFAULT_WAREHOUSE_ADMIN_OID = "defaultWarehouseAdmin";
    /**
     * é»˜è®¤çš„库房管理员名称
     */
    public static final String DEFAULT_WAREHOUSE_ADMIN_NAME = "默认库房管理员";
    /**
     * é»˜è®¤ç”¨æˆ·
     */
    public static final String DEFAULT_USER_OID = "defaultUser";
    /**
     * é»˜è®¤ç”¨æˆ·åç§°
     */
    public static final String DEFAULT_USER_NAME = "默认用户";
    /**
     * é»˜è®¤éƒ¨é—¨
     */
    public static final String DEFAULT_DEPARTMENT_OID = "defaultDepartment";
    /**
     * é»˜è®¤éƒ¨é—¨åç§°
     */
    public static final String DEFAULT_DEPARTMENT_NAME = "默认部门";
    /**
     * é»˜è®¤token
     */
    public static final String DEFAULT_TOKEN = "51b3df0f-e769-40a5-bf3a-a8143ef0262f";
    /**
     * å¯ç”¨çš„æ•°æ®
     */
    public static final String FRAMEWORK_DATA_ENABLED = "Enabled";
    /**
     * åœç”¨çš„æ•°æ®
     */
    public static final String FRAMEWORK_DATA_DISABLED = "Disabled";
    /**
     * ç¼–辑的数据
     */
    public static final String FRAMEWORK_RELEASE_EDITING = "Editing";
    /**
     * å®¡æ ¸ä¸­çš„æ•°æ®
     */
    public static final String FRAMEWORK_RELEASE_AUDITING = "Auditing";
    /**
     * å·²æäº¤
     */
    public static final String FRAMEWORK_RELEASE_SUBMIT = "Submit";
    /**
     * å‘布的数据
     */
    public static final String FRAMEWORK_RELEASE_RELEASED = "Released";
    /**
     * åœ¨æ ‘上显示“所有XXX”这个节点的主键
     */
    public static final String ALL_DATA_TREE_NODE_OID = "${all}";
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„版本
     */
    public static final String QUERY_ALL_REVISION = "${queryAllRevision}";
    /**
     * å‚照的时候,显示已停用的数据的查询参数
     */
    public static final String REFER_SHOW_DISABLED_QUERY_KEY ="referAllLcStatus";
    /**
     * å®Œæˆ
     */
    public static final String FRAMEWORK_RELEASE_FINISH = "Finish";
    /**
     * å·²æŒ‚èµ·
     */
    public static final String FRAMEWORK_RELEASE_SUSPENDED = "Suspended";
    /**
     * å·²ä½œåºŸ
     */
    public static final String FRAMEWORK_RELEASE_OBSOLETED = "Obsoleted";
    /**
     * æ‰§è¡Œä¸­
     */
    public static final String FRAMEWORK_RELEASE_EXECUTING = "Executing";
    /**
     * å·²é€€å›ž
     */
    public static final String FRAMEWORK_RELEASE_SENDBACK = "SendBack";
    /**
     * å·²æ”¶å›ž
     */
    public static final String FRAMEWORK_RELEASE_TAKEBACK = "TakeBack";
    /**
     * é»˜è®¤çš„密码策略主键
     */
    public static final String DEFAULT_PASSWORD_STRATEGY = "defaultPasswordStrategy";
    /**
     * çŠ¶æ€å­—æ®µ
     */
    public static final String LC_STATUS = "lcStatus";
    /**
     * å­—母升版的版本规则
     */
    public static final String CHAR_REVISION = "characterversionrule";
    /**
     * æ•°å­—升版的版本规则
     */
    public static final String NUMBER_REVISION  = "numberversionrule";
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/constant/FrameWorkLangCodeConstant.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,321 @@
package com.vci.ubcs.code.constant;
//package com.vci.frameworkcore.constant;
/**
 * åŸºç¡€æ¡†æž¶çš„通用的多语言编码
 * @author weidy
 * @date 2020/4/25
 */
public class FrameWorkLangCodeConstant {
    /**
     * æ·»åŠ æˆåŠŸ
     */
    public static final String ADD_SUCCESS ="addSuccess";
    /**
     * æ·»åŠ å¤±è´¥
     */
    public static final String ADD_FAIL = "addFailInDB";
    /**
     * ä¿®æ”¹æˆåŠŸ
     */
    public static final String EDIT_SUCCESS = "editSuccess";
    /**
     * ä¿®æ”¹å¤±è´¥
     */
    public static final String EDIT_FAIL = "editFail";
    /**
     * åˆ é™¤æˆåŠŸ
     */
    public static final String DELETE_SUCCESS = "deleteSuccess";
    /**
     * çº§è”删除成功
     */
    public static final String DELETE_SUCCESS_CASCADE = "deleteSuccessCascade";
    /**
     * åˆ é™¤å¤±è´¥
     */
    public static final String DELETE_FAIL = "deleteFail";
    /**
     * å¯ç”¨æˆåŠŸ
     */
    public static final String ENABLE_SUCCESS ="enableSuccess";
    /**
     * é”å®šæˆåŠŸ
     */
    public static final String LOCK_SUCCESS = "lockSuccess";
    /**
     * é”å®šå¤±è´¥
     */
    public static final String LOCK_FAIL = "lockFail";
    /**
     * è§£é”æˆåŠŸ
     */
    public static final String UNLOCK_SUCCESS = "unlockSuccess";
    /**
     * è§£é”å¤±è´¥
     */
    public static final String UNLOCK_FAIL = "unlockFail";
    /**
     * çº§è”启用成功
     */
    public static final String ENABLE_SUCCESS_CASCADE = "enableSuccessCascade";
    /**
     * å¯ç”¨å¤±è´¥
     */
    public static final String ENABLE_FAIL = "enableFail";
    /**
     * åœç”¨æˆåŠŸ
     */
    public static final String DISABLE_SUCCESS = "disableSuccess";
    /**
     * çº§è”停用成功
     */
    public static final String DISABLE_SUCCESS_CASCADE = "disableSuccessCascade";
    /**
     * åœç”¨å¤±è´¥
     */
    public static final String DISABLE_FAIL = "disableFail";
    /**
     * å‡ç‰ˆæœ¬å·æˆåŠŸ
     */
    public static final String UP_REVISION_SUCCESS = "dataUpRevisionSuccess";
    /**
     * å‡ç‰ˆæœ¬å·å¤±è´¥
     */
    public static final String UP_REVISION_FAIL = "dataUpRevisionFail";
    /**
     * å‡ç‰ˆæ¬¡æˆåŠŸ
     */
    public static final String UP_VERSION_SUCCESS = "dataUpVersionSuccess";
    /**
     * å‡ç‰ˆæ¬¡å¤±è´¥
     */
    public static final String UP_VERSION_FAIL = "dataUpVersionFail";
    /**
     * æäº¤æˆåŠŸ
     */
    public static final String SUBMIT_SUCCESS= "submitSuccess";
    /**
     * æäº¤å¤±è´¥
     */
    public static final String SUBMIR_FAIL = "submitFail";
    /**
     * å‘布成功
     */
    public static final String RELEASE_SUCCESS = "releaseSuccess";
    /**
     * å‘布失败
     */
    public static final String RELEASE_FAIL = "releaseFail";
    /**
     * ç‰ˆæœ¬å·é‡å¤
     */
    public static final String REVISION_REPEAT = "revisionRepeat";
    /**
     * ç‰ˆæ¬¡å·é‡å¤
     */
    public static final String VERSION_REPEAT= "versionRepeat";
    /**
     * æ ¹æ®ä¸»é”®æŸ¥è¯¢æ•°æ®ä¸å­˜åœ¨
     */
    public static final String DATA_OID_NOT_EXIST = "dataOidNotExist";
    /**
     * æ ¹æ®ä¸»é”®æŸ¥è¯¢çš„æ•°æ®ä¸å­˜åœ¨
     */
    public static final String DATA_ID_NOT_EXIST = "dataIdNotExist";
    /**
     * æ ¹æ®åç§°æŸ¥è¯¢çš„æ•°æ®ä¸å­˜åœ¨
     */
    public static final String DATA_NAME_NOT_EXIST = "dataNameNotExist";
    /**
     * å±žæ€§å€¼é‡å¤
     */
    public static final String DATA_ATTR_REPEAT = "dataRepeat";
    /**
     * è€ç‰ˆæœ¬çš„æ•°æ®ä¸å­˜åœ¨
     */
    public static final String OLD_REVISION_DATA_NOT_EXIST = "oldRevsionDataNotExist";
    /**
     * ä¸Šçº§ä¸»é”®å®žé™…是当前节点的下级节点,会引起死循环
     */
    public static final String PARENT_OID_IS_CHILD ="parentIsChild";
    /**
     * æ•°æ®è¢«å¼•用,不允许删除
     */
    public static final String DATA_LINKED_NOT_DELETE = "dataLinkedNotDelete";
    /**
     * æ•°æ®çš„子节点也被引用,不允许删除
     */
    public static final String DATA_CASCADE_LINKED_NOT_DELETE = "dataCascadeLinkedNotDelete";
    /**
     * æ•°æ®è¢«å¼•用,不允许修改
     */
    public static final String DATA_LINKED_NOT_EDIT ="dataLinkedNotEdit";
    /**
     * æ•°æ®ä¸å¼•用,不允许修改某个属性
     */
    public static final String DATA_LINKED_NOT_EDIT_ATTR="dataLinkedNotEditAttr";
    /**
     * ä¸Šçº§æ¡£æ¡ˆä¸å­˜åœ¨
     */
    public static final String DATA_PARENT_NOT_EXIST = "parentNotExist";
    /**
     * åˆ†ç±»æ•°æ®ä¸å­˜åœ¨
     */
    public static final String DATA_CLASSIFY_NOT_EXIST = "classifyNotExist";
    /**
     * å½“前状态下不允许修改数据
     */
    public static final String LCSTATUS_CAN_NOT_EDIT = "lcStatusCannotEditData";
    /**
     * å½“前状态下不允许删除数据
     */
    public static final String LCSTATUS_CAN_NOT_DELETE = "lcStatusCannotDeleteData";
    /**
     * å¯¼å…¥æˆåŠŸ
     */
    public static final String IMPORT_SUCCESS = "importSuccess";
    /**
     * å¯¼å…¥å¤±è´¥
     */
    public static final String IMPORT_FAIL = "importFail";
    /**
     * å¯¼å…¥çš„æ¨¡æ¿æ–‡ä»¶ä¸å­˜åœ¨
     */
    public static final String IMPORT_TEMPLATE_FILE_NOT_FOUND = "importTemplateFileNotFound";
    /**
     * å¯¼å‡ºæˆåŠŸ
     */
    public static final String EXPORT_SUCCESS = "exportSuccess";
    /**
     * å¯¼å‡ºå¤±è´¥
     */
    public static final String EXPORT_FAIL = "exportFail";
    /**
     * ä¸Šä¼ æˆåŠŸ
     */
    public static final String UPLOAD_SUCCESS = "uploadSuccess";
    /**
     * ä¸Šä¼ å¤±è´¥
     */
    public static final String UPLOAD_FAIL = "uploadFail";
    /**
     * ä¸‹è½½æˆåŠŸ
     */
    public static final String DOWNLOAD_SUCCESS = "downloadSuccess";
    /**
     * ä¸‹è½½å¤±è´¥
     */
    public static final String DOWNLOAD_FAIL = "downloadFail";
    /**
     * æ–‡ä»¶ä¸å­˜åœ¨
     */
    public static final String FILE_NOT_EXIST = "fileNotExist";
    /**
     * å®¡æ‰¹æˆåŠŸ
     */
    public static final String AUDIT_SUCCESS = "auditSuccess";
    /**
     * å®¡æ‰¹å¤±è´¥
     */
    public static final String AUDIT_FAIL = "auditFail";
    /**
     * ä¸‹å‘成功
     */
    public static final String ISSUED_SUCCESS = "issuedSuccess";
    /**
     * ä¸‹å‘失败
     */
    public static final String ISSUED_FAIL = "issuedFail";
    /**
     * æŽ¥æ”¶æˆåŠŸ
     */
    public static final String RECEIVE_SUCCESS = "receiveSuccess";
    /**
     * æŽ¥æ”¶å¤±è´¥
     */
    public static final String RECEIVE_FAIL = "receiveFail";
    /**
     * è®¡åˆ’的制造依据不存在
     */
    public static final String PLAN_SOURCE_NOT_EXIST = "planSourceNotExist";
    /**
     * è®¡åˆ’的制造目标不存在
     */
    public static final String PLAN_TARGET_NOT_EXIST = "planTargetNotExist";
    /**
     * æ´¾å‘成功
     */
    public static final String DISPATCH_SUCCESS = "dispatchSuccess";
    /**
     * æ´¾å‘失败
     */
    public static final String DISPATCH_FAIL = "dispatchFail";
    /**
     * è¯¥è®¡åˆ’下不存在派发过的任务
     */
    public static final String DISPATCH_TASK_NOT_EXIST_BY_PLAN = "dispatchTaskNotExistByPlan";
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeAllcodeController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,125 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill åº„骞 (smallchill@163.com)
 */
package com.vci.ubcs.code.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.vci.ubcs.code.entity.CodeAllcode;
import com.vci.ubcs.code.service.ICodeAllcodeService;
import com.vci.ubcs.code.vo.pagemodel.CodeAllcodeVO;
import com.vci.ubcs.code.wrapper.CodeAllcodeWrapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
/**
 * å…¨éƒ¨ç å€¼ æŽ§åˆ¶å™¨
 *
 * @author ludc
 * @since 2023-04-03
 */
@RestController
@AllArgsConstructor
@RequestMapping("blade-code/CodeAllcode")
@Api(value = "全部码值", tags = "全部码值接口")
public class CodeAllcodeController extends BladeController {
    private final ICodeAllcodeService CodeAllcodeService;
    /**
     * å…¨éƒ¨ç å€¼ è¯¦æƒ…
     */
    @GetMapping("/detail")
    @ApiOperationSupport(order = 1)
    @ApiOperation(value = "详情", notes = "传入CodeAllcode")
    public R<CodeAllcodeVO> detail(CodeAllcode CodeAllcode) {
        CodeAllcode detail = CodeAllcodeService.getOne(Condition.getQueryWrapper(CodeAllcode));
        return R.data(CodeAllcodeWrapper.build().entityVO(detail));
    }
    /**
     * å…¨éƒ¨ç å€¼ åˆ†é¡µ
     */
    @GetMapping("/list")
    @ApiOperationSupport(order = 2)
    @ApiOperation(value = "分页", notes = "传入CodeAllcode")
    public R<IPage<CodeAllcodeVO>> list(CodeAllcode CodeAllcode, Query query) {
        IPage<CodeAllcode> pages = CodeAllcodeService.page(Condition.getPage(query), Condition.getQueryWrapper(CodeAllcode));
        return R.data(CodeAllcodeWrapper.build().pageVO(pages));
    }
    /**
     * å…¨éƒ¨ç å€¼ è‡ªå®šä¹‰åˆ†é¡µ
     */
    @GetMapping("/page")
    @ApiOperationSupport(order = 3)
    @ApiOperation(value = "分页", notes = "传入CodeAllcode")
    public R<IPage<CodeAllcodeVO>> page(CodeAllcodeVO CodeAllcode, Query query) {
        IPage<CodeAllcodeVO> pages = CodeAllcodeService.selectCodeAllcodePage(Condition.getPage(query), CodeAllcode);
        return R.data(pages);
    }
    /**
     * å…¨éƒ¨ç å€¼ æ–°å¢ž
     */
    @PostMapping("/save")
    @ApiOperationSupport(order = 4)
    @ApiOperation(value = "新增", notes = "传入CodeAllcode")
    public R save(@Valid @RequestBody CodeAllcode codeAllcode) {
        return R.status(CodeAllcodeService.save(codeAllcode));
    }
    /**
     * å…¨éƒ¨ç å€¼ ä¿®æ”¹
     */
    @PostMapping("/update")
    @ApiOperationSupport(order = 5)
    @ApiOperation(value = "修改", notes = "传入CodeAllcode")
    public R update(@Valid @RequestBody CodeAllcode codeAllcode) {
        return R.status(CodeAllcodeService.updateById(codeAllcode));
    }
    /**
     * å…¨éƒ¨ç å€¼ æ–°å¢žæˆ–修改
     */
    @PostMapping("/submit")
    @ApiOperationSupport(order = 6)
    @ApiOperation(value = "新增或修改", notes = "传入CodeAllcode")
    public R submit(@Valid @RequestBody CodeAllcode codeAllcode) {
        return R.status(CodeAllcodeService.saveOrUpdate(codeAllcode));
    }
    /**
     * å…¨éƒ¨ç å€¼ åˆ é™¤
     */
    @PostMapping("/remove")
    @ApiOperationSupport(order = 7)
    @ApiOperation(value = "逻辑删除", notes = "传入ids")
    public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
        return R.status(CodeAllcodeService.removeBatchByIds(Func.toLongList(ids)));
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeApplySyncController.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeBasicSecController.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeButtonController.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyController.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyProcessTempController.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyTempMapItemController.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyTemplateAttrController.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyTemplateButtonController.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyTemplateController.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyTemplateMapController.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyValueController.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeDuckingController.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeFixedValueController.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeKeyAttrRepeatRuleController.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodePhaseAttrController.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeResembleRuleController.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeRuleController.java
@@ -1,167 +1,127 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill åº„骞 (smallchill@163.com)
 */
package com.vci.ubcs.code.controller;
import com.vci.ubcs.code.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 com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.vci.ubcs.code.dto.CodeRuleDTO;
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO;
import com.vci.ubcs.code.entity.CodeRule;
import com.vci.ubcs.code.service.ICodeRuleService;
import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import com.vci.ubcs.code.wrapper.CodeRuleWrapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.*;
import java.util.Collection;
import java.util.Map;
import javax.validation.Valid;
/**
 * ä¸»æ•°æ®ç¼–码规则控制器
 * ç¼–码规则 æŽ§åˆ¶å™¨
 *
 * @author weidy
 * @date 2022-01-24
 * @author ludc
 * @since 2023-04-03
 */
@RestController
@RequestMapping("/mdmRuleController")
public class CodeRuleController {
    /**
    * ä¸»æ•°æ®ç¼–码规则 æœåŠ¡
    */
    @Autowired
    private CodeRuleServiceI codeRuleService;
@AllArgsConstructor
@RequestMapping("/mdmRule")
@Api(value = "编码规则", tags = "编码规则接口")
public class CodeRuleController extends BladeController {
    /**
     * ä¸»æ•°æ®ç¼–码规则列表
     * @param baseQueryObject åŸºç¡€æŸ¥è¯¢å¯¹è±¡ï¼ŒåŒ…含查询条件,分页,排序等
     * @return ä¸»æ•°æ®ç¼–码规则显示对象列表
     */
    @GetMapping("/gridCodeRule")
    public DataGrid<CodeRuleVO> gridCodeRule(BaseQueryObject baseQueryObject){
        if(baseQueryObject == null){
            baseQueryObject = new BaseQueryObject();
        }
        DataGrid<CodeRuleVO> result = codeRuleService.gridCodeRule(baseQueryObject.getConditionMap(),baseQueryObject.getPageHelper());
        return result;
    }
    /**
     * å¢žåŠ  ä¸»æ•°æ®ç¼–码规则
     * @param codeRuleDTO ä¸»æ•°æ®ç¼–码规则数据传输对象
     * @return æ‰§è¡Œç»“果,success为true表示成功,msg是失败的提示信息,obj是添加完成后的显示对象
     */
    @PostMapping( "/addSave")
    public BaseResult<CodeRuleVO> addSave(@RequestBody CodeRuleDTO codeRuleDTO){
         CodeRuleVO codeRuleVO = codeRuleService.addSave(codeRuleDTO);
         return BaseResult.success(codeRuleVO);
    }
    private final ICodeRuleService codeRuleService;
    /**
     * ä¿®æ”¹ ä¸»æ•°æ®ç¼–码规则
     * @param codeRuleDTO ä¸»æ•°æ®ç¼–码规则数据传输对象
     * @return æ‰§è¡Œç»“果,success为true表示成功,msg是失败的提示信息,obj是添加完成后的显示对象
     */
    @PutMapping("/editSave")
    public BaseResult<CodeRuleVO> editSave(@RequestBody CodeRuleDTO codeRuleDTO){
        CodeRuleVO codeRuleVO = codeRuleService.editSave(codeRuleDTO);
        return BaseResult.success(codeRuleVO);
    }
    /**
     * ç¼–码规则 è¯¦æƒ…
     */
    @GetMapping("/detail")
    @ApiOperationSupport(order = 1)
    @ApiOperation(value = "详情", notes = "传入codeRule")
    public R<CodeRuleVO> detail(CodeRule codeRule) {
        CodeRule detail = codeRuleService.getOne(Condition.getQueryWrapper(codeRule));
        return R.data(CodeRuleWrapper.build().entityVO(detail));
    }
    /**
     * ç¼–码规则 åˆ†é¡µ
     */
    @GetMapping("/list")
    @ApiOperationSupport(order = 2)
    @ApiOperation(value = "分页", notes = "传入codeRuleVO")
    public R<IPage<CodeRuleVO>> list(CodeRule codeRule, Query query) {
        IPage<CodeRule> pages = codeRuleService.page(Condition.getPage(query), Condition.getQueryWrapper(codeRule));
        return R.data(CodeRuleWrapper.build().pageVO(pages));
    }
    /**
     * ç¼–码规则 è‡ªå®šä¹‰åˆ†é¡µ
     */
    @GetMapping("/gridCodeRule")
    @ApiOperationSupport(order = 3)
    @ApiOperation(value = "分页", notes = "传入CodeRule")
    public R<IPage<CodeRuleVO>> page(CodeRuleVO CodeRule, Query query) {
        IPage<CodeRuleVO> pages = codeRuleService.selectPlCodeRulePage(Condition.getPage(query.setDescs("CREATETIME")), CodeRule);
        return R.data(pages);
    }
    /**
     * åˆ é™¤ä¸»æ•°æ®ç¼–码规则
     * @param codeRuleDTO ä¸»æ•°æ®ç¼–码规则数据传输对象,oid和ts需要传输
     * @return åˆ é™¤ç»“果反馈::success:成功,fail:失败
     */
    @DeleteMapping( "/deleteData")
    public BaseResult delCodeRule( CodeRuleDTO codeRuleDTO) {
        return codeRuleService.deleteCodeRule(codeRuleDTO);
    }
    /**
     * å¢žåŠ  ä¸»æ•°æ®ç¼–码规则
     * @param codeRuleDTO ä¸»æ•°æ®ç¼–码规则数据传输对象
     * @return æ‰§è¡Œç»“果,success为true表示成功,msg是失败的提示信息,obj是添加完成后的显示对象
     */
    @PostMapping("/addCode")
    @ApiOperationSupport(order = 4)
    @ApiOperation(value = "新增", notes = "传入CodeRule")
    public R save(@Valid @RequestBody CodeRuleDTO codeRuleDTO) {
        return R.status(codeRuleService.addSave(codeRuleDTO));
    }
    /**
    * ä¸»é”®èŽ·å–ä¸»æ•°æ®ç¼–ç è§„åˆ™
    * @param oid ä¸»é”®
    * @return ä¸»æ•°æ®ç¼–码规则显示对象
    */
    @GetMapping("/getObjectByOid")
    public BaseResult<CodeRuleVO> getObjectByOid(String oid){
        CodeRuleVO codeRuleVO = codeRuleService.getObjectByOid(oid);
        return BaseResult.success(codeRuleVO);
    }
    /**
     * ä¿®æ”¹ ä¸»æ•°æ®ç¼–码规则
     * @param codeRuleDTO ä¸»æ•°æ®ç¼–码规则数据传输对象
     * @return æ‰§è¡Œç»“果,success为true表示成功,msg是失败的提示信息,obj是添加完成后的显示对象
     */
    @PostMapping("/update")
    @ApiOperationSupport(order = 5)
    @ApiOperation(value = "修改", notes = "传入CodeRule")
    public R update(@Valid @RequestBody CodeRuleDTO codeRuleDTO) {
        return R.status(codeRuleService.editSave(codeRuleDTO));
    }
    /**
     * ä¸»é”®æ‰¹é‡èŽ·å–ä¸»æ•°æ®ç¼–ç è§„åˆ™
     * @param oids ä¸»é”®ï¼Œå¤šä¸ªä»¥é€—号分隔,但是受性能影响,建议一次查询不超过10000个
     * @return ä¸»æ•°æ®ç¼–码规则显示对象
     */
    @GetMapping("/listDataByOids")
    public BaseResult<CodeRuleVO> listCodeRuleByOids(String oids){
        Collection<CodeRuleVO> voCollection =  codeRuleService.listCodeRuleByOids(VciBaseUtil.str2List(oids));
        BaseResult baseResult = BaseResult.success();
        baseResult.setData(voCollection);
        return  baseResult;
    }
    /**
     * ç¼–码规则 æ–°å¢žæˆ–修改
     */
    @PostMapping("/submit")
    @ApiOperationSupport(order = 6)
    @ApiOperation(value = "新增或修改", notes = "传入CodeRule")
    public R submit(@Valid @RequestBody CodeRule codeRule) {
        return R.status(codeRuleService.saveOrUpdate(codeRule));
    }
    /**
     * åˆ é™¤ä¸»æ•°æ®ç¼–码规则
     * @param codeRuleDTO ä¸»æ•°æ®ç¼–码规则数据传输对象,oid和ts需要传输
     * @return åˆ é™¤ç»“果反馈::success:成功,fail:失败
     */
    @DeleteMapping( "/deleteData")
    public R delCodeRule(@Valid @RequestBody CodeRuleDTO codeRuleDTO) {
        return codeRuleService.deleteCodeRule(codeRuleDTO);
    }
    /**
     * å‚照主数据编码规则列表
     * @param baseQueryObject åŸºç¡€æŸ¥è¯¢å¯¹è±¡ï¼ŒåŒ…含查询条件,分页,排序等
     * @return ä¸»æ•°æ®ç¼–码规则显示对象列表,生效的内容
     */
    @GetMapping("/refDataGrid")
    public DataGrid<CodeRuleVO> refDataGridCodeRule(BaseQueryObject baseQueryObject){
        if(baseQueryObject == null){
            baseQueryObject = new BaseQueryObject();
        }
        return codeRuleService.refDataGridCodeRule(baseQueryObject.getConditionMap(),baseQueryObject.getPageHelper());
    }
    /**
     * æŸ¥çœ‹ä¸»æ•°æ®ç¼–码规则的使用范围
     * @param oid ä¸»é”®
     * @return ä½¿ç”¨èŒƒå›´
     */
    @GetMapping("/listUseRange")
    public BaseResult<CodeClassifyVO> listUseRange(String oid){
        Collection<CodeClassifyVO> voList = codeRuleService.listUseRangeInCodeClassify(oid);
        BaseResult baseResult = BaseResult.success();
        baseResult.setData(voList);
       return baseResult;
    }
    /**
     * åœç”¨ä¸Žå¯ç”¨ç¼–码规则
     * @param map å°è£…参数,包括oid ç¼–码规则主键 update æ›´æ–°çŠ¶æ€çš„æ“ä½œ
     * @return æ‰§è¡Œç»“æžœ
     */
    @PostMapping ("/updateStatus")
    public BaseResult updateStatus(@RequestBody Map<String,String> map){
        if (CollectionUtils.isEmpty(map)){
            return BaseResult.fail("参数错误");
        }
        String oid = map.get("oid");
        String update = map.get("update");
        return codeRuleService.updateStatus(oid,update);
    }
    /**
     * å…‹éš†ç¼–码规则
     * @param codeRuleDTO ä¸»æ•°æ®ç¼–码规则数据传输对象,oid和ts需要传输
     * @return ä¸»æ•°æ®ç¼–码规则显示对象
     */
    @PostMapping("/clone")
    public BaseResult cloneCodeRule(@RequestBody CodeRuleDTO codeRuleDTO){
        return codeRuleService.cloneCodeRule(codeRuleDTO);
    }
    /**
     * ç¼–码规则清空所有已生成的编码
     * @param oid ç¼–码规则主键
     * @return æ‰§è¡Œç»“æžœ
     */
    @DeleteMapping("/clearAllCode")
    public BaseResult clearAllCode(String oid){
        return codeRuleService.clearAllCode(oid);
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeSerialAlgorithmController.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeSynonymController.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeTemplatePhaseController.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/dto/CodeCodeAllcodeDTO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill åº„骞 (smallchill@163.com)
 */
package com.vci.ubcs.code.dto;
import com.vci.ubcs.code.entity.CodeAllcode;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
 * å…¨éƒ¨ç å€¼ æ•°æ®ä¼ è¾“对象实体类
 *
 * @author ludc
 * @since 2023-04-03
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class CodeCodeAllcodeDTO extends CodeAllcode {
    private static final long serialVersionUID = 1L;
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/dto/CodeRuleDTO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,60 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill åº„骞 (smallchill@163.com)
 */
package com.vci.ubcs.code.dto;
import com.vci.ubcs.code.entity.CodeRule;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
 * ç¼–码规则 æ•°æ®ä¼ è¾“对象实体类
 *
 * @author ludc
 * @since 2023-04-03
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class CodeRuleDTO extends CodeRule {
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = 4615707117067738769L;
    /**
     * ç æ®µé›†åˆ
     */
    private List<CodeBasicSecDTO> elements;
    public List<CodeBasicSecDTO> getElements() {
        return elements;
    }
    public void setElements(List<CodeBasicSecDTO> elements) {
        this.elements = elements;
    }
    @Override
    public String toString() {
        return "CodeRuleDTO{" +
            "elements=" + elements +
            '}'+ super.toString();
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodeAllCodeDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodeBasicSecDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodeButtonDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodeClassifyDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodeClassifyProcessPhaseDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodeClassifyProcessTempDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodeClassifyTempMapItemDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodeClassifyTemplateAttrDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodeClassifyTemplateButtonDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodeClassifyTemplateDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodeClassifyTemplateMapDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodeClassifyValueDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodeFixedValueDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodeKeyAttrRepeatRuleDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodePhaseAttrDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodeResembleRuleDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodeRuleDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodeSerialValueDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodeSynonymDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/CodeTemplatePhaseDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/DockingDataDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/DockingLogeDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/DockingPreApplyDataDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/DockingPreApplyDataInfoDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/DockingPreAttrMappingDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/DockingPreAttrRangeDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/DockingTaskDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/SysIntAuthorityDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/SysIntBaseDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/SysIntHeaderDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/SysIntInfoDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/SysIntParamDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/entity/TaskDuckingDO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeButtonUseEnum.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeClassifyProcessUseEnum.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeCutTypeEnum.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeGetValueTypeEnum.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeLevelTypeEnum.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeMapRuleTypeEnum.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeSecLengthTypeEnum.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeSecTypeEnum.java
@@ -1,9 +1,8 @@
package com.vci.ubcs.code.enumpack;
import com.vci.ubcs.code.annotation.BaseEnum;
import com.vci.ubcs.code.constant.MdmEnumIdConstant;
import com.vci.starter.web.annotation.VciEnum;
import com.vci.starter.web.enumpck.BaseEnum;
import com.vci.ubcs.com.vci.starter.annotation.VciEnum;
/**
 * ç æ®µçš„类型
@@ -13,145 +12,146 @@
@VciEnum(name = MdmEnumIdConstant.CODE_SEC_TYPE,text = "码段的类型",description = "")
public enum CodeSecTypeEnum implements BaseEnum {
    /**
     * å›ºå®šç æ®µ
     */
    CODE_FIXED_SEC("codefixedsec","固定码段"),
    /**
     * å›ºå®šç æ®µ
     */
    CODE_FIXED_SEC("codefixedsec","固定码段"),
    /**
     * å¯å˜ç æ®µ
     */
    CODE_VARIABLE_SEC("codevariablesec","可变码段"),
    /**
     * æ—¥æœŸç æ®µ
     */
    CODE_DATE_SEC("codedatasec","日期码段"),
    /**
     * åˆ†ç±»ç æ®µ
     */
    CODE_CLASSIFY_SEC("codeclassifysec","分类码段"),
    /**
     * å±žæ€§ç æ®µ
     */
    CODE_ATTR_SEC("codeattrsec","属性码段"),
    /**
     * æµæ°´ç æ®µ
     */
    CODE_SERIAL_SEC("codeserialsec","流水码段"),
    /**
     * å¯å˜ç æ®µ
     */
    CODE_VARIABLE_SEC("codevariablesec","可变码段"),
    /**
     * æ—¥æœŸç æ®µ
     */
    CODE_DATE_SEC("codedatasec","日期码段"),
    /**
     * åˆ†ç±»ç æ®µ
     */
    CODE_CLASSIFY_SEC("codeclassifysec","分类码段"),
    /**
     * å±žæ€§ç æ®µ
     */
    CODE_ATTR_SEC("codeattrsec","属性码段"),
    /**
     * æµæ°´ç æ®µ
     */
    CODE_SERIAL_SEC("codeserialsec","流水码段"),
    /**
     * å±‚级码段
     */
    CODE_LEVEL_SEC("codelevelsec","层级码段"),
    /**
     * å±‚级码段
     */
    CODE_LEVEL_SEC("codelevelsec","层级码段"),
    /**
     * å¼•用码段
     */
    CODE_REFER_SEC("coderefersec","引用码段")
    ;
    /**
     * å¼•用码段
     */
    CODE_REFER_SEC("coderefersec","引用码段")
    ;
    /**
     * æžšä¸¾çš„值
     */
    private String value;
    /**
     * æžšä¸¾çš„值
     */
    private String value;
    /**
     * æžšä¸¾æ˜¾ç¤ºæ–‡æœ¬
     */
    private String text;
    /**
     * æžšä¸¾æ˜¾ç¤ºæ–‡æœ¬
     */
    private String text;
    /**
     * èŽ·å–æžšä¸¾å€¼
     *
     * @return æžšä¸¾å€¼
     */
    @Override
    public String getValue() {
        return value;
    }
    /**
     * èŽ·å–æžšä¸¾å€¼
     *
     * @return æžšä¸¾å€¼
     */
    @Override
    public String getValue() {
        return value;
    }
    /**
     * è®¾ç½®æžšä¸¾å€¼
     *
     * @param value æžšä¸¾å€¼
     */
    public void setValue(String value) {
        this.value = value;
    }
    /**
     * è®¾ç½®æžšä¸¾å€¼
     *
     * @param value æžšä¸¾å€¼
     */
    public void setValue(String value) {
        this.value = value;
    }
    /**
     * èŽ·å–æžšä¸¾æ˜¾ç¤ºæ–‡æœ¬
     *
     * @return æ˜¾ç¤ºæ–‡æœ¬
     */
    @Override
    public String getText() {
        return text;
    }
    /**
     * èŽ·å–æžšä¸¾æ˜¾ç¤ºæ–‡æœ¬
     *
     * @return æ˜¾ç¤ºæ–‡æœ¬
     */
    @Override
    public String getText() {
        return text;
    }
    /**
     * è®¾ç½®æ˜¾ç¤ºæ–‡æœ¬
     *
     * @param text æ˜¾ç¤ºæ–‡æœ¬
     */
    public void setText(String text) {
        this.text = text;
    }
    /**
     * è®¾ç½®æ˜¾ç¤ºæ–‡æœ¬
     *
     * @param text æ˜¾ç¤ºæ–‡æœ¬
     */
    public void setText(String text) {
        this.text = text;
    }
    /**
     * æž„造函数
     *
     * @param value å€¼
     * @param text  æ˜¾ç¤ºæ–‡æœ¬
     */
    private CodeSecTypeEnum(String value, String text) {
        this.value = value;
        this.text = text;
    }
    /**
     * æž„造函数
     *
     * @param value å€¼
     * @param text  æ˜¾ç¤ºæ–‡æœ¬
     */
    private CodeSecTypeEnum(String value, String text) {
        this.value = value;
        this.text = text;
    }
    /**
     * æ ¹æ®åç§°èŽ·å–å¯¹åº”çš„æžšä¸¾å€¼
     *
     * @param text åç§°
     * @return æžšä¸¾å€¼
     */
    public static String getValueByText(String text) {
        for (CodeSecTypeEnum wenum : CodeSecTypeEnum.values()) {
            if (wenum.getText().equalsIgnoreCase(text)) {
                return wenum.getValue();
            }
        }
        return "";
    }
    /**
     * æ ¹æ®åç§°èŽ·å–å¯¹åº”çš„æžšä¸¾å€¼
     *
     * @param text åç§°
     * @return æžšä¸¾å€¼
     */
    public static String getValueByText(String text) {
        for (CodeSecTypeEnum wenum : CodeSecTypeEnum.values()) {
            if (wenum.getText().equalsIgnoreCase(text)) {
                return wenum.getValue();
            }
        }
        return "";
    }
    /**
     * æ ¹æ®æžšä¸¾å€¼èŽ·å–åç§°
     *
     * @param value æžšä¸¾å€¼
     * @return åç§°
     */
    public static String getTextByValue(String value) {
        for (CodeSecTypeEnum wenum : CodeSecTypeEnum.values()) {
            if (wenum.getValue().equalsIgnoreCase(value)) {
                return wenum.getText();
            }
        }
        return "";
    }
    /**
     * æ ¹æ®æžšä¸¾å€¼èŽ·å–åç§°
     *
     * @param value æžšä¸¾å€¼
     * @return åç§°
     */
    public static String getTextByValue(String value) {
        for (CodeSecTypeEnum wenum : CodeSecTypeEnum.values()) {
            if (wenum.getValue().equalsIgnoreCase(value)) {
                return wenum.getText();
            }
        }
        return "";
    }
    /**
     * æ ¹æ®æžšä¸¾å€¼èŽ·å–æžšä¸¾å¯¹è±¡
     *
     * @param value æžšä¸¾å€¼
     * @return æžšä¸¾å¯¹è±¡ï¼Œä¸å­˜åœ¨æ—¶å€™è¿”回null
     */
    public static CodeSecTypeEnum forValue(String value) {
        for (CodeSecTypeEnum wenum : CodeSecTypeEnum.values()) {
            if (wenum.getValue().equalsIgnoreCase(value)) {
                return wenum;
            }
        }
        return null;
    }
    /**
     * æ ¹æ®æžšä¸¾å€¼èŽ·å–æžšä¸¾å¯¹è±¡
     *
     * @param value æžšä¸¾å€¼
     * @return æžšä¸¾å¯¹è±¡ï¼Œä¸å­˜åœ¨æ—¶å€™è¿”回null
     */
    public static CodeSecTypeEnum forValue(String value) {
        for (CodeSecTypeEnum wenum : CodeSecTypeEnum.values()) {
            if (wenum.getValue().equalsIgnoreCase(value)) {
                return wenum;
            }
        }
        return null;
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/CodeUseButtonPositionTypeEnum.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationAuthorityTypeEnum.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationDataFlowTypeEnum.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationParamAndReturnTypeEnum.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationRequestMethodEnum.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/SysIntegrationRequestTypeEnum.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/enumpack/sysIntegrationPushTypeEnum.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/lifecycle/CodeAllCodeLC.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/lifecycle/CodeClassifyTemplateLC.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/lifecycle/CodeDefaultLC.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/lifecycle/CodeRuleLC.java
@@ -1,25 +1,22 @@
package com.vci.ubcs.code.lifecycle;
import com.vci.ubcs.code.constant.MdmLifeCycleConstant;
import com.vci.frameworkcore.constant.FrameWorkDefaultValueConstant;
import com.vci.starter.web.annotation.VciLifeCycle;
import com.vci.starter.web.annotation.VciLifeCycleTrans;
import com.vci.starter.web.enumpck.BaseEnum;
import com.vci.ubcs.code.annotation.BaseEnum;
import com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant;
/**
 * ç¼–码规则的生命周期
 * @author weidy
 * @date 2022-2-23
 */
@VciLifeCycle(name = MdmLifeCycleConstant.CODE_RULE_LC,text = "编码规则板生命周期",description = "",startStatus = FrameWorkDefaultValueConstant.FRAMEWORK_RELEASE_EDITING,
/*@VciLifeCycle(name = MdmLifeCycleConstant.CODE_RULE_LC,text = "编码规则板生命周期",description = "",startStatus = FrameWorkDefaultValueConstant.FRAMEWORK_RELEASE_EDITING,
        translations={
            @VciLifeCycleTrans(source = FrameWorkDefaultValueConstant.FRAMEWORK_RELEASE_EDITING,target =FrameWorkDefaultValueConstant.FRAMEWORK_RELEASE_RELEASED,name = "发布"),
            @VciLifeCycleTrans(source = FrameWorkDefaultValueConstant.FRAMEWORK_RELEASE_RELEASED,target = FrameWorkDefaultValueConstant.FRAMEWORK_DATA_DISABLED,name = "作废"),
            @VciLifeCycleTrans(source = FrameWorkDefaultValueConstant.FRAMEWORK_RELEASE_EDITING,target = FrameWorkDefaultValueConstant.FRAMEWORK_DATA_DISABLED,name = "未发布直接停用"),
            @VciLifeCycleTrans(source = FrameWorkDefaultValueConstant.FRAMEWORK_DATA_DISABLED,target = FrameWorkDefaultValueConstant.FRAMEWORK_RELEASE_RELEASED,name = "停用后再次生效")
        }
)
)*/
public enum CodeRuleLC implements BaseEnum {
    /**
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeAllCodeMapper.java
@@ -1,12 +1,44 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill åº„骞 (smallchill@163.com)
 */
package com.vci.ubcs.code.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.vci.ubcs.code.entity.CodeAllcode;
import com.vci.ubcs.code.vo.pagemodel.CodeAllcodeVO;
import java.util.List;
/**
 * æ‰€æœ‰çš„码值数据操作层
 * å…¨éƒ¨ç å€¼ Mapper æŽ¥å£
 *
 * @author weidy
 * @date 2022-03-01
 * @author ludc
 * @since 2023-04-03
 */
public interface CodeAllCodeMapper {
public interface CodeAllcodeMapper extends BaseMapper<CodeAllcode> {
    /**
     * è‡ªå®šä¹‰åˆ†é¡µ
     *
     * @param page
     * @param CodeAllcode
     * @return
     */
    List<CodeAllcodeVO> selectCodeAllcodePage(IPage page, CodeAllcodeVO CodeAllcode);
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeBasicSecMapper.java
@@ -2,20 +2,29 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.vci.ubcs.code.entity.CodeBasicSecDO;
import org.springframework.data.domain.Page;
import com.vci.ubcs.code.entity.CodeBasicSec;
import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO;
import java.util.List;
import java.util.Map;
/**
 * ç æ®µåŸºç¡€ä¿¡æ¯æ•°æ®æ“ä½œå±‚
 *
 * @author weidy
 * @author ludc
 * @date 2022-01-24
 */
public interface CodeBasicSecMapper extends BaseMapper<CodeBasicSecDO> {
public interface CodeBasicSecMapper extends BaseMapper<CodeBasicSec> {
    IPage<CodeBasicSecDO> selectByCondition(Page<CodeBasicSecDO> codeBasicSecDO, Map<String,Object> condtions);
    /**
     * è‡ªå®šä¹‰åˆ†é¡µ
     *
     * @param page
     * @param plCodeRule
     * @return
     */
    List<CodeRuleVO> selectPlCodeRulePage(IPage page, CodeRuleVO plCodeRule);
    List<CodeBasicSec> countByCondition(Map<String,String> condtions);
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeButtonMapper.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyMapper.java
@@ -1,232 +1,16 @@
package com.vci.ubcs.code.mapper;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.pageModel.BatchCBO;
import com.vci.ubcs.code.entity.CodeClassifyDO;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.vci.ubcs.code.entity.CodeClassify;
/**
 * ä¸»é¢˜åº“分类数据操作层
 *
 * @author weidy
 * @author ludc
 * @date 2022-01-20
 */
public interface CodeClassifyMapper {
public interface CodeClassifyMapper  extends BaseMapper<CodeClassify> {
    /**
     * ä½¿ç”¨ä¸»é”®åˆ é™¤
     * @param oid æ•°æ®ä¸»é”®
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO deleteByPrimaryKey(String oid);
    /**
     * æ·»åŠ æ•°æ®
     * @param record ä¸»é¢˜åº“分类数据对象
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO insert(CodeClassifyDO record);
    /**
    * æ‰¹é‡æ·»åŠ æ•°æ®
    * @param records ä¸»é¢˜åº“分类数据对象集合
    * @return æ‰§è¡Œç»“果数
    */
    BatchCBO batchInsert(List<CodeClassifyDO> records);
    /**
     * æ ¹æ®ä¸»é”®æŸ¥è¯¢
     * @param oid æ•°æ®ä¸»é”®
     * @return æ•°æ®å¯¹è±¡
     */
    CodeClassifyDO selectByPrimaryKey(String oid);
    /**
     * æ ¹æ®ä¸»é”®æ‰¹é‡èŽ·å–å¯¹è±¡
     * @param oids ä¸»é”®ï¼ŒåŒ…含单引号,但是不能超过1000
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<CodeClassifyDO> selectByPrimaryKeys(String oids);
    /**
     * æ ¹æ®ä¸»é”®æ‰¹é‡æŸ¥è¯¢å¯¹è±¡
     * @param oids å¯¹è±¡ä¸»é”®,使用逗号分隔,但是不能超过1000
     * @return ä¸šåŠ¡å¯¹è±¡
     */
    List<CodeClassifyDO> selectByPrimaryKeyCollection(Collection<String> oids);
    /**
     * æŸ¥è¯¢æ‰€æœ‰åˆ†ç±»
     * @return æŸ¥è¯¢ç»“æžœ
     */
    List<CodeClassifyDO> selectAll();
    /**
     * æ›´æ–°å¯¹è±¡
     * @param record ä¸»é¢˜åº“分类数据对象
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO updateByPrimaryKey(CodeClassifyDO record);
    /**
    * æ‰¹é‡æ›´æ–°
    * @param records ä¸»é¢˜åº“分类数据对象集合
    * @return æ‰§è¡Œç»“果行数
    */
    BatchCBO batchUpdate(List<CodeClassifyDO> records);
    /**
     * æ ¹æ®æŸ¥è¯¢æ¡ä»¶æŸ¥è¯¢æ•°æ®
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶ï¼Œ
     * @param pageHelper åŒ…括分页,排序
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<CodeClassifyDO> selectByCondition(Map<String,String> conditionMap, PageHelper pageHelper);
    /**
     * æ ¹æ®æŸ¥è¯¢æ¡ä»¶æ¥æŸ¥è¯¢æ€»æ•°
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @return æ€»æ•°
     */
    Long countByCondition(Map<String,String> conditionMap);
    /**
     * ä½¿ç”¨æŸ¥è¯¢å°è£…器来查询
     * @param queryWrapper æŸ¥è¯¢å°è£…器
     * @return æ•°æ®å¯¹è±¡
     */
    List<CodeClassifyDO> selectByWrapper(VciQueryWrapperForDO queryWrapper);
    /**
     * ä½¿ç”¨æŸ¥è¯¢å°è£…器查询总数
     * @param queryWrapper æŸ¥è¯¢å°è£…器
     * @return æ€»æ•°
     */
    Long countByWrapper(VciQueryWrapperForDO queryWrapper);
    /**
     * æ ¹æ®ä¸»é”®èŽ·å–åç§°
     * @param oid ä¸»é”®
     * @return ä¸­æ–‡åç§°
     */
    String selectNameByOid(String oid);
    /**
    * èŽ·å–æ‰€æœ‰å±‚çº§ä¸‹çº§çš„ä¸»é”®
    * @param oid æ•°æ®ä¸»é”®
    * @return æŸ¥è¯¢ç»“æžœ key是主键,value是本次查询的层级
    */
    Map<String,String> selectAllLevelChildOid(String oid);
    /**
     * èŽ·å–æ‰€æœ‰å±‚çº§ä¸Šçº§å…³è”ä¸šåŠ¡ç±»åž‹æ•°æ®
     * @param oid å½“前分类的oid
     * @return oid,id,name,btmtypeid,btmtypename
     */
    List<CodeClassifyDO> selectAllLevelParents(String oid);
    /**
     * èŽ·å–å½“å‰åˆ†ç±»çš„æ‰€æœ‰ä¸Šçº§åˆ†ç±»ï¼ˆå«æœ¬æ¬¡æŸ¥è¯¢å±‚çº§å·ï¼‰
     * @param oid ä¸»é”®
     * @return æ‰€æœ‰çš„上级
     */
    List<CodeClassifyDO> selectAllLevelParentByOid(String oid);
    /**
     * èŽ·å–è¿™ä¸ªåˆ†ç±»ä¸‹çš„ä¸šåŠ¡ç±»åž‹ï¼Œå½“å‰æ²¡æœ‰å°±èŽ·å–ä¸Šçº§çš„ç¬¬ä¸€ä¸ªä¸šåŠ¡ç±»åž‹
     * @param oid å½“前分类的oid
     * @return oid,id,name,btmtypeid,btmtypename
     */
    CodeClassifyDO selectBtmOrParentBtm(String oid);
    /**
     * èŽ·å–æ‰€æœ‰ä¸‹çº§æ•°æ®
     * @param oid æ•°æ®ä¸»é”®
     * @return æŸ¥è¯¢ç»“æžœ
     */
    List<CodeClassifyDO> selectAllLevelChild(String oid);
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„下级,并包含层级的路径
     * @param oid ä¸Šçº§çš„主键
     * @param fieldInPath å­—段在路径中的内容
     * @param enable æ˜¯å¦åªæŸ¥è¯¢å¯ç”¨
     * @return åˆ†ç±»çš„æ•°æ®å†…容
     */
    List<CodeClassifyDO> selectAllLevelChildHasPath(String oid, String fieldInPath,boolean enable);
    /**
    * æŸ¥è¯¢æŸä¸ªèŠ‚ç‚¹çš„æ‰€æœ‰å±‚çº§ä¸‹çº§çš„ä¸ªæ•°
    * @param oid ä¸»é”®
    * @return æ€»æ•°
    */
    long countAllLevelChildOid(String oid);
    /**
     * åå‘从子级获取父级的主题库分类
     *
     * @param codeClassifyOid åˆ†ç±»çš„主键
     * @return åˆ†ç±»çš„æ˜¾ç¤ºå¯¹è±¡
     */
    List<CodeClassifyDO> listParentClassify(String codeClassifyOid);
    /**
     * æŸ¥è¯¢è¿™ä¸ªåˆ†ç±»çš„root节点oid
     */
    CodeClassifyDO getRootClassify(String codeClassifyOid);
    /**
     * åˆ¤æ–­è¿™ä¸ªåˆ†ç±»æ˜¯å¦å±žäºŽwupin分类树
     * @param oid
     * @return
     */
    boolean isWupin(String oid);
    /**
     * æ‰¹é‡ä¿®æ”¹ç”Ÿå‘½å‘¨æœŸçš„状态
     * @param oids ä¸»é”®é›†åˆï¼Œä¸èƒ½å¤§äºŽ1000
     * @param lcStatus ç”Ÿå‘½å‘¨æœŸçš„值
     * @return æ‰§è¡Œçš„结果
     */
    long batchUpdateLcStatus(Collection<String> oids,  String lcStatus);
    /**
     * æ ¹æ®ä¸»é”®æ›´æ–°çŠ¶æ€
     * @param oid ä¸»é”®
     * @param lcStatus ç”Ÿå‘½å‘¨æœŸçŠ¶æ€
     * @return å—影响的行数
     */
    int updateLcStatus( String oid, String lcStatus);
    /**
     * æ‰¹é‡åˆ é™¤å¯¹è±¡
     * @param oids å¯¹è±¡çš„主键集合
     * @return å—影响的行数
     */
    BatchCBO batchDeleteByOids(Collection<String> oids);
    /**
     * æ ¡éªŒæ˜¯å¦åŒ…含子节点
     * @param oid åˆ†ç±»çš„主键
     * @return true è¡¨ç¤ºåŒ…含
     */
    boolean checkHasChild(String oid);
    /**
     * ä½¿ç”¨å­—段的路径,查询对象
     * @param fieldPath å­—段的路径,必须从顶层节点开始 xxx/yyy/zz的格式
     * @param field å­—段的英文名称
     * @return åˆ†ç±»çš„对象
     */
    CodeClassifyDO selectByFieldPath(String fieldPath, String field);
    /***
     * æ ¹æ®ä¸Šçº§èŠ‚ç‚¹èŽ·å–ä¸‹çº§èŠ‚ç‚¹ä»£å·è·¯å¾„å’Œåç§°è·¯å¾„
     * @param classifyId
     * @param enable
     * @return
     */
    public List<CodeClassifyDO>getIdPathToNamePathByParentId(String classifyId,boolean enable);
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyProcessTempMapper.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyTempMapItemMapper.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyTemplateAttrMapper.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyTemplateButtonMapper.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyTemplateMapMapper.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyTemplateMapper.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyValueMapper.java
@@ -1,14 +1,17 @@
package com.vci.ubcs.code.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.vci.ubcs.code.entity.CodeClassifyValue;
/**
 * åˆ†ç±»ç æ®µçš„码值数据操作层
 *
 * @author weidy
 * @author ludc
 * @date 2022-01-24
 */
public interface CodeClassifyValueMapper extends BaseMapper<CodeClassifyValueMapper> {
public interface CodeClassifyValueMapper extends BaseMapper<CodeClassifyValue> {
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeFixedValueMapper.java
@@ -1,127 +1,15 @@
package com.vci.ubcs.code.mapper;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.ubcs.code.entity.CodeFixedValueDO;
import com.vci.web.pageModel.BatchCBO;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.vci.ubcs.code.entity.CodeFixedValue;
/**
 * å›ºå®šç æ®µçš„码值数据操作层
 *
 * @author weidy
 * @author ludc
 * @date 2022-01-24
 */
public interface CodeFixedValueMapper {
public interface CodeFixedValueMapper extends BaseMapper<CodeFixedValue> {
    /**
     * ä½¿ç”¨ä¸»é”®åˆ é™¤
     * @param oid æ•°æ®ä¸»é”®
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO deleteByPrimaryKey(String oid);
    /**
     * æ·»åŠ æ•°æ®
     * @param record å›ºå®šç æ®µçš„码值数据对象
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO insert(CodeFixedValueDO record);
    /**
    * æ‰¹é‡æ·»åŠ æ•°æ®
    * @param records å›ºå®šç æ®µçš„码值数据对象集合
    * @return æ‰§è¡Œç»“果数
    */
    BatchCBO batchInsert(List<CodeFixedValueDO> records);
    /**
     * æ ¹æ®ä¸»é”®æŸ¥è¯¢
     * @param oid æ•°æ®ä¸»é”®
     * @return æ•°æ®å¯¹è±¡
     */
    CodeFixedValueDO selectByPrimaryKey(String oid);
    /**
     * æ ¹æ®ä¸»é”®æ‰¹é‡èŽ·å–å¯¹è±¡
     * @param oids ä¸»é”®ï¼ŒåŒ…含单引号,但是不能超过1000
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<CodeFixedValueDO> selectByPrimaryKeys(String oids);
    /**
     * æ ¹æ®ä¸»é”®æ‰¹é‡æŸ¥è¯¢å¯¹è±¡
     * @param oids å¯¹è±¡ä¸»é”®,使用逗号分隔,但是不能超过1000
     * @return ä¸šåŠ¡å¯¹è±¡
     */
    List<CodeFixedValueDO> selectByPrimaryKeyCollection(Collection<String> oids);
    /**
     * æŸ¥è¯¢æ‰€æœ‰åˆ†ç±»
     * @return æŸ¥è¯¢ç»“æžœ
     */
    List<CodeFixedValueDO> selectAll();
    /**
     * æ›´æ–°å¯¹è±¡
     * @param record å›ºå®šç æ®µçš„码值数据对象
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO updateByPrimaryKey(CodeFixedValueDO record);
    /**
    * æ‰¹é‡æ›´æ–°
    * @param records å›ºå®šç æ®µçš„码值数据对象集合
    * @return æ‰§è¡Œç»“果行数
    */
    BatchCBO batchUpdate(List<CodeFixedValueDO> records);
    /**
     * æ ¹æ®æŸ¥è¯¢æ¡ä»¶æŸ¥è¯¢æ•°æ®
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶ï¼Œ
     * @param pageHelper åŒ…括分页,排序
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<CodeFixedValueDO> selectByCondition(Map<String,String> conditionMap, PageHelper pageHelper);
    /**
     * æ ¹æ®æŸ¥è¯¢æ¡ä»¶æ¥æŸ¥è¯¢æ€»æ•°
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @return æ€»æ•°
     */
    Long countByCondition(Map<String,String> conditionMap);
    /**
     * ä½¿ç”¨æŸ¥è¯¢å°è£…器来查询
     * @param queryWrapper æŸ¥è¯¢å°è£…器
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<CodeFixedValueDO> 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/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeKeyAttrRepeatRuleMapper.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodePhaseAttrMapper.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeResembleRuleMapper.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeRuleMapper.java
@@ -1,155 +1,30 @@
package com.vci.ubcs.code.mapper;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.ubcs.code.entity.CodeRuleDO;
import com.vci.web.pageModel.BatchCBO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.vci.ubcs.code.entity.CodeRule;
import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO;
import org.apache.ibatis.annotations.Param;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
 * ä¸»æ•°æ®ç¼–码规则数据操作层
 *
 * @author weidy
 * @author ludc
 * @date 2022-01-24
 */
public interface CodeRuleMapper {
public interface CodeRuleMapper extends BaseMapper<CodeRule> {
    /**
     * ä½¿ç”¨ä¸»é”®åˆ é™¤
     * @param oid æ•°æ®ä¸»é”®
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO deleteByPrimaryKey(String oid);
    /**
     * æ·»åŠ æ•°æ®
     * @param record ä¸»æ•°æ®ç¼–码规则数据对象
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO insert(CodeRuleDO record);
    /**
    * æ‰¹é‡æ·»åŠ æ•°æ®
    * @param records ä¸»æ•°æ®ç¼–码规则数据对象集合
    * @return æ‰§è¡Œç»“果数
    */
    BatchCBO batchInsert(List<CodeRuleDO> records);
    /**
     * æ ¹æ®ä¸»é”®æŸ¥è¯¢
     * @param oid æ•°æ®ä¸»é”®
     * @return æ•°æ®å¯¹è±¡
     */
    CodeRuleDO selectByPrimaryKey(String oid);
    /**
     * æ ¹æ®ä¸»é”®æ‰¹é‡èŽ·å–å¯¹è±¡
     * @param oids ä¸»é”®ï¼ŒåŒ…含单引号,但是不能超过1000
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<CodeRuleDO> selectByPrimaryKeys(String oids);
    /**
     * æ ¹æ®ä¸»é”®æ‰¹é‡æŸ¥è¯¢å¯¹è±¡
     * @param oids å¯¹è±¡ä¸»é”®,使用逗号分隔,但是不能超过1000
     * @return ä¸šåŠ¡å¯¹è±¡
     */
    List<CodeRuleDO> selectByPrimaryKeyCollection(Collection<String> oids);
    /**
     * ä½¿ç”¨ç¼–号集合批量查询对象
     * @param ids ç¼–号的集合
     * @return ä¸šåŠ¡å¯¹è±¡
     * è‡ªå®šä¹‰åˆ†é¡µ
     *
     * @param page
     * @param codeRule
     * @return
     */
    List<CodeRuleDO> selectByIdCollection(Collection<String> ids);
    List<CodeRule> selectCodeRulePage(IPage page,@Param("codeRule") CodeRuleVO codeRule);
    /**
     * æŸ¥è¯¢æ‰€æœ‰åˆ†ç±»
     * @return æŸ¥è¯¢ç»“æžœ
     */
    List<CodeRuleDO> selectAll();
    /**
     * æ›´æ–°å¯¹è±¡
     * @param record ä¸»æ•°æ®ç¼–码规则数据对象
     * @return æ‰§è¡Œç»“æžœ
     */
    BatchCBO updateByPrimaryKey(CodeRuleDO record);
    /**
    * æ‰¹é‡æ›´æ–°
    * @param records ä¸»æ•°æ®ç¼–码规则数据对象集合
    * @return æ‰§è¡Œç»“果行数
    */
    BatchCBO batchUpdate(List<CodeRuleDO> records);
    /**
     * æ ¹æ®æŸ¥è¯¢æ¡ä»¶æŸ¥è¯¢æ•°æ®
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶ï¼Œ
     * @param pageHelper åŒ…括分页,排序
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<CodeRuleDO> selectByCondition(Map<String,String> conditionMap, PageHelper pageHelper);
    /**
     * æ ¹æ®æŸ¥è¯¢æ¡ä»¶æ¥æŸ¥è¯¢æ€»æ•°
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @return æ€»æ•°
     */
    Long countByCondition(Map<String,String> conditionMap);
    /**
     * ä½¿ç”¨æŸ¥è¯¢å°è£…器来查询
     * @param queryWrapper æŸ¥è¯¢å°è£…器
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    List<CodeRuleDO> selectByWrapper(VciQueryWrapperForDO queryWrapper);
    /**
     * æ ¹æ®æŸ¥è¯¢å°è£…器来查询总数
     * @param queryWrapper æŸ¥è¯¢å°è£…器
     * @return æ€»æ•°
     */
    Long countByWrapper(VciQueryWrapperForDO queryWrapper);
    /**
     * æ ¹æ®ä¸»é”®èŽ·å–åç§°
     * @param oid ä¸»é”®
     * @return ä¸­æ–‡åç§°
     */
    String selectNameByOid(String oid);
    /**
     * æ‰¹é‡ä¿®æ”¹ç”Ÿå‘½å‘¨æœŸçš„状态
     * @param oids ä¸»é”®é›†åˆï¼Œä¸èƒ½å¤§äºŽ1000
     * @param lcStatus ç”Ÿå‘½å‘¨æœŸçš„值
     * @return æ‰§è¡Œçš„结果
     */
    long batchUpdateLcStatus(Collection<String> oids,  String lcStatus);
    /**
     * æ ¹æ®ä¸»é”®æ›´æ–°çŠ¶æ€
     * @param oid ä¸»é”®
     * @param lcStatus ç”Ÿå‘½å‘¨æœŸçŠ¶æ€
     * @return å—影响的行数
     */
    int updateLcStatus( String oid, String lcStatus);
    /**
     * æ‰¹é‡åˆ é™¤å¯¹è±¡
     * @param oids å¯¹è±¡çš„主键集合
     * @return å—影响的行数
     */
    BatchCBO batchDeleteByOids(Collection<String> oids);
    /**
     * åˆ é™¤æ•°æ®ä¸è¿›è¡ŒæŒä¹…化,转化为batchCBO
     * @param codeRule ç¼–码规则对象
     * @return å—影响的行数
     */
    BatchCBO delete4BatchCBO (CodeRuleDO codeRule);
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeSerialValueMapper.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeSynonymMapper.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeTemplatePhaseMapper.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/DockingDataMapper.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/DockingLogeMapper.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/DockingPreApplyDataInfoMapper.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/DockingPreApplyDataMapper.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/DockingPreAttrMappingMapper.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/DockingPreAttrRangeMapper.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/DockingTaskMapper.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/SysIntAuthorityMapper.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/SysIntBaseMapper.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/SysIntHeaderMapper.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/SysIntInfoMapper.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/SysIntParamMapper.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeBasicSecServiceI.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeButtonServiceI.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeClassifyProcessTempServiceI.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeClassifyServiceI.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeClassifyTempMapItemServiceI.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeClassifyTemplateAttrServiceI.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeClassifyTemplateButtonServiceI.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeClassifyTemplateMapServiceI.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeClassifyTemplateServiceI.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeClassifyValueServiceI.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeDuckingServiceI.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeDuckingSyncServiceI.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeFixedValueServiceI.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeKeyAttrRepeatRuleServiceI.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodePhaseAttrServiceI.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeResembleRuleServiceI.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeRuleServiceI.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeSerialAlgorithmServiceI.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeSynonymServiceI.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeTemplatePhaseServiceI.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/DockingPreApplyDataInfoServiceI.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/DockingPreApplyDataServiceI.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/DockingPreAttrMappingSeviceI.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeAllcodeService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,51 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill åº„骞 (smallchill@163.com)
 */
package com.vci.ubcs.code.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.vci.ubcs.code.entity.CodeAllcode;
import com.vci.ubcs.code.vo.pagemodel.CodeAllcodeVO;
import java.util.List;
/**
 * å…¨éƒ¨ç å€¼ æœåŠ¡ç±»
 *
 * @author ludc
 * @since 2023-04-03
 */
public interface ICodeAllcodeService extends IService<CodeAllcode> {
    /**
     * è‡ªå®šä¹‰åˆ†é¡µ
     *
     * @param page
     * @param CodeAllcode
     * @return
     */
    IPage<CodeAllcodeVO> selectCodeAllcodePage(IPage<CodeAllcodeVO> page, CodeAllcodeVO CodeAllcode);
    /**
     * ä½¿ç”¨æŸ¥è¯¢å°è£…器来查询
     * @param wrapper æŸ¥è¯¢å°è£…器
     * @return æ•°æ®å¯¹è±¡
     */
    List<CodeAllcode> selectByWrapper(Wrapper wrapper);
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeBasicSecService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
package com.vci.ubcs.code.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.vci.ubcs.code.entity.CodeBasicSec;
/**
 * å›ºå®šç æ®µçš„码值服务接口
 *
 * @author ludc
 * @date 2022-01-24
 */
public interface ICodeBasicSecService extends IService<CodeBasicSec> {
    /**
     * æ ¹æ®ç¼–码规则批量删除码段基本信息
     * @param codeRuleOid ç¼–码规则主键
     * @return æ‰§è¡Œç»“æžœ
     */
    boolean batchDeleteSecByCodeRuleOid(String codeRuleOid);
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
package com.vci.ubcs.code.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.vci.ubcs.code.entity.CodeClassify;
import java.util.List;
/**
 * ä¸»é¢˜åº“分类服务接口
 *
 * @author ludc
 * @date 2022-01-20
 */
public interface ICodeClassifyService extends IService<CodeClassify> {
    /**
     * ä½¿ç”¨æŸ¥è¯¢å°è£…器来查询
     * @param wrapper æŸ¥è¯¢å°è£…器
     * @return æ•°æ®å¯¹è±¡
     */
    List<CodeClassify> selectByWrapper(Wrapper wrapper);
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyValueService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
package com.vci.ubcs.code.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.vci.ubcs.code.entity.CodeClassifyValue;
/**
 * åˆ†ç±»ç æ®µçš„码值服务接口
 *
 * @author ludc
 * @date 2022-01-24
 */
public interface ICodeClassifyValueService extends IService<CodeClassifyValue> {
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeFixedValueService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
package com.vci.ubcs.code.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.vci.ubcs.code.entity.CodeFixedValue;
/**
 * å›ºå®šç æ®µçš„码值服务接口
 *
 * @author ludc
 * @date 2022-01-24
 */
public interface ICodeFixedValueService extends IService<CodeFixedValue> {
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeRuleService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,90 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill åº„骞 (smallchill@163.com)
 */
package com.vci.ubcs.code.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.vci.ubcs.code.dto.CodeRuleDTO;
import com.vci.ubcs.code.entity.CodeRule;
import com.vci.ubcs.com.vci.starter.exception.VciBaseException;
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO;
import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO;
import org.springblade.core.tool.api.R;
import java.util.Collection;
/**
 * ç¼–码规则 æœåŠ¡ç±»
 *
 * @author ludc
 * @since 2023-04-03
 */
public interface ICodeRuleService extends IService<CodeRule> {
    /**
     * è‡ªå®šä¹‰åˆ†é¡µ
     *
     * @param page
     * @param plCodeRule
     * @return
     */
    IPage<CodeRuleVO> selectPlCodeRulePage(IPage<CodeRuleVO> page, CodeRuleVO plCodeRule);
    /**
     * æ ¡éªŒç¼–码规则的状态是否可以编辑或删除
     * @param lcStatus ç¼–码规则
     * @return true表示可以编辑或删除,false表示不可以
     */
    boolean checkEditDelStatus(String lcStatus);
    /**
     * å¢žåŠ ä¸»æ•°æ®ç¼–ç è§„åˆ™
     * @param codeRuleDTO ä¸»æ•°æ®ç¼–码规则数据传输对象
     * @return æ‰§è¡Œç»“æžœ
     */
    Boolean addSave(CodeRuleDTO codeRuleDTO) throws VciBaseException;
    /**
     * ä¿®æ”¹ä¸»æ•°æ®ç¼–码规则
     * @param codeRuleDTO ä¸»æ•°æ®ç¼–码规则数据传输对象
     * @return æ‰§è¡Œç»“æžœ
     */
    Boolean editSave(CodeRuleDTO codeRuleDTO) throws VciBaseException;
    /**
     * åˆ é™¤ä¸»æ•°æ®ç¼–码规则
     * @param codeRuleDTO ä¸»æ•°æ®ç¼–码规则数据传输对象,oid和ts需要传输
     * @return åˆ é™¤ç»“果反馈::success:成功,fail:失败
     * @throws VciBaseException å‚数为空,被引用时抛出异常
     */
    R deleteCodeRule(CodeRuleDTO codeRuleDTO) throws VciBaseException;
    /**
     * æ£€éªŒç¼–码规则是否已经被使用
     * @param oid ç¼–码规则主键
     * @return true表示已经使用,false表示未被使用
     */
    boolean isAlreadyInUse(String oid);
    /**
     * æŸ¥çœ‹ä¸»æ•°æ®ç¼–码规则的使用范围
     * @param oid ç¼–码规则主键
     * @return ä¸»é¢˜åº“分类使用到该编码规则的所有集合
     */
    Collection<CodeClassifyVO> listUseRangeInCodeClassify(String oid);
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineServiceI.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmIOServiceI.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmProductCodeServiceI.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/SysIntAuthorityServiceI.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/SysIntBaseServiceI.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/SysIntInfoServiceI.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/UniversalInterfaceI.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeAllcodeServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,62 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill åº„骞 (smallchill@163.com)
 */
package com.vci.ubcs.code.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.vci.ubcs.code.entity.CodeAllcode;
import com.vci.ubcs.code.mapper.CodeAllcodeMapper;
import com.vci.ubcs.code.service.ICodeAllcodeService;
import com.vci.ubcs.code.vo.pagemodel.CodeAllcodeVO;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
 * å…¨éƒ¨ç å€¼ æœåŠ¡å®žçŽ°ç±»
 *
 * @author ludc
 * @since 2023-04-03
 */
@Service
public class CodeAllcodeServiceImpl extends ServiceImpl<CodeAllcodeMapper, CodeAllcode> implements ICodeAllcodeService {
    /**
     * æ•°æ®æ“ä½œå¯¹è±¡
     */
    @Resource
    private CodeAllcodeMapper codeAllcodeMapper;
    @Override
    public IPage<CodeAllcodeVO> selectCodeAllcodePage(IPage<CodeAllcodeVO> page, CodeAllcodeVO CodeAllcode) {
        return page.setRecords(baseMapper.selectCodeAllcodePage(page, CodeAllcode));
    }
    /**
     * ä½¿ç”¨æŸ¥è¯¢å°è£…器来查询
     * @param wrapper æŸ¥è¯¢å°è£…器
     * @return æ•°æ®å¯¹è±¡
     */
    @Override
    public List<CodeAllcode> selectByWrapper(Wrapper wrapper) {
        return this.codeAllcodeMapper.selectList(wrapper);
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java
@@ -1,840 +1,91 @@
package com.vci.ubcs.code.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.vci.frameworkcore.lcstatuspck.FrameworkDataLCStatus;
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.exception.VciBaseException;
import com.vci.starter.web.pagemodel.*;
import com.vci.starter.web.util.BeanUtilForVCI;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.wrapper.VciParentQueryOption;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.ubcs.code.constant.MdmBtmTypeConstant;
import com.vci.ubcs.code.dto.CodeBasicSecDTO;
import com.vci.ubcs.code.entity.CodeBasicSecDO;
import com.vci.ubcs.code.entity.CodeClassifyValueDO;
import com.vci.ubcs.code.entity.CodeFixedValueDO;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.vci.ubcs.code.entity.CodeBasicSec;
import com.vci.ubcs.code.entity.CodeClassifyValue;
import com.vci.ubcs.code.entity.CodeFixedValue;
import com.vci.ubcs.code.enumpack.CodeSecTypeEnum;
import com.vci.ubcs.code.lifecycle.CodeRuleLC;
import com.vci.ubcs.code.mapper.CodeBasicSecMapper;
import com.vci.ubcs.code.mapper.CodeClassifyValueMapper;
import com.vci.ubcs.code.mapper.CodeFixedValueMapper;
import com.vci.ubcs.code.service.CodeBasicSecServiceI;
import com.vci.ubcs.code.service.CodeClassifyValueServiceI;
import com.vci.ubcs.code.service.CodeFixedValueServiceI;
import com.vci.ubcs.code.service.CodeRuleServiceI;
import com.vci.ubcs.code.vo.pagemodel.CodeBasicSecVO;
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyValueVO;
import com.vci.ubcs.code.vo.pagemodel.CodeFixedValueVO;
import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO;
import com.vci.web.enumpck.OsCodeFillTypeEnum;
import com.vci.web.pageModel.BatchCBO;
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.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.core.tool.api.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import com.vci.ubcs.code.service.ICodeBasicSecService;
import com.vci.ubcs.com.vci.starter.web.util.VciBaseUtil;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import plm.bs.bom.clientobject.ClientBusinessObject;
import javax.annotation.Resource;
import java.util.*;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import static com.vci.frameworkcore.constant.FrameWorkLangCodeConstant.*;
/**
 * ç æ®µåŸºç¡€ä¿¡æ¯æœåŠ¡
 * ç æ®µåŸºç¡€ä¿¡æ¯æœåŠ¡æŽ¥å£
 *
 * @author weidy
 * @date 2022-01-24
 */
@Service
public class CodeBasicSecServiceImpl implements CodeBasicSecServiceI {
public class CodeBasicSecServiceImpl extends ServiceImpl<CodeBasicSecMapper, CodeBasicSec> implements ICodeBasicSecService {
    /**
     * æ—¥å¿—
     */
    private Logger logger = LoggerFactory.getLogger(getClass());
    @Resource
    private CodeBasicSecMapper codeBasicSecMapper;
    /**
     * æ•°æ®æ“ä½œå±‚
     */
    @Resource
    private CodeBasicSecMapper codeBasicSecMapper;
    /**
     * å›ºå®šç æ®µçš„码值数据操作层
     */
    @Resource
    private CodeFixedValueMapper fixedValueMapper;
    /**
     * ä¸šåŠ¡ç±»åž‹æ“ä½œçš„æœåŠ¡
     */
    @Autowired
    @Lazy
    private WebBoServiceI boService;
    /**
     * åˆ†ç±»ç æ®µçš„码值数据操作层
     */
    @Resource
    private CodeClassifyValueMapper codeClassifyValueMapper;
    /**
     * å¯¹è±¡çš„æ“ä½œ
     */
    @Autowired
    private RevisionModelUtil revisionModelUtil;
    /**
     * ä¸»æ•°æ®ç¼–码规则服务
     */
    @Autowired
    @Lazy
    private CodeRuleServiceI codeRuleService;
    /**
     * åˆ†ç±»ç æ®µçš„码值服务
     */
    @Autowired
    private CodeClassifyValueServiceI codeClassifyValueService;
    /**
     * åˆ†ç±»ç æ®µçš„码值数据操作层
     */
    @Resource
    private CodeClassifyValueMapper codeClassifyValueMapper;
    /**
     * å›ºå®šç æ®µçš„码值的服务
     */
    @Autowired
    private CodeFixedValueServiceI fixedValueService;
    /**
     * å›ºå®šç æ®µçš„码值数据操作层
     */
    @Resource
    private CodeFixedValueMapper fixedValueMapper;
    /**
     * ä¸Šå±‚分类码段的属性名称
     */
    private static final String PARENT_FIELD_NAME = "parentclassifysecoid";
    /**
     * ä¸Šçº§åˆ†ç±»ç å€¼çš„属性名称
     */
    private static final String PARENT_CLASSIFY_VALUE_FIELD_NAME = "parentClassifyValueOid";
    /**
     * å¯é€‰å¯è¾“服务
     */
    @Autowired
    private BdSelectInputCharServiceI charService;
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„码段基础信息
     *
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @param pageHelper   åˆ†é¡µå’ŒæŽ’序
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException æŸ¥è¯¢æ¡ä»¶å’Œåˆ†é¡µå‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    @Override
    public DataGrid<CodeBasicSecVO> gridCodeBasicSec(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException {
        if (pageHelper == null) {
            pageHelper = new PageHelper(-1);
        }
        pageHelper.addDefaultAsc("ordernum");
        if(!conditionMap.containsKey("pkCodeRule") || StringUtils.isBlank(conditionMap.get("pkCodeRule"))){
            return new DataGrid<>();
        }
        List<CodeBasicSecDO> doList = codeBasicSecMapper.(conditionMap, pageHelper);
        DataGrid<CodeBasicSecVO> dataGrid = new DataGrid<CodeBasicSecVO>();
        if (!CollectionUtils.isEmpty(doList)) {
            dataGrid.setData(codeBasicSecDO2VOs(doList));
            dataGrid.setTotal(VciBaseUtil.getInt(String.valueOf(codeBasicSecMapper.countByCondition(conditionMap))));
        }
        return dataGrid;
    }
    /**
     * æ‰¹é‡æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     *
     * @param codeBasicSecDOs æ•°æ®å¯¹è±¡åˆ—表
     * @return æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException å‚数为空或者不存在的时候会抛出异常
     */
    @Override
    public List<CodeBasicSecVO> codeBasicSecDO2VOs(Collection<CodeBasicSecDO> codeBasicSecDOs) throws VciBaseException {
        List<CodeBasicSecVO> voList = new ArrayList<CodeBasicSecVO>();
        if (!CollectionUtils.isEmpty(codeBasicSecDOs)) {
            for (CodeBasicSecDO s : codeBasicSecDOs) {
                CodeBasicSecVO vo = codeBasicSecDO2VO(s);
                if (vo != null) {
                    voList.add(vo);
                }
            }
        }
        return voList;
    }
    /**
     * æ‰¹é‡æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     *
     * @param codeBasicSecDOs æ•°æ®å¯¹è±¡åˆ—表
     * @param hasFixedValue æ˜¯å¦æœ‰å›ºå®šå€¼
     * @return æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException å‚数为空或者不存在的时候会抛出异常
     */
    @Override
    public List<CodeBasicSecVO> codeBasicSecDO2VOs(Collection<CodeBasicSecDO> codeBasicSecDOs, boolean hasFixedValue) throws VciBaseException {
        List<CodeBasicSecVO> voList = new ArrayList<CodeBasicSecVO>();
        if (!CollectionUtils.isEmpty(codeBasicSecDOs)) {
            for (CodeBasicSecDO s : codeBasicSecDOs) {
                CodeBasicSecVO vo = codeBasicSecDO2VO(s);
                if (vo != null) {
                    voList.add(vo);
                }
            }
        }
        if(hasFixedValue && !CollectionUtils.isEmpty(voList)){
            List<CodeBasicSecVO> fixedSecVOList = voList.stream().filter(s -> CodeSecTypeEnum.CODE_FIXED_SEC.getValue().equalsIgnoreCase(s.getSectype())).collect(Collectors.toList());
            if(!CollectionUtils.isEmpty(fixedSecVOList)){
                //查询固定码的码值
                Map<String, List<CodeFixedValueVO>> secValueMap = fixedValueService.listCodeFixedValueBySecOids(fixedSecVOList.stream().map(CodeBasicSecVO::getOid).collect(Collectors.toList()));
                voList.stream().forEach(vo->{
                    vo.setFixedValueVOList(secValueMap.getOrDefault(vo.getOid(),null));
                });
            }
        }
        return voList;
    }
    /**
     * æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     *
     * @param codeBasicSecDO æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException æ‹·è´å±žæ€§å‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    @Override
    public CodeBasicSecVO codeBasicSecDO2VO(CodeBasicSecDO codeBasicSecDO) throws VciBaseException {
        CodeBasicSecVO vo = new CodeBasicSecVO();
        if (codeBasicSecDO != null) {
            BeanUtilForVCI.copyPropertiesIgnoreCase(codeBasicSecDO, vo);
            //如果有lcstatus的类的话
            if (true) {
                //vo.setLcStatusText({lcStatusFullClassName}.getTextByValue(vo.getLcStatus()));
            }
        }
        return vo;
    }
    /**
     * å¢žåŠ ç æ®µåŸºç¡€ä¿¡æ¯
     *
     * @param codeBasicSecDTO ç æ®µåŸºç¡€ä¿¡æ¯æ•°æ®ä¼ è¾“对象
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException å‚数为空,唯一项,必输项不通过时会抛出异常
     */
    @Override
    public CodeBasicSecVO addSave(CodeBasicSecDTO codeBasicSecDTO) throws VciBaseException {
        VciBaseUtil.alertNotNull(codeBasicSecDTO, "需要添加的数据对象",codeBasicSecDTO.getPkCodeRule(),"编码规则的主键");
        CodeRuleVO ruleVO = codeRuleService.getObjectByOid(codeBasicSecDTO.getPkCodeRule());
        if(!CodeRuleLC.EDITING.getValue().equalsIgnoreCase(ruleVO.getLcStatus())){
            throw new VciBaseException("编码规则的状态不是【" + CodeRuleLC.EDITING.getText() + "】!不允许修改");
        }
        KeyValue attrKv = checkAttrNullableBySecType(codeBasicSecDTO);
        if (! "success".equals(attrKv.getKey())){
            throw new VciBaseException(attrKv.getValue() + "不能为空");
        }
    /**
     * æ ¹æ®ç¼–码规则批量删除码段基本信息
     * @param codeRuleOid ç¼–码规则主键
     * @return æ‰§è¡Œç»“æžœ
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean batchDeleteSecByCodeRuleOid(String codeRuleOid) {
        VciBaseUtil.alertNotNull(codeRuleOid,"编码规则主键");
        // 1、通过pkcoderule作为条件,先查询要删除基础码段
        List<CodeBasicSec> deleteList = this.codeBasicSecMapper.selectList(Wrappers.<CodeBasicSec>query().eq("pkcoderule", codeRuleOid));
        if (CollectionUtils.isEmpty(deleteList)){
            return true;
        }
        // 2、再删除基础码段
        boolean deletFlag = codeBasicSecMapper.deleteBatchIds(deleteList.stream().map(CodeBasicSec::getOid).collect(Collectors.toSet())) > 0;
        // 3、再根据删除固定码段,丛查询出来的基础码段中过滤出包含固定码段的记录
        List<CodeBasicSec> fixedSecList = deleteList.stream().filter(sec -> {
            return CodeSecTypeEnum.CODE_FIXED_SEC.getValue().equals(sec.getSecType());
        }).collect(Collectors.toList());
        if (!CollectionUtils.isEmpty(fixedSecList)){
            // å°†è¦ä½œä¸ºåˆ é™¤æ¡ä»¶çš„值放在一个集合里面
            Set<String> fixedSecOidSet = fixedSecList.stream().map(CodeBasicSec::getOid).collect(Collectors.toSet());
            // é€šè¿‡å¤–键进行查询
            List<CodeFixedValue> fixedValueS = fixedValueMapper.selectList(Wrappers.<CodeFixedValue>query().lambda().in(CodeFixedValue::getCodeFixedSecOid,fixedSecOidSet));
            // æ ¹æ®æŸ¥è¯¢å‡ºæ¥çš„id执行固定码段执行删除
            deletFlag = fixedValueMapper.deleteBatchIds(fixedValueS.stream().map(CodeFixedValue::getOid).collect(Collectors.toSet()))>0;
        }
        // 4、再删除分类码段
        List<CodeBasicSec> classifySecList = deleteList.stream().filter(sec -> {
            return CodeSecTypeEnum.CODE_CLASSIFY_SEC.getValue().equals(sec.getSecType());
        }).collect(Collectors.toList());
        if (!CollectionUtils.isEmpty(classifySecList)){
            // å°†è¦ä½œä¸ºåˆ é™¤æ¡ä»¶çš„值放在一个集合里面
            Set<String> classifySecOidSet = classifySecList.stream().map(CodeBasicSec::getOid).collect(Collectors.toSet());
            // é€šè¿‡å¤–键进行查询
            List<CodeClassifyValue> fixedValueS = codeClassifyValueMapper.selectList(Wrappers.<CodeClassifyValue>query().lambda().in(CodeClassifyValue::getCodeClassifySecOid,classifySecOidSet));
            // æ ¹æ®æŸ¥è¯¢å‡ºæ¥çš„主键id执行固定码段执行删除
            deletFlag = fixedValueMapper.deleteBatchIds(fixedValueS.stream().map(CodeClassifyValue::getOid).collect(Collectors.toSet()))>0;
        }
        return deletFlag;
    }
        //将DTO转换为DO
        CodeBasicSecDO codeBasicSecDO = new CodeBasicSecDO();
        BeanUtilForVCI.copyPropertiesIgnoreCase(codeBasicSecDTO, codeBasicSecDO);
        //排序号,默认等于当前已有的数量加1
        Map<String,String> conditionMap = new HashMap<>();
        conditionMap.put("pkCodeRule",ruleVO.getOid());
        Long total = codeBasicSecMapper.countByCondition(conditionMap);
        if(total == null){
            total = 0L;
        }
        codeBasicSecDO.setOrderNum(total.intValue() + 1);
        //补位的时候,要控制补位字符
        if((OsCodeFillTypeEnum.LEFT.getValue().equalsIgnoreCase(codeBasicSecDO.getCodeFillType())
         || OsCodeFillTypeEnum.RIGHT.getValue().equalsIgnoreCase(codeBasicSecDO.getCodeFillType()))
                && StringUtils.isBlank(codeBasicSecDO.getCodeFillSeparator())){
            throw new VciBaseException("当补位方式为左补位或者右补位的时候,补位字符不能为空");
        }
        //引用码段的时候,需要判断参照的信息是否正确
        if(CodeSecTypeEnum.CODE_REFER_SEC.getValue().equalsIgnoreCase(codeBasicSecDO.getSecType())){
            if(StringUtils.isBlank(codeBasicSecDO.getReferConfig())){
                throw new VciBaseException("引用码段的时候,需要填写 å‚照配置 çš„内容");
            }
            try{
                JSONObject.parseObject(codeBasicSecDO.getReferConfig(), UIFormReferVO.class);
            }catch (Throwable e){
                throw new VciBaseException("引用码段的时候,参照配置的内容的格式不正确,",new String[0],e);
            }
        }
        codeBasicSecMapper.insert(codeBasicSecDO);
        SessionInfo sessionInfo = VciBaseUtil.getCurrentUserSessionInfo();
        if(StringUtils.isNotBlank(codeBasicSecDO.getCodeFillSeparator())){
            charService.save(MdmBtmTypeConstant.CODE_BASIC_SEC,"codefileseparator",codeBasicSecDO.getCodeFillSeparator(),sessionInfo);
        }
        return codeBasicSecDO2VO(codeBasicSecDO);
    }
    /**
     * ä¿®æ”¹ç æ®µåŸºç¡€ä¿¡æ¯
     *
     * @param codeBasicSecDTO ç æ®µåŸºç¡€ä¿¡æ¯æ•°æ®ä¼ è¾“对象
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException å‚数为空,唯一项,必输项不通过时会抛出异常
     */
    @Override
    public CodeBasicSecVO editSave(CodeBasicSecDTO codeBasicSecDTO) throws VciBaseException {
        VciBaseUtil.alertNotNull(codeBasicSecDTO, "需要添加的数据对象");
        KeyValue attrKv = checkAttrNullableBySecType(codeBasicSecDTO);
        if (! "success".equals(attrKv.getKey())){
            throw new VciBaseException(attrKv.getValue() + "不能为空");
        }
        //将DTO转换为DO
        CodeBasicSecDO codeBasicSecDO = selectByOid(codeBasicSecDTO.getOid());
        boolean status = codeRuleService.checkEditDelStatus(codeRuleService.getObjectByOid(codeBasicSecDO.getPkCodeRule()).getLcStatus());
        if (!status){
            //返回错误信息
            throw new VciBaseException("编码规则不允许编辑或删除!");
        } else {
            //补位的时候,要控制补位字符
            if((OsCodeFillTypeEnum.LEFT.getValue().equalsIgnoreCase(codeBasicSecDO.getCodeFillType())
                    || OsCodeFillTypeEnum.RIGHT.getValue().equalsIgnoreCase(codeBasicSecDO.getCodeFillType()))
                    && StringUtils.isBlank(codeBasicSecDO.getCodeFillSeparator())){
                throw new VciBaseException("当补位方式为左补位或者右补位的时候,补位字符不能为空");
            }
            //引用码段的时候,需要判断参照的信息是否正确
            if(CodeSecTypeEnum.CODE_REFER_SEC.getValue().equalsIgnoreCase(codeBasicSecDO.getSecType())){
                if(StringUtils.isBlank(codeBasicSecDO.getReferConfig())){
                    throw new VciBaseException("引用码段的时候,需要填写 å‚照配置 çš„内容");
                }
                try{
                    JSONObject.parseObject(codeBasicSecDO.getReferConfig(), UIFormReferVO.class);
                }catch (Throwable e){
                    throw new VciBaseException("引用码段的时候,参照配置的内容的格式不正确,",new String[0],e);
                }
            }
            revisionModelUtil.copyFromDTOIgnore(codeBasicSecDTO, codeBasicSecDO);
            codeBasicSecMapper.updateByPrimaryKey(codeBasicSecDO);
            SessionInfo sessionInfo = VciBaseUtil.getCurrentUserSessionInfo();
            if(StringUtils.isNotBlank(codeBasicSecDO.getCodeFillSeparator())){
                charService.save(MdmBtmTypeConstant.CODE_BASIC_SEC,"codefileseparator",codeBasicSecDO.getCodeFillSeparator(),sessionInfo);
            }
        }
        return codeBasicSecDO2VO(codeBasicSecDO);
    }
    /**
     * æ ¡éªŒæ˜¯å¦å¯ä»¥åˆ é™¤ï¼Œå¦‚果存在下级,并且下级有数据引用则不能删除
     *
     * @param codeBasicSecDTO æ•°æ®ä¼ è¾“对象
     * @param codeBasicSecDO  æ•°æ®åº“中的数据对象
     * @return success为true为可以删除,false表示有数据引用,obj为true表示有下级
     */
    private BaseResult checkIsCanDeleteForDO(CodeBasicSecDTO codeBasicSecDTO, CodeBasicSecDO codeBasicSecDO) {
        boService.checkTs(codeBasicSecDTO);
        if (!checkIsLinked(null, codeBasicSecDO.getOid())) {
            return BaseResult.success();
        } else {
            return BaseResult.fail(DATA_LINKED_NOT_DELETE, new String[]{""});
        }
    }
    /**
     * æ ¡éªŒæ˜¯å¦è¢«å¼•用
     *
     * @param codeRuleOid     ç¼–码规则主键
     * @param codeBasicSecOid ç¼–码基础信息主键
     * @return true表示已被引用,false表示未被引用
     * @throws VciBaseException è¢«å¼•用的时候会抛出异常
     */
    private boolean checkIsLinked(String codeRuleOid, String codeBasicSecOid) throws VciBaseException {
        boolean flag = true;
        if (StringUtils.isNotBlank(codeRuleOid)) {
            boolean status = codeRuleService.checkEditDelStatus(codeRuleService.getObjectByOid(codeRuleOid).getLcStatus());
            if (!status){
                return true;
            }
            boolean alreadyInUse = codeRuleService.isAlreadyInUse(codeRuleOid);
            if (!alreadyInUse){
               flag = false;
            }
        } else {
            boolean status = codeRuleService.checkEditDelStatus(codeRuleService.getObjectByOid(codeBasicSecMapper.selectByPrimaryKey(codeBasicSecOid).getPkCodeRule()).getLcStatus());
            if (!status){
                return true;
            }
            boolean alreadyInUse = codeRuleService.isAlreadyInUse(codeBasicSecMapper.selectByPrimaryKey(codeBasicSecOid).getPkCodeRule());
            if (!alreadyInUse){
                flag = false;
            }
        }
        return flag;
    }
    /**
     * åˆ é™¤ç æ®µåŸºç¡€ä¿¡æ¯
     *
     * @param codeBasicSecDTO ç æ®µåŸºç¡€ä¿¡æ¯æ•°æ®ä¼ è¾“对象,oid和ts需要传输
     * @return åˆ é™¤ç»“果反馈::success:成功,fail:失败
     * @throws VciBaseException å‚数为空,被引用时抛出异常
     */
    @Override
    public BaseResult deleteCodeBasicSec(CodeBasicSecDTO codeBasicSecDTO) throws VciBaseException {
        VciBaseUtil.alertNotNull(codeBasicSecDTO, "码段基础信息数据对象", codeBasicSecDTO.getOid(), "码段基础信息的主键");
        return deleteCodeBasicSecByPrimaryKey(codeBasicSecDTO.getOid());
    }
    /**
     * ä¸»é”®åˆ é™¤ç æ®µåŸºç¡€ä¿¡æ¯
     *
     * @param oid ç æ®µåŸºç¡€ä¿¡æ¯ä¸»é”®
     * @return åˆ é™¤ç»“果反馈::success:成功,fail:失败
     * @throws VciBaseException å‚数为空,被引用时抛出异常
     */
    @Override
    public BaseResult deleteCodeBasicSecByPrimaryKey(String oid) throws VciBaseException {
        CodeBasicSecDO codeBasicSecDO = selectByOid(oid);
        boolean isLinked = checkIsLinked(codeBasicSecDO.getPkCodeRule(), oid);
        if (isLinked) {
            return BaseResult.fail("编码规则已被引用,不允许编辑或删除");
        }
        Map<String,String> conditionMap = new HashMap<>();
        //执行删除操作
        WebUtil.setPersistence(false);
        BatchCBO batchCBO = codeBasicSecMapper.deleteByPrimaryKey(oid);
        Set<ClientBusinessObject> deleteSet = new HashSet<>();
        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);
            List<CodeFixedValueDO> fixedValueDOS = fixedValueMapper.selectByWrapper(wrapper);
            BatchCBO valueCBO = fixedValueMapper.batchDeleteByOids(fixedValueDOS.stream().map(CodeFixedValueDO::getOid).collect(Collectors.toSet()));
            deleteSet.addAll(valueCBO.getDeleteCbos());
        }
        if (CodeSecTypeEnum.CODE_CLASSIFY_SEC.getValue().equals(codeBasicSecDO.getSecType())){
            conditionMap.put("codeclassifysecoid",codeBasicSecDO.getOid());
            VciQueryWrapperForDO wrapper = new VciQueryWrapperForDO(conditionMap, CodeClassifyValueDO.class);
            List<CodeClassifyValueDO> classifyValueDOS = codeClassifyValueMapper.selectByWrapper(wrapper);
            if(!CollectionUtils.isEmpty(classifyValueDOS)) {
                BatchCBO valueCBO = codeClassifyValueMapper.batchDeleteByOids(classifyValueDOS.stream().map(CodeClassifyValueDO::getOid).collect(Collectors.toSet()));
                deleteSet.addAll(valueCBO.getDeleteCbos());
            }
        }
        batchCBO.setDeleteCbos(deleteSet);
        WebUtil.setPersistence(true);
        boService.persistenceBatch(batchCBO);
        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 CodeBasicSecVO getObjectByOid(String oid) throws VciBaseException {
        return codeBasicSecDO2VO(selectByOid(oid));
    }
    /**
     * ä¸»é”®æŸ¥è¯¢æ•°æ®å¯¹è±¡
     *
     * @param oid ä¸»é”®
     * @return æ•°æ®å¯¹è±¡
     * @throws VciBaseException å‚数为空,并且数据不存在的时候会抛出异常
     */
    private CodeBasicSecDO selectByOid(String oid) throws VciBaseException {
        VciBaseUtil.alertNotNull(oid, "主键");
        CodeBasicSecDO codeBasicSecDO = codeBasicSecMapper.selectByPrimaryKey(oid.trim());
        if (codeBasicSecDO == null || StringUtils.isBlank(codeBasicSecDO.getOid())) {
            throw new VciBaseException(DATA_OID_NOT_EXIST);
        }
        return codeBasicSecDO;
    }
    /**
     * ä¸»é”®æ‰¹é‡èŽ·å–ç æ®µåŸºç¡€ä¿¡æ¯
     *
     * @param oidCollections ä¸»é”®é›†åˆï¼Œä½†æ˜¯å—性能影响,建议一次查询不超过10000个
     * @return ç æ®µåŸºç¡€ä¿¡æ¯æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException æŸ¥è¯¢å‡ºçŽ°å¼‚å¸¸æ—¶ä¼šæŠ›å‡º
     */
    @Override
    public Collection<CodeBasicSecVO> listCodeBasicSecByOids(Collection<String> oidCollections) throws VciBaseException {
        VciBaseUtil.alertNotNull(oidCollections, "数据对象主键集合");
        List<CodeBasicSecDO> codeBasicSecDOList = listCodeBasicSecDOByOidCollections(oidCollections);
        return codeBasicSecDO2VOs(codeBasicSecDOList);
    }
    /**
     * ä½¿ç”¨ä¸»é”®é›†åˆæŸ¥è¯¢æ•°æ®å¯¹è±¡
     *
     * @param oidCollections ä¸»é”®çš„集合
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    private List<CodeBasicSecDO> listCodeBasicSecDOByOidCollections(Collection<String> oidCollections) {
        List<CodeBasicSecDO> codeBasicSecDOList = new ArrayList<CodeBasicSecDO>();
        if (!CollectionUtils.isEmpty(oidCollections)) {
            Collection<Collection<String>> oidCollectionsList = VciBaseUtil.switchCollectionForOracleIn(oidCollections);
            for (Collection<String> oids : oidCollectionsList) {
                List<CodeBasicSecDO> tempDOList = codeBasicSecMapper.selectByPrimaryKeyCollection(oids);
                if (!CollectionUtils.isEmpty(tempDOList)) {
                    codeBasicSecDOList.addAll(tempDOList);
                }
            }
        }
        return codeBasicSecDOList;
    }
    /**
     * å‚照码段基础信息列表
     *
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @param pageHelper   åˆ†é¡µå’ŒæŽ’序
     * @return ç æ®µåŸºç¡€ä¿¡æ¯æ˜¾ç¤ºå¯¹è±¡åˆ—表,生效的内容
     * @throws VciBaseException æŸ¥è¯¢æ¡ä»¶å’Œåˆ†é¡µå‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    @Override
    public DataGrid<CodeBasicSecVO> refDataGridCodeBasicSec(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException {
        if (conditionMap == null) {
            conditionMap = new HashMap<String, String>();
        }
        return gridCodeBasicSec(conditionMap, pageHelper);
    }
    /**
     * å…‹éš†ç æ®µä¿¡æ¯
     *
     * @param oidList æºç æ®µä¿¡æ¯ä¸»é”®é›†åˆ
     * @param pkCodeRule ç›®æ ‡ç¼–码规则
     * @return å…‹éš†ç»“果反馈::success:成功,fail:失败
     */
    @Override
    public BaseResult cloneCodeBasicSec(List<String> oidList, String pkCodeRule) {
        boolean isLinked = checkIsLinked(pkCodeRule,null);
        if (isLinked) {
            return BaseResult.fail("编码规则已被引用,不允许编辑或删除");
        }
        List<CodeBasicSecDO> createList = new ArrayList<>();
        List<CodeBasicSecDO> basicSecDOS = codeBasicSecMapper.selectByPrimaryKeyCollection(oidList);
        basicSecDOS.forEach(sec -> {
            CodeBasicSecDO newSecDO = new CodeBasicSecDO();
            BeanUtilForVCI.copyPropertiesIgnoreCase(sec,newSecDO);
            newSecDO.setOid("");
            newSecDO.setNameOid("");
            newSecDO.setRevisionOid("");
            newSecDO.setId(newSecDO.getId() + "_copy");
            newSecDO.setName(newSecDO.getName() + "_copy");
            newSecDO.setPkCodeRule(pkCodeRule);
            createList.add(newSecDO);
        });
        codeBasicSecMapper.batchInsert(createList);
        return BaseResult.success();
    }
    /**
     * æ ¹æ®ç æ®µåˆ†ç±»çš„类型判断属性是否是空的
     *
     * @param codeBasicSecDTO ç æ®µåŸºç¡€ä¿¡æ¯æ•°æ®ä¼ è¾“对象
     * @return æœ‰ç©ºçš„则传key-属性名 value-字段含义,没有空的则传 key-success value-true
     */
    @Override
    public KeyValue checkAttrNullableBySecType(CodeBasicSecDTO codeBasicSecDTO) {
        VciBaseUtil.alertNotNull(codeBasicSecDTO.getSectype(), "码段分类");
        String secType = codeBasicSecDTO.getSectype();
        HashMap<String, String> attrMap = JSONObject.parseObject(JSONObject.toJSONString(codeBasicSecDTO), HashMap.class);
        Map<String, String> notNullableAttr = getNotNullableAttr(secType);
        if (notNullableAttr == null) {
            throw new VciBaseException("码段分类填写出错,请查验后重试");
        }
        for (String key : notNullableAttr.keySet()) {
            if (StringUtils.isBlank(WebUtil.getStringValueFromObject(attrMap.get(key)))) {
                KeyValue kv = new KeyValue();
                kv.setKey(key);
                kv.setValue(notNullableAttr.get(key));
                return kv;
            }
        }
        KeyValue kv = new KeyValue();
        kv.setKey("success");
        kv.setValue("true");
        return kv;
    }
    /**
     * ä½¿ç”¨è§„则的主键获取对应的码段内容
     *
     * @param ruleOid è§„则的内容
     * @return ç æ®µçš„内容
     */
    @Override
    public List<CodeBasicSecVO> listCodeBasicSecByRuleOid(String ruleOid) {
        if(StringUtils.isBlank(ruleOid)){
            return new ArrayList<>();
        }
        Map<String,String> conditionMap = new HashMap<>();
        conditionMap.put("pkCodeRule",ruleOid);
        PageHelper pageHelper = new PageHelper(-1);
        pageHelper.addDefaultAsc("ordernum");
        List<CodeBasicSecDO> secDOList = codeBasicSecMapper.selectByCondition(conditionMap, pageHelper);
        return codeBasicSecDO2VOs(secDOList,true);
    }
    /**
     * ä½¿ç”¨è§„则的主键获取对应的码段的内容
     *
     * @param ruleCollection è§„则主键集合
     * @return ç æ®µçš„内容
     */
    @Override
    public List<CodeBasicSecVO> listCodeBasicSecByRuleOids(Collection<String> ruleCollection) {
        if(CollectionUtils.isEmpty(ruleCollection)){
            return new ArrayList<>();
        }
        List<CodeBasicSecDO> secDOList = new CopyOnWriteArrayList<>();
        SessionInfo sessionInfo = VciBaseUtil.getCurrentUserSessionInfo();
        VciBaseUtil.switchCollectionForOracleIn(ruleCollection).parallelStream().forEach(ruleOids->{
            WebUtil.setCurrentUserSessionInfo(sessionInfo);
            Map<String,String> conditionMap = new HashMap<>();
            conditionMap.put("pkcoderule", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(ruleOids.toArray(new String[0])) + ")");
            PageHelper pageHelper = new PageHelper(-1);
            pageHelper.addDefaultAsc("ordernum");
            List<CodeBasicSecDO> tempSecDOs = codeBasicSecMapper.selectByCondition(conditionMap, pageHelper);
            if(!CollectionUtils.isEmpty(tempSecDOs)){
                secDOList.addAll(tempSecDOs);
            }
        });
        return codeBasicSecDO2VOs(secDOList);
    }
    /**
     * å‚照分类的码段
     *
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶ï¼Œå¿…须要有pkCodeRule
     * @param pageHelper   åˆ†é¡µçš„对象
     * @return ç æ®µçš„内容
     */
    @Override
    public DataGrid<CodeBasicSecVO> refDataGridClassifySec(Map<String, String> conditionMap, PageHelper pageHelper) {
        if(CollectionUtils.isEmpty(conditionMap) || !conditionMap.containsKey("pkCodeRule")){
            return new DataGrid<>();
        }
        conditionMap.put("secType",CodeSecTypeEnum.CODE_CLASSIFY_SEC.getValue());
        return refDataGridCodeBasicSec(conditionMap,pageHelper);
    }
    /**
     * æ ¹æ®ç æ®µç±»åž‹èŽ·å–ä¸å¯ä¸ºç©ºçš„å­—æ®µ
     *
     * @param secType ç æ®µç±»åž‹
     * @return ä¸å¯ä¸ºç©ºçš„字段集合
     */
    private Map<String, String> getNotNullableAttr(String secType) {
        Map<String, String> attrMap = new HashMap<>();
        if (CodeSecTypeEnum.CODE_ATTR_SEC.getValue().equalsIgnoreCase(secType)) {
            attrMap.put("name", "属性码段名称");
        } else if (CodeSecTypeEnum.CODE_DATE_SEC.getValue().equalsIgnoreCase(secType)) {
            attrMap.put("name", "日期码段名称");
            attrMap.put("codeDateFormatStr", "日期格式");
        } else if (CodeSecTypeEnum.CODE_FIXED_SEC.getValue().equalsIgnoreCase(secType)) {
            attrMap.put("name", "固定码段名称");
            attrMap.put("codeSecLengthType", "码段长度类型");
            attrMap.put("codeSecLength", "码段的长度");
        } else if (CodeSecTypeEnum.CODE_LEVEL_SEC.getValue().equalsIgnoreCase(secType)) {
            attrMap.put("name", "层级码段名称");
            attrMap.put("codeLevelType", "层级类型");
            attrMap.put("valueCutType", "字符截取类型");
        } else if (CodeSecTypeEnum.CODE_REFER_SEC.getValue().equalsIgnoreCase(secType)) {
            attrMap.put("name", "引用码段名称");
        } else if (CodeSecTypeEnum.CODE_SERIAL_SEC.getValue().equalsIgnoreCase(secType)) {
            attrMap.put("name", "流水码段名称");
            attrMap.put("codeSecLength", "码段的长度");
            attrMap.put("codeFillType", "编码补位方式");
            attrMap.put("codeFillLength", "填充长度");
            attrMap.put("codeFillLimit", "流水上限");
            attrMap.put("codeFillFlag", "流水是否补码");
        } else if (CodeSecTypeEnum.CODE_VARIABLE_SEC.getValue().equalsIgnoreCase(secType)) {
            attrMap.put("name", "可变码段名称");
            attrMap.put("codeSecLength", "码段的长度");
            attrMap.put("codeFillType", "编码补位方式");
        } else if (CodeSecTypeEnum.CODE_CLASSIFY_SEC.getValue().equalsIgnoreCase(secType)) {
            attrMap.put("name", "分类码段名称");
            attrMap.put("codeSecLengthType", "码段长度类型");
            attrMap.put("codeSecLength", "码段的长度");
        } else {
            attrMap = null;
        }
        return attrMap;
    }
    /**
     * æŸ¥è¯¢ç›®æ ‡åˆ†ç±»ç æ®µæ‰€åœ¨çš„æ ‘结构
     *
     * @param oid ç›®æ ‡åˆ†ç±»ç æ®µä¸»é”®
     * @return åˆ†ç±»ç æ®µæ ‘结构
     */
    @Override
    public List<Tree> gridCodeClassifySecTree(String oid) {
        VciParentQueryOption queryOption = new VciParentQueryOption(PARENT_FIELD_NAME);
        queryOption.setfOid(oid);
        queryOption.setLinkTypeFlag(false);
        queryOption.setHasSelf(true);
        VciQueryWrapperForDO wrapper = new VciQueryWrapperForDO(CodeBasicSecDO.class);
        wrapper.childQueryParent(queryOption);
        List<CodeBasicSecDO> doList = codeBasicSecMapper.selectByWrapper(wrapper);
        List<String> secOid = new ArrayList<>();
        doList.forEach(o -> secOid.add(o.getOid()));
        List<CodeClassifyValueVO> valueVOs = (List<CodeClassifyValueVO>) codeClassifyValueService.listCodeClassifyValueByOids(secOid);
        TreeQueryObject treeQueryObject = new TreeQueryObject();
        treeQueryObject.setMultipleSelect(false);
        treeQueryObject.setShowCheckBox(false);
        treeQueryObject.setQueryAllLevel(false);
        treeQueryObject.setValueField("oid");
        treeQueryObject.setTextField("name");
        treeQueryObject.setQueryAllRev(false);
        TreeWrapperOptions treeWrapperOptions = new TreeWrapperOptions(PARENT_CLASSIFY_VALUE_FIELD_NAME);
        treeWrapperOptions.copyFromTreeQuery(treeQueryObject);
        return revisionModelUtil.doList2Trees(valueVOs,treeWrapperOptions,(CodeClassifyValueVO s) ->{
            //可以在这里处理树节点的显示
            return s.getId() + " " + s.getName() + (FrameworkDataLCStatus.DISABLED.getValue().equalsIgnoreCase(s
                    .getLcStatus()) ? (" ã€åœç”¨ã€‘ ") : "");
        });
    }
    /**
     * æ ¹æ®ç¼–码规则批量删除码段基本信息
     * @param codeRuleOid ç¼–码规则主键
     * @return æ‰§è¡Œç»“æžœ
     */
    @Override
    public BatchCBO batchDeleteSecByCodeRuleOid(String codeRuleOid) {
        VciBaseUtil.alertNotNull(codeRuleOid,"编码规则主键");
        Map<String,String> conditionMap = new HashMap<>();
        conditionMap.put("pkcoderule",codeRuleOid);
        VciQueryWrapperForDO wrapper = new VciQueryWrapperForDO(conditionMap,CodeBasicSecDO.class);
        List<CodeBasicSecDO> deleteList = codeBasicSecMapper.selectByWrapper(wrapper);
        if (CollectionUtils.isEmpty(deleteList)){
            return new BatchCBO();
        }
        BatchCBO batchCBO = codeBasicSecMapper.batchDeleteByOids(deleteList.stream().map(CodeBasicSecDO::getOid).collect(Collectors.toSet()));
        Set<ClientBusinessObject> deleteSet = new HashSet<>();
        deleteSet.addAll(batchCBO.getDeleteCbos());
        List<CodeBasicSecDO> fixedSecList = deleteList.stream().filter(sec -> {
            return CodeSecTypeEnum.CODE_FIXED_SEC.getValue().equals(sec.getSecType());
        }).collect(Collectors.toList());
        List<CodeBasicSecDO> classifySecList = deleteList.stream().filter(sec -> {
            return CodeSecTypeEnum.CODE_CLASSIFY_SEC.getValue().equals(sec.getSecType());
        }).collect(Collectors.toList());
        Set<String> fixedSecOidSet = fixedSecList.stream().map(CodeBasicSecDO::getOid).collect(Collectors.toSet());
        Set<String> classifySecOidSet = classifySecList.stream().map(CodeBasicSecDO::getOid).collect(Collectors.toSet());
        if (!CollectionUtils.isEmpty(fixedSecOidSet)){
            StringBuilder sb = new StringBuilder();
            fixedSecOidSet.stream().forEach(oid -> {
                sb.append("'").append(oid).append("',");
            });
            String inSql = sb.toString().substring(0,sb.toString().length()-1);
            VciQueryWrapperForDO wrapperForValue = new VciQueryWrapperForDO(null,CodeFixedValueDO.class);
            PageHelper ph = new PageHelper();
            ph.setLimit(-1);
            wrapperForValue.in("codefixedsecoid",inSql);
            List<CodeFixedValueDO> fixedValueDOS = fixedValueMapper.selectByWrapper(wrapperForValue);
            BatchCBO fixedCBO = fixedValueMapper.batchDeleteByOids(fixedValueDOS.stream().map(CodeFixedValueDO::getOid).collect(Collectors.toSet()));
            deleteSet.addAll(fixedCBO.getDeleteCbos());
        }
        if (!CollectionUtils.isEmpty(classifySecOidSet)){
            StringBuilder sb = new StringBuilder();
            classifySecOidSet.stream().forEach(oid -> {
                sb.append("'").append(oid).append("',");
            });
            String inSql = sb.toString().substring(0,sb.toString().length()-1);
            VciQueryWrapperForDO wrapperForValue = new VciQueryWrapperForDO(null,CodeClassifyValueDO.class);
            PageHelper ph = new PageHelper();
            ph.setLimit(-1);
            wrapperForValue.in("codeclassifysecoid",inSql);
            List<CodeClassifyValueDO> classifyValueDOS = codeClassifyValueMapper.selectByWrapper(wrapperForValue);
            BatchCBO fixedCBO = codeClassifyValueMapper.batchDeleteByOids(classifyValueDOS.stream().map(CodeClassifyValueDO::getOid).collect(Collectors.toSet()));
            deleteSet.addAll(fixedCBO.getDeleteCbos());
        }
        batchCBO.setDeleteCbos(deleteSet);
        return batchCBO;
    }
    /**
     * ä¸Šç§»
     *
     * @param oid ä¸»é”®
     */
    @Override
    public void upOrderNum(String oid) {
        CodeBasicSecDO secDO = selectByOid(oid);
        BatchCBO batchCBO = new BatchCBO();
        WebUtil.setPersistence(false);
        if(secDO.getOrderNum() >1){
            //等于1的时候不能上移了
            //找比自己小的
            Map<String,String> conditionMap = new HashMap<>();
            conditionMap.put("pkCodeRule",secDO.getPkCodeRule());
            conditionMap.put("ordernum",String.valueOf(secDO.getOrderNum()-1));
            List<CodeBasicSecDO> lastSecDOs = codeBasicSecMapper.selectByCondition(conditionMap,new PageHelper(-1));
            if(!CollectionUtils.isEmpty(lastSecDOs)){
                CodeBasicSecDO lastSec = lastSecDOs.get(0);
                lastSec.setOrderNum(lastSec.getOrderNum()+1);
                batchCBO.copyFromOther(codeBasicSecMapper.updateByPrimaryKey(lastSec));
            }
            secDO.setOrderNum(secDO.getOrderNum()-1);
            batchCBO.copyFromOther(codeBasicSecMapper.updateByPrimaryKey(secDO));
        }
        WebUtil.setPersistence(true);
        boService.persistenceBatch(batchCBO);
    }
    /**
     * ä¸‹ç§»
     *
     * @param oid ä¸»é”®
     */
    @Override
    public void downOrderNum(String oid) {
        CodeBasicSecDO secDO = selectByOid(oid);
        BatchCBO batchCBO = new BatchCBO();
        WebUtil.setPersistence(false);
        Map<String,String> conditionMap = new HashMap<>();
        conditionMap.put("pkCodeRule",secDO.getPkCodeRule());
        Long total = codeBasicSecMapper.countByCondition(conditionMap);
        if(secDO.getOrderNum()  < total){
            //小于总数的时候才下移
            conditionMap.put("ordernum",String.valueOf(secDO.getOrderNum()+1));
            List<CodeBasicSecDO> lastSecDOs = codeBasicSecMapper.selectByCondition(conditionMap,new PageHelper(-1));
            if(!CollectionUtils.isEmpty(lastSecDOs)){
                CodeBasicSecDO lastSec = lastSecDOs.get(0);
                lastSec.setOrderNum(lastSec.getOrderNum()-1);
                batchCBO.copyFromOther(codeBasicSecMapper.updateByPrimaryKey(lastSec));
            }
            secDO.setOrderNum(secDO.getOrderNum()+1);
            batchCBO.copyFromOther(codeBasicSecMapper.updateByPrimaryKey(secDO));
        }
        WebUtil.setPersistence(true);
        boService.persistenceBatch(batchCBO);
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeButtonServiceImpl.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyProcessTempServiceImpl.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyTempMapItemServiceImpl.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyTemplateAttrServiceImpl.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyTemplateButtonServiceImpl.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyTemplateMapServiceImpl.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyTemplateServiceImpl.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyValueServiceImpl.java
@@ -1,481 +1,14 @@
package com.vci.ubcs.code.service.impl;
import com.vci.ubcs.code.dao.CodeBasicSecDaoI;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.vci.ubcs.code.entity.CodeClassifyValue;
import com.vci.ubcs.code.mapper.CodeClassifyValueMapper;
import com.vci.ubcs.code.entity.CodeBasicSecDO;
import com.vci.ubcs.code.entity.CodeClassifyValueDO;
import com.vci.ubcs.code.service.CodeClassifyValueServiceI;
import com.vci.frameworkcore.lcstatuspck.FrameworkDataLCStatus;
import com.vci.starter.revision.bo.TreeWrapperOptions;
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.PageHelper;
import com.vci.starter.web.pagemodel.Tree;
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.VciParentQueryOption;
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.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.vci.ubcs.code.dto.CodeClassifyValueDTO;
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyValueVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import com.vci.ubcs.code.service.ICodeClassifyValueService;
import org.springframework.stereotype.Service;
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 com.vci.frameworkcore.constant.FrameWorkDefaultValueConstant.LC_STATUS;
import static com.vci.frameworkcore.constant.FrameWorkLangCodeConstant.*;
/**
 * åˆ†ç±»ç æ®µçš„码值服务
 * @author weidy
 * @date 2022-01-24
 */
@Service
public class CodeClassifyValueServiceImpl implements CodeClassifyValueServiceI {
public class CodeClassifyValueServiceImpl  extends ServiceImpl<CodeClassifyValueMapper, CodeClassifyValue> implements ICodeClassifyValueService {
    /**
    * æ—¥å¿—
    */
    private Logger logger = LoggerFactory.getLogger(getClass());
    /**
    * æ•°æ®æ“ä½œå±‚
    */
    @Resource
    private CodeClassifyValueMapper codeClassifyValueMapper;
    /**
    * ä¸šåŠ¡ç±»åž‹æ“ä½œçš„æœåŠ¡
    */
    @Autowired
    @Lazy
    private WebBoServiceI boService;
    /**
    * å¯¹è±¡çš„æ“ä½œ
    */
    @Autowired
    private RevisionModelUtil revisionModelUtil;
    /**
     * ç æ®µçš„信息
     */
    @Autowired
    private CodeBasicSecDaoI basicSecMapper;
    /**
    * ä¸Šçº§èŠ‚ç‚¹çš„å±žæ€§åç§°
    */
    private static  final String PARENT_FIELD_NAME = "parentClassifyValueOid";
    /**
     * æŸ¥è¯¢åˆ†ç±»ç æ®µçš„码值 æ ‘
     * @param treeQueryObject æ ‘查询对象
     * @return åˆ†ç±»ç æ®µçš„码值 æ˜¾ç¤ºæ ‘
     * @throws VciBaseException æŸ¥è¯¢æ¡ä»¶ä¸ç¬¦åˆè¦æ±‚的时候会抛出异常
     */
    @Override
    public List<Tree> treeCodeClassifyValue(TreeQueryObject treeQueryObject) throws VciBaseException{
       // List<CodeClassifyValueDO> doList =selectCodeClassifyValueDOByTree(treeQueryObject);
        List<CodeClassifyValueDO> doList =selectCodeClassifyValueDO4Tree(treeQueryObject);
        List<CodeClassifyValueVO> voList = codeClassifyValueDO2VOs(doList);
        TreeWrapperOptions treeWrapperOptions = new TreeWrapperOptions(PARENT_FIELD_NAME);
        treeWrapperOptions.copyFromTreeQuery(treeQueryObject);
        return revisionModelUtil.doList2Trees(voList,treeWrapperOptions,(CodeClassifyValueVO s) ->{
            //可以在这里处理树节点的显示
            return s.getId() + " " + s.getName() + (FrameworkDataLCStatus.DISABLED.getValue().equalsIgnoreCase(s
                    .getLcStatus()) ? (" ã€åœç”¨ã€‘ ") : "");
        });
    }
    /**
      * æ ¹æ®æ ‘形查询对象来查询数据对象
      *
      * @param treeQueryObject æ ‘形查询对象
      * @return æŸ¥è¯¢ç»“æžœ,数据对象
      */
    @Override
    public List<CodeClassifyValueDO> selectCodeClassifyValueDOByTree(TreeQueryObject treeQueryObject) {
        VciQueryWrapperForDO queryWrapperForDO = new VciQueryWrapperForDO(treeQueryObject.getConditionMap(),CodeClassifyValueDO.class);
        PageHelper ph = new PageHelper();
        ph.addDefaultAsc("ordernum");
        queryWrapperForDO.setPageHelper(ph);
        VciParentQueryOption parentQueryOption = new VciParentQueryOption();
        parentQueryOption.setParentFieldName(PARENT_FIELD_NAME);
        //queryWrapperForDO.parentQueryChild(treeQueryObject,parentQueryOption);
        parentQueryOption.setHasSelf(true);
        queryWrapperForDO.childQueryParent(parentQueryOption);
        return codeClassifyValueMapper.selectByWrapper(queryWrapperForDO);
    }
    private List<CodeClassifyValueDO> selectCodeClassifyValueDO4Tree(TreeQueryObject treeQueryObject){
        Map<String, String> conditionMap = treeQueryObject.getConditionMap();
        String currentSecOid = conditionMap.get("codeclassifysecoid");
        String sql = "select oid from PLATFORMBTM_CODEBASICSEC start with  oid = '"+currentSecOid+"' connect by prior PARENTCLASSIFYSECOID = OID";
        List<ClientBusinessObject> targetParentList = boService.queryBySql(sql, new HashMap<>());
        Set<String> secOidList = targetParentList.stream().map(ClientBusinessObject::getOid).collect(Collectors.toSet());
        conditionMap.clear();
        StringBuilder oidStrBuilder = new StringBuilder();
        secOidList.forEach(oid -> oidStrBuilder.append("'").append(oid).append("',"));
        String oidStr = oidStrBuilder.toString().substring(0,oidStrBuilder.toString().length() -1);
        VciQueryWrapperForDO wrapper = new VciQueryWrapperForDO(null,CodeClassifyValueDO.class);
        PageHelper ph = new PageHelper();
        ph.addDefaultAsc("ordernum");
        ph.setLimit(-1);
        wrapper.setPageHelper(ph);
        wrapper.in("codeclassifysecoid",oidStr);
        return codeClassifyValueMapper.selectByWrapper(wrapper);
    }
    /**
     * æ‰¹é‡æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param codeClassifyValueDOs æ•°æ®å¯¹è±¡åˆ—表
     * @return æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException å‚数为空或者不存在的时候会抛出异常
     */
    @Override
    public List<CodeClassifyValueVO> codeClassifyValueDO2VOs(Collection<CodeClassifyValueDO>  codeClassifyValueDOs) throws VciBaseException{
        List<CodeClassifyValueVO> voList = new ArrayList<CodeClassifyValueVO>();
        if(!CollectionUtils.isEmpty(codeClassifyValueDOs)){
           for(CodeClassifyValueDO s: codeClassifyValueDOs){
                CodeClassifyValueVO vo =  codeClassifyValueDO2VO(s);
                if(vo != null){
                    voList.add(vo);
                }
            }
        }
        return voList;
    }
    /**
     * æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param  codeClassifyValueDO æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException æ‹·è´å±žæ€§å‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    @Override
    public  CodeClassifyValueVO codeClassifyValueDO2VO(CodeClassifyValueDO codeClassifyValueDO) throws VciBaseException{
              CodeClassifyValueVO vo = new CodeClassifyValueVO();
        if(codeClassifyValueDO != null){
            BeanUtilForVCI.copyPropertiesIgnoreCase(codeClassifyValueDO,vo);
            //如果有lcstatus的类的话
        }
        return vo;
    }
    /**
     * å¢žåŠ åˆ†ç±»ç æ®µçš„ç å€¼
     * @param codeClassifyValueDTO åˆ†ç±»ç æ®µçš„码值数据传输对象
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException å‚数为空,唯一项,必输项不通过时会抛出异常
     */
    @Override
    public CodeClassifyValueVO addSave(CodeClassifyValueDTO codeClassifyValueDTO) throws VciBaseException{
        VciBaseUtil.alertNotNull(codeClassifyValueDTO,"需要添加的数据对象");
        //添加对码值子父级的判断
        if(StringUtils.isNotBlank(codeClassifyValueDTO.getParentclassifyvalueoid())){
            String parentclassifyvalueoid = codeClassifyValueDTO.getParentclassifyvalueoid();
            String codeclassifysecoid = codeClassifyValueDTO.getCodeclassifysecoid();
            CodeClassifyValueDO parentDO = codeClassifyValueMapper.selectByPrimaryKey(parentclassifyvalueoid);
            if (parentDO.getCodeClassifySecOid().equalsIgnoreCase(codeclassifysecoid)){
                throw new VciBaseException("不允许在父码值中直接添加子码值");
            }
        }
        //将DTO转换为DO
        CodeClassifyValueDO codeClassifyValueDO = new CodeClassifyValueDO();
        BeanUtilForVCI.copyPropertiesIgnoreCase(codeClassifyValueDTO,codeClassifyValueDO);
        Map<String,String> conditionMap = new HashMap<>();
        conditionMap.put("codeclassifysecoid", codeClassifyValueDO.getCodeClassifySecOid());
        conditionMap.put("parentclassifyvalueoid",codeClassifyValueDO.getParentClassifyValueOid());
        VciQueryWrapperForDO wrapper = new VciQueryWrapperForDO(conditionMap,CodeClassifyValueDO.class);
        List<CodeClassifyValueDO> existList = codeClassifyValueMapper.selectByWrapper(wrapper);
        codeClassifyValueDO.setOrderNum(existList.size() + 1);
        codeClassifyValueMapper.insert(codeClassifyValueDO);
        return codeClassifyValueDO2VO(codeClassifyValueDO);
    }
    /**
     * ä¿®æ”¹åˆ†ç±»ç æ®µçš„码值
     * @param codeClassifyValueDTO åˆ†ç±»ç æ®µçš„码值数据传输对象
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException å‚数为空,唯一项,必输项不通过时会抛出异常
     */
     @Override
     public CodeClassifyValueVO editSave(CodeClassifyValueDTO codeClassifyValueDTO) throws VciBaseException{
         VciBaseUtil.alertNotNull(codeClassifyValueDTO,"数据对象",codeClassifyValueDTO.getOid(),"分类码段的码值主键");
         //将DTO转换为DO
         CodeClassifyValueDO codeClassifyValueDO = selectByOid(codeClassifyValueDTO.getOid());
         revisionModelUtil.copyFromDTOIgnore(codeClassifyValueDTO,codeClassifyValueDO);
         codeClassifyValueMapper.updateByPrimaryKey(codeClassifyValueDO);
         return codeClassifyValueDO2VO(codeClassifyValueDO);
     }
/**
 * æ£€æŸ¥ åˆ†ç±»ç æ®µçš„码值是否删除
 * @param codeClassifyValueDTO åˆ†ç±»ç æ®µçš„码值数据传输对象,必须要有oid和ts属性
 * @return æ‰§è¡Œç»“æžœ success为true为可以删除,false表示有数据引用,obj为true表示有下级
 * @throws VciBaseException å‚数为空,被引用时抛出异常
 */
@Override
public BaseResult checkIsCanDelete(CodeClassifyValueDTO codeClassifyValueDTO) throws VciBaseException{
    VciBaseUtil.alertNotNull(codeClassifyValueDTO,"数据传输对象",codeClassifyValueDTO.getOid(),"主键");
    CodeClassifyValueDO codeClassifyValueDO = selectByOid(codeClassifyValueDTO.getOid());
    return checkIsCanDeleteForDO(codeClassifyValueDTO,codeClassifyValueDO);
}
    /**
     * æ ¡éªŒæ˜¯å¦å¯ä»¥åˆ é™¤ï¼Œå¦‚果存在下级,并且下级有数据引用则不能删除
     * @param codeClassifyValueDTO æ•°æ®ä¼ è¾“对象
     * @param codeClassifyValueDO æ•°æ®åº“中的数据对象
     * @return success为true为可以删除,false表示有数据引用,obj为true表示有下级
     */
    private BaseResult checkIsCanDeleteForDO(CodeClassifyValueDTO codeClassifyValueDTO, CodeClassifyValueDO codeClassifyValueDO) {
        //boService.checkTs(codeClassifyValueDTO);
        //校验下级是否有引用
        if(checkChildIsLinked(codeClassifyValueDO.getOid())){
            return BaseResult.fail(DATA_CASCADE_LINKED_NOT_DELETE,new String[]{""});
        }
        return BaseResult.success(checkHasChild(codeClassifyValueDO.getOid()));
    }
    /**
      * æ£€æŸ¥æ˜¯å¦æœ‰ä¸‹çº§æ˜¯å¦å…³è”了数据
      *
      * @param oid ä¸»é”®
      * @return true è¡¨ç¤ºæœ‰å¼•用,false表示没有引用
      * @throws VciBaseException å‚数为空和有引用的时候会抛出异常
      */
    @Override
    public boolean checkChildIsLinked(String oid) throws VciBaseException {
        VciBaseUtil.alertNotNull(oid,"主键");
        List<String> childOids = codeClassifyValueMapper.selectAllLevelChildOid(oid.trim());
        if(!CollectionUtils.isEmpty(childOids)){
             for(String childOid: childOids){
                 if(!checkIsLinked(childOid)){
                     return false;
                 }
             }
            return true;
        }
        return false;
    }
    /**
    * æ ¡éªŒæ˜¯å¦æœ‰ä¸‹çº§èŠ‚ç‚¹ï¼Œä¸æ ¡éªŒæ˜¯å¦å…³è”äº†æ•°æ®
    *
    * @param oid ä¸»é”®
    * @return true表示有下级,false表示没有下级
    * @throws VciBaseException å‚数错误,或者数据不存在的时候会抛出异常
    */
    @Override
    public boolean checkHasChild(String oid) throws VciBaseException {
        VciBaseUtil.alertNotNull(oid,"主键");
        return codeClassifyValueMapper.countAllLevelChildOid(oid.trim()) > 0;
    }
    /**
    * æ ¡éªŒæ˜¯å¦è¢«å¼•用
    * @param oid ä¸»é”®
    * @throws VciBaseException è¢«å¼•用的时候会抛出异常
    */
    private boolean checkIsLinked(String oid) throws VciBaseException{
        //TODO æ·»åŠ éœ€è¦æ ¡éªŒå¼•ç”¨çš„åœ°æ–¹
        return false;
    }
    /**
     * åˆ é™¤åˆ†ç±»ç æ®µçš„码值
     * @param codeClassifyValueDTO åˆ†ç±»ç æ®µçš„码值数据传输对象,oid和ts需要传输
     * @return åˆ é™¤ç»“果反馈::success:成功,fail:失败
     * @throws VciBaseException å‚数为空,被引用时抛出异常
     */
    @Override
    public BaseResult deleteCodeClassifyValue(CodeClassifyValueDTO codeClassifyValueDTO) throws VciBaseException{
        VciBaseUtil.alertNotNull(codeClassifyValueDTO,"分类码段的码值数据对象",codeClassifyValueDTO.getOid(),"分类码段的码值的主键");
        CodeClassifyValueDO codeClassifyValueDO = selectByOid(codeClassifyValueDTO.getOid());
        BaseResult baseResult = checkIsCanDeleteForDO(codeClassifyValueDTO,codeClassifyValueDO);
        if(baseResult.isSuccess()) {
                        //找下级的,这个是可以删除的时候
            List<String> childrenOids = codeClassifyValueMapper.selectAllLevelChildOid(codeClassifyValueDO.getOid().trim());
            if (!CollectionUtils.isEmpty(childrenOids)) {
                Collection<Collection<String>> childrenCollections = VciBaseUtil.switchCollectionForOracleIn(childrenOids);
                for(Collection<String> s : childrenCollections){
                    codeClassifyValueMapper.batchDeleteByOids(s);
                }
            }
                    }else{
            return baseResult;
        }
        //执行删除操作
        BatchCBO batchCBO = codeClassifyValueMapper.deleteByPrimaryKey(codeClassifyValueDO.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  CodeClassifyValueVO getObjectByOid(String oid) throws VciBaseException{
        return codeClassifyValueDO2VO(selectByOid(oid));
    }
    /**
    * ä¸»é”®æŸ¥è¯¢æ•°æ®å¯¹è±¡
    * @param oid ä¸»é”®
    * @return  æ•°æ®å¯¹è±¡
    * @throws VciBaseException å‚数为空,并且数据不存在的时候会抛出异常
    */
    private CodeClassifyValueDO selectByOid(String oid) throws VciBaseException{
        VciBaseUtil.alertNotNull(oid,"主键");
        CodeClassifyValueDO codeClassifyValueDO = codeClassifyValueMapper.selectByPrimaryKey(oid.trim());
        if(codeClassifyValueDO == null || StringUtils.isBlank(codeClassifyValueDO.getOid())){
            throw new VciBaseException(DATA_OID_NOT_EXIST);
        }
        return codeClassifyValueDO;
    }
    /**
     * ä¸»é”®æ‰¹é‡èŽ·å–åˆ†ç±»ç æ®µçš„ç å€¼
     * @param oidCollections ä¸»é”®é›†åˆï¼Œä½†æ˜¯å—性能影响,建议一次查询不超过10000个
     * @return åˆ†ç±»ç æ®µçš„码值显示对象
     * @throws VciBaseException æŸ¥è¯¢å‡ºçŽ°å¼‚å¸¸æ—¶ä¼šæŠ›å‡º
     */
    @Override
    public Collection<CodeClassifyValueVO> listCodeClassifyValueByOids(Collection<String> oidCollections) throws VciBaseException{
        VciBaseUtil.alertNotNull(oidCollections,"数据对象主键集合");
        List<CodeClassifyValueDO> codeClassifyValueDOList = listCodeClassifyValueDOByOidCollections(oidCollections);
        return codeClassifyValueDO2VOs(codeClassifyValueDOList);
    }
    /**
    * ä½¿ç”¨ä¸»é”®é›†åˆæŸ¥è¯¢æ•°æ®å¯¹è±¡
    * @param oidCollections ä¸»é”®çš„集合
    * @return æ•°æ®å¯¹è±¡åˆ—表
    */
    private List<CodeClassifyValueDO> listCodeClassifyValueDOByOidCollections(Collection<String> oidCollections){
        List<CodeClassifyValueDO> codeClassifyValueDOList = new ArrayList<CodeClassifyValueDO>();
        if(!CollectionUtils.isEmpty(oidCollections)){
            Collection<Collection<String>> oidCollectionsList = VciBaseUtil.switchCollectionForOracleIn(oidCollections);
            for(Collection<String> oids: oidCollectionsList){
                List<CodeClassifyValueDO> tempDOList =  codeClassifyValueMapper.selectByPrimaryKeyCollection(oids);
                if(!CollectionUtils.isEmpty(tempDOList)){
                        codeClassifyValueDOList.addAll(tempDOList);
                }
            }
        }
        return  codeClassifyValueDOList;
    }
    /**
     * å‚ç…§æ ‘ åˆ†ç±»ç æ®µçš„码值
     * @param treeQueryObject æ ‘形查询对象
     * @return åˆ†ç±»ç æ®µçš„码值显示树
     * @throws VciBaseException æŸ¥è¯¢æ¡ä»¶å’Œåˆ†é¡µå‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    @Override
    public List<Tree> referTree(TreeQueryObject treeQueryObject)  throws VciBaseException{
        if(treeQueryObject == null){
            treeQueryObject = new TreeQueryObject();
        }
        if(treeQueryObject.getConditionMap() == null){
            treeQueryObject.setConditionMap(new HashMap<>());
        }
        if(treeQueryObject.getConditionMap().containsKey(LC_STATUS)) {
            treeQueryObject.getConditionMap().remove(LC_STATUS);
        }
                return treeCodeClassifyValue(treeQueryObject);
    }
    /**
     * ä½¿ç”¨ç æ®µçš„主键获取分类的码值内容
     *
     * @param classifySecOid         ç æ®µçš„主键
     * @param parentClassifyValueOid ä¸Šçº§åˆ†ç±»çš„主键
     * @return åˆ†ç±»ç å€¼çš„内容
     */
    @Override
    public List<CodeClassifyValueVO> listCodeClassifyValueBySecOid(String classifySecOid, String parentClassifyValueOid) {
        if(StringUtils.isBlank(classifySecOid)){
            return new ArrayList<>();
        }
        CodeBasicSecDO secDO = basicSecMapper.selectByPrimaryKey(classifySecOid);
        if(secDO == null || StringUtils.isBlank(secDO.getOid())){
            throw new VciBaseException("码段的内容在系统中不存在");
        }
        if(StringUtils.isNotBlank(secDO.getParentClassifySecOid()) && StringUtils.isBlank(parentClassifyValueOid)){
            return new ArrayList<>();
            //因为有上级分类的时候,必须先选择上级分类的内容
        }
        Map<String,String> conditionMap = new HashMap<>();
        conditionMap.put("codeClassifySecOid",classifySecOid);
        if(StringUtils.isNotBlank(parentClassifyValueOid)){
            conditionMap.put("parentClassifyValueOid",parentClassifyValueOid);
        }
        PageHelper pageHelper = new PageHelper(-1);
        pageHelper.addDefaultAsc("ordernum");
        List<CodeClassifyValueDO> valueDOList = codeClassifyValueMapper.selectByCondition(conditionMap, pageHelper);
        return codeClassifyValueDO2VOs(valueDOList);
    }
    /**
     * æ ¹æ®ç æ®µä¸»é”®åˆ é™¤å…¶å­˜åœ¨çš„码值对象
     * @param codeclassifysecoid åˆ†ç±»ç æ®µçš„主键
     * @return æ‰§è¡Œç»“æžœ
     */
    @Override
    public BaseResult batchDeleteBySecOid(String codeclassifysecoid) {
        VciBaseUtil.alertNotNull(codeclassifysecoid,"分类码段的主键");
        Map<String,String> conditionMap = new HashMap<>();
        conditionMap.put("codeClassifySecOid",codeclassifysecoid);
        VciQueryWrapperForDO wrapper = new VciQueryWrapperForDO(conditionMap,CodeClassifyValueDO.class);
        List<CodeClassifyValueDO> valueDOList = codeClassifyValueMapper.selectByWrapper(wrapper);
        codeClassifyValueMapper.batchDeleteByOids(valueDOList.stream().map(CodeClassifyValueDO::getOid).collect(Collectors.toList()));
        return BaseResult.success();
    }
    /**
     * æ‰¹é‡æ·»åŠ åˆ†ç±»ç æ®µçš„ç å€¼ã€‚ä¸»è¦æ˜¯ä¿å­˜ç å€¼çš„åºå·
     * @param dtoList åˆ†ç±»ç æ®µçš„码值列表
     * @param codeclassifysecoid åˆ†ç±»ç æ®µçš„主键
     * @return æ‰§è¡Œç»“æžœ
     */
    @Override
    public BaseResult batchSave4Order(List<CodeClassifyValueDTO> dtoList, String codeclassifysecoid) {
        VciBaseUtil.alertNotNull(codeclassifysecoid,"分类码段主键");
        Map<String,String> conditionMap = new HashMap<>();
        conditionMap.put("codeClassifySecOid",codeclassifysecoid);
        VciQueryWrapperForDO wrapper = new VciQueryWrapperForDO(conditionMap,CodeClassifyValueDO.class);
        List<CodeClassifyValueDO> valueDOList = codeClassifyValueMapper.selectByWrapper(wrapper);
        List<CodeClassifyValueDO> updateList = new ArrayList<>();
        dtoList.forEach(dto -> {
            if( StringUtils.isNotBlank( dto.getOid() )){
                List<CodeClassifyValueDO> collect = valueDOList.stream().filter(value -> {
                    return dto.getOid().equals(value.getOid());
                }).collect(Collectors.toList());
                collect.forEach(ccv -> {
                    ccv.setOrderNum(dto.getOrdernum());
                    ccv.setId(dto.getId());
                    ccv.setName(dto.getName());
                    updateList.add(ccv);
                });
            }
        });
        codeClassifyValueMapper.batchUpdate(updateList);
        return BaseResult.success();
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeDuckingServiceImpl.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeDuckingSyncServiceImpl.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeFixedValueServiceImpl.java
@@ -1,35 +1,10 @@
package com.vci.ubcs.code.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.vci.ubcs.code.entity.CodeFixedValue;
import com.vci.ubcs.code.mapper.CodeFixedValueMapper;
import com.vci.ubcs.code.entity.CodeFixedValueDO;
import com.vci.ubcs.code.service.CodeFixedValueServiceI;
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.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.service.WebBoServiceI;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.vci.ubcs.code.dto.CodeFixedValueDTO;
import com.vci.ubcs.code.vo.pagemodel.CodeFixedValueVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import com.vci.ubcs.code.service.ICodeFixedValueService;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
import static com.vci.frameworkcore.constant.FrameWorkLangCodeConstant.*;
/**
 * å›ºå®šç æ®µçš„码值服务
@@ -37,341 +12,8 @@
 * @date 2022-01-24
 */
@Service
public class CodeFixedValueServiceImpl implements CodeFixedValueServiceI {
    /**
    * æ—¥å¿—
    */
    private Logger logger = LoggerFactory.getLogger(getClass());
    /**
    * æ•°æ®æ“ä½œå±‚
    */
    @Resource
    private CodeFixedValueMapper codeFixedValueMapper;
    /**
    * ä¸šåŠ¡ç±»åž‹æ“ä½œçš„æœåŠ¡
    */
    @Autowired
    @Lazy
    private WebBoServiceI boService;
    /**
    * å¯¹è±¡çš„æ“ä½œ
    */
    @Autowired
    private RevisionModelUtil revisionModelUtil;
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„固定码段的码值
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @param pageHelper åˆ†é¡µå’ŒæŽ’序
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException æŸ¥è¯¢æ¡ä»¶å’Œåˆ†é¡µå‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    @Override
    public DataGrid<CodeFixedValueVO> gridCodeFixedValue(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException{
        if (pageHelper == null) {
            pageHelper = new PageHelper(-1);
        }
        pageHelper.addDefaultAsc("ordernum");
        if(conditionMap == null){
            conditionMap = new HashMap<>();
        }
        String secOid = conditionMap.getOrDefault("codefixedsecoid", "");
        if(StringUtils.isBlank(secOid)){
            return new DataGrid<>();
        }
        List<CodeFixedValueDO> doList = codeFixedValueMapper.selectByCondition(conditionMap,pageHelper);
        DataGrid<CodeFixedValueVO> dataGrid=new DataGrid<CodeFixedValueVO>();
        if (!CollectionUtils.isEmpty(doList)) {
            dataGrid.setData(codeFixedValueDO2VOs(doList));
            dataGrid.setTotal(VciBaseUtil.getInt(String.valueOf(codeFixedValueMapper.countByCondition(conditionMap))));
        }
        return dataGrid;
    }
    /**
     * æ‰¹é‡æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param codeFixedValueDOs æ•°æ®å¯¹è±¡åˆ—表
     * @return æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException å‚数为空或者不存在的时候会抛出异常
     */
    @Override
    public List<CodeFixedValueVO> codeFixedValueDO2VOs(Collection<CodeFixedValueDO>  codeFixedValueDOs) throws VciBaseException{
        List<CodeFixedValueVO> voList = new ArrayList<CodeFixedValueVO>();
        if(!CollectionUtils.isEmpty(codeFixedValueDOs)){
           for(CodeFixedValueDO s: codeFixedValueDOs){
                CodeFixedValueVO vo =  codeFixedValueDO2VO(s);
                if(vo != null){
                    voList.add(vo);
                }
            }
        }
        return voList;
    }
    /**
     * æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param  codeFixedValueDO æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException æ‹·è´å±žæ€§å‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    @Override
    public  CodeFixedValueVO codeFixedValueDO2VO(CodeFixedValueDO codeFixedValueDO) throws VciBaseException{
              CodeFixedValueVO vo = new CodeFixedValueVO();
        if(codeFixedValueDO != null){
            BeanUtilForVCI.copyPropertiesIgnoreCase(codeFixedValueDO,vo);
            //如果有lcstatus的类的话
        }
        return vo;
    }
    /**
     * å¢žåŠ å›ºå®šç æ®µçš„ç å€¼
     * @param codeFixedValueDTO å›ºå®šç æ®µçš„码值数据传输对象
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException å‚数为空,唯一项,必输项不通过时会抛出异常
     */
    @Override
    public CodeFixedValueVO addSave(CodeFixedValueDTO codeFixedValueDTO) throws VciBaseException{
        VciBaseUtil.alertNotNull(codeFixedValueDTO,"需要添加的数据对象");
        //将DTO转换为DO
        CodeFixedValueDO codeFixedValueDO = new CodeFixedValueDO();
        BeanUtilForVCI.copyPropertiesIgnoreCase(codeFixedValueDTO,codeFixedValueDO);
        codeFixedValueMapper.insert(codeFixedValueDO);
        return codeFixedValueDO2VO(codeFixedValueDO);
    }
    /**
     * ä¿®æ”¹å›ºå®šç æ®µçš„码值
     * @param codeFixedValueDTO å›ºå®šç æ®µçš„码值数据传输对象
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException å‚数为空,唯一项,必输项不通过时会抛出异常
     */
     @Override
     public CodeFixedValueVO editSave(CodeFixedValueDTO codeFixedValueDTO) throws VciBaseException{
         VciBaseUtil.alertNotNull(codeFixedValueDTO,"数据对象",codeFixedValueDTO.getOid(),"固定码段的码值主键");
         //将DTO转换为DO
         CodeFixedValueDO codeFixedValueDO = selectByOid(codeFixedValueDTO.getOid());
         revisionModelUtil.copyFromDTOIgnore(codeFixedValueDTO,codeFixedValueDO);
         codeFixedValueMapper.updateByPrimaryKey(codeFixedValueDO);
         return codeFixedValueDO2VO(codeFixedValueDO);
     }
    /**
     * æ ¡éªŒæ˜¯å¦å¯ä»¥åˆ é™¤ï¼Œå¦‚果存在下级,并且下级有数据引用则不能删除
     * @param codeFixedValueDTO æ•°æ®ä¼ è¾“对象
     * @param codeFixedValueDO æ•°æ®åº“中的数据对象
     * @return success为true为可以删除,false表示有数据引用,obj为true表示有下级
     */
    private BaseResult checkIsCanDeleteForDO(CodeFixedValueDTO codeFixedValueDTO, CodeFixedValueDO codeFixedValueDO) {
        //boService.checkTs(codeFixedValueDTO);
        if(!checkIsLinked(codeFixedValueDO.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 codeFixedValueDTO å›ºå®šç æ®µçš„码值数据传输对象,oid和ts需要传输
     * @return åˆ é™¤ç»“果反馈::success:成功,fail:失败
     * @throws VciBaseException å‚数为空,被引用时抛出异常
     */
    @Override
    public BaseResult deleteCodeFixedValue(CodeFixedValueDTO codeFixedValueDTO) throws VciBaseException{
        VciBaseUtil.alertNotNull(codeFixedValueDTO,"固定码段的码值数据对象",codeFixedValueDTO.getOid(),"固定码段的码值的主键");
        CodeFixedValueDO codeFixedValueDO = selectByOid(codeFixedValueDTO.getOid());
        BaseResult baseResult = checkIsCanDeleteForDO(codeFixedValueDTO,codeFixedValueDO);
        if(baseResult.isSuccess()) {
                    }else{
            return baseResult;
        }
        //执行删除操作
        BatchCBO batchCBO = codeFixedValueMapper.deleteByPrimaryKey(codeFixedValueDO.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  CodeFixedValueVO getObjectByOid(String oid) throws VciBaseException{
        return codeFixedValueDO2VO(selectByOid(oid));
    }
    /**
    * ä¸»é”®æŸ¥è¯¢æ•°æ®å¯¹è±¡
    * @param oid ä¸»é”®
    * @return  æ•°æ®å¯¹è±¡
    * @throws VciBaseException å‚数为空,并且数据不存在的时候会抛出异常
    */
    private CodeFixedValueDO selectByOid(String oid) throws VciBaseException{
        VciBaseUtil.alertNotNull(oid,"主键");
        CodeFixedValueDO codeFixedValueDO = codeFixedValueMapper.selectByPrimaryKey(oid.trim());
        if(codeFixedValueDO == null || StringUtils.isBlank(codeFixedValueDO.getOid())){
            throw new VciBaseException(DATA_OID_NOT_EXIST);
        }
        return codeFixedValueDO;
    }
    /**
     * ä¸»é”®æ‰¹é‡èŽ·å–å›ºå®šç æ®µçš„ç å€¼
     * @param oidCollections ä¸»é”®é›†åˆï¼Œä½†æ˜¯å—性能影响,建议一次查询不超过10000个
     * @return å›ºå®šç æ®µçš„码值显示对象
     * @throws VciBaseException æŸ¥è¯¢å‡ºçŽ°å¼‚å¸¸æ—¶ä¼šæŠ›å‡º
     */
    @Override
    public Collection<CodeFixedValueVO> listCodeFixedValueByOids(Collection<String> oidCollections) throws VciBaseException{
        VciBaseUtil.alertNotNull(oidCollections,"数据对象主键集合");
        List<CodeFixedValueDO> codeFixedValueDOList = listCodeFixedValueDOByOidCollections(oidCollections);
        return codeFixedValueDO2VOs(codeFixedValueDOList);
    }
    /**
    * ä½¿ç”¨ä¸»é”®é›†åˆæŸ¥è¯¢æ•°æ®å¯¹è±¡
    * @param oidCollections ä¸»é”®çš„集合
    * @return æ•°æ®å¯¹è±¡åˆ—表
    */
    private List<CodeFixedValueDO> listCodeFixedValueDOByOidCollections(Collection<String> oidCollections){
        List<CodeFixedValueDO> codeFixedValueDOList = new ArrayList<CodeFixedValueDO>();
        if(!CollectionUtils.isEmpty(oidCollections)){
            Collection<Collection<String>> oidCollectionsList = VciBaseUtil.switchCollectionForOracleIn(oidCollections);
            for(Collection<String> oids: oidCollectionsList){
                List<CodeFixedValueDO> tempDOList =  codeFixedValueMapper.selectByPrimaryKeyCollection(oids);
                if(!CollectionUtils.isEmpty(tempDOList)){
                        codeFixedValueDOList.addAll(tempDOList);
                }
            }
        }
        return  codeFixedValueDOList;
    }
public class CodeFixedValueServiceImpl extends ServiceImpl<CodeFixedValueMapper, CodeFixedValue> implements ICodeFixedValueService {
    /**
     * å‚照固定码段的码值列表
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @param pageHelper åˆ†é¡µå’ŒæŽ’序
     * @return å›ºå®šç æ®µçš„码值显示对象列表,生效的内容
     * @throws VciBaseException æŸ¥è¯¢æ¡ä»¶å’Œåˆ†é¡µå‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    @Override
    public DataGrid<CodeFixedValueVO> refDataGridCodeFixedValue(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException{
        if(conditionMap == null){
            conditionMap = new HashMap<String, String>();
        }
        return gridCodeFixedValue(conditionMap,pageHelper);
    }
    /**
     * ä½¿ç”¨ç æ®µçš„主键获取固定码的码值
     *
     * @param secOidCollection ç æ®µçš„主键
     * @return ç å€¼æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException æŸ¥è¯¢çš„æ—¶å€™å‡ºçŽ°äº†é”™è¯¯ä¼šæŠ›å‡ºå¼‚å¸¸
     */
    @Override
    public Map<String, List<CodeFixedValueVO>> listCodeFixedValueBySecOids(Collection<String> secOidCollection) throws VciBaseException {
        if(CollectionUtils.isEmpty(secOidCollection)){
            return  new HashMap<>();
        }
        List<CodeFixedValueVO> voList = new ArrayList<>();
        VciBaseUtil.switchCollectionForOracleIn(secOidCollection).forEach(secOids->{
            Map<String,String> conditionMap = new HashMap<>();
            conditionMap.put("codefixedsecoid", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(secOids.toArray(new String[0])) + ")");
            PageHelper pageHelper = new PageHelper(-1);
            pageHelper.addDefaultAsc("ordernum");
            List<CodeFixedValueDO> valueDOS = codeFixedValueMapper.selectByCondition(conditionMap, pageHelper);
            voList.addAll(codeFixedValueDO2VOs(Optional.ofNullable(valueDOS).orElseGet(() -> new ArrayList<>())));
        });
        return voList.stream().collect(Collectors.groupingBy(CodeFixedValueVO::getCodefixedsecoid));
    }
    /**
     * æ‰¹é‡æ·»åŠ å›ºå®šç æ®µçš„ç å€¼ï¼Œå¦‚æžœä¿å­˜çš„é›†åˆä¸­ä¸å­˜åœ¨å·²åœ¨æ•°æ®åº“ä¸­çš„ç å€¼åˆ™åˆ é™¤ã€‚ä¸»è¦æ˜¯ä¿å­˜ç å€¼çš„åºå·
     * @param dtoList å›ºå®šç æ®µçš„码值列表
     * @param codefixedsecoid å›ºå®šç æ®µçš„主键
     * @return æ‰§è¡Œç»“æžœ
     */
    @Override
    public BaseResult<CodeFixedValueVO> batchSave4Order(List<CodeFixedValueDTO> dtoList, String codefixedsecoid) {
        VciBaseUtil.alertNotNull(codefixedsecoid,"固定码段主键");
        Map<String,String> conditionMap = new HashMap<>();
        conditionMap.put("codefixedsecoid",codefixedsecoid);
        VciQueryWrapperForDO wrapper = new VciQueryWrapperForDO(conditionMap,CodeFixedValueDO.class);
        List<CodeFixedValueDO> doList = codeFixedValueMapper.selectByWrapper(wrapper);
        List<CodeFixedValueDO> updateList = new ArrayList<>();
        List<String> deleteOidList = new ArrayList<>();
        dtoList.forEach(dto -> {
            if (StringUtils.isNotBlank(dto.getOid())){
                List<CodeFixedValueDO> valueDOList = doList.stream().filter(value -> {
                    return value.getOid().equals(dto.getOid());
                }).collect(Collectors.toList());
                valueDOList.forEach(valueDO -> {
                    valueDO.setId(dto.getId());
                    valueDO.setName(dto.getName());
                    valueDO.setOrderNum(dto.getOrdernum());
                    updateList.add(valueDO);
                });
            }else{
                throw new VciBaseException("固定码段主键不能为空");
            }
        });
        if (doList.size() != dtoList.size()){
            List<String> oidList = dtoList.stream().map(CodeFixedValueDTO::getOid).collect(Collectors.toList());
            List<CodeFixedValueDO> deleteList = new ArrayList<>();
            for (CodeFixedValueDO value : doList) {
                if (!oidList.contains(value.getOid())){
                    deleteList.add(value);
                }
            }
            deleteOidList = deleteList.stream().map(CodeFixedValueDO::getOid).collect(Collectors.toList());
        }
        WebUtil.setPersistence(false);
        BatchCBO batchCBO = codeFixedValueMapper.batchUpdate(updateList);
        if (!CollectionUtils.isEmpty(deleteOidList)) {
            BatchCBO batchDeleteByOids = codeFixedValueMapper.batchDeleteByOids(deleteOidList);
            batchCBO.setDeleteCbos(batchDeleteByOids.getDeleteCbos());
        }
        WebUtil.setPersistence(true);
        boService.persistenceBatch(batchCBO);
        return BaseResult.success();
    }
    /**
     * æ ¹æ®ç æ®µä¸»é”®åˆ é™¤å…¶å­˜åœ¨çš„码值对象
     * @param codefixedsecoid å›ºå®šç æ®µçš„主键
     * @return æ‰§è¡Œç»“æžœ
     */
    @Override
    public BaseResult<CodeFixedValueVO> batchDeleteBySecOid(String codefixedsecoid) {
        VciBaseUtil.alertNotNull(codefixedsecoid,"固定码段主键");
        Map<String,String> conditionMap = new HashMap<>();
        conditionMap.put("codefixedvalueoid",codefixedsecoid);
        VciQueryWrapperForDO wrapper = new VciQueryWrapperForDO(conditionMap,CodeFixedValueDO.class);
        List<CodeFixedValueDO> doList = codeFixedValueMapper.selectByWrapper(wrapper);
        codeFixedValueMapper.batchDeleteByOids(doList.stream().map(CodeFixedValueDO::getOid).collect(Collectors.toList()));
        return BaseResult.success();
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeKeyAttrRepeatRuleServiceImpl.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodePhaseAttrServiceImpl.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeResembleRuleServiceImpl.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeRuleServiceImpl.java
@@ -1,686 +1,242 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill åº„骞 (smallchill@163.com)
 */
package com.vci.ubcs.code.service.impl;
import com.vci.ubcs.code.constant.MdmBtmTypeConstant;
import com.vci.ubcs.code.mapper.CodeBasicSecMapper;
import com.vci.ubcs.code.mapper.CodeRuleMapper;
import com.vci.ubcs.code.lifecycle.CodeRuleLC;
import com.vci.ubcs.code.entity.CodeAllCodeDO;
import com.vci.ubcs.code.entity.CodeBasicSecDO;
import com.vci.ubcs.code.entity.CodeClassifyDO;
import com.vci.ubcs.code.entity.CodeRuleDO;
import com.vci.ubcs.code.service.CodeBasicSecServiceI;
import com.vci.ubcs.code.service.CodeClassifyServiceI;
import com.vci.ubcs.code.service.CodeRuleServiceI;
import com.vci.corba.common.VCIError;
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.service.WebBoServiceI;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.vci.ubcs.code.dto.CodeBasicSecDTO;
import com.alibaba.cloud.commons.lang.StringUtils;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.vci.ubcs.code.dto.CodeRuleDTO;
import com.vci.ubcs.code.vo.pagemodel.CodeBasicSecVO;
import com.vci.ubcs.code.entity.CodeAllcode;
import com.vci.ubcs.code.entity.CodeClassify;
import com.vci.ubcs.code.entity.CodeRule;
import com.vci.ubcs.code.lifecycle.CodeRuleLC;
import com.vci.ubcs.code.mapper.CodeRuleMapper;
import com.vci.ubcs.code.service.ICodeAllcodeService;
import com.vci.ubcs.code.service.ICodeBasicSecService;
import com.vci.ubcs.code.service.ICodeClassifyService;
import com.vci.ubcs.code.service.ICodeRuleService;
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO;
import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import com.vci.ubcs.code.wrapper.CodeClassifyWrapper;
import com.vci.ubcs.code.wrapper.CodeRuleWrapper;
import com.vci.ubcs.com.vci.starter.exception.VciBaseException;
import com.vci.ubcs.com.vci.starter.revision.service.RevisionModelUtil;
import com.vci.ubcs.com.vci.starter.web.util.VciBaseUtil;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.BeanUtil;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import plm.bs.bom.clientobject.ClientBusinessObject;
import plm.bs.bom.clientobject.ClientBusinessObjectOperation;
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import static com.vci.frameworkcore.constant.FrameWorkBusLangCodeConstant.*;
import static com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant.FRAMEWORK_RELEASE_EDITING;
import static com.vci.ubcs.code.constant.FrameWorkLangCodeConstant.DATA_OID_NOT_EXIST;
import static com.vci.ubcs.code.constant.MdmLifeCycleConstant.CODE_RULE_LC;
/**
 * ä¸»æ•°æ®ç¼–码规则服务
 * ç¼–码规则 æœåŠ¡å®žçŽ°ç±»
 *
 * @author weidy
 * @date 2022-01-24
 * @author ludc
 * @since 2023-04-03
 */
@Service
public class CodeRuleServiceImpl implements CodeRuleServiceI {
public class CodeRuleServiceImpl extends ServiceImpl<CodeRuleMapper, CodeRule> implements ICodeRuleService {
    /**
     * æ—¥å¿—
     */
    private Logger logger = LoggerFactory.getLogger(getClass());
    /**
     * æ•°æ®æ“ä½œå±‚
     */
    @Resource
    private CodeRuleMapper codeRuleMapper;
    /**
     * æ•°æ®æ“ä½œå±‚
     */
    @Resource
    private CodeRuleMapper codeRuleMapper;
    @Resource
    private ICodeClassifyService codeClassifyServcie;
    /**
     * ä¸šåŠ¡ç±»åž‹æ“ä½œçš„æœåŠ¡
     */
    @Autowired
    @Lazy
    private WebBoServiceI boService;
    @Resource
    private ICodeAllcodeService codeAllcodeService;
    /**
     * å¯¹è±¡çš„æ“ä½œ
     */
    @Autowired
    private RevisionModelUtil revisionModelUtil;
    @Resource
    private ICodeBasicSecService codeBasicSecService;
    /**
     * ä¸»é¢˜åº“分类数据操作层
     */
    @Autowired
    private CodeClassifyServiceI codeClassifyService;
    /**
     * å¯¹è±¡çš„æ“ä½œ
     */
    @Resource
    private RevisionModelUtil revisionModelUtil;
    /**
     * ç æ®µåŸºç¡€ä¿¡æ¯æœåŠ¡
     */
    @Autowired
    private CodeBasicSecServiceI codeBasicSecService;
    @Override
    public IPage<CodeRuleVO> selectPlCodeRulePage(IPage<CodeRuleVO> page, CodeRuleVO codeRule) {
        //对生命周期的枚举进行转换
        if(!StringUtils.isEmpty(codeRule.getLcStatusText())){
            codeRule.setLcStatus(CodeRuleLC.getValueByText(codeRule.getLcStatusText()));
        }
        List<CodeRule> codeRulePage = codeRuleMapper.selectCodeRulePage(page, codeRule);
        //do转vo同时setLcStatusText生命周期值,并包装成分页对象返回
        return page.setRecords(CodeRuleWrapper.build().listVO(codeRulePage));
    }
    /**
     * ç æ®µåŸºç¡€ä¿¡æ¯æ•°æ®æ“ä½œå±‚
     */
    @Resource
    private CodeBasicSecMapper codeBasicSecMapper;
    /**
     * å¢žåŠ ä¸»æ•°æ®ç¼–ç è§„åˆ™
     *
     * @param codeRuleDTO ä¸»æ•°æ®ç¼–码规则数据传输对象
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException å‚数为空,唯一项,必输项不通过时会抛出异常
     */
    @Override
    public Boolean addSave(CodeRuleDTO codeRuleDTO) throws VciBaseException{
        VciBaseUtil.alertNotNull(codeRuleDTO, "需要添加的数据对象");
        //将DTO转换为DO
        CodeRule codeRule = Objects.requireNonNull(BeanUtil.copy(codeRuleDTO, CodeRule.class));
        String userId = AuthUtil.getUserId().toString();
        codeRule.setOid(VciBaseUtil.getPk());
        codeRule.setRevisionOid(VciBaseUtil.getPk());
        codeRule.setNameOid(VciBaseUtil.getPk());
        codeRule.setBtmname("coderule");
        codeRule.setLastR("1");
        codeRule.setLastV("1");
        codeRule.setFirstR("1");
        codeRule.setFirstV("1");
        codeRule.setCreator(userId);
        codeRule.setCreateTime(new Date());
        codeRule.setLastModifier("1");
        codeRule.setLastModifyTime(new Date());
        codeRule.setVersionRule("0");
        codeRule.setVersionSeq(1);
        codeRule.setLctid(CODE_RULE_LC);
        codeRule.setLcStatus(FRAMEWORK_RELEASE_EDITING);
        codeRule.setOwner("1");
        codeRule.setCreator(userId);
        codeRule.setLastModifier(userId);
        return codeRuleMapper.insert(codeRule)>0;
    }
    /**
     * æ ¡éªŒç¼–码规则的状态是否可以编辑或删除
     *
     * @param lcStatus ç¼–码规则
     * @return true表示可以编辑或删除,false表示不可以
     */
    @Override
    public boolean checkEditDelStatus(String lcStatus) {
        if (CodeRuleLC.RELEASED.getValue().equals(lcStatus) || CodeRuleLC.DISABLED.getValue().equals(lcStatus)) {
            return false;
        }
        return true;
    }
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„主数据编码规则
     *
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @param pageHelper   åˆ†é¡µå’ŒæŽ’序
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException æŸ¥è¯¢æ¡ä»¶å’Œåˆ†é¡µå‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    @Override
    public DataGrid<CodeRuleVO> gridCodeRule(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException {
        if (pageHelper == null) {
            pageHelper = new PageHelper(-1);
        }
        pageHelper.addDefaultDesc("createTime");
        List<CodeRuleDO> doList = codeRuleMapper.selectByCondition(conditionMap, pageHelper);
        DataGrid<CodeRuleVO> dataGrid = new DataGrid<CodeRuleVO>();
        if (!CollectionUtils.isEmpty(doList)) {
            dataGrid.setData(codeRuleDO2VOs(doList));
            dataGrid.setTotal(VciBaseUtil.getInt(String.valueOf(codeRuleMapper.countByCondition(conditionMap))));
        }
        return dataGrid;
    }
    /**
     * ä¿®æ”¹ä¸»æ•°æ®ç¼–码规则
     *
     * @param codeRuleDTO ä¸»æ•°æ®ç¼–码规则数据传输对象
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException å‚数为空,唯一项,必输项不通过时会抛出异常
     */
    @Override
    public Boolean editSave(CodeRuleDTO codeRuleDTO) throws VciBaseException{
        VciBaseUtil.alertNotNull(codeRuleDTO, "数据对象", codeRuleDTO.getOid(), "主数据编码规则主键");
        if (!checkEditDelStatus(codeRuleDTO.getLcStatus())) {
            throw new VciBaseException("编码规则已发布,不允许编辑或删除");
        }
        //将DTO转换为DO
        CodeRule codeRule = selectByOid(codeRuleDTO.getOid());
        revisionModelUtil.copyFromDTOIgnore(codeRuleDTO, codeRule);
        return codeRuleMapper.updateById(codeRule)>0;
    }
    /**
     * æ‰¹é‡æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     *
     * @param codeRuleDOs æ•°æ®å¯¹è±¡åˆ—表
     * @return æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException å‚数为空或者不存在的时候会抛出异常
     */
    @Override
    public List<CodeRuleVO> codeRuleDO2VOs(Collection<CodeRuleDO> codeRuleDOs) throws VciBaseException {
        return codeRuleDO2VOs(codeRuleDOs, false);
    }
    /**
     * åˆ é™¤ä¸»æ•°æ®ç¼–码规则
     *
     * @param codeRuleDTO ä¸»æ•°æ®ç¼–码规则数据传输对象,oid和ts需要传输
     * @return åˆ é™¤ç»“果反馈::success:成功,fail:失败
     * @throws VciBaseException å‚数为空,被引用时抛出异常
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R deleteCodeRule(CodeRuleDTO codeRuleDTO) throws VciBaseException {
        VciBaseUtil.alertNotNull(codeRuleDTO, "主数据编码规则数据对象", codeRuleDTO.getOid(), "主数据编码规则的主键");
        CodeRule codeRule = selectByOid(codeRuleDTO.getOid());
        if (!checkEditDelStatus(codeRule.getLcStatus())) {
            return R.fail("编码规则已发布,不允许编辑或删除");
        } else {
            if (isAlreadyInUse(codeRule.getOid())) {
                return R.fail("编码规则已被引用,不允许编辑或删除!");
            }
        }
    /**
     * æ‰¹é‡æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     *
     * @param codeRuleDOs æ•°æ®å¯¹è±¡åˆ—表
     * @param hasSec      æ˜¯å¦åŒ…含码段
     * @return æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException å‚数为空或者不存在的时候会抛出异常
     */
    @Override
    public List<CodeRuleVO> codeRuleDO2VOs(Collection<CodeRuleDO> codeRuleDOs, boolean hasSec) throws VciBaseException {
        List<CodeRuleVO> voList = new ArrayList<CodeRuleVO>();
        if (!CollectionUtils.isEmpty(codeRuleDOs)) {
            for (CodeRuleDO s : codeRuleDOs) {
                CodeRuleVO vo = codeRuleDO2VO(s);
                if (vo != null) {
                    voList.add(vo);
                }
            }
            if (hasSec) {
                List<CodeBasicSecVO> secVOList = codeBasicSecService.listCodeBasicSecByRuleOids(voList.stream().map(CodeRuleVO::getOid).collect(Collectors.toList()));
                if (!CollectionUtils.isEmpty(secVOList)) {
                    Map<String, List<CodeBasicSecVO>> secVOMap = secVOList.stream().collect(Collectors.groupingBy(CodeBasicSecVO::getPkCodeRule));
                    voList.stream().forEach(vo -> {
                        vo.setSecVOList(secVOMap.getOrDefault(vo.getOid(), new ArrayList<>()));
                    });
                }
            }
        }
        return voList;
    }
        List<CodeAllcode> codeDOList = codeAllcodeService.selectByWrapper(Wrappers.<CodeAllcode>query().eq("codeRuleOid", codeRuleDTO.getOid()));
        if (!CollectionUtils.isEmpty(codeDOList)) {
            return R.fail("编码规则已生成编码,不允许删除");
        }
        //执行删除操作
        //WebUtil.setPersistence(false);
        boolean resBoolean = codeBasicSecService.batchDeleteSecByCodeRuleOid(codeRule.getOid());
        resBoolean = codeRuleMapper.deleteById(codeRule.getOid())>0;
        //WebUtil.setPersistence(true);
        return R.status(resBoolean);
    }
    /**
     * æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     *
     * @param codeRuleDO æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException æ‹·è´å±žæ€§å‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    @Override
    public CodeRuleVO codeRuleDO2VO(CodeRuleDO codeRuleDO) throws VciBaseException {
        CodeRuleVO vo = new CodeRuleVO();
        if (codeRuleDO != null) {
            BeanUtilForVCI.copyPropertiesIgnoreCase(codeRuleDO, vo);
            //如果有lcstatus的类的话
            vo.setLcStatusText(CodeRuleLC.getTextByValue(vo.getLcStatus()));
    /**
     * ä¸»é”®æŸ¥è¯¢æ•°æ®å¯¹è±¡
     *
     * @param oid ä¸»é”®
     * @return æ•°æ®å¯¹è±¡
     * @throws VciBaseException å‚数为空,并且数据不存在的时候会抛出异常
     */
    private CodeRule selectByOid(String oid) throws VciBaseException {
        VciBaseUtil.alertNotNull(oid, "主键");
        CodeRule codeRuleDO = codeRuleMapper.selectById(oid.trim());
        if (codeRuleDO == null || StringUtils.isBlank(codeRuleDO.getOid())) {
            throw new VciBaseException(DATA_OID_NOT_EXIST);
        }
        return codeRuleDO;
    }
        }
        return vo;
    }
    /**
     * æ£€éªŒç¼–码规则是否已经被使用
     *
     * @param oid ç¼–码规则主键
     * @return true表示已经使用,false表示未被使用
     */
    @Override
    public boolean isAlreadyInUse(String oid) {
        Collection<CodeClassifyVO> codeClassifyVOS = listUseRangeInCodeClassify(oid);
        if (codeClassifyVOS.size() > 0) {
            return true;
        } else {
            return false;
        }
    }
    /**
     * æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     *
     * @param codeRuleDO è§„则的数据对象
     * @param hasSec     æ˜¯å¦æŸ¥è¯¢ç æ®µ
     * @return æ˜¾ç¤ºå¯¹è±¡
     * @throws VciBaseException æ‹·è´å±žæ€§å‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    public CodeRuleVO codeRuleDO2VO(CodeRuleDO codeRuleDO, boolean hasSec) throws VciBaseException {
        CodeRuleVO vo = new CodeRuleVO();
        if (codeRuleDO != null) {
            BeanUtilForVCI.copyPropertiesIgnoreCase(codeRuleDO, vo);
            //如果有lcstatus的类的话
            vo.setLcStatusText(CodeRuleLC.getTextByValue(vo.getLcStatus()));
            if (hasSec) {
                //查询码段
                vo.setSecVOList(codeBasicSecService.listCodeBasicSecByRuleOid(vo.getOid()));
            }
        }
        return vo;
    }
    /**
     * æŸ¥çœ‹ä¸»æ•°æ®ç¼–码规则的使用范围
     *
     * @param oid ç¼–码规则主键
     * @return ä¸»é¢˜åº“分类使用到该编码规则的所有集合
     */
    @Override
    public Collection<CodeClassifyVO> listUseRangeInCodeClassify(String oid) {
        List<CodeClassify> codeClassifies = codeClassifyServcie.selectByWrapper(Wrappers.<CodeClassify>query().eq("codeRuleOid", oid));
        return CodeClassifyWrapper.build().listVO(codeClassifies);
    }
    /**
     * å¢žåŠ ä¸»æ•°æ®ç¼–ç è§„åˆ™
     *
     * @param codeRuleDTO ä¸»æ•°æ®ç¼–码规则数据传输对象
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException å‚数为空,唯一项,必输项不通过时会抛出异常
     */
    @Override
    public CodeRuleVO addSave(CodeRuleDTO codeRuleDTO) throws VciBaseException {
        VciBaseUtil.alertNotNull(codeRuleDTO, "需要添加的数据对象");
        //将DTO转换为DO
        CodeRuleDO codeRuleDO = new CodeRuleDO();
        BeanUtilForVCI.copyPropertiesIgnoreCase(codeRuleDTO, codeRuleDO);
        codeRuleMapper.insert(codeRuleDO);
        return codeRuleDO2VO(codeRuleDO);
    }
    /**
     * ä¿®æ”¹ä¸»æ•°æ®ç¼–码规则
     *
     * @param codeRuleDTO ä¸»æ•°æ®ç¼–码规则数据传输对象
     * @return æ‰§è¡Œç»“æžœ
     * @throws VciBaseException å‚数为空,唯一项,必输项不通过时会抛出异常
     */
    @Override
    public CodeRuleVO editSave(CodeRuleDTO codeRuleDTO) throws VciBaseException {
        VciBaseUtil.alertNotNull(codeRuleDTO, "数据对象", codeRuleDTO.getOid(), "主数据编码规则主键");
        if (!checkEditDelStatus(codeRuleDTO.getLcStatus())) {
            throw new VciBaseException("编码规则已发布,不允许编辑或删除");
        }
        //将DTO转换为DO
        CodeRuleDO codeRuleDO = selectByOid(codeRuleDTO.getOid());
        revisionModelUtil.copyFromDTOIgnore(codeRuleDTO, codeRuleDO);
        codeRuleMapper.updateByPrimaryKey(codeRuleDO);
        return codeRuleDO2VO(codeRuleDO);
    }
    /**
     * æ ¡éªŒæ˜¯å¦å¯ä»¥åˆ é™¤ï¼Œå¦‚果存在下级,并且下级有数据引用则不能删除
     *
     * @param codeRuleDTO æ•°æ®ä¼ è¾“对象
     * @param codeRuleDO  æ•°æ®åº“中的数据对象
     * @return success为true为可以删除,false表示有数据引用,obj为true表示有下级
     */
    private BaseResult checkIsCanDeleteForDO(CodeRuleDTO codeRuleDTO, CodeRuleDO codeRuleDO) {
        boService.checkTs(codeRuleDTO);
        if (!checkIsLinked(codeRuleDO.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 codeRuleDTO ä¸»æ•°æ®ç¼–码规则数据传输对象,oid和ts需要传输
     * @return åˆ é™¤ç»“果反馈::success:成功,fail:失败
     * @throws VciBaseException å‚数为空,被引用时抛出异常
     */
    @Override
    public BaseResult deleteCodeRule(CodeRuleDTO codeRuleDTO) throws VciBaseException {
        VciBaseUtil.alertNotNull(codeRuleDTO, "主数据编码规则数据对象", codeRuleDTO.getOid(), "主数据编码规则的主键");
        CodeRuleDO codeRuleDO = selectByOid(codeRuleDTO.getOid());
        //BaseResult baseResult = checkIsCanDeleteForDO(codeRuleDTO,codeRuleDO);
        // if(baseResult.isSuccess()) {
        //             }else{
        //     return baseResult;
        // }
        if (!checkEditDelStatus(codeRuleDO.getLcStatus())) {
            return BaseResult.fail("编码规则已发布,不允许编辑或删除");
        } else {
            if (isAlreadyInUse(codeRuleDO.getOid())) {
                return BaseResult.fail("编码规则已被引用,不允许编辑或删除!");
            }
        }
        Map<String, String> conditionMap = new HashMap<>();
        conditionMap.put("codeRuleOid", codeRuleDTO.getOid());
        List<CodeAllCodeDO> codeDOList = boService.queryObject(CodeAllCodeDO.class, conditionMap);
        if (!CollectionUtils.isEmpty(codeDOList)) {
            return BaseResult.fail("编码规则已生成编码,不允许删除");
        }
        //执行删除操作
        WebUtil.setPersistence(false);
        BatchCBO batchCBO = codeBasicSecService.batchDeleteSecByCodeRuleOid(codeRuleDO.getOid());
        BatchCBO mainCBO = codeRuleMapper.deleteByPrimaryKey(codeRuleDO.getOid());
        WebUtil.setPersistence(true);
        Set<ClientBusinessObject> deleteSet = new HashSet<>();
        deleteSet.addAll(batchCBO.getDeleteCbos());
        deleteSet.addAll(mainCBO.getDeleteCbos());
        batchCBO.setDeleteCbos(deleteSet);
        boService.persistenceBatch(batchCBO);
        return (batchCBO != null && batchCBO.getDeleteCbos() != null && batchCBO.getDeleteCbos().size() > 0) ? BaseResult.successMsg(DELETE_SUCCESS) : BaseResult.fail(DELETE_FAIL);
    }
    /**
     * æ ¡éªŒç¼–码规则的状态是否可以编辑或删除
     *
     * @param lcStatus ç¼–码规则
     * @return true表示可以编辑或删除,false表示不可以
     */
    @Override
    public boolean checkEditDelStatus(String lcStatus) {
        if (CodeRuleLC.RELEASED.getValue().equals(lcStatus) || CodeRuleLC.DISABLED.getValue().equals(lcStatus)) {
            return false;
        }
        return true;
    }
    /**
     * ä¸»é”®èŽ·å–ä¸»æ•°æ®ç¼–ç è§„åˆ™
     *
     * @param oid ä¸»é”®
     * @return ä¸»æ•°æ®ç¼–码规则显示对象
     * @throws VciBaseException å‚数为空,数据不存在时会抛出异常
     */
    @Override
    public CodeRuleVO getObjectByOid(String oid) throws VciBaseException {
        return codeRuleDO2VO(selectByOid(oid));
    }
    /**
     * ä¸»é”®æŸ¥è¯¢æ•°æ®å¯¹è±¡
     *
     * @param oid ä¸»é”®
     * @return æ•°æ®å¯¹è±¡
     * @throws VciBaseException å‚数为空,并且数据不存在的时候会抛出异常
     */
    private CodeRuleDO selectByOid(String oid) throws VciBaseException {
        VciBaseUtil.alertNotNull(oid, "主键");
        CodeRuleDO codeRuleDO = codeRuleMapper.selectByPrimaryKey(oid.trim());
        if (codeRuleDO == null || StringUtils.isBlank(codeRuleDO.getOid())) {
            throw new VciBaseException(DATA_OID_NOT_EXIST);
        }
        return codeRuleDO;
    }
    /**
     * ä¸»é”®æ‰¹é‡èŽ·å–ä¸»æ•°æ®ç¼–ç è§„åˆ™
     *
     * @param oidCollections ä¸»é”®é›†åˆï¼Œä½†æ˜¯å—性能影响,建议一次查询不超过10000个
     * @return ä¸»æ•°æ®ç¼–码规则显示对象
     * @throws VciBaseException æŸ¥è¯¢å‡ºçŽ°å¼‚å¸¸æ—¶ä¼šæŠ›å‡º
     */
    @Override
    public Collection<CodeRuleVO> listCodeRuleByOids(Collection<String> oidCollections) throws VciBaseException {
        VciBaseUtil.alertNotNull(oidCollections, "数据对象主键集合");
        List<CodeRuleDO> codeRuleDOList = listCodeRuleDOByOidCollections(oidCollections);
        return codeRuleDO2VOs(codeRuleDOList);
    }
    /**
     * ä¸»é”®æ‰¹é‡èŽ·å–ä¸»æ•°æ®ç¼–ç è§„åˆ™
     *
     * @param oidCollections ä¸»é”®é›†åˆï¼Œä½†æ˜¯å—性能影响,建议一次查询不超过10000个
     * @param hasSec         æ˜¯å¦åŒ…含码段
     * @return ä¸»æ•°æ®ç¼–码规则显示对象
     * @throws VciBaseException æŸ¥è¯¢å‡ºçŽ°å¼‚å¸¸æ—¶ä¼šæŠ›å‡º
     */
    @Override
    public Collection<CodeRuleVO> listCodeRuleByOids(Collection<String> oidCollections, boolean hasSec) throws VciBaseException {
        VciBaseUtil.alertNotNull(oidCollections, "数据对象主键集合");
        List<CodeRuleDO> codeRuleDOList = listCodeRuleDOByOidCollections(oidCollections);
        return codeRuleDO2VOs(codeRuleDOList, true);
    }
    /**
     * ä½¿ç”¨ç¼–号的集合获取规则的内容
     *
     * @param idCollection ç¼–号的集合
     * @return è§„则的内容
     */
    @Override
    public List<CodeRuleVO> listCodeRuleByIds(Collection<String> idCollection) {
        return codeRuleDO2VOs(listCodeRuleDOByIdCollections(idCollection));
    }
    /**
     * ä½¿ç”¨ä¸»é”®é›†åˆæŸ¥è¯¢æ•°æ®å¯¹è±¡
     *
     * @param oidCollections ä¸»é”®çš„集合
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    private List<CodeRuleDO> listCodeRuleDOByOidCollections(Collection<String> oidCollections) {
        List<CodeRuleDO> codeRuleDOList = new ArrayList<CodeRuleDO>();
        if (!CollectionUtils.isEmpty(oidCollections)) {
            Collection<Collection<String>> oidCollectionsList = VciBaseUtil.switchCollectionForOracleIn(oidCollections);
            for (Collection<String> oids : oidCollectionsList) {
                List<CodeRuleDO> tempDOList = codeRuleMapper.selectByPrimaryKeyCollection(oids);
                if (!CollectionUtils.isEmpty(tempDOList)) {
                    codeRuleDOList.addAll(tempDOList);
                }
            }
        }
        return codeRuleDOList;
    }
    /**
     * ä½¿ç”¨ç¼–号集合查询数据对象
     *
     * @param idCollections ç¼–号的集合
     * @return æ•°æ®å¯¹è±¡åˆ—表
     */
    private List<CodeRuleDO> listCodeRuleDOByIdCollections(Collection<String> idCollections) {
        List<CodeRuleDO> codeRuleDOList = new ArrayList<CodeRuleDO>();
        if (!CollectionUtils.isEmpty(idCollections)) {
            Collection<Collection<String>> idCollectionsList = VciBaseUtil.switchCollectionForOracleIn(idCollections);
            for (Collection<String> ids : idCollectionsList) {
                List<CodeRuleDO> tempDOList = codeRuleMapper.selectByIdCollection(ids);
                if (!CollectionUtils.isEmpty(tempDOList)) {
                    codeRuleDOList.addAll(tempDOList);
                }
            }
        }
        return codeRuleDOList;
    }
    /**
     * å‚照主数据编码规则列表
     *
     * @param conditionMap æŸ¥è¯¢æ¡ä»¶
     * @param pageHelper   åˆ†é¡µå’ŒæŽ’序
     * @return ä¸»æ•°æ®ç¼–码规则显示对象列表,生效的内容
     * @throws VciBaseException æŸ¥è¯¢æ¡ä»¶å’Œåˆ†é¡µå‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    @Override
    public DataGrid<CodeRuleVO> refDataGridCodeRule(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException {
        if (conditionMap == null) {
            conditionMap = new HashMap<String, String>();
        }
        return gridCodeRule(conditionMap, pageHelper);
    }
    /**
     * æŸ¥çœ‹ä¸»æ•°æ®ç¼–码规则的使用范围
     *
     * @param oid ç¼–码规则主键
     * @return ä¸»é¢˜åº“分类使用到该编码规则的所有集合
     */
    @Override
    public Collection<CodeClassifyVO> listUseRangeInCodeClassify(String oid) {
        Map<String, String> conditionMap = new HashMap<>();
        conditionMap.put("codeRuleOid", oid);
        VciQueryWrapperForDO queryWrapper = new VciQueryWrapperForDO(conditionMap, CodeClassifyDO.class);
        List<CodeClassifyDO> dos = codeClassifyService.selectByWrapper(queryWrapper);
        return codeClassifyService.codeClassifyDO2VOs(dos);
    }
    /**
     * æ£€éªŒç¼–码规则是否已经被使用
     *
     * @param oid ç¼–码规则主键
     * @return true表示已经使用,false表示未被使用
     */
    @Override
    public boolean isAlreadyInUse(String oid) {
        Collection<CodeClassifyVO> codeClassifyVOS = listUseRangeInCodeClassify(oid);
        if (codeClassifyVOS.size() > 0) {
            return true;
        } else {
            return false;
        }
    }
    /**
     * åœç”¨ä¸Žå¯ç”¨ç¼–码规则
     *
     * @param oid    ç¼–码规则主键
     * @param update enable:启用 disable:停用 release:发布
     * @return æ‰§è¡Œç»“æžœ
     */
    @Override
    public BaseResult updateStatus(String oid, String update) {
        int count = 0;
        CodeRuleDO codeRuleDO = selectByOid(oid);
        if ("enable".equalsIgnoreCase(update)) {
            if (!CodeRuleLC.DISABLED.getValue().equals(codeRuleDO.getLcStatus())) {
                return BaseResult.fail("非停用状态的编码规则无需点击启用");
            }
            count = codeRuleMapper.updateLcStatus(oid, CodeRuleLC.RELEASED.getValue());
        } else if ("disable".equalsIgnoreCase(update)) {
            if (!CodeRuleLC.RELEASED.getValue().equals(codeRuleDO.getLcStatus())) {
                return BaseResult.fail("非发布状态的编码规则无法停用");
            }
            count = codeRuleMapper.updateLcStatus(oid, CodeRuleLC.DISABLED.getValue());
        } else if ("release".equalsIgnoreCase(update)) {
            if (!CodeRuleLC.EDITING.getValue().equals(codeRuleDO.getLcStatus())) {
                return BaseResult.fail("非编辑状态的编码规则无法发布");
            }
            count = codeRuleMapper.updateLcStatus(oid, CodeRuleLC.RELEASED.getValue());
        } else {
            return BaseResult.fail("暂不支持的操作类型");
        }
        if (count > 0) {
            return BaseResult.success();
        } else {
            return BaseResult.fail("更新状态失败");
        }
    }
    /**
     * å…‹éš†ç¼–码规则
     *
     * @param codeRuleDTO ä¸»æ•°æ®ç¼–码规则数据传输对象,oid和ts需要传输
     * @return ä¸»æ•°æ®ç¼–码规则显示对象
     */
    public BaseResult cloneCodeRule_v1(CodeRuleDTO codeRuleDTO) {
        VciBaseUtil.alertNotNull(codeRuleDTO.getOid(), "编码规则主键");
        ClientBusinessObjectOperation operation = new ClientBusinessObjectOperation();
        Map<String, String> conditionMap = new HashMap<>();
        conditionMap.put("pkCodeRule", codeRuleDTO.getOid());
        List<CodeBasicSecDO> basicSecDOS = boService.queryObject(CodeBasicSecDO.class, conditionMap);
        List<String> secOidList = new ArrayList<>();
        for (CodeBasicSecDO secDO : basicSecDOS) {
            secOidList.add(secDO.getOid());
        }
        List<ClientBusinessObject> cboList = new ArrayList<>();
        try {
            ClientBusinessObject templateCbo = operation.readBusinessObjectById(codeRuleDTO.getOid(), MdmBtmTypeConstant.CODE_RULE);
            ClientBusinessObject codeRuleCbo = operation.initBusinessObject(templateCbo.getBtmName());
            String curOid = codeRuleCbo.getOid();
            String curRevisionId = codeRuleCbo.getRevisionid();
            String curNameOid = codeRuleCbo.getNameoid();
            BeanUtilForVCI.copyPropertiesIgnoreCase(templateCbo, codeRuleCbo);
            codeRuleCbo.setOid(curOid);
            codeRuleCbo.setRevisionid(curRevisionId);
            codeRuleCbo.setNameoid(curNameOid);
            codeRuleCbo.setId(templateCbo.getId() + "_copy");
            codeRuleCbo.setName(templateCbo.getName() + "_copy");
            if (!CollectionUtils.isEmpty(secOidList)) {
                ClientBusinessObject[] secCboArr = operation.readBusinessObjectById(secOidList.toArray(new String[0]), MdmBtmTypeConstant.CODE_BASIC_SEC);
                for (ClientBusinessObject cbo : secCboArr) {
                    ClientBusinessObject newSecCbo = operation.initBusinessObject(cbo.getBtmName());
                    String newSecCboOid = newSecCbo.getOid();
                    String newSecCboRevisionId = newSecCbo.getRevisionid();
                    String newSecCboNameOid = newSecCbo.getNameoid();
                    BeanUtilForVCI.copyPropertiesIgnoreCase(cbo, newSecCbo);
                    newSecCbo.setOid(newSecCboOid);
                    newSecCbo.setRevisionid(newSecCboRevisionId);
                    newSecCbo.setNameoid(newSecCboNameOid);
                    newSecCbo.setId(newSecCbo.getId() + "_copy");
                    newSecCbo.setName(newSecCbo.getName() + "_copy");
                    newSecCbo.setAttributeValue("pkCodeRule", codeRuleCbo.getOid());
                    cboList.add(newSecCbo);
                }
            }
            cboList.add(codeRuleCbo);
            ClientBusinessObject[] saveList = operation.batchSaveCreateBuinessObject(cboList.toArray(new ClientBusinessObject[0]));
            if (saveList.length == 0) {
                return BaseResult.fail("克隆出错了……");
            }
        } catch (VCIError vciError) {
            vciError.printStackTrace();
        }
        return BaseResult.success();
    }
    /**
     * å…‹éš†ç¼–码规则
     *
     * @param codeRuleDTO ä¸»æ•°æ®ç¼–码规则数据传输对象,oid和ts需要传输
     * @return ä¸»æ•°æ®ç¼–码规则显示对象
     */
    @Override
    public BaseResult cloneCodeRule(CodeRuleDTO codeRuleDTO) {
        VciBaseUtil.alertNotNull(codeRuleDTO, "需要添加的数据对象");
        CodeRuleDO codeRuleDO = new CodeRuleDO();
        BeanUtilForVCI.copyPropertiesIgnoreCase(codeRuleDTO, codeRuleDO);
        WebUtil.setPersistence(false);
        BatchCBO batchInsertCBO = codeRuleMapper.insert(codeRuleDO);
        List<CodeBasicSecDTO> secList = codeRuleDTO.getElements();
        secList.forEach(codeBasicSecDTO -> {
            codeBasicSecDTO.setPkCodeRule(codeRuleDO.getOid());
            KeyValue attrKv = codeBasicSecService.checkAttrNullableBySecType(codeBasicSecDTO);
            if (!"success".equals(attrKv.getKey())) {
                throw new VciBaseException(attrKv.getValue() + "不能为空");
            }
            CodeBasicSecDO codeBasicSecDO = new CodeBasicSecDO();
            BeanUtilForVCI.copyPropertiesIgnoreCase(codeBasicSecDTO, codeBasicSecDO);
            codeBasicSecDO.setOid("");
            codeBasicSecDO.setRevisionOid("");
            codeBasicSecDO.setNameOid("");
            //codeBasicSecMapper中的语句全部迁移到这里
            VciBaseUtil.alertNotNull(codeBasicSecDO,"要添加的数据");
            BatchCBO cbo = boService.addSave(codeBasicSecDO);
            batchInsertCBO.addCreateCbo(cbo.getCreateCboArray()[0]);
        });
        boService.persistenceBatch(batchInsertCBO);
        return BaseResult.success();
    }
    /**
     * ä½¿ç”¨ä¸»é”®èŽ·å–ç¼–ç è§„åˆ™çš„å†…å®¹
     *
     * @param oid ä¸»é”®
     * @return è§„则的显示对象
     */
    @Override
    public CodeRuleVO getObjectHasSecByOid(String oid) {
        CodeRuleDO ruleDO = selectByOid(oid);
        return codeRuleDO2VO(ruleDO, true);
    }
    /**
     * ç¼–码规则清空所有已生成的编码
     *
     * @param oid ç¼–码规则主键
     * @return æ‰§è¡Œç»“æžœ
     */
    @Override
    public BaseResult clearAllCode(String oid) {
        WebUtil.alertNotNull(oid, "编码规则主键");
        Map<String, String> conditionMap = new HashMap<>();
        conditionMap.put("codeRuleOid", oid);
        List<CodeAllCodeDO> codeDOList = boService.queryObject(CodeAllCodeDO.class, conditionMap);
        if (CollectionUtils.isEmpty(codeDOList)) {
            return BaseResult.fail("当前编码规则没有生成编码,无需清空");
        }
        //是否需要进行btm不统一的判断?
        String btmType = codeDOList.get(0).getCreateCodeBtm();
        /*boolean flag = codeDOList.stream().anyMatch(s -> !StringUtils.equalsIgnoreCase(btmType, s.getCreateCodeBtm()));
        if (flag) {
            return BaseResult.fail("当前编码规则生成编码在不同类型下使用过");
        }*/
        //多种类型下的查询
        Set<String> btmTypeSet = codeDOList.stream().filter(s -> {
            return !StringUtils.equalsIgnoreCase(btmType, s.getCreateCodeBtm());
        }).map(s -> s.getCreateCodeBtm()).collect(Collectors.toSet());
        List<ClientBusinessObject> businessDataList = new ArrayList<>();
        if (btmTypeSet.size() > 1) {
            for (String btm : btmTypeSet) {
                String sql = "select COUNT(w.OID) from PLATFORMBTM_" + btm + "  w\n" +
                        "join PLATFORMBTM_" + MdmBtmTypeConstant.CODE_ALL_CODE + " c on w.OID = c.CREATECODEOID\n" +
                        "where c.CREATECODEBTM = '" + btm + "' and c.CODERULEOID = '" + oid + "'" +
                        "and w.ISLASTR = '1' and w.ISLASTV = '1'";
                List<ClientBusinessObject> businessData = boService.queryByOnlySql(sql);
                businessDataList.addAll(businessData);
            }
        }else {
            String sql = "select COUNT(w.OID) from PLATFORMBTM_" + btmType + "  w\n" +
                    "join PLATFORMBTM_" + MdmBtmTypeConstant.CODE_ALL_CODE + " c on w.OID = c.CREATECODEOID\n" +
                    "where c.CREATECODEBTM = '" + btmType + "' and c.CODERULEOID = '" + oid + "'" +
                    "and w.ISLASTR = '1' and w.ISLASTV = '1'";
            List<ClientBusinessObject> businessData = boService.queryByOnlySql(sql);
            businessDataList.addAll(businessData);
        }
        if (CollectionUtils.isEmpty(businessDataList) || StringUtils.isBlank(businessDataList.get(0).getAttributeValue("COUNT(w.OID)"))) {
            //无效查询
            return BaseResult.fail("查询失败");
        } else if (!StringUtils.equalsIgnoreCase("0", businessDataList.get(0).getAttributeValue("COUNT(w.OID)"))) {
            return BaseResult.fail("编码规则生成的编码已在业务数据中应用,不允许清空");
        }
        //没有数据,可以安全删除
        WebUtil.setPersistence(false);
        //删除码值表中的数据,但不够,如果有流水的码段,需要重新计算流水
        conditionMap.clear();
        conditionMap.put("codeRuleOid", oid);
        List<ClientBusinessObject> serialValueList = boService.queryCBO("codeserialvalue", conditionMap);
        BatchCBO batchCBO = boService.batchDelete(codeDOList);
        batchCBO.getDeleteCbos().addAll(serialValueList);
        WebUtil.setPersistence(true);
        boService.persistenceBatch(batchCBO);
        return BaseResult.success();
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeSerialAlgorithmServiceImpl.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeSynonymServiceImpl.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeTemplatePhaseServiceImpl.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingPreApplyDataInfoServiceImpl.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingPreApplyDataServiceImpl.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingPreAttrMappingSeviceImpl.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/ICodeClassifyServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
package com.vci.ubcs.code.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.vci.ubcs.code.entity.CodeClassify;
import com.vci.ubcs.code.mapper.CodeClassifyMapper;
import com.vci.ubcs.code.service.ICodeClassifyService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service
public class ICodeClassifyServiceImpl extends ServiceImpl<CodeClassifyMapper, CodeClassify> implements ICodeClassifyService {
    @Resource
    private CodeClassifyMapper codeClassifyMapper;
    /**
     * ä½¿ç”¨æŸ¥è¯¢å°è£…器来查询
     * @param wrapper æŸ¥è¯¢å°è£…器
     * @return æ•°æ®å¯¹è±¡
     */
    @Override
    public List<CodeClassify> selectByWrapper(Wrapper wrapper) {
        return codeClassifyMapper.selectList(wrapper);
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmProductCodeServiceImpl.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/SysIntAuthorityServiceImpl.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/SysIntBaseServiceImpl.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/SysIntInfoServiceImpl.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/utils/AttributeMapConfig.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/utils/BackXml.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/utils/DateUtils.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/utils/EnumVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/utils/HttpUtils.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/utils/Json2XmlUtil.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/utils/PatternUtil.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/utils/Pro.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/utils/WsAxis2ClientUtil.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/utils/WsErpClientUtil.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/utils/XmlData.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/utils/XmlUtil.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/utils/gennerAttrMapUtil.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeAllcodeWrapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,50 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill åº„骞 (smallchill@163.com)
 */
package com.vci.ubcs.code.wrapper;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import com.vci.ubcs.code.entity.CodeAllcode;
import com.vci.ubcs.code.vo.pagemodel.CodeAllcodeVO;
import java.util.Objects;
/**
 * å…¨éƒ¨ç å€¼ åŒ…装类,返回视图层所需的字段
 *
 * @author ludc
 * @since 2023-04-03
 */
public class CodeAllcodeWrapper extends BaseEntityWrapper<CodeAllcode, CodeAllcodeVO>  {
    public static CodeAllcodeWrapper build() {
        return new CodeAllcodeWrapper();
     }
    @Override
    public CodeAllcodeVO entityVO(CodeAllcode CodeAllcode) {
        CodeAllcodeVO CodeAllcodeVO = Objects.requireNonNull(BeanUtil.copy(CodeAllcode, CodeAllcodeVO.class));
        //User createUser = UserCache.getUser(CodeAllcode.getCreateUser());
        //User updateUser = UserCache.getUser(CodeAllcode.getUpdateUser());
        //CodeAllcodeVO.setCreateUserName(createUser.getName());
        //CodeAllcodeVO.setUpdateUserName(updateUser.getName());
        return CodeAllcodeVO;
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeClassifyWrapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package com.vci.ubcs.code.wrapper;
import com.vci.ubcs.code.entity.CodeClassify;
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import java.util.Objects;
public class CodeClassifyWrapper extends BaseEntityWrapper<CodeClassify, CodeClassifyVO> {
    public static CodeClassifyWrapper build() {
        return new CodeClassifyWrapper();
    }
    @Override
    public CodeClassifyVO entityVO(CodeClassify codeClassify) {
        CodeClassifyVO codeClassifyVO = Objects.requireNonNull(BeanUtil.copy(codeClassify, CodeClassifyVO.class));
        return codeClassifyVO;
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeRuleWrapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,53 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill åº„骞 (smallchill@163.com)
 */
package com.vci.ubcs.code.wrapper;
import com.vci.ubcs.code.entity.CodeRule;
import com.vci.ubcs.code.lifecycle.CodeRuleLC;
import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
 * ç¼–码规则 åŒ…装类,返回视图层所需的字段
 *
 * @author ludc
 * @since 2023-04-03
 */
public class CodeRuleWrapper extends BaseEntityWrapper<CodeRule, CodeRuleVO>  {
    public static CodeRuleWrapper build() {
        return new CodeRuleWrapper();
     }
    @Override
    public CodeRuleVO entityVO(CodeRule codeRule) {
        CodeRuleVO codeRuleVO = Objects.requireNonNull(BeanUtil.copy(codeRule, CodeRuleVO.class));
        codeRuleVO.setLcStatusText(CodeRuleLC.getTextByValue(codeRuleVO.getLcStatus()));
        return codeRuleVO;
    }
    @Override
    public List<CodeRuleVO> listVO(List<CodeRule> list) {
        return (List)list.stream().map(this::entityVO).collect(Collectors.toList());
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/application-dev.yml
@@ -1,76 +1,77 @@
#服务器端口
server:
  port: 36013
  port: 36014
#数据源配置
spring:
  datasource:
    url: ${blade.datasource.dev.url}
    username: ${blade.datasource.dev.username}
    password: ${blade.datasource.dev.password}
  messages:
    encoding: UTF-8
    basename: i18n/messages
    url: ${ubcs.datasource.mdm.dev.url}
    username: ${ubcs.datasource.mdm.dev.username}
    password: ${ubcs.datasource.mdm.dev.password}
#关闭驼峰命名映射
mybatis-plus:
  configuration:
    map-underscore-to-camel-case: false
#####应用基本配置
app:
  name: web
  group: åŒ—京宏博远达科技有限公司
  description: å¹³å°B/S客户端
  private-token-key: vciweb20210212
######应用基本配置
#app:
#  name: web
#  group: åŒ—京宏博远达科技有限公司
#  description: å¹³å°B/S客户端
#  private-token-key: vciweb20210212
###本项目的配置,注意spring家族读取配置时,大写字母需要转换为-的方式,而feign需要大小写完全相同
session:
  session-info-storage-type: "database"
  database-platform: oracle
  clear-session-on-start: false
  ###是否开启用户在线检查
  checkSessionTimeout: false
  ###客户端判断超时轮询时间,单位为秒
  sessionInterval: 10
  ###客户端最大存在时间,单位为分钟
  sessionIdlTime: 30
  ###超时提醒时间,单位为分钟
  sessionRemind: 3
user-table-compatibility: "platform1"
#受2021版本的部分接口的影响,下面的内容需要配置,
vciPlatform:
  objectServiceUrl: ""
  cache:
    type: ehcache
##web配置
vciweb:
  debug: true
file-preview:
  enabled: true
  preview-service-url: "http://dev.yunkeruida.top:28090/vciFilePreview/ajaxPreview.html"
  preview-system-key: plt2020
docking:
  #是否开启主数据/分类数据推送同步
  insertCache2: false
  cron: 0 0/1 * * * ?
  #预申请数据,配置模板文件存放的文件夹
  templateDir: D:\desktop
  tranTemp: D:\mes
  #图号的key
  tuhao: tuhao
dataSyncPush:
  isStart: false
  cronTime: "0 0/1 * * * ?"
  dataParamName: dataString
  dataTranTemp: D:\desktop
clsfSyncPush:
  isStart: false
  cronTime: "0 0/1 * * * ?"
  dataParamName: dataString
  dataTranTemp: D:\desktop
attrconfig:
  #系统集成
  system_attrmap: {RLM: D:\RLM.xml,PDM: D:\pdm.xml,DMS: D:\DMS.xml}
  #MPM枚举值属性映射
  mpmEnumMap: {partType: [{enumValue: 1,enumText: äº§å“},{enumValue: 2,enumText: äº§å“},{'enumValue': 3,enumText: æ ‡å‡†ä»¶},{'enumValue': 7,enumText: ææ–™}]}
#session:
#  session-info-storage-type: "database"
#  database-platform: oracle
#  clear-session-on-start: false
#  ###是否开启用户在线检查
#  checkSessionTimeout: false
#  ###客户端判断超时轮询时间,单位为秒
#  sessionInterval: 10
#  ###客户端最大存在时间,单位为分钟
#  sessionIdlTime: 30
#  ###超时提醒时间,单位为分钟
#  sessionRemind: 3
#user-table-compatibility: "platform1"
##受2021版本的部分接口的影响,下面的内容需要配置,
#vciPlatform:
#  objectServiceUrl: ""
#  cache:
##    type: ehcache
#
###web配置
#vciweb:
#  debug: true
#file-preview:
#  enabled: true
#  preview-service-url: "http://dev.yunkeruida.top:28090/vciFilePreview/ajaxPreview.html"
#  preview-system-key: plt2020
#docking:
#  #是否开启主数据/分类数据推送同步
#  insertCache2: false
#  cron: 0 0/1 * * * ?
#  #预申请数据,配置模板文件存放的文件夹
#  templateDir: D:\desktop
#  tranTemp: D:\mes
#  #图号的key
#  tuhao: tuhao
#
#dataSyncPush:
#  isStart: false
#  cronTime: "0 0/1 * * * ?"
#  dataParamName: dataString
#  dataTranTemp: D:\desktop
#clsfSyncPush:
#  isStart: false
#  cronTime: "0 0/1 * * * ?"
#  dataParamName: dataString
#  dataTranTemp: D:\desktop
#
#attrconfig:
#  #系统集成
#  system_attrmap: {RLM: D:\RLM.xml,PDM: D:\pdm.xml,DMS: D:\DMS.xml}
#  #MPM枚举值属性映射
#  mpmEnumMap: {partType: [{enumValue: 1,enumText: äº§å“},{enumValue: 2,enumText: äº§å“},{'enumValue': 3,enumText: æ ‡å‡†ä»¶},{'enumValue': 7,enumText: ææ–™}]}
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/application.yml
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeALlCodeMapper.xml
@@ -1,6 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.vci.ubcs.code.mapper.CodeAllCodeMapper">
<mapper namespace="com.vci.ubcs.code.mapper.CodeAllcodeMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="CodeAllcodeResultMap" type="com.vci.ubcs.code.entity.CodeAllcode">
    </resultMap>
    <select id="selectCodeAllcodePage" resultMap="CodeAllcodeResultMap">
        select * from PL_CODE_ALLCODE
    </select>
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeBasicSecMapper.xml
@@ -2,10 +2,21 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.vci.ubcs.code.mapper.CodeBasicSecMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="CodeRuleResultMap" type="com.vci.ubcs.code.entity.CodeRule">
    </resultMap>
    <select id="selectPlCodeRulePage" resultMap="CodeRuleResultMap">
        select * from PL_CODE_RULE where is_deleted = 0
    </select>
    <select id="countByCondition" resultType="com.vci.ubcs.code.entity.CodeBasicSec">
    </select>
</mapper>
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeButtonMapper.xml
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClassifyProcessTempMapper.xml
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClassifyTempMapItemMapper.xml
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClassifyTemplateAttrMapper.xml
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClassifyTemplateButtonMapper.xml
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClassifyTemplateMapMapper.xml
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClassifyTemplateMapper.xml
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeFixedValueMapper.xml
@@ -3,4 +3,5 @@
<mapper namespace="com.vci.ubcs.code.mapper.CodeFixedValueMapper">
</mapper>
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeKeyAttrRepeatRuleMapper.xml
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodePhaseAttrMapper.xml
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeResembleRuleMapper.xml
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeRuleMapper.xml
@@ -2,5 +2,78 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.vci.ubcs.code.mapper.CodeRuleMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="codeRuleResultMap" type="com.vci.ubcs.code.entity.CodeRule">
        <id property="oid" column="OID"/>
        <result property="btmname" column="BTMNAME"/>
        <result property="revisionOid" column="REVISIONOID"/>
        <result property="nameOid" column="NAMEOID"/>
        <result property="lastR" column="LASTR"/>
        <result property="firstR" column="FIRSTR"/>
        <result property="lastV" column="LASTV"/>
        <result property="firstV" column="FIRSTV"/>
        <result property="creator" column="CREATOR"/>
        <result property="createTime" column="CREATETIME"/>
        <result property="lastModifier" column="LASTMODIFIER"/>
        <result property="lastModifyTime" column="LASTMODIFYTIME"/>
        <result property="revisionRule" column="REVISIONVALUE"/>
        <result property="versionRule" column="VISIONRULE"/>
        <result property="revisionValue" column="REVISIONRULE"/>
        <result property="versionValue" column="VERSIONVALUE"/>
        <result property="revisionSeq" column="REVISIONSEQ"/>
        <result property="versionSeq" column="VERSIONSEQ"/>
        <result property="lctid" column="LCTID"/>
        <result property="lcStatus" column="LCSTATUS"/>
        <result property="ts" column="TS"/>
        <result property="id" column="ID"/>
        <result property="name" column="NAME"/>
        <result property="description" column="DESCRIPTION"/>
        <result property="owner" column="OWNER"/>
        <result property="copyFromVersion" column="COPYFROMVERSION"/>
    </resultMap>
    <select id="selectCodeRulePage" resultMap="codeRuleResultMap">
        SELECT PCR.oid,
               PCR.REVISIONOID,
               PCR.NAMEOID,
               PCR.BTMNAME,
               PCR.LASTR,
               PCR.FIRSTR,
               PCR.LASTV,
               PCR.FIRSTV,
               PCR.CREATOR,
               PCR.CREATETIME,
               PCR.LASTMODIFIER,
               PCR.LASTMODIFYTIME,
               PCR.REVISIONRULE,
               PCR.VERSIONRULE,
               PCR.REVISIONVALUE,
               PCR.VERSIONVALUE,
               PCR.REVISIONSEQ,
               PCR.VERSIONSEQ,
               PCR.LCTID,
               PCR.LCSTATUS,
               PCR.TS,
               PCR.ID,
               PCR.NAME,
               PCR.DESCRIPTION,
               PCR.OWNER,
               PCR.COPYFROMVERSION
        FROM PL_CODE_RULE PCR
        <where>
            <if test="codeRule.id != null and codeRule.id != ''">
                and ID like concat(concat('%',#{codeRule.id}),'%')
            </if>
            <if test="codeRule.name != null and codeRule.name != ''">
                and NAME like concat(concat('%',#{codeRule.name}),'%')
            </if>
            <if test="codeRule.description != null and codeRule.description != ''">
                and DESCRIPTION like concat(concat('%',#{codeRule.description}),'%')
            </if>
            <if test="codeRule.lcStatus != null and codeRule.lcStatus != ''">
                and lcStatus like concat(concat('%',#{codeRule.lcStatus}),'%')
            </if>
        </where>
    </select>
</mapper>
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeSerialValueMapper.xml
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeSynonymMapper.xml
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeTemplatePhaseMapper.xml
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/DockingDataMapper.xml
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/DockingLogeMapper.xml
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/DockingPreApplyDataInfoMapper.xml
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/DockingPreApplyDataMapper.xml
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/DockingPreAttrMappingMapper.xml
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/DockingPreAttrRangeMapper.xml
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/DockingTaskMapper.xml
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/SysIntAuthorityMapper.xml
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/SysIntBaseMapper.xml
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/SysIntHeaderMapper.xml
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/SysIntInfoMapper.xml
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/SysIntParamMapper.xml
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/mapper/StrategyMapper.java
@@ -27,10 +27,10 @@
    /**
     * ç»Ÿè®¡æ€»è¡Œæ•°
     *
     * @param plSysStrategy æŸ¥è¯¢æ¡ä»¶
     * @param sysStrategy æŸ¥è¯¢æ¡ä»¶
     * @return æ€»è¡Œæ•°
     */
    long count(Strategy plSysStrategy);
    long count(Strategy sysStrategy);
    /**
     * æ ¹æ®ç”¨æˆ·åä»¥åŠç§Ÿæˆ·ID查询密码策略
Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/mapper/ValueRangeMapper.java
@@ -19,7 +19,7 @@
     * æŸ¥è¯¢æŒ‡å®šè¡Œæ•°æ®
     *
     * @param valueRannge æŸ¥è¯¢æ¡ä»¶
     * @param pageable        åˆ†é¡µå¯¹è±¡
     * @param pageable    åˆ†é¡µå¯¹è±¡
     * @return å¯¹è±¡åˆ—表
     */
    List<ValueRange> queryAllByLimit(ValueRange valueRannge, @Param("pageable") Pageable pageable);
@@ -34,7 +34,7 @@
    /**
     * æ ¹ç©¶ç»„合id查询取值
     * æ ¹æ®ç»„合id查询取值
     * @return
     */
    List<String> queryByCombinationIds(@Param("combinationIds") List<String> combinationIds);
Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/StrategyServiceImpl.java
@@ -81,23 +81,13 @@
            if(!Func.isEmpty(dbstrategy)){
                throw new ServiceException("该密码策略已存在!");
            }
            //检验密码策略是否符合要求
            checkPwdStrategy(strategy);
            //如果当前新增设置为默认密码策略,需要将已存在默认密码策略修改为非默认
            if(strategy.getIsDefault().equals("1") || strategy.getIsDefault() == 1){
                this.update(Wrappers.<Strategy>update().lambda()
                    .set(Strategy::getIsDefault, CommonConstant.NOT_SEALED_ID)
                    .eq(Strategy::getIsDefault, CommonConstant.DATA_SCOPE_CATEGORY));
            }
            if(strategy.getRequiredType() > 0){
                throw new ServiceException("必填种类不能小于等于0!");
            }
            if(strategy.getRequiredType() > strategy.getCombinationIds().split(",").length){
                throw new ServiceException("必填种类不能大于所选择的密码组合方式的个数!");
            }
            if(strategy.getMaxPwdLen() > strategy.getMinPwdLen()){
                throw new ServiceException("密码最大长度不能小于最小长度!");
            }
            if(strategy.getMinPwdLen() < strategy.getCombinationIds().split(",").length || strategy.getMaxPwdLen() < strategy.getCombinationIds().split(",").length){
                throw new ServiceException("密码最小长度不能小于秘密策略的值!");
                    .set(Strategy::getIsDefault, CommonConstant.NOT_DEFAULT)
                    .eq(Strategy::getIsDefault, CommonConstant.IS_DEFAULT));
            }
            if(Func.isEmpty(strategy.getCreateTime())){
                strategy.setCreateTime(new Date());
@@ -108,11 +98,13 @@
            boolean temp = super.saveOrUpdate(strategy);
            return temp;
        }else {
            //检验密码策略是否符合要求
            checkPwdStrategy(strategy);
            //如果当前修改设置为默认密码策略,需要将已存在默认密码策略修改为非默认
            if(strategy.getIsDefault().equals("1") || strategy.getIsDefault() == 1){
                this.update(Wrappers.<Strategy>update().lambda()
                    .set(Strategy::getIsDefault,CommonConstant.NOT_SEALED_ID)
                    .eq(Strategy::getIsDefault,CommonConstant.DATA_SCOPE_CATEGORY));
                    .set(Strategy::getIsDefault,CommonConstant.NOT_DEFAULT)
                    .eq(Strategy::getIsDefault,CommonConstant.IS_DEFAULT));
            }else {
                if(Func.isEmpty(queryByIsDefault())){
                    throw new ServiceException("默认密码策略必须有且仅有一条!");
@@ -127,6 +119,22 @@
    }
    /**
     *     æ£€éªŒå¯†ç ç­–略是否符合要求
     * @param strategy
     */
    public void checkPwdStrategy(Strategy strategy){
        if(strategy.getRequiredType() > strategy.getCombinationIds().split(",").length){
            throw new ServiceException("必填种类不能大于所选择的密码组合方式的个数!");
        }
        if(strategy.getMaxPwdLen() < strategy.getMinPwdLen()){
            throw new ServiceException("密码最大长度不能小于最小长度!");
        }
        if(strategy.getMinPwdLen() < strategy.getRequiredType() || strategy.getMaxPwdLen() < strategy.getRequiredType()){
            throw new ServiceException("密码最小长度不能小于必填种类的值!");
        }
    }
    /**
     * é€šè¿‡ä¸»é”®åˆ é™¤æ•°æ®
     *
     * @param ids ä¸»é”®
@@ -136,7 +144,7 @@
    public boolean deleteByIds(List<String> ids) {
        Strategy strategy = this.getOne(Wrappers.<Strategy>query().lambda()
            .in(Strategy::getId,ids)
            .eq(Strategy::getIsDefault, CommonConstant.DATA_SCOPE_CATEGORY));
            .eq(Strategy::getIsDefault, CommonConstant.IS_DEFAULT));
        //如果存在默认策略的id,就不能直接删除给出提示
        if(!Func.isEmpty(strategy)){
            throw new ServiceException("不能删除默认密码策略!");
Source/UBCS/ubcs-service/ubcs-system/src/main/resources/mapper/ValueRangeMapper.xml
@@ -72,7 +72,7 @@
        </where>
    </select>
    <select id="queryByCombinationIds" resultType="java.util.List">
    <select id="queryByCombinationIds" resultType="String">
        SELECT "VALUE" FROM PL_SYS_VALUE_RANGE PSVR
        WHERE PSVR.COMBINATION_ID IN (
            <foreach collection="combinationIds" item="id" separator=",">