.idea/.gitignore
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,8 @@ # Default ignored files /shelf/ /workspace.xml # Editor-based HTTP Client requests /httpRequests/ # Datasource local storage ignored files /dataSources/ /dataSources.local.xml .idea/compiler.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,48 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="CompilerConfiguration"> <annotationProcessing> <profile default="true" name="Default" enabled="true" /> <profile name="Maven default annotation processors profile" enabled="true"> <sourceOutputDir name="target/generated-sources/annotations" /> <sourceTestOutputDir name="target/generated-test-sources/test-annotations" /> <outputRelativeToContentRoot value="true" /> <module name="zhitan-quartz" /> <module name="zhitan-generator" /> <module name="zhitan-admin" /> <module name="zhitan-system" /> <module name="zhitan-common" /> <module name="zhitan-framework" /> </profile> </annotationProcessing> <bytecodeTargetLevel> <module name="basic" target="1.8" /> <module name="basic-data" target="1.8" /> <module name="compute-engine" target="1.8" /> <module name="data-model" target="1.8" /> <module name="data-monitoring" target="1.8" /> <module name="data-service" target="1.8" /> <module name="energy-management-server" target="1.8" /> <module name="parent" target="1.8" /> </bytecodeTargetLevel> </component> <component name="JavacSettings"> <option name="ADDITIONAL_OPTIONS_OVERRIDE"> <module name="basic" options="-parameters" /> <module name="basic-data" options="-parameters" /> <module name="compute-engine" options="-parameters" /> <module name="data-model" options="-parameters" /> <module name="data-monitoring" options="-parameters" /> <module name="data-service" options="-parameters" /> <module name="energy-management" options="-bootclasspath $USER_HOME$/.jdks/semeru-1.8.0_432/jre/lib/rt.jar;$USER_HOME$/.jdks/semeru-1.8.0_432/jre/lib/jce.jar -Xlint:deprecation" /> <module name="energy-management-server" options="-parameters" /> <module name="parent" options="-parameters" /> <module name="zhitan-admin" options="-bootclasspath $USER_HOME$/.jdks/semeru-1.8.0_432/jre/lib/rt.jar;$USER_HOME$/.jdks/semeru-1.8.0_432/jre/lib/jce.jar -Xlint:deprecation" /> <module name="zhitan-common" options="-bootclasspath $USER_HOME$/.jdks/semeru-1.8.0_432/jre/lib/rt.jar;$USER_HOME$/.jdks/semeru-1.8.0_432/jre/lib/jce.jar -Xlint:deprecation" /> <module name="zhitan-framework" options="-bootclasspath $USER_HOME$/.jdks/semeru-1.8.0_432/jre/lib/rt.jar;$USER_HOME$/.jdks/semeru-1.8.0_432/jre/lib/jce.jar -Xlint:deprecation" /> <module name="zhitan-generator" options="-bootclasspath $USER_HOME$/.jdks/semeru-1.8.0_432/jre/lib/rt.jar;$USER_HOME$/.jdks/semeru-1.8.0_432/jre/lib/jce.jar -Xlint:deprecation" /> <module name="zhitan-quartz" options="-bootclasspath $USER_HOME$/.jdks/semeru-1.8.0_432/jre/lib/rt.jar;$USER_HOME$/.jdks/semeru-1.8.0_432/jre/lib/jce.jar -Xlint:deprecation" /> <module name="zhitan-system" options="-bootclasspath $USER_HOME$/.jdks/semeru-1.8.0_432/jre/lib/rt.jar;$USER_HOME$/.jdks/semeru-1.8.0_432/jre/lib/jce.jar -Xlint:deprecation" /> </option> </component> </project> .idea/encodings.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,29 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="Encoding"> <file url="file://$PROJECT_DIR$/basic-data/src/main/java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/basic/src/main/java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/compute-engine/src/main/java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/compute-engine/src/main/resources" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/data-model/src/main/java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/data-monitoring/src/main/java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/data-service/src/main/java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/energy_management_server/src/main/java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/energy_management_server/src/main/resources" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/parent/src/main/java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/zhitan-admin/src/main/java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/zhitan-admin/src/main/resources" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/zhitan-common/src/main/java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/zhitan-common/src/main/resources" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/zhitan-framework/src/main/java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/zhitan-framework/src/main/resources" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/zhitan-generator/src/main/java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/zhitan-generator/src/main/resources" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/zhitan-quartz/src/main/java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/zhitan-quartz/src/main/resources" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/zhitan-system/src/main/java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/zhitan-system/src/main/resources" charset="UTF-8" /> </component> </project> .idea/jarRepositories.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,35 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="RemoteRepositoriesConfiguration"> <remote-repository> <option name="id" value="central" /> <option name="name" value="Central Repository" /> <option name="url" value="https://repo.maven.apache.org/maven2" /> </remote-repository> <remote-repository> <option name="id" value="central" /> <option name="name" value="central" /> <option name="url" value="https://maven.aliyun.com/repository/central" /> </remote-repository> <remote-repository> <option name="id" value="public" /> <option name="name" value="aliyun nexus" /> <option name="url" value="http://maven.aliyun.com/nexus/content/groups/public/" /> </remote-repository> <remote-repository> <option name="id" value="ali-public" /> <option name="name" value="ali-public" /> <option name="url" value="https://maven.aliyun.com/repository/public" /> </remote-repository> <remote-repository> <option name="id" value="central" /> <option name="name" value="Maven Central repository" /> <option name="url" value="https://repo1.maven.org/maven2" /> </remote-repository> <remote-repository> <option name="id" value="jboss.community" /> <option name="name" value="JBoss Community repository" /> <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" /> </remote-repository> </component> </project> .idea/misc.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,12 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="ExternalStorageConfigurationManager" enabled="true" /> <component name="MavenProjectsManager"> <option name="originalFiles"> <list> <option value="$PROJECT_DIR$/pom.xml" /> </list> </option> </component> <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK" /> </project> .idea/vcs.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="VcsDirectoryMappings"> <mapping directory="" vcs="Git" /> </component> </project> LICENSE
@@ -1,21 +1,20 @@ MIT License The MIT License (MIT) Copyright (c) 2024 AndyYin Copyright (c) 2018 admin Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. META-INF/MANIFEST.MF
ÎļþÒÑɾ³ý basic-data/pom.xml
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/controller/SysEnerclassController.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/controller/SysEnercoefficientController.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/controller/SysEnergyController.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/controller/SysPriceController.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/controller/SysProductController.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/domain/SysEnerclass.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/domain/SysEnercoefficient.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/domain/SysEnergy.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/domain/SysPrice.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/domain/SysProduct.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/mapper/SysEnerclassMapper.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/mapper/SysEnercoefficientMapper.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/mapper/SysEnergyMapper.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/mapper/SysPriceMapper.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/mapper/SysProductMapper.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/service/ISysEnerclassService.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/service/ISysEnercoefficientService.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/service/ISysEnergyService.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/service/ISysPriceService.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/service/ISysProductService.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/service/impl/SysEnerclassServiceImpl.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/service/impl/SysEnercoefficientServiceImpl.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/service/impl/SysEnergyServiceImpl.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/service/impl/SysPriceServiceImpl.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/service/impl/SysProductServiceImpl.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/controller/EnergyProjectAnnexController.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/controller/EnergyProjectController.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/controller/EnergyReportAnnexController.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/controller/EnergyReportController.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/domain/EnergyProject.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/domain/EnergyProjectAnnex.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/domain/EnergyReport.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/domain/EnergyReportAnnex.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/mapper/EnergyProjectAnnexMapper.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/mapper/EnergyProjectMapper.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/mapper/EnergyReportAnnexMapper.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/mapper/EnergyReportMapper.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/service/IEnergyProjectAnnexService.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/service/IEnergyProjectService.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/service/IEnergyReportAnnexService.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/service/IEnergyReportService.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/service/impl/EnergyProjectAnnexServiceImpl.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/service/impl/EnergyProjectServiceImpl.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/service/impl/EnergyReportAnnexServiceImpl.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/service/impl/EnergyReportServiceImpl.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/energyExamine/controller/AssessmentIndexController.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/energyExamine/domain/AssessmentIndex.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/energyExamine/mapper/AssessmentIndexMapper.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/energyExamine/service/IAssessmentIndexService.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/energyExamine/service/impl/AssessmentIndexServiceImpl.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/facility/controller/FacilityAnnexController.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/facility/controller/FacilityArchivesController.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/facility/domain/FacilityAnnex.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/facility/domain/FacilityArchives.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/facility/mapper/FacilityAnnexMapper.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/facility/mapper/FacilityArchivesMapper.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/facility/service/IFacilityAnnexService.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/facility/service/IFacilityArchivesService.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/facility/service/impl/FacilityAnnexServiceImpl.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/facility/service/impl/FacilityArchivesServiceImpl.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/meter/controller/MeterAnnexController.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/meter/controller/MeterImplementController.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/meter/controller/MeterImplementCountController.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/meter/domain/MeterAnnex.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/meter/domain/MeterImplement.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/meter/domain/MeterImplementCount.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/meter/domain/MeterImplementExcel.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/meter/mapper/MeterAnnexMapper.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/meter/mapper/MeterImplementCountMapper.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/meter/mapper/MeterImplementExcel.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/meter/mapper/MeterImplementMapper.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/meter/service/IMeterAnnexService.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/meter/service/IMeterImplementCountService.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/meter/service/IMeterImplementService.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/meter/service/impl/MeterAnnexServiceImpl.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/meter/service/impl/MeterImplementCountServiceImpl.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/meter/service/impl/MeterImplementServiceImpl.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/policy/controller/PolicyAnnexController.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/policy/controller/PolicyRegulationsController.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/policy/controller/PolicyRegulationsTranslateController.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/policy/domain/PolicyAnnex.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/policy/domain/PolicyRegulations.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/policy/domain/PolicyRegulationsTranslate.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/policy/mapper/PolicyAnnexMapper.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/policy/mapper/PolicyRegulationsMapper.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/policy/mapper/PolicyRegulationsTranslateMapper.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/policy/service/IPolicyAnnexService.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/policy/service/IPolicyRegulationsService.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/policy/service/IPolicyRegulationsTranslateService.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/policy/service/impl/PolicyAnnexServiceImpl.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/policy/service/impl/PolicyRegulationsServiceImpl.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/policy/service/impl/PolicyRegulationsTranslateServiceImpl.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/controller/RosteringController.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/controller/RosteringDutyController.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/controller/RosteringSchemeController.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/controller/RosteringSchemeitemController.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/controller/RosteringShiftController.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/domain/Rostering.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/domain/RosteringCopy.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/domain/RosteringDuty.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/domain/RosteringScheme.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/domain/RosteringSchemeitem.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/domain/RosteringShift.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/domain/workForceTreeObject.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/mapper/RosteringDutyMapper.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/mapper/RosteringMapper.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/mapper/RosteringSchemeMapper.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/mapper/RosteringSchemeitemMapper.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/mapper/RosteringShiftMapper.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/service/IRosteringDutyService.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/service/IRosteringSchemeService.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/service/IRosteringSchemeitemService.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/service/IRosteringService.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/service/IRosteringShiftService.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/service/impl/RosteringDutyServiceImpl.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/service/impl/RosteringSchemeServiceImpl.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/service/impl/RosteringSchemeitemServiceImpl.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/service/impl/RosteringServiceImpl.java
ÎļþÒÑɾ³ý basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/service/impl/RosteringShiftServiceImpl.java
ÎļþÒÑɾ³ý basic-data/src/main/resources/mybatis/enerInfoManage/SysEnerclassMapper.xml
ÎļþÒÑɾ³ý basic-data/src/main/resources/mybatis/enerInfoManage/SysEnercoefficientMapper.xml
ÎļþÒÑɾ³ý basic-data/src/main/resources/mybatis/enerInfoManage/SysEnergyMapper.xml
ÎļþÒÑɾ³ý basic-data/src/main/resources/mybatis/enerInfoManage/SysPriceMapper.xml
ÎļþÒÑɾ³ý basic-data/src/main/resources/mybatis/enerInfoManage/SysProductMapper.xml
ÎļþÒÑɾ³ý basic-data/src/main/resources/mybatis/energy/EnergyProjectAnnexMapper.xml
ÎļþÒÑɾ³ý basic-data/src/main/resources/mybatis/energy/EnergyProjectMapper.xml
ÎļþÒÑɾ³ý basic-data/src/main/resources/mybatis/energy/EnergyReportAnnexMapper.xml
ÎļþÒÑɾ³ý basic-data/src/main/resources/mybatis/energy/EnergyReportMapper.xml
ÎļþÒÑɾ³ý basic-data/src/main/resources/mybatis/energyExamine/AssessmentIndexMapper.xml
ÎļþÒÑɾ³ý basic-data/src/main/resources/mybatis/facility/FacilityAnnexMapper.xml
ÎļþÒÑɾ³ý basic-data/src/main/resources/mybatis/facility/FacilityArchivesMapper.xml
ÎļþÒÑɾ³ý basic-data/src/main/resources/mybatis/meter/MeterAnnexMapper.xml
ÎļþÒÑɾ³ý basic-data/src/main/resources/mybatis/meter/MeterImplementCountMapper.xml
ÎļþÒÑɾ³ý basic-data/src/main/resources/mybatis/meter/MeterImplementMapper.xml
ÎļþÒÑɾ³ý basic-data/src/main/resources/mybatis/policy/PolicyAnnexMapper.xml
ÎļþÒÑɾ³ý basic-data/src/main/resources/mybatis/policy/PolicyRegulationsMapper.xml
ÎļþÒÑɾ³ý basic-data/src/main/resources/mybatis/policy/PolicyRegulationsTranslateMapper.xml
ÎļþÒÑɾ³ý basic-data/src/main/resources/mybatis/workforce/RosteringDutyMapper.xml
ÎļþÒÑɾ³ý basic-data/src/main/resources/mybatis/workforce/RosteringMapper.xml
ÎļþÒÑɾ³ý basic-data/src/main/resources/mybatis/workforce/RosteringSchemeMapper.xml
ÎļþÒÑɾ³ý basic-data/src/main/resources/mybatis/workforce/RosteringSchemeitemMapper.xml
ÎļþÒÑɾ³ý basic-data/src/main/resources/mybatis/workforce/RosteringShiftMapper.xml
ÎļþÒÑɾ³ý basic/pom.xml
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/constant/Constants.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/constant/GenConstants.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/constant/HttpStatus.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/constant/UserConstants.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/core/lang/UUID.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/core/text/CharsetKit.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/core/text/Convert.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/core/text/StrFormatter.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/enums/HttpMethod.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/enums/UserStatus.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/exception/BaseException.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/exception/CustomException.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/exception/DemoModeException.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/exception/UtilException.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/exception/file/FileException.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/exception/file/FileNameLengthLimitExceededException.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/exception/file/FileSizeLimitExceededException.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/exception/file/InvalidExtensionException.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/exception/user/CaptchaException.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/exception/user/CaptchaExpireException.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/exception/user/UserException.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/exception/user/UserPasswordNotMatchException.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/utils/Arith.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/utils/DateUtils.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/utils/IdUtils.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/utils/LogUtils.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/utils/MessageUtils.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/utils/SecurityUtils.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/utils/ServletUtils.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/utils/StringUtils.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/utils/Threads.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/utils/VerifyCodeUtils.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/utils/file/FileUploadUtils.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/utils/file/FileUtils.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/utils/file/MimeTypeUtils.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/utils/html/EscapeUtil.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/utils/html/HTMLFilter.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/utils/http/HttpUtils.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/utils/ip/AddressUtils.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/utils/ip/IpUtils.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/utils/poi/Comprehensive.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/utils/poi/ExcelUtil.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/utils/reflect/ReflectUtils.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/utils/security/Md5Utils.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/utils/sign/Base64.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/utils/spring/SpringUtils.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/utils/sql/SqlUtil.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/utils/text/CharsetKit.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/utils/text/Convert.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/utils/text/StrFormatter.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/utils/time/TimeManager.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/utils/time/TimeType.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/xss/XssFilter.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/common/xss/XssHttpServletRequestWrapper.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/aspectj/DataScopeAspect.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/aspectj/DataSourceAspect.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/aspectj/LogAspect.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/aspectj/lang/annotation/DataScope.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/aspectj/lang/annotation/DataSource.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/aspectj/lang/annotation/Excel.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/aspectj/lang/annotation/Excels.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/aspectj/lang/annotation/Log.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/aspectj/lang/enums/BusinessStatus.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/aspectj/lang/enums/BusinessType.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/aspectj/lang/enums/DataSourceType.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/aspectj/lang/enums/OperatorType.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/config/ApplicationConfig.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/config/DruidConfig.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/config/FastJson2JsonRedisSerializer.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/config/FilterConfig.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/config/GenConfig.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/config/MyBatisConfig.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/config/RedisConfig.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/config/ResourcesConfig.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/config/RtdbConfig.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/config/RuoYiConfig.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/config/SecurityConfig.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/config/ServerConfig.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/config/SwaggerConfig.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/config/SystemConfig.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/config/ThreadPoolConfig.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/config/properties/DruidProperties.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/datasource/DynamicDataSource.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/datasource/DynamicDataSourceContextHolder.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/interceptor/RepeatSubmitInterceptor.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/interceptor/annotation/RepeatSubmit.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/interceptor/impl/SameUrlDataInterceptor.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/manager/AsyncManager.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/manager/ShutdownManager.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/manager/factory/AsyncFactory.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/redis/RedisCache.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/security/LoginUser.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/security/filter/JwtAuthenticationTokenFilter.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/security/handle/AuthenticationEntryPointImpl.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/security/handle/LogoutSuccessHandlerImpl.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/security/service/PermissionService.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/security/service/SysLoginService.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/security/service/SysPermissionService.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/security/service/TokenService.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/security/service/UserDetailsServiceImpl.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/web/controller/BaseController.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/web/domain/AjaxResult.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/web/domain/BaseEntity.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/web/domain/Server.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/web/domain/TreeSelect.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/web/domain/server/Cpu.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/web/domain/server/Jvm.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/web/domain/server/Mem.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/web/domain/server/Sys.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/web/domain/server/SysFile.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/web/exception/GlobalExceptionHandler.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/web/page/PageDomain.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/web/page/TableDataInfo.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/framework/web/page/TableSupport.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/common/CaptchaController.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/common/CommonController.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/monitor/controller/ServerController.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/monitor/controller/SysLogininforController.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/monitor/controller/SysOperlogController.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/monitor/controller/SysUserOnlineController.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/monitor/domain/SysLogininfor.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/monitor/domain/SysOperLog.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/monitor/domain/SysUserOnline.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/monitor/mapper/SysLogininforMapper.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/monitor/mapper/SysOperLogMapper.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/monitor/service/ISysLogininforService.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/monitor/service/ISysOperLogService.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/monitor/service/impl/SysLogininforServiceImpl.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/monitor/service/impl/SysOperLogServiceImpl.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/controller/SysConfigController.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/controller/SysDeptController.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/controller/SysDictDataController.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/controller/SysDictTypeController.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/controller/SysLoginController.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/controller/SysMenuController.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/controller/SysNoticeController.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/controller/SysPostController.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/controller/SysProfileController.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/controller/SysRoleController.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/controller/SysUserController.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/domain/SysConfig.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/domain/SysDept.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/domain/SysDictData.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/domain/SysDictType.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/domain/SysMenu.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/domain/SysNotice.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/domain/SysPost.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/domain/SysRole.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/domain/SysRoleDept.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/domain/SysRoleMenu.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/domain/SysUser.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/domain/SysUserPost.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/domain/SysUserRole.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/domain/vo/MetaVo.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/domain/vo/RouterVo.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/mapper/SysConfigMapper.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/mapper/SysDeptMapper.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/mapper/SysDictDataMapper.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/mapper/SysDictTypeMapper.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/mapper/SysMenuMapper.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/mapper/SysNoticeMapper.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/mapper/SysPostMapper.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/mapper/SysRoleDeptMapper.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/mapper/SysRoleMapper.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/mapper/SysRoleMenuMapper.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/mapper/SysUserMapper.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/mapper/SysUserPostMapper.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/mapper/SysUserRoleMapper.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/service/ISysConfigService.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/service/ISysDeptService.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/service/ISysDictDataService.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/service/ISysDictTypeService.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/service/ISysMenuService.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/service/ISysNoticeService.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/service/ISysPostService.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/service/ISysRoleService.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/service/ISysUserOnlineService.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/service/ISysUserService.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/service/impl/SysConfigServiceImpl.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/service/impl/SysDeptServiceImpl.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/service/impl/SysDictDataServiceImpl.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/service/impl/SysDictTypeServiceImpl.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/service/impl/SysMenuServiceImpl.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/service/impl/SysNoticeServiceImpl.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/service/impl/SysPostServiceImpl.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/service/impl/SysRoleServiceImpl.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/service/impl/SysUserOnlineServiceImpl.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/system/service/impl/SysUserServiceImpl.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/tool/gen/controller/GenController.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/tool/gen/domain/GenTable.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/tool/gen/domain/GenTableColumn.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/tool/gen/mapper/GenTableColumnMapper.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/tool/gen/mapper/GenTableMapper.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/tool/gen/service/GenTableColumnServiceImpl.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/tool/gen/service/GenTableServiceImpl.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/tool/gen/service/IGenTableColumnService.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/tool/gen/service/IGenTableService.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/tool/gen/util/GenUtils.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/tool/gen/util/VelocityInitializer.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/tool/gen/util/VelocityUtils.java
ÎļþÒÑɾ³ý basic/src/main/java/com/dingzhuo/energy/project/tool/swagger/TestController.java
ÎļþÒÑɾ³ý basic/src/main/resources/mybatis/monitor/SysLogininforMapper.xml
ÎļþÒÑɾ³ý basic/src/main/resources/mybatis/monitor/SysOperLogMapper.xml
ÎļþÒÑɾ³ý basic/src/main/resources/mybatis/system/SysConfigMapper.xml
ÎļþÒÑɾ³ý basic/src/main/resources/mybatis/system/SysDeptMapper.xml
ÎļþÒÑɾ³ý basic/src/main/resources/mybatis/system/SysDictDataMapper.xml
ÎļþÒÑɾ³ý basic/src/main/resources/mybatis/system/SysDictTypeMapper.xml
ÎļþÒÑɾ³ý basic/src/main/resources/mybatis/system/SysMenuMapper.xml
ÎļþÒÑɾ³ý basic/src/main/resources/mybatis/system/SysNoticeMapper.xml
ÎļþÒÑɾ³ý basic/src/main/resources/mybatis/system/SysPostMapper.xml
ÎļþÒÑɾ³ý basic/src/main/resources/mybatis/system/SysRoleDeptMapper.xml
ÎļþÒÑɾ³ý basic/src/main/resources/mybatis/system/SysRoleMapper.xml
ÎļþÒÑɾ³ý basic/src/main/resources/mybatis/system/SysRoleMenuMapper.xml
ÎļþÒÑɾ³ý basic/src/main/resources/mybatis/system/SysUserMapper.xml
ÎļþÒÑɾ³ý basic/src/main/resources/mybatis/system/SysUserPostMapper.xml
ÎļþÒÑɾ³ý basic/src/main/resources/mybatis/system/SysUserRoleMapper.xml
ÎļþÒÑɾ³ý basic/src/main/resources/mybatis/tool/GenTableColumnMapper.xml
ÎļþÒÑɾ³ý basic/src/main/resources/mybatis/tool/GenTableMapper.xml
ÎļþÒÑɾ³ý bin/clean.bat
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,12 @@ @echo off echo. echo [ä¿¡æ¯] æ¸ çå·¥ç¨targetçæè·¯å¾ã echo. %~d0 cd %~dp0 cd .. call mvn clean pause bin/package.bat
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,12 @@ @echo off echo. echo [ä¿¡æ¯] æå Webå·¥ç¨ï¼çæwar/jarå æä»¶ã echo. %~d0 cd %~dp0 cd .. call mvn clean package -Dmaven.test.skip=true pause bin/run.bat
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,14 @@ @echo off echo. echo [��Ϣ] ʹ��Jar��������Web���̡� echo. cd %~dp0 cd ../admin-admin/target set JAVA_OPTS=-Xms256m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m java -jar %JAVA_OPTS% admin-admin.jar cd bin pause compute-engine/.gitignore
ÎļþÒÑɾ³ý compute-engine/.mvn/wrapper/MavenWrapperDownloader.java
ÎļþÒÑɾ³ý compute-engine/.mvn/wrapper/maven-wrapper.jarBinary files differ
compute-engine/.mvn/wrapper/maven-wrapper.properties
ÎļþÒÑɾ³ý compute-engine/mvnw
ÎļþÒÑɾ³ý compute-engine/mvnw.cmd
ÎļþÒÑɾ³ý compute-engine/pom.xml
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/ApplicationConfiguration.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/ComputeEngineApplication.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/ComputeEngineRunner.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/actor/alarm/AlarmTimerActor.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/actor/alarm/BaseAlarmActor.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/actor/alarm/LoadAlarmActor.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/actor/alarm/PeriodAlarmActor.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/actor/alarm/RealtimeAlarmActor.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/actor/alarm/SaveAlarmActor.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/actor/device/DeviceStatusActor.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/actor/device/DeviceStatusTimerActor.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/actor/device/LoadDeviceStatusActor.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/actor/indexcalc/CalculationIndexActor.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/actor/indexcalc/LoadIndexActor.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/actor/indexcalc/SavePeriodActor.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/actor/indexcalc/TimerActor.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/actor/monitor/RecastDataActor.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/config/CalcMessageExtractor.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/config/CalculationConfig.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/config/EngineArgOption.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/config/ExecutePrioMailBox.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/controller/CalculationController.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/controller/Recalc.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/function/CustomFunction.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/function/FunctionEngine.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/message/BaseActorMessage.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/message/ExecuteType.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/message/alarm/AlarmJudgeMessage.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/message/alarm/AlarmRegisterMessage.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/message/alarm/AlarmSaveMessage.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/message/alarm/AlarmStatus.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/message/alarm/AlarmType.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/message/alarm/LoadAlarmMessage.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/message/alarm/UnloadAlarmMessage.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/message/calculation/CalculateMessage.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/message/calculation/LinkMessage.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/message/calculation/LoadCalcIndexMessage.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/message/calculation/UnlinkMessage.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/message/calculation/UnloadCalcIndexMessage.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/message/device/DeviceStatus.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/message/device/DeviceStatusJudgeMessage.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/message/device/LoadDeviceStatusMessage.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/message/device/UnloadDeviceStatusMessage.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/message/save/SaveMessage.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/message/timer/RegisterTimeMessage.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/message/timer/RegisterType.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/utils/ActorUtil.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/utils/CacheService.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/utils/ServiceProvicer.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/utils/SpringActorProducer.java
ÎļþÒÑɾ³ý compute-engine/src/main/java/com/dingzhuo/compute/engine/utils/SpringAkkaExtension.java
ÎļþÒÑɾ³ý compute-engine/src/main/resources/akka.conf
ÎļþÒÑɾ³ý compute-engine/src/main/resources/application-prod.yml
ÎļþÒÑɾ³ý compute-engine/src/main/resources/application.yml
ÎļþÒÑɾ³ý compute-engine/src/main/resources/logback.xml
ÎļþÒÑɾ³ý data-model/pom.xml
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/controller/CalcFunctionController.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/controller/DaqTemplateController.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/controller/DataAuthController.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/controller/EnergyIndexController.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/controller/IndexStorageController.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/controller/LimitTypeController.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/controller/ModelInfoController.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/controller/ModelNodeController.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/controller/StateTypeController.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/domain/AuthType.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/domain/CalcFunction.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/domain/CalcPeriod.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/domain/CalcType.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/domain/DaqTemplate.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/domain/EnergyIndex.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/domain/EnergyIndexQuery.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/domain/IndexFormula.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/domain/IndexFormulaParam.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/domain/IndexStorage.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/domain/IndexStorageParam.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/domain/IndexType.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/domain/LimitType.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/domain/ModelInfo.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/domain/ModelNode.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/domain/StateType.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/domain/TreeObject.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/domain/dto/EnergyIndexMonitorDTO.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/domain/vo/ModelNodeIndexInfor.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/domain/vo/PointDataVO.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/mapper/CalcFunctionMapper.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/mapper/DaqTemplateMapper.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/mapper/DataAuthMapper.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/mapper/EnergyIndexMapper.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/mapper/IndexFormulaMapper.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/mapper/IndexStorageMapper.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/mapper/LimitTypeMapper.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/mapper/ModelInfoMapper.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/mapper/ModelNodeMapper.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/mapper/StateTypeMapper.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/service/DataAuthService.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/service/ICalcFunctionService.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/service/IDaqTemplateService.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/service/IEnergyIndexService.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/service/IIndexStorageService.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/service/ILimitTypeService.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/service/IModelInfoService.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/service/IModelNodeService.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/service/IStateTypeService.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/service/IndexFormulaService.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/service/impl/CalcFunctionServiceImpl.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/service/impl/DaqTemplateServiceImpl.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/service/impl/DataAuthServiceImpl.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/service/impl/EnergyIndexServiceImpl.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/service/impl/IndexFormulaServiceImpl.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/service/impl/IndexStorageServiceImpl.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/service/impl/LimitTypeServiceImpl.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/service/impl/ModelInfoServiceImpl.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/service/impl/ModelNodeServiceImpl.java
ÎļþÒÑɾ³ý data-model/src/main/java/com/dingzhuo/energy/data/model/service/impl/StateTypeServiceImpl.java
ÎļþÒÑɾ³ý data-model/src/main/resources/mybatis/basicsetting/CalcFunctionMapper.xml
ÎļþÒÑɾ³ý data-model/src/main/resources/mybatis/basicsetting/DaqTemplateMapper.xml
ÎļþÒÑɾ³ý data-model/src/main/resources/mybatis/basicsetting/IndexFormulaMapper.xml
ÎļþÒÑɾ³ý data-model/src/main/resources/mybatis/basicsetting/IndexStorageMapper.xml
ÎļþÒÑɾ³ý data-model/src/main/resources/mybatis/basicsetting/LimitTypeMapper.xml
ÎļþÒÑɾ³ý data-model/src/main/resources/mybatis/basicsetting/ModelInfoMapper.xml
ÎļþÒÑɾ³ý data-model/src/main/resources/mybatis/basicsetting/ModelNodeMapper.xml
ÎļþÒÑɾ³ý data-model/src/main/resources/mybatis/basicsetting/StateTypeMapper.xml
ÎļþÒÑɾ³ý data-model/src/main/resources/mybatis/dataAuth/DataAuthMapper.xml
ÎļþÒÑɾ³ý data-model/src/main/resources/mybatis/energyindex/EnergyIndexMapper.xml
ÎļþÒÑɾ³ý data-monitoring/pom.xml
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/alarm/controller/AlarmItemController.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/alarm/controller/HistoryAlarmController.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/alarm/controller/RealTimeAlarmController.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/alarm/domain/AlarmItem.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/alarm/domain/AlarmJudgeDirection.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/alarm/domain/HistoryAlarm.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/alarm/domain/HistoryTable.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/alarm/domain/JkHistoryAlarm.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/alarm/domain/JkRealTimeAlarmList.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/alarm/domain/RealTimeAlarm.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/alarm/mapper/AlarmItemMapper.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/alarm/mapper/HistoryAlarmMapper.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/alarm/mapper/RealtimeAlarmMapper.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/alarm/service/IAlarmItemService.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/alarm/service/IHistoryAlarmService.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/alarm/service/IRealtimeAlarmService.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/alarm/service/impl/AlarmItemServiceImpl.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/alarm/service/impl/HistoryAlarmServiceImpl.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/alarm/service/impl/RealtimeAlarmServiceImpl.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/controller/DeviceStatusHistoryController.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/controller/DeviceStatusLiveController.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/controller/DeviceStorageController.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/domain/DeviceFormula.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/domain/DeviceFormulaParam.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/domain/DeviceStatusHistory.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/domain/DeviceStatusLive.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/domain/EquipmentMeasuringPointParameters.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/domain/HistoryDeviceStatus.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/domain/RealtimeDeviceStatus.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/domain/vo/EquipmentPointParametersExcel.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/domain/vo/EquipmentPointParametersVO.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/mapper/DeviceFormulaMapper.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/mapper/DeviceFormulaParamMapper.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/mapper/DeviceStatusHistoryMapper.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/mapper/DeviceStatusLiveMapper.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/service/IDeviceFormulaParamService.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/service/IDeviceFormulaService.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/service/IDeviceStatusHistoryService.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/service/IDeviceStatusLiveService.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/service/IHistoryDeviceStatus.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/service/IRealtimeDeviceStatus.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/service/impl/DeviceFormulaParamServiceImpl.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/service/impl/DeviceFormulaServiceImpl.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/service/impl/DeviceStatusHistoryServiceImpl.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/service/impl/DeviceStatusLiveServiceImpl.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/service/impl/HistoryDeviceStatusImpl.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/service/impl/RealtimeDeviceStatusImpl.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/historical/controller/HistoryDataController.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/historical/service/IHistoryDataService.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/historical/service/impl/HistoryDataServiceImpl.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/trend/history/controller/HistoryDataTrend.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/trend/history/domain/dto/HistoricalDataDTO.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/trend/history/domain/vo/HistoricalDataExcel.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/trend/history/domain/vo/HistoricalDataVO.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/trend/realtime/controller/RealTimeTrend.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/trend/realtime/domain/CollectHistory.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/trend/realtime/domain/RealTimeTrend.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/trend/svg/controller/SvgTrendView.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/trend/svg/mapper/SvgTrendMapper.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/trend/svg/service/ISvgTrendService.java
ÎļþÒÑɾ³ý data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/trend/svg/service/impl/SvgTrendServicelmpl.java
ÎļþÒÑɾ³ý data-monitoring/src/main/resources/mybatis/alarm/AlarmItemMapper.xml
ÎļþÒÑɾ³ý data-monitoring/src/main/resources/mybatis/alarm/HistoryAlarmMapper.xml
ÎļþÒÑɾ³ý data-monitoring/src/main/resources/mybatis/alarm/RealtimeAlarmMapper.xml
ÎļþÒÑɾ³ý data-monitoring/src/main/resources/mybatis/device/DeviceFormulaMapper.xml
ÎļþÒÑɾ³ý data-monitoring/src/main/resources/mybatis/device/DeviceFormulaParamMapper.xml
ÎļþÒÑɾ³ý data-monitoring/src/main/resources/mybatis/device/DeviceStatusHistoryMapper.xml
ÎļþÒÑɾ³ý data-monitoring/src/main/resources/mybatis/device/DeviceStatusLiveMapper.xml
ÎļþÒÑɾ³ý data-monitoring/src/main/resources/mybatis/trend/SvgTrendMapper.xml
ÎļþÒÑɾ³ý data-service/pom.xml
ÎļþÒÑɾ³ý data-service/src/main/java/com/dingzhuo/energy/dataservice/controller/PeriodDataController.java
ÎļþÒÑɾ³ý data-service/src/main/java/com/dingzhuo/energy/dataservice/controller/RealtimeDataController.java
ÎļþÒÑɾ³ý data-service/src/main/java/com/dingzhuo/energy/dataservice/data/InfluxDb.java
ÎļþÒÑɾ³ý data-service/src/main/java/com/dingzhuo/energy/dataservice/data/RealtimeDatabaseManager.java
ÎļþÒÑɾ³ý data-service/src/main/java/com/dingzhuo/energy/dataservice/data/VirtualRtdb.java
ÎļþÒÑɾ³ý data-service/src/main/java/com/dingzhuo/energy/dataservice/data/influxdb/DecodeInstant.java
ÎļþÒÑɾ³ý data-service/src/main/java/com/dingzhuo/energy/dataservice/data/influxdb/FastDB.java
ÎļþÒÑɾ³ý data-service/src/main/java/com/dingzhuo/energy/dataservice/data/influxdb/QueryType.java
ÎļþÒÑɾ³ý data-service/src/main/java/com/dingzhuo/energy/dataservice/data/influxdb/RtdbResult.java
ÎļþÒÑɾ³ý data-service/src/main/java/com/dingzhuo/energy/dataservice/domain/CollectionModes.java
ÎļþÒÑɾ³ý data-service/src/main/java/com/dingzhuo/energy/dataservice/domain/DataItem.java
ÎļþÒÑɾ³ý data-service/src/main/java/com/dingzhuo/energy/dataservice/domain/Quality.java
ÎļþÒÑɾ³ý data-service/src/main/java/com/dingzhuo/energy/dataservice/domain/RetrievalModes.java
ÎļþÒÑɾ³ý data-service/src/main/java/com/dingzhuo/energy/dataservice/domain/StatisticResult.java
ÎļþÒÑɾ³ý data-service/src/main/java/com/dingzhuo/energy/dataservice/domain/StatisticType.java
ÎļþÒÑɾ³ý data-service/src/main/java/com/dingzhuo/energy/dataservice/domain/TagValue.java
ÎļþÒÑɾ³ý data-service/src/main/java/com/dingzhuo/energy/dataservice/domain/TagValueResult.java
ÎļþÒÑɾ³ý data-service/src/main/java/com/dingzhuo/energy/dataservice/mapper/PeriodDataMapper.java
ÎļþÒÑɾ³ý data-service/src/main/java/com/dingzhuo/energy/dataservice/service/PeriodDataService.java
ÎļþÒÑɾ³ý data-service/src/main/java/com/dingzhuo/energy/dataservice/service/RealtimeDatabase.java
ÎļþÒÑɾ³ý data-service/src/main/java/com/dingzhuo/energy/dataservice/service/RealtimeDatabaseService.java
ÎļþÒÑɾ³ý data-service/src/main/java/com/dingzhuo/energy/dataservice/service/impl/PeriodDataServiceImpl.java
ÎļþÒÑɾ³ý data-service/src/main/java/com/dingzhuo/energy/dataservice/service/impl/RealtimeDatabaseServiceImpl.java
ÎļþÒÑɾ³ý data-service/src/main/resources/mybatis/dataService/PeriodDataMapper.xml
ÎļþÒÑɾ³ý db/2022-03-17.sql
ÎļþÒÑɾ³ý db/2022-04-15.sql
ÎļþÒÑɾ³ý energy_management_server/.gitignore
ÎļþÒÑɾ³ý energy_management_server/pom.xml
ÎļþÒÑɾ³ý energy_management_server/ry.sh
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/EnergyManagementApplication.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/EnergyManagementServletInitializer.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/EnergyBenchmarking/controller/EnergyBenchmarkingController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/EnergyBenchmarking/domain/EnergyBenchmarking.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/EnergyBenchmarking/mapper/EnergyBenchmarkingMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/EnergyBenchmarking/service/IEnergyBenchmarkingService.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/EnergyBenchmarking/service/impl/EnergyBenchmarkingServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/basicSetup/controller/HomePageIndexController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/basicSetup/controller/SysEquipmentfileController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/basicSetup/controller/SysStandardCategoryController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/basicSetup/controller/SysStandardParametersController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/basicSetup/domain/SysEquipmentfile.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/basicSetup/domain/SysStandardCategory.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/basicSetup/domain/SysStandardParameters.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/basicSetup/domain/SysSvgInfo.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/basicSetup/mapper/SysEquipmentfileMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/basicSetup/mapper/SysStandardCategoryMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/basicSetup/mapper/SysStandardParametersMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/basicSetup/service/ISysEquipmentfileService.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/basicSetup/service/ISysStandardCategoryService.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/basicSetup/service/ISysStandardParametersService.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/basicSetup/service/impl/SysEquipmentfileServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/basicSetup/service/impl/SysStandardCategoryServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/basicSetup/service/impl/SysStandardParametersServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/benchmarking/controller/BenchmarkingManagementController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/benchmarking/controller/PhaseBenchmarkingController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/benchmarking/domain/BenchmarkingManagement.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/benchmarking/domain/PhaseBenchmarking.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/benchmarking/mapper/BenchmarkingManagementMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/benchmarking/mapper/PhaseBenchmarkingMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/benchmarking/service/IBenchmarkingManagementService.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/benchmarking/service/IPhaseBenchmarkingService.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/benchmarking/service/impl/BenchmarkingManagementServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/benchmarking/service/impl/PhaseBenchmarkingServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/common/CommonConst.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/common/DateTimeUtil.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/common/DoubleUtil.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/common/HttpClientUtil.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/common/HttpGetWithEntity.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/common/IntegerUtil.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/common/StringUtil.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/common/TimeTypeConst.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/controller/comprehensiveStatisticsController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/controller/dailycomprehensiveController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/controller/monthlycomprehensiveController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/controller/processEnergyConsumptionController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/controller/yearComprehensiveController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/domain/comprehensive.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/domain/comprehensiveStatistics.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/domain/dailyComprehensive.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/domain/monthlyComprehensive.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/domain/yearComperhensive.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/mapper/comprehensiveStatisticsMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/mapper/dailyComprehensiveMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/mapper/monthlyComprehensiveMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/mapper/processEnergyConsumptionMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/mapper/yearComprehensiveMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/service/IComprehensiveStatisticsService.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/service/IdailyComprehensive.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/service/ImonthlyComprehensive.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/service/IyearComprehensive.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/service/impl/comprehensiveStatisticsImp.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/service/impl/dailyComprehensiveServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/service/impl/monthlyComprehensiveServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/service/impl/processEnergyConsumptionImp.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/service/impl/yearComprehensiveServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/service/processEnergyConsumptionService.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/conglomeratepush/ConglomeratePushTask.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/conglomeratepush/HttpUtil.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/conglomeratepush/domain/ConglomeratePushLog.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/conglomeratepush/mapper/ConglomeratePushLogMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/conglomeratepush/mqtt/InitCallback.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/conglomeratepush/mqtt/MQTTConnect.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/conglomeratepush/mqtt/MQTTListener.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/conglomeratepush/service/IConglomeratePushLogService.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/conglomeratepush/service/impl/ConglomeratePushLogServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/dataEntry/controller/DataItemController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/dataEntry/domain/dataEntry.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/dataEntry/domain/stagseDataEntry.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/dataEntry/mapper/DataItemMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/dataEntry/service/IDataItemService.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/dataEntry/service/impl/DataItemServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricity/controller/ElectricityPriceController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricity/controller/TimePeriodPriceController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricity/controller/statisticsController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricity/domain/ElectricityPrice.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricity/domain/TimePeriodPrice.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricity/domain/electricitTable.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricity/domain/electricity.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricity/domain/electricityDataItem.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricity/domain/statistics.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricity/mapper/ElectricityPriceMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricity/mapper/TimePeriodPriceMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricity/mapper/statisticsMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricity/service/IElectricityPriceService.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricity/service/ITimePeriodPriceService.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricity/service/IstatisticsService.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricity/service/impl/ElectricityPriceServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricity/service/impl/TimePeriodPriceServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricity/service/impl/statisticsServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/controller/ElectricityDataItemController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/controller/ElectricityTypeSettingController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/domain/dto/ElectricityDataItemListDTO.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/domain/dto/ElectricityTypeSettingAddVO.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/domain/dto/ElectricityTypeSettingItemAddVO.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/domain/dto/ElectricityTypeSettingItemUpdateVO.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/domain/dto/ElectricityTypeSettingUpdateVO.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/domain/entity/ElectricityDataItem.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/domain/entity/ElectricityTypeSetting.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/domain/entity/ElectricityTypeSettingItem.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/domain/enums/ElectricityTypeEnum.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/domain/vo/ElectricityPeriodFeeDetailVO.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/domain/vo/ElectricityTypeSettingItemQueryVO.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/domain/vo/ElectricityTypeSettingItemVO.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/domain/vo/ElectricityTypeSettingPageListVO.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/domain/vo/PeakAndValleyReportVO.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/mapper/ElectricityDataItemMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/mapper/ElectricityTypeSettingItemMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/mapper/ElectricityTypeSettingMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/service/IElectricityDataItemService.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/service/IElectricityTypeSettingService.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/service/impl/ElectricityDataItemServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/service/impl/ElectricityTypeSettingServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/energyBalance/controller/energyBalanceController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/energyBalance/domain/EnergyPic.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/energyBalance/mapper/EnergyPicMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/energyBalance/mapper/energybalanceMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/energyBalance/service/IEnergyBalanceService.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/energyBalance/service/IEnergyPicService.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/energyBalance/service/impl/EnergyPicServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/energyBalance/service/impl/energyBalanceServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/energyConsumeInput/controller/EnergyMonthConsumeInputController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/energyConsumeInput/controller/energyDayConsumeInputController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/energyConsumeInput/controller/energyYearConsumeInputController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/energyConsumeInput/domain/EnergyConsumeInput.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/energyConsumeInput/domain/ReCalcParamsModel.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/energyConsumeInput/domain/ReCalcRespModel.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/energyConsumeInput/domain/SaveEnergyConsumeInputEntity.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/energyConsumeInput/domain/SaveEnergyConsumeInputModel.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/energyConsumeInput/mapper/EnergyConsumeInputMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/energyConsumeInput/service/IEnergyConsumeInputService.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/energyConsumeInput/service/impl/EnergyConsumeInputServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/energyShareAnalysis/controller/EnergyShareAnalysisController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/energyShareAnalysis/domain/dto/EnergyAnalysisDTO.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/energyShareAnalysis/domain/vo/EnergyAnalysisVO.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/energyShareAnalysis/service/IEnergyShareAnalysisService.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/energyShareAnalysis/service/impl/EnergyShareAnalysisServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/energyStatistics/controller/energyAnalysisController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/energyStatistics/controller/energyStatisticsController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/energyStatistics/controller/energyStatisticsCurveController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/energyStatistics/domain/EnergyConsumption.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/energyStatistics/domain/dataTimeSVG.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/energyStatistics/domain/energyAnalysis.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/energyStatistics/domain/energyTable.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/energyStatistics/mapper/energyStatisticsMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/energyStatistics/service/IEnergyStatisticsService.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/energyStatistics/service/impl/energyStatisticsServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/gateway/controller/GatewayHbtLogController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/gateway/controller/GatewaySettingController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/gateway/domain/GatewayHbtLog.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/gateway/domain/GatewaySetting.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/gateway/mapper/GatewayHbtLogMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/gateway/mapper/GatewaySettingMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/gateway/service/IGatewayHbtLogService.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/gateway/service/IGatewaySettingService.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/gateway/service/impl/GatewayHbtLogServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/gateway/service/impl/GatewaySettingServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/govReports/GovReportsTask.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/govReports/controller/DataItemPubController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/govReports/domain/DataItemPub.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/govReports/domain/DataItemPubVo.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/govReports/mapper/DataItemPubMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/govReports/service/IDataItemPubService.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/govReports/service/impl/DataItemPubServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/home/controller/HomeController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/home/domain/vo/HomeEnergyConsumptionRatioVO.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/home/domain/vo/HomeEnergyCostRatioVO.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/home/domain/vo/HomeEnergyDetectionChart.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/home/domain/vo/HomeEnergyMonitoringHistogramVO.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/home/domain/vo/HomeEnergyStatisticsVO.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/home/domain/vo/HomeEnergyTypeVO.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/home/domain/vo/HomeEnergyUnitConsumptionChartVO.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/home/domain/vo/HomeOutdoorTemperatureVO.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/home/service/IHomeService.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/home/service/impl/HomeServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/keyEquipment/controller/dailyKeyEquipmenteController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/keyEquipment/controller/monthlyKeyEquipmentController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/keyEquipment/controller/yearKeyEquipmentController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/keyEquipment/domain/dailyKeyEquipment.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/keyEquipment/domain/monthlyKeyEquipment.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/keyEquipment/domain/yearKeyEquipment.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/keyEquipment/mapper/dailyKeyEquipmentMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/keyEquipment/mapper/monthlyKeyEquipmentMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/keyEquipment/mapper/yearKeyEquipmentMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/keyEquipment/service/IdailyKeyEquipmentService.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/keyEquipment/service/ImonthlyKeyEquipmentService.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/keyEquipment/service/IyearKeyEquipmentService.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/keyEquipment/service/impl/dailyKeyEquipmentServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/keyEquipment/service/impl/monthlyKeyEquipmentServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/keyEquipment/service/impl/yearKeyEquipmentServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/plannedOutput/controller/PlanEnergyController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/plannedOutput/controller/PlannedOutputController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/plannedOutput/controller/energyMonitoringController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/plannedOutput/domain/PlanEnergy.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/plannedOutput/domain/PlannedOutput.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/plannedOutput/domain/energyMonitoring.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/plannedOutput/mapper/PlanEnergyMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/plannedOutput/mapper/PlannedOutputMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/plannedOutput/mapper/energyMonitoringMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/plannedOutput/service/IPlanEnergyService.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/plannedOutput/service/IPlannedOutputService.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/plannedOutput/service/energyMonitoringService.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/plannedOutput/service/impl/PlanEnergyServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/plannedOutput/service/impl/PlannedOutputServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/plannedOutput/service/impl/energyMonitoringServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/controller/ComprehensiveReportsController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/controller/ReportSetController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/controller/annualReportController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/controller/consolidatedStatementsController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/controller/dailyReportController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/controller/monthlyReportController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/controller/reportFormController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/domain/JtZhnhExcel.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/domain/annualReport.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/domain/consolidatedStatements.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/domain/dailyReport.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/domain/dto/ComprehensiveReportsDTO.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/domain/monthlyReport.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/domain/reportForm.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/domain/reportSet.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/domain/reportSetDataModel.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/domain/reportSetRequestModel.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/domain/vo/ComprehensiveConsumptionRatioVO.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/domain/vo/ComprehensiveReportsItem.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/domain/vo/ComprehensiveReportsVO.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/domain/vo/ComprehensiveUnitConsumptionChartVO.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/mapper/annualReportMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/mapper/consolidatedStatementsMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/mapper/dailyReportMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/mapper/monthlyReportMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/mapper/reportFormMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/mapper/reportSetMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/service/IComprehensiveReportsService.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/service/IannualReportService.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/service/IconsolidatedStatementsService.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/service/IdailyReportService.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/service/ImonthlyReportService.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/service/IreportFormService.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/service/IreportSetService.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/service/impl/AnnualReportFormServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/service/impl/ComprehensiveReportsServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/service/impl/consolidatedStatementsServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/service/impl/dailyReportServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/service/impl/monthlyReportServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/service/impl/reportFormServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/service/impl/reportSetServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/statisticalAnalysis/controller/StatisticalAnalysisController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/statisticalAnalysis/domain/dto/DataAnalysisMoMDTO.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/statisticalAnalysis/domain/vo/DataAnalysisMoMExcel.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/statisticalAnalysis/domain/vo/DataAnalysisMoMVO.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/statisticalAnalysis/domain/vo/DataAnalysisYoYExcel.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/statisticalAnalysis/domain/vo/DataAnalysisYoYVO.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/statisticalAnalysis/service/IStatisticalAnalysisService.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/statisticalAnalysis/service/impl/StatisticalAnalysisServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/statisticalData/controller/GxdhCountController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/statisticalData/domain/GxdhCount.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/statisticalData/domain/GxdhCountIndex.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/statisticalData/mapper/GxdhCountMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/statisticalData/service/IGxdhCountService.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/statisticalData/service/impl/GxdhCountServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/workingProcedure/controller/dailyWorkingProcedureController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/workingProcedure/controller/monthlyWorkingProcedureController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/workingProcedure/controller/yearWorkingProcedureController.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/workingProcedure/domain/dailyWorkingProcedure.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/workingProcedure/domain/monthlyWorkingProcedure.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/workingProcedure/domain/yearWorkingProcedure.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/workingProcedure/mapper/dailyWorkingProcedureMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/workingProcedure/mapper/monthlyWorkingProcedureMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/workingProcedure/mapper/yearWorkingProcedureMapper.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/workingProcedure/service/IdailyWorkingProcedure.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/workingProcedure/service/ImonthlyWorkingProcedure.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/workingProcedure/service/IyearWorkingProcedure.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/workingProcedure/service/impl/dailyWorkingProcedureServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/workingProcedure/service/impl/monthlyWorkingProcedureServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/java/com/dingzhuo/energy/project/workingProcedure/service/impl/yearWorkingProcedureServiceImpl.java
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/application-prod.yml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/application.yml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/banner.txt
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/i18n/messages.properties
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/logback.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/EnergyConsumeInput/EnergyConsumeInputMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/basicSetup/SysEquipmentfileMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/basicSetup/SysStandardCategoryMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/basicSetup/SysStandardParametersMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/benchmarking/BenchmarkingManagementMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/benchmarking/PhaseBenchmarkingMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/comprehensiveStatistics/comprehensiveStatisticsMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/comprehensiveStatistics/dailyComprehensiveMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/comprehensiveStatistics/monthlyComprehensiveMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/comprehensiveStatistics/yearComprehensiveMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/conglomeratepush/ConglomeratePushLogMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/dataEntry/DataItemMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/electricityPrice/ElectricityPriceMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/electricityPrice/TimePeriodPriceMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/electricityPrice/statisticsMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/electricityTypeSetting/ElectricityDataItemMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/electricityTypeSetting/ElectricityTypeSettingItemMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/electricityTypeSetting/ElectricityTypeSettingMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/energyBalance/EnergyPicMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/energyBalance/energyBalanceMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/energyEenchmarking/EnergyBenchmarkingMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/energyStatistics/energyStatisticsMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/gateway/GatewayHbtLogMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/gateway/GatewaySettingMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/govReports/DataItemPubMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/keyEquipment/dailyKeyEquipmentMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/keyEquipment/monthlyKeyEquipmentMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/keyEquipment/yearKeyEquipmentMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/mybatis-config.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/plannedOutput/PlanEnergyMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/plannedOutput/PlannedOutputMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/plannedOutput/energyMonitoringMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/processEnergyConsumption/processEnergyConsumptionMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/reportForm/annualReportMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/reportForm/consolidatedStatementsMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/reportForm/dailyReportMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/reportForm/monthlyReportMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/reportForm/reportFromMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/reportForm/reportSetMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/statisticalData/GxdhCountMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/workingProcedure/dailyWorkingProcedureMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/workingProcedure/monthlyWorkingProcedureMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/mybatis/workingProcedure/yearWorkingProcedureMapper.xml
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/vm/java/controller.java.vm
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/vm/java/domain.java.vm
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/vm/java/mapper.java.vm
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/vm/java/service.java.vm
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/vm/java/serviceImpl.java.vm
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/vm/js/api.js.vm
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/vm/sql/sql.vm
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/vm/vue/index.vue.vm
ÎļþÒÑɾ³ý energy_management_server/src/main/resources/vm/xml/mapper.xml.vm
ÎļþÒÑɾ³ý energy_management_ui/.editorconfig
ÎļþÒÑɾ³ý energy_management_ui/.env.development
ÎļþÒÑɾ³ý energy_management_ui/.env.production
ÎļþÒÑɾ³ý energy_management_ui/.env.staging
ÎļþÒÑɾ³ý energy_management_ui/.eslintignore
ÎļþÒÑɾ³ý energy_management_ui/.eslintrc.js
ÎļþÒÑɾ³ý energy_management_ui/.gitignore
ÎļþÒÑɾ³ý energy_management_ui/README.md
ÎļþÒÑɾ³ý energy_management_ui/babel.config.js
ÎļþÒÑɾ³ý energy_management_ui/build/index.js
ÎļþÒÑɾ³ý energy_management_ui/package.json
ÎļþÒÑɾ³ý energy_management_ui/public/favicon.icoBinary files differ
energy_management_ui/public/index.html
ÎļþÒÑɾ³ý energy_management_ui/public/logo.pngBinary files differ
energy_management_ui/src/App.vue
ÎļþÒÑɾ³ý energy_management_ui/src/api/alarmItem/alarmItem.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/basicSetup/category.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/basicSetup/equipmentfile.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/basicSetup/parameters.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/basicsetting/alarm.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/basicsetting/deviceStorage.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/basicsetting/energyindex.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/basicsetting/function.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/basicsetting/historyAlarm.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/basicsetting/indexStorage.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/basicsetting/limitType.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/basicsetting/model.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/basicsetting/modelNode.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/basicsetting/state.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/basicsetting/statetype.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/basicsetting/template.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/benchmarking/BenchmarkingManagement.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/benchmarking/phaseBenchmarking.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/comprehensiveStatistics/comprehensive.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/comprehensiveStatistics/dailyComprehensive/dailyComprehensive.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/comprehensiveStatistics/monthlyComprehensive/monthlyComprehensive.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/comprehensiveStatistics/processEnergyConsumption.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/comprehensiveStatistics/yearComprehensive/yearComprehensive.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/dataAuth/authSetting.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/dataEntry/stagseDataEntry.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/dataMonitoring/energyPercent/index.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/dataMonitoring/historyDataTrend/historyDataTrend.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/dataMonitoring/realTimeTrend/realTimeTrend.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/dataMonitoring/svgTrend/svgTrendView.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/demo/demo.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/electricityPrice/electricity.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/electricityPrice/price.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/electricityPrice/statistics.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/enerInfoManage/enerclass.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/enerInfoManage/enercoefficient.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/enerInfoManage/energy.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/enerInfoManage/price.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/enerInfoManage/product.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/energy/energyAnnex.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/energy/energyProject.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/energy/report.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/energy/reportAnnex.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/energyAlarm/realTimeAlarm/liveHistoryAssembly.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/energyAlarm/realTimeAlarm/realTimeAlarm.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/energyAssistInput/energyDayConsumeInput.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/energyAssistInput/energyMonthConsumeInput.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/energyAssistInput/energyYearConsumeInput.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/energyBalance/energyBalance.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/energyBalance/energyPic.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/energyEenchmarking/energyEenchmarking.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/energyExamine/addIndex.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/energyExamine/assessmentIndex.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/energyPrice/price.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/energyStatistics/statistics.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/equipmentMonitor/historyMonitoring/historyMonitoring.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/equipmentMonitor/realTimeMonitoring/realTimeMonitoring.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/facility/annex.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/facility/archives.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/home/home.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/index.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/keyEquipment/dailykeyEquipment/dailykeyEquipment.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/keyEquipment/monthlykeyEquipment/monthlykeyEquipment.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/keyEquipment/yearkeyEquipment/yearkeyEquipment.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/login.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/menu.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/meter/annex.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/meter/implement.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/meter/implementCount.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/meter/index.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/monitor/logininfor.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/monitor/online.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/monitor/operlog.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/monitor/server.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/onlineMonitoring/index.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/plannedOutput/energyMonitoring.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/plannedOutput/planEnergy.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/plannedOutput/plannedOutput.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/policy/annex.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/policy/policyInsert.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/policy/policySelete.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/powerAnalyse/index.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/reportForm/annualReport/annualReport.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/reportForm/consolidatedStatements.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/reportForm/dailyReport/dailyReport.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/reportForm/monthlyReport/monthlyReport.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/reportForm/reportForm.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/reportInfo/index.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/reportSet/index.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/statement/index.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/statisticalData/gxdhcount.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/system/config.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/system/dept.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/system/dict/data.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/system/dict/type.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/system/menu.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/system/notice.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/system/post.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/system/role.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/system/user.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/tool/gen.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/workforce/duty_management.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/workforce/management.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/workforce/rosteringManagement.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/workforce/scheme.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/workforce/schemeItem.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/workingProcedure/dailyComprehensive/dailyComprehensive.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/workingProcedure/monthlyComprehensive/monthlyComprehensive.js
ÎļþÒÑɾ³ý energy_management_ui/src/api/workingProcedure/yearComprehensive/yearComprehensive.js
ÎļþÒÑɾ³ý energy_management_ui/src/assets/401_images/401.gifBinary files differ
energy_management_ui/src/assets/404_images/404.pngBinary files differ
energy_management_ui/src/assets/404_images/404_cloud.pngBinary files differ
energy_management_ui/src/assets/home/cost.pngBinary files differ
energy_management_ui/src/assets/home/count.pngBinary files differ
energy_management_ui/src/assets/home/electric01.pngBinary files differ
energy_management_ui/src/assets/home/electric02.pngBinary files differ
energy_management_ui/src/assets/home/electric03.pngBinary files differ
energy_management_ui/src/assets/home/electric04.pngBinary files differ
energy_management_ui/src/assets/home/electric05.pngBinary files differ
energy_management_ui/src/assets/home/electric06.pngBinary files differ
energy_management_ui/src/assets/home/haodian.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/home/haoqi.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/home/haoshui.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/home/haozhengqi.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/home/homeiconD.pngBinary files differ
energy_management_ui/src/assets/home/homeiconDQ.pngBinary files differ
energy_management_ui/src/assets/home/homeiconJ.pngBinary files differ
energy_management_ui/src/assets/home/homeiconT.pngBinary files differ
energy_management_ui/src/assets/home/homeiconW.pngBinary files differ
energy_management_ui/src/assets/home/homeiconY.pngBinary files differ
energy_management_ui/src/assets/home/homeicontitle.pngBinary files differ
energy_management_ui/src/assets/home/shi.pngBinary files differ
energy_management_ui/src/assets/home/statistic.pngBinary files differ
energy_management_ui/src/assets/home/tan.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/home/wen.pngBinary files differ
energy_management_ui/src/assets/home/zonghe.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/checkbox.pngBinary files differ
energy_management_ui/src/assets/icons/checked.pngBinary files differ
energy_management_ui/src/assets/icons/index.js
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/2020-03-23-a204691ac2cdafde1a9a405f9b5cf8ca.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/404.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/bug.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/build.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/chart.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/clipboard.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/code.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/component.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/dashboard.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/date.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/dian.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/dict.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/documentation.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/download.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/drag.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/druid.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/edit.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/education.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/email.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/example.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/excel.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/exit-fullscreen.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/eye-open.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/eye.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/form.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/fullscreen.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/guide.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/icon.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/international.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/job.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/language.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/link.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/list.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/lock.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/log.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/logininfor.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/message.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/money.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/monitor.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/nested.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/online.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/password.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/pdf.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/people.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/peoples.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/phone.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/post.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/qq.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/search.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/server.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/shopping.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/size.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/skill.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/star.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/swagger.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/system.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/tab.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/table.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/theme.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/tool.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/tree-table.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/tree.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/user.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/validCode.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/wechat.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svg/zip.svg
ÎļþÒÑɾ³ý energy_management_ui/src/assets/icons/svgo.yml
ÎļþÒÑɾ³ý energy_management_ui/src/assets/image/bg.jpgBinary files differ
energy_management_ui/src/assets/image/breadcrumbBg.pngBinary files differ
energy_management_ui/src/assets/image/configureChart.pngBinary files differ
energy_management_ui/src/assets/image/image.pngBinary files differ
energy_management_ui/src/assets/image/index.pngBinary files differ
energy_management_ui/src/assets/image/index2.pngBinary files differ
energy_management_ui/src/assets/image/index3.pngBinary files differ
energy_management_ui/src/assets/image/index4.jpegBinary files differ
energy_management_ui/src/assets/image/isbreadcrumbBg.pngBinary files differ
energy_management_ui/src/assets/image/login-background.pngBinary files differ
energy_management_ui/src/assets/image/login-background1.pngBinary files differ
energy_management_ui/src/assets/image/navbar/Group.pngBinary files differ
energy_management_ui/src/assets/image/navbar/exit.pngBinary files differ
energy_management_ui/src/assets/image/navbar/xiala.pngBinary files differ
energy_management_ui/src/assets/image/rectangle.pngBinary files differ
energy_management_ui/src/assets/image/touxiang.pngBinary files differ
energy_management_ui/src/assets/image/treeBg.pngBinary files differ
energy_management_ui/src/assets/logo/logo-page-left.pngBinary files differ
energy_management_ui/src/assets/logo/logo.pngBinary files differ
energy_management_ui/src/assets/logo/toray_group_icon.pngBinary files differ
energy_management_ui/src/assets/styles/btn.scss
ÎļþÒÑɾ³ý energy_management_ui/src/assets/styles/common-table-form.scss
ÎļþÒÑɾ³ý energy_management_ui/src/assets/styles/element-ui.scss
ÎļþÒÑɾ³ý energy_management_ui/src/assets/styles/element-variables.scss
ÎļþÒÑɾ³ý energy_management_ui/src/assets/styles/index.scss
ÎļþÒÑɾ³ý energy_management_ui/src/assets/styles/left-right-layout.scss
ÎļþÒÑɾ³ý energy_management_ui/src/assets/styles/mixin.scss
ÎļþÒÑɾ³ý energy_management_ui/src/assets/styles/ruoyi.scss
ÎļþÒÑɾ³ý energy_management_ui/src/assets/styles/sidebar.scss
ÎļþÒÑɾ³ý energy_management_ui/src/assets/styles/transition.scss
ÎļþÒÑɾ³ý energy_management_ui/src/assets/styles/variables.scss
ÎļþÒÑɾ³ý energy_management_ui/src/components/Breadcrumb/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/components/Editor/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/components/Hamburger/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/components/HeaderSearch/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/components/IconSelect/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/components/IconSelect/requireIcons.js
ÎļþÒÑɾ³ý energy_management_ui/src/components/Pagination/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/components/PanThumb/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/components/RightPanel/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/components/RuoYi/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/components/Screenfull/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/components/SizeSelect/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/components/SvgIcon/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/components/ThemePicker/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/components/common/basic-container.vue
ÎļþÒÑɾ³ý energy_management_ui/src/components/shrink/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/directive/permission/hasPermi.js
ÎļþÒÑɾ³ý energy_management_ui/src/directive/permission/hasRole.js
ÎļþÒÑɾ³ý energy_management_ui/src/directive/permission/index.js
ÎļþÒÑɾ³ý energy_management_ui/src/layout/RouteView.vue
ÎļþÒÑɾ³ý energy_management_ui/src/layout/components/AppMain.vue
ÎļþÒÑɾ³ý energy_management_ui/src/layout/components/Navbar.vue
ÎļþÒÑɾ³ý energy_management_ui/src/layout/components/Sidebar/FixiOSBug.js
ÎļþÒÑɾ³ý energy_management_ui/src/layout/components/Sidebar/Item.vue
ÎļþÒÑɾ³ý energy_management_ui/src/layout/components/Sidebar/Link.vue
ÎļþÒÑɾ³ý energy_management_ui/src/layout/components/Sidebar/Logo.vue
ÎļþÒÑɾ³ý energy_management_ui/src/layout/components/Sidebar/SidebarItem.vue
ÎļþÒÑɾ³ý energy_management_ui/src/layout/components/Sidebar/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/layout/components/index.js
ÎļþÒÑɾ³ý energy_management_ui/src/layout/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/layout/mixin/ResizeHandler.js
ÎļþÒÑɾ³ý energy_management_ui/src/layout/mixin/getHeight.js
ÎļþÒÑɾ³ý energy_management_ui/src/main.js
ÎļþÒÑɾ³ý energy_management_ui/src/permission.js
ÎļþÒÑɾ³ý energy_management_ui/src/router/index.js
ÎļþÒÑɾ³ý energy_management_ui/src/settings.js
ÎļþÒÑɾ³ý energy_management_ui/src/store/getters.js
ÎļþÒÑɾ³ý energy_management_ui/src/store/index.js
ÎļþÒÑɾ³ý energy_management_ui/src/store/modules/app.js
ÎļþÒÑɾ³ý energy_management_ui/src/store/modules/permission.js
ÎļþÒÑɾ³ý energy_management_ui/src/store/modules/settings.js
ÎļþÒÑɾ³ý energy_management_ui/src/store/modules/tagsView.js
ÎļþÒÑɾ³ý energy_management_ui/src/store/modules/user.js
ÎļþÒÑɾ³ý energy_management_ui/src/utils/auth.js
ÎļþÒÑɾ³ý energy_management_ui/src/utils/index.js
ÎļþÒÑɾ³ý energy_management_ui/src/utils/jsencrypt.js
ÎļþÒÑɾ³ý energy_management_ui/src/utils/permission.js
ÎļþÒÑɾ³ý energy_management_ui/src/utils/request.js
ÎļþÒÑɾ³ý energy_management_ui/src/utils/ruoyi.js
ÎļþÒÑɾ³ý energy_management_ui/src/utils/scroll-to.js
ÎļþÒÑɾ³ý energy_management_ui/src/utils/validate.js
ÎļþÒÑɾ³ý energy_management_ui/src/utils/vueToPdf/htmlToPdf.js
ÎļþÒÑɾ³ý energy_management_ui/src/utils/zipdownload.js
ÎļþÒÑɾ³ý energy_management_ui/src/views/alarm/LiChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/alarm/collectionIndex.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/alarm/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/alarm/indexCollectionSetting.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/alarmItem/cjdIndex.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/alarmItem/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/alarmItem/modelWarnSetting.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/alarmItem/zbIndex.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicSetup/equipmentfile/configure.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicSetup/equipmentfile/configureChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicSetup/equipmentfile/dataList.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicSetup/equipmentfile/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicSetup/equipmentfile/tableDialog.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicSetup/equipmentfile/trendLineChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicSetup/equipmentfile/view.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicSetup/parameters/basicIndex.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicSetup/parameters/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicSetup/parameters/index1.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicSetup/parameters/standard.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicSetup/parameters/standard_statistic.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicsetting/dataAuthSetting/dataAuthModelNode.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicsetting/dataAuthSetting/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicsetting/dataAuthSetting/roleSelect.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicsetting/dataAuthSetting/userSelect.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicsetting/device/deviceStorage.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicsetting/device/deviceTabSetting.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicsetting/device/devicestartstop.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicsetting/device/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicsetting/energyIndex/energyIndex.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicsetting/energyIndex/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicsetting/energyIndex/indexNodeSetting.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicsetting/energyIndex/indexStorage.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicsetting/function/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicsetting/limitType/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicsetting/model/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicsetting/modelNode/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicsetting/modelNode/modelNode.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicsetting/modelNode/modelNodeSetting.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicsetting/nodeSetting/collectIndexSetting.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicsetting/nodeSetting/deviceSetting.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicsetting/nodeSetting/energySetting.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicsetting/nodeSetting/productSetting.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicsetting/nodeSetting/statisticIndexSetting.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicsetting/stateIndex/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicsetting/stateIndex/indexStateSetting.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicsetting/stateIndex/stateIndex.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicsetting/statetype/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/basicsetting/template/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/benchmarking/BenchmarkingManagement/benchmarking.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/benchmarking/BenchmarkingManagement/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/benchmarking/phaseBenchmarking/LineChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/benchmarking/phaseBenchmarking/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/benchmarking/phaseBenchmarking/phaseBenchmarking.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/benchmarking/realTimeBenchmarking/LineChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/benchmarking/realTimeBenchmarking/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/benchmarking/realTimeBenchmarking/realTimeBenchmarking.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/components/icons/element-icons.js
ÎļþÒÑɾ³ý energy_management_ui/src/views/components/icons/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/components/icons/svg-icons.js
ÎļþÒÑɾ³ý energy_management_ui/src/views/comprehensiveStatistics/comprehensiveStatistics/BarChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/comprehensiveStatistics/comprehensiveStatistics/LineChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/comprehensiveStatistics/comprehensiveStatistics/comprehensive.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/comprehensiveStatistics/comprehensiveStatistics/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/comprehensiveStatistics/comprehensiveStatistics/workshop.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/comprehensiveStatistics/dailyComprehensive/BarChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/comprehensiveStatistics/dailyComprehensive/LineChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/comprehensiveStatistics/dailyComprehensive/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/comprehensiveStatistics/monthlyComprehensive/BarChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/comprehensiveStatistics/monthlyComprehensive/LineChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/comprehensiveStatistics/monthlyComprehensive/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/comprehensiveStatistics/processEnergy/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/comprehensiveStatistics/processEnergy/processEnergy.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/comprehensiveStatistics/yearComprehensive/BarChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/comprehensiveStatistics/yearComprehensive/LineChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/comprehensiveStatistics/yearComprehensive/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/comreport/frreport/reportiframe.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/costaccounting/frreport/reportiframe.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/dashboard/BarChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/dashboard/LineChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/dashboard/PanelGroup.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/dashboard/PieChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/dashboard/RaddarChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/dashboard/mixins/resize.js
ÎļþÒÑɾ³ý energy_management_ui/src/views/dataEntry/stagseDataEntry/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/dataEntry/stagseDataEntry/stagseDataEdit.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/dataEntry/stagseDataEntry/stagseDataEntry.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/dataEntry/stagseDataEntryEdit/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/dataEntry/stagseDataEntryEdit/stagseDataEntryEdit.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/dataMonitoring/energyPercent/energyPercent.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/dataMonitoring/energyPercent/waterPercent.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/dataMonitoring/historyDataTrend/historyMonitoringSetting.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/dataMonitoring/historyDataTrend/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/dataMonitoring/realTimeTrend/LineChart copy.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/dataMonitoring/realTimeTrend/LineChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/dataMonitoring/realTimeTrend/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/dataMonitoring/realTimeTrend/trendSetting.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/demo/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/electricityPrice/electricity/history.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/electricityPrice/electricity/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/electricityPrice/statistics/electricityIndex.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/electricityPrice/statistics/electricityIndexNew.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/electricityPrice/statistics/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/electricityPrice/statistics/mixins/resize.js
ÎļþÒÑɾ³ý energy_management_ui/src/views/electricityPrice/statistics/pieChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/enerInfoManage/enerclass/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/enerInfoManage/enercoefficient/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/enerInfoManage/energy/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/enerInfoManage/price/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/enerInfoManage/product/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyAlarm/historicalAlarm/LChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyAlarm/historicalAlarm/historyAlarmNote.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyAlarm/historicalAlarm/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyAlarm/historicalAlarm/realIndex.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyAlarm/realTimeAlarm/LineChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyAlarm/realTimeAlarm/historyAlarmTable.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyAlarm/realTimeAlarm/historyAlarmView.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyAlarm/realTimeAlarm/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyAlarm/realTimeAlarm/liveAlarmView.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyAlarm/realTimeAlarm/modelRealTimeAlarmSetting.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyAssistInput/energyDayConsumeInput/energyDayConsumeInput.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyAssistInput/energyDayConsumeInput/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyAssistInput/energyMonthConsumeInput/energyMonthConsumeInput.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyAssistInput/energyMonthConsumeInput/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyAssistInput/energyYearConsumeInput/energyYearConsumeInput.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyAssistInput/energyYearConsumeInput/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyBalance/energyBalance/LineChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyBalance/energyBalance/PieChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyBalance/energyBalance/energyBalance.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyBalance/energyBalance/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyBalance/energyBalance/pie_chart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyBalance/energyLoss/PieChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyBalance/energyLoss/energyLoss.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyBalance/energyLoss/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyBalance/energyPic/energyPic.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyBalance/energyPic/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyConsumptionAlarm/monitorAlarm/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyConsumptionAlarm/monitorAlarm/monitorAlarmSetting.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyEenchmarking/benchmarkingMonitoring/benchmarkingMonitoring.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyEenchmarking/benchmarkingMonitoring/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyEenchmarking/energyEenchmarking/enchmarking.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyEenchmarking/energyEenchmarking/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyExamine/assessmentIndex/addIndexTable.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyExamine/assessmentIndex/assessmentIndex.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyExamine/assessmentIndex/create_index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyExamine/assessmentIndex/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyExamine/assessmentResults/assessmentResults.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyExamine/assessmentResults/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyMonitoring/e-gasMonitoring/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyMonitoring/eMonitoring/svgView/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyMonitoring/waterMonitoring/svgView/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyPlan/actualOutput/EnergyActual.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyPlan/actualOutput/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyPlan/energyEstablishment/energyEstablishment.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyPlan/energyEstablishment/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyPlan/energyForecast/LineChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyPlan/energyForecast/energyForecast.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyPlan/energyForecast/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyPlan/energyMonitoring/LineChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyPlan/energyMonitoring/energyMonitoring.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyPlan/energyMonitoring/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyPlan/plannedOutput/EnergyPlan.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyPlan/plannedOutput/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyPrice/index copy.vue
energy_management_ui/src/views/energyPrice/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energySaving/emissionReduction/emissionReduction.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energySaving/emissionReduction/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energySaving/energyAnnex/energyAnnex.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energySaving/energyProject/energyAnnex.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energySaving/energyProject/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energySaving/policiesRegulations/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energySaving/projectManagement/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energySaving/report/importReportFile.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energySaving/report/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyStatistics/energyAnalysis/energyAnalysis.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyStatistics/energyAnalysis/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyStatistics/energyConsumption/BarChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyStatistics/energyConsumption/BarCharts.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyStatistics/energyConsumption/PieChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyStatistics/energyConsumption/consumption.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyStatistics/energyConsumption/consumptionCost.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyStatistics/energyConsumption/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyStatistics/energyConsumption/pieChartCost.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyStatistics/energyStatisticsTrend/EnergyIndex.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyStatistics/energyStatisticsTrend/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyStatistics/energyStatisticsTrend/lineChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyStatistics/energyStatisticsTrend/mixins/resize.js
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyStatistics/energyStatisticsTrend/realTimeIndex.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyStatistics/energyStatisticsTrend/reportForm.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyStatistics/energyStructure/EnergyIndex.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyStatistics/energyStructure/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyStatistics/energyStructure/lineChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/energyStatistics/mixins/resize.js
ÎļþÒÑɾ³ý energy_management_ui/src/views/equipmentMonitor/energyConsumption/curve.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/equipmentMonitor/energyConsumption/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/equipmentMonitor/energyConsumption/lineChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/equipmentMonitor/history/historyIndex.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/equipmentMonitor/history/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/equipmentMonitor/keyEquipment/LineChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/equipmentMonitor/keyEquipment/equipmentView.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/equipmentMonitor/keyEquipment/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/equipmentMonitor/keyEquipment/pieChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/equipmentMonitor/parameters/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/equipmentMonitor/parameters/modelMonitorSetting.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/equipmentMonitor/realTimeMonitoring/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/equipmentMonitor/realTimeMonitoring/parametersTable.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/equipmentMonitor/realTimeMonitoring/stateTable.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/error/401.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/error/404.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/facility/archives/importAnnexTable.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/facility/archives/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/facility/querycount/importAnnexTable.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/facility/querycount/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/history/query/historyIndex.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/history/query/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/indexInfo.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/index_bak.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/keyEquipment/dailykeyEquipment/BarChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/keyEquipment/dailykeyEquipment/LineChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/keyEquipment/dailykeyEquipment/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/keyEquipment/monthlykeyEquipment/BarChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/keyEquipment/monthlykeyEquipment/LineChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/keyEquipment/monthlykeyEquipment/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/keyEquipment/yearkeyEquipment/BarChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/keyEquipment/yearkeyEquipment/LineChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/keyEquipment/yearkeyEquipment/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/login.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/login/auth-redirect.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/login/components/SocialSignin.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/meter/implement/importFileTable.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/meter/implement/importIndexTable.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/meter/implement/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/meter/implementCount/importFileTable.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/meter/implementCount/importIndexTable.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/meter/implementCount/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/monitor/druid/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/monitor/job/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/monitor/logininfor/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/monitor/online/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/monitor/operlog/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/monitor/server/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/onlineMonitoring/gatewayAdministration/importAnnexTable.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/onlineMonitoring/gatewayAdministration/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/onlineMonitoring/gatewayMonitoring/importAnnexTable.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/onlineMonitoring/gatewayMonitoring/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/policy/policyInsert/importFileTable.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/policy/policyInsert/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/policy/policySelete/importFileTable.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/policy/policySelete/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/power-statistics-analyse/func/columns.js
ÎļþÒÑɾ³ý energy_management_ui/src/views/power-statistics-analyse/func/merge-object.js
ÎļþÒÑɾ³ý energy_management_ui/src/views/power-statistics-analyse/pari-passu/BarChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/power-statistics-analyse/pari-passu/LineChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/power-statistics-analyse/pari-passu/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/power-statistics-analyse/per-passu/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/redirect.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/reportForm/annualReport/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/reportForm/consolidatedStatements/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/reportForm/dailyReport/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/reportForm/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/reportForm/monthlyReport/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/reportForm/statements/BarChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/reportForm/statements/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/reportInfo/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/reportSet/cjdIndex.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/reportSet/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/reportSet/modelWarnSetting.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/reportSet/zbIndex.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/stage/alarm/LinChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/stage/alarm/alarmIndex.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/stage/alarm/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/statisticalData/gxdhcount/gxdhcountindex.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/statisticalData/gxdhcount/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/system/config/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/system/dept/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/system/dict/data.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/system/dict/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/system/log/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/system/menu/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/system/notice/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/system/post/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/system/role/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/system/user/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/system/user/profile/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/system/user/profile/resetPwd.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/system/user/profile/userAvatar.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/system/user/profile/userInfo.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/tool/build/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/tool/gen/basicInfoForm.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/tool/gen/editTable.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/tool/gen/genInfoForm.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/tool/gen/importTable.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/tool/gen/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/tool/swagger/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/workforce/dutyManagement/rostering_duty.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/workforce/management/scheme.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/workforce/management/schemeItem.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/workforce/rosteringManagement/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/workforce/rosteringManagement/scheduling_basis.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/workforce/shiftManagement/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/workforce/shiftManagement/rostering_shift.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/workingProcedure/dailyWorkingProcedure/BarChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/workingProcedure/dailyWorkingProcedure/LineChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/workingProcedure/dailyWorkingProcedure/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/workingProcedure/monthlyWorkingProcedure/BarChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/workingProcedure/monthlyWorkingProcedure/LineChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/workingProcedure/monthlyWorkingProcedure/index.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/workingProcedure/yearWorkingProcedure/BarChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/workingProcedure/yearWorkingProcedure/LineChart.vue
ÎļþÒÑɾ³ý energy_management_ui/src/views/workingProcedure/yearWorkingProcedure/index.vue
ÎļþÒÑɾ³ý energy_management_ui/upload/Õþ²ß·¨¹æÐÐÕþ¸½¼þ.docBinary files differ
energy_management_ui/vue.config.js
ÎļþÒÑɾ³ý package-lock.json
ÎļþÒÑɾ³ý parent/pom.xml
ÎļþÒÑɾ³ý pom.xml
@@ -1,91 +1,374 @@ <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.dingzhuo</groupId> <artifactId>energy-management</artifactId> <version>1.0.0</version> <modules> <module>data-service</module> <module>data-model</module> <module>parent</module> <module>data-monitoring</module> <module>energy_management_server</module> <module>basic</module> <module>basic-data</module> <module>compute-engine</module> </modules> <packaging>pom</packaging> <groupId>com.zhitan</groupId> <artifactId>BaseAdminAPI</artifactId> <version>3.8.7</version> <name>energyManagement</name> <description>ä¼ä¸è½æºç®¡çç³»ç»</description> <name>BaseAdminAPI</name> <description>管çç³»ç»</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.5.RELEASE</version> <relativePath/> </parent> <packaging>pom</packaging> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <mybatis.spring.boot.starter.version>1.3.2</mybatis.spring.boot.starter.version> <pagehelper.spring.boot.starter.version>1.2.5</pagehelper.spring.boot.starter.version> <fastjson.version>1.2.47</fastjson.version> <druid.version>1.1.14</druid.version> <commons.io.version>2.5</commons.io.version> <commons.fileupload.version>1.3.3</commons.fileupload.version> <bitwalker.version>1.19</bitwalker.version> <jwt.version>0.9.0</jwt.version> <swagger.version>2.9.2</swagger.version> <poi.version>3.17</poi.version> <oshi.version>3.9.1</oshi.version> <velocity.version>1.7</velocity.version> </properties> <properties> <zhitan.version>3.8.7</zhitan.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <maven-jar-plugin.version>3.1.1</maven-jar-plugin.version> <spring-framework.version>5.3.33</spring-framework.version> <druid.version>1.2.20</druid.version> <bitwalker.version>1.21</bitwalker.version> <swagger.version>3.0.0</swagger.version> <kaptcha.version>2.3.3</kaptcha.version> <pagehelper.version>6.1.0</pagehelper.version> <jsqlparser.version>4.9</jsqlparser.version> <fastjson.version>2.0.43</fastjson.version> <oshi.version>6.5.0</oshi.version> <commons.io.version>2.13.0</commons.io.version> <poi.version>4.1.2</poi.version> <velocity.version>2.3</velocity.version> <jwt.version>0.9.1</jwt.version> <mybatis-plus.version>3.5.6</mybatis-plus.version> </properties> <repositories> <repository> <id>public</id> <name>aliyun nexus</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> </repository> </repositories> <dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <!-- PostgreSQL驱å¨å --> <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>2.10.5</version> </dependency> <pluginRepositories> <pluginRepository> <id>public</id> <name>aliyun nexus</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> </pluginRepositories> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>28.0-jre</version> </dependency> <profiles> <profile> <id>dev</id> <properties> <!--å½åç¯å¢,ç产ç¯å¢ä¸ºç©º--> <profile.name>dev</profile.name> </properties> </profile> <profile> <id>prod</id> <properties> <!--å½åç¯å¢,ç产ç¯å¢ä¸ºç©º--> <profile.name>prod</profile.name> </properties> </profile> </profiles> <dependency> <groupId>com.jsoniter</groupId> <artifactId>jsoniter</artifactId> <version>0.9.23</version> </dependency> <dependency> <groupId>org.influxdb</groupId> <artifactId>influxdb-java</artifactId> <exclusions> <exclusion> <artifactId>okhttp</artifactId> <groupId>com.squareup.okhttp3</groupId> </exclusion> <exclusion> <artifactId>okio</artifactId> <groupId>com.squareup.okio</groupId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.influxdb</groupId> <artifactId>influxdb-client-java</artifactId> <version>3.4.0</version> </dependency> <dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <exclusions> <exclusion> <artifactId>kotlin-stdlib</artifactId> <groupId>org.jetbrains.kotlin</groupId> </exclusion> </exclusions> </dependency> <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-annotations</artifactId> <version>1.6.2</version> <scope>compile</scope> </dependency> <!-- é¿éJSONè§£æå¨ --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>${fastjson.version}</version> </dependency> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-core</artifactId> <version>5.3.8</version> </dependency> </dependencies> <!-- ä¾èµå£°æ --> <dependencyManagement> <dependencies> <!-- SpringFrameworkçä¾èµé ç½®--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-framework-bom</artifactId> <version>${spring-framework.version}</version> <type>pom</type> <scope>import</scope> </dependency> <!-- SpringBootçä¾èµé ç½®--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>2.5.15</version> <type>pom</type> <scope>import</scope> </dependency> <!-- é¿éæ°æ®åºè¿æ¥æ± --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>${druid.version}</version> </dependency> <!-- è§£æå®¢æ·ç«¯æä½ç³»ç»ãæµè§å¨ç --> <dependency> <groupId>eu.bitwalker</groupId> <artifactId>UserAgentUtils</artifactId> <version>${bitwalker.version}</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>${mybatis-plus.version}</version> </dependency> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>${pagehelper.version}</version> </dependency> <dependency> <groupId>com.github.jsqlparser</groupId> <artifactId>jsqlparser</artifactId> <version>${jsqlparser.version}</version> </dependency> <!-- è·åç³»ç»ä¿¡æ¯ --> <dependency> <groupId>com.github.oshi</groupId> <artifactId>oshi-core</artifactId> <version>${oshi.version}</version> </dependency> <!-- Swagger3ä¾èµ --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <version>${swagger.version}</version> <exclusions> <exclusion> <groupId>io.swagger</groupId> <artifactId>swagger-models</artifactId> </exclusion> </exclusions> </dependency> <!-- io常ç¨å·¥å ·ç±» --> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>${commons.io.version}</version> </dependency> <!-- excelå·¥å · --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>${poi.version}</version> </dependency> <!-- velocity代ç çæä½¿ç¨æ¨¡æ¿ --> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version>${velocity.version}</version> </dependency> <!-- é¿éJSONè§£æå¨ --> <dependency> <groupId>com.alibaba.fastjson2</groupId> <artifactId>fastjson2</artifactId> <version>${fastjson.version}</version> </dependency> <!-- Tokençæä¸è§£æ--> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <version>${jwt.version}</version> </dependency> <!-- éªè¯ç --> <dependency> <groupId>pro.fessional</groupId> <artifactId>kaptcha</artifactId> <version>${kaptcha.version}</version> </dependency> <!-- 宿¶ä»»å¡--> <dependency> <groupId>com.zhitan</groupId> <artifactId>zhitan-quartz</artifactId> <version>${zhitan.version}</version> </dependency> <!-- 代ç çæ--> <dependency> <groupId>com.zhitan</groupId> <artifactId>zhitan-generator</artifactId> <version>${zhitan.version}</version> </dependency> <!-- æ ¸å¿æ¨¡å--> <dependency> <groupId>com.zhitan</groupId> <artifactId>zhitan-framework</artifactId> <version>${zhitan.version}</version> </dependency> <!-- ç³»ç»æ¨¡å--> <dependency> <groupId>com.zhitan</groupId> <artifactId>zhitan-system</artifactId> <version>${zhitan.version}</version> </dependency> <!-- éç¨å·¥å ·--> <dependency> <groupId>com.zhitan</groupId> <artifactId>zhitan-common</artifactId> <version>${zhitan.version}</version> </dependency> </dependencies> </dependencyManagement> <modules> <module>zhitan-admin</module> <module>zhitan-framework</module> <module>zhitan-system</module> <module>zhitan-quartz</module> <module>zhitan-generator</module> <module>zhitan-common</module> </modules> <profiles> <profile> <id>dev</id> <properties> <build.profile.id>dev</build.profile.id> <profileActive>dev</profileActive> </properties> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> <profile> <id>prod</id> <properties> <build.profile.id>prod</build.profile.id> <profileActive>prod</profileActive> </properties> </profile> </profiles> <build> <resources> <resource> <directory>src/main/resources</directory> <!--å¼å¯è¿æ»¤ï¼ç¨æå®çåæ°æ¿æ¢directoryä¸çæä»¶ä¸çåæ°--> <filtering>true</filtering> </resource> </resources> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>${java.version}</source> <target>${java.version}</target> <encoding>${project.build.sourceEncoding}</encoding> <compilerArgs> <!-- è¿æçæ¹æ³çè¦å--> <arg>-Xlint:deprecation</arg> </compilerArgs> <compilerArguments> <!-- æ¯å¦è¾åºææçç¼è¯ä¿¡æ¯ï¼å æ¬ç±»çå è½½çï¼--> <!--<verbose />--> <!-- è§£å³mavenå½ä»¤ç¼è¯æ¥éï¼å 为rt.jar åjce.jarå¨jreçlibä¸é¢ï¼ä¸å¨jdkçlibä¸é¢ï¼ 导è´mavenæ¾ä¸å°ï¼java7以åä¼åºç°è¿ä¸ªé®é¢ï¼ï¼å°è¿2个jarå æ·è´å°jdkçlibä¸é¢ä¼°è®¡ä¹å¥½ä½¿--> <bootclasspath>${java.home}/lib/rt.jar;${java.home}/lib/jce.jar</bootclasspath> </compilerArguments> </configuration> </plugin> </plugins> </build> <repositories> <repository> <id>ali-public</id> <name>ali-public</name> <url>https://maven.aliyun.com/repository/public</url> <releases> <enabled>true</enabled> </releases> </repository> <repository> <id>central</id> <url>https://maven.aliyun.com/repository/central</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>public</id> <name>ali nexus</name> <url>https://maven.aliyun.com/repository/public</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> </pluginRepositories> </project> start.bat
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,67 @@ @echo off rem jarƽ��Ŀ¼ set AppName=admin-admin.jar rem JVM���� set JVM_OPTS="-Dname=%AppName% -Duser.timezone=Asia/Shanghai -Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=30 -XX:+UseParallelGC -XX:+UseParallelOldGC" ECHO. ECHO. [1] ����%AppName% ECHO. [2] �ر�%AppName% ECHO. [3] ����%AppName% ECHO. [4] ����״̬ %AppName% ECHO. [5] �� �� ECHO. ECHO.������ѡ����Ŀ�����: set /p ID= IF "%id%"=="1" GOTO start IF "%id%"=="2" GOTO stop IF "%id%"=="3" GOTO restart IF "%id%"=="4" GOTO status IF "%id%"=="5" EXIT PAUSE :start for /f "usebackq tokens=1-2" %%a in (`jps -l ^| findstr %AppName%`) do ( set pid=%%a set image_name=%%b ) if defined pid ( echo %%is running PAUSE ) start javaw %JVM_OPTS% -jar %AppName% echo starting���� echo Start %AppName% success... goto:eof rem ����stopͨ��jps�������pid���������� :stop for /f "usebackq tokens=1-2" %%a in (`jps -l ^| findstr %AppName%`) do ( set pid=%%a set image_name=%%b ) if not defined pid (echo process %AppName% does not exists) else ( echo prepare to kill %image_name% echo start kill %pid% ... rem ���ݽ���ID��kill���� taskkill /f /pid %pid% ) goto:eof :restart call :stop call :start goto:eof :status for /f "usebackq tokens=1-2" %%a in (`jps -l ^| findstr %AppName%`) do ( set pid=%%a set image_name=%%b ) if not defined pid (echo process %AppName% is dead ) else ( echo %image_name% is running ) goto:eof start.sh
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,86 @@ #!/bin/sh # ./start.sh start å¯å¨ stop 忢 restart éå¯ status ç¶æ AppName=admin-admin.jar # JVMåæ° JVM_OPTS="-Dname=$AppName -Duser.timezone=Asia/Shanghai -Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=30 -XX:+UseParallelGC -XX:+UseParallelOldGC" APP_HOME=`pwd` LOG_PATH=$APP_HOME/logs/$AppName.log if [ "$1" = "" ]; then echo -e "\033[0;31m æªè¾å ¥æä½å \033[0m \033[0;34m {start|stop|restart|status} \033[0m" exit 1 fi if [ "$AppName" = "" ]; then echo -e "\033[0;31m æªè¾å ¥åºç¨å \033[0m" exit 1 fi function start() { PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'` if [ x"$PID" != x"" ]; then echo "$AppName is running..." else nohup java $JVM_OPTS -jar $AppName > /dev/null 2>&1 & echo "Start $AppName success..." fi } function stop() { echo "Stop $AppName" PID="" query(){ PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'` } query if [ x"$PID" != x"" ]; then kill -TERM $PID echo "$AppName (pid:$PID) exiting..." while [ x"$PID" != x"" ] do sleep 1 query done echo "$AppName exited." else echo "$AppName already stopped." fi } function restart() { stop sleep 2 start } function status() { PID=`ps -ef |grep java|grep $AppName|grep -v grep|wc -l` if [ $PID != 0 ];then echo "$AppName is running..." else echo "$AppName is not running..." fi } case $1 in start) start;; stop) stop;; restart) restart;; status) status;; *) esac zhitan-admin/pom.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,101 @@ <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>BaseAdminAPI</artifactId> <groupId>com.zhitan</groupId> <version>3.8.7</version> </parent> <modelVersion>4.0.0</modelVersion> <packaging>jar</packaging> <artifactId>zhitan-admin</artifactId> <description> webæå¡å ¥å£ </description> <dependencies> <!-- spring-boot-devtools --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> <!-- 表示ä¾èµä¸ä¼ä¼ é --> </dependency> <!-- swagger3--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> </dependency> <!-- 鲿¢è¿å ¥swagger页颿¥ç±»å转æ¢éè¯¯ï¼æé¤3.0.0ä¸çå¼ç¨ï¼æå¨å¢å 1.6.2çæ¬ --> <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-models</artifactId> <version>1.6.2</version> </dependency> <!-- æ ¸å¿æ¨¡å--> <dependency> <groupId>com.zhitan</groupId> <artifactId>zhitan-framework</artifactId> </dependency> <!-- 宿¶ä»»å¡--> <dependency> <groupId>com.zhitan</groupId> <artifactId>zhitan-quartz</artifactId> </dependency> <!-- 代ç çæ--> <dependency> <groupId>com.zhitan</groupId> <artifactId>zhitan-generator</artifactId> </dependency> <dependency> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-stdlib</artifactId> </dependency> <dependency> <groupId>org.eweb4j</groupId> <artifactId>fel</artifactId> <version>0.10</version> <scope>system</scope> <systemPath>${basedir}/lib/fel.jar</systemPath> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.5.15</version> <configuration> <fork>true</fork> <!-- å¦ææ²¡æè¯¥é ç½®ï¼devtoolsä¸ä¼çæ --> <includeSystemScope>true</includeSystemScope> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.1.0</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> <warName>${project.artifactId}</warName> </configuration> </plugin> </plugins> <finalName>${project.artifactId}</finalName> </build> </project> zhitan-admin/src/main/java/com/zhitan/AdminApplication.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,21 @@ package com.zhitan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; /** * å¯å¨ç¨åº * * @author zhitan */ @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class }) public class AdminApplication { public static void main(String[] args) { // System.setProperty("spring.devtools.restart.enabled", "false"); SpringApplication.run(AdminApplication.class, args); System.out.println("项ç®å¯å¨æå"); } } zhitan-admin/src/main/java/com/zhitan/AdminServletInitializer.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,18 @@ package com.zhitan; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; /** * web容å¨ä¸è¿è¡é¨ç½² * * @author zhitan */ public class AdminServletInitializer extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(AdminApplication.class); } } zhitan-admin/src/main/java/com/zhitan/web/controller/alarm/AlarmAnalyisisController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,37 @@ package com.zhitan.web.controller.alarm; import com.zhitan.alarm.domain.dto.AlarmAnalysisDTO; import com.zhitan.alarm.domain.vo.AlarmAnalysisVO; import com.zhitan.alarm.services.IAlarmAnalyisisService; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * description todu * * @author hmj * @date 2024-10-26 17:31 */ @RestController @RequestMapping("/alarmAnalysis") public class AlarmAnalyisisController extends BaseController { @Autowired private IAlarmAnalyisisService alarmAnalyisisService; @GetMapping("/getByNodeId") public AjaxResult getByNodeId(@Validated AlarmAnalysisDTO alarmAnalysisDTO){ AlarmAnalysisVO alarmAnalysisVO = alarmAnalyisisService.getByNodeId(alarmAnalysisDTO); return AjaxResult.success(alarmAnalysisVO); } @GetMapping("/getCountInfo") public AjaxResult getCountInfo(@Validated AlarmAnalysisDTO alarmAnalysisDTO){ AlarmAnalysisVO alarmAnalysisVO = alarmAnalyisisService.getCountInfo(alarmAnalysisDTO); return AjaxResult.success(alarmAnalysisVO); } } zhitan-admin/src/main/java/com/zhitan/web/controller/alarm/AlarmItemController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,139 @@ package com.zhitan.web.controller.alarm; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zhitan.alarm.domain.AlarmItem; import com.zhitan.alarm.services.IAlarmItemService; import com.zhitan.common.annotation.Log; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.domain.model.LoginUser; import com.zhitan.common.core.page.TableDataInfo; import com.zhitan.common.enums.BusinessType; import com.zhitan.common.utils.ServletUtils; import com.zhitan.common.utils.poi.ExcelUtil; import com.zhitan.framework.web.service.TokenService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Map; /** * 颿¥è¦è®¾ç½®Controller * * @author sys * @date 2020-03-02 */ @RestController @RequestMapping("/system/alarmitem") public class AlarmItemController extends BaseController { @Autowired private IAlarmItemService alarmItemService; @Autowired private TokenService tokenService; /** * æ¥è¯¢é¢æ¥è¦è®¾ç½®å表 */ @PreAuthorize("@ss.hasPermi('system:alarmitem:list')") @GetMapping("/list") public TableDataInfo list(AlarmItem alarmItem,Long pageNum, Long pageSize) { Page<AlarmItem> list = alarmItemService.selectAlarmItemPage(alarmItem,pageNum,pageSize); return getDataTable(list); } /** * 导åºé¢æ¥è¦è®¾ç½®å表 */ @PreAuthorize("@ss.hasPermi('system:alarmitem:export')") @Log(title = "颿¥è¦è®¾ç½®", businessType = BusinessType.EXPORT) @GetMapping("/export") public AjaxResult export(AlarmItem alarmItem) { List<AlarmItem> list = alarmItemService.selectAlarmItemList(alarmItem); ExcelUtil<AlarmItem> util = new ExcelUtil<AlarmItem>(AlarmItem.class); return util.exportExcel(list, "set"); } /** * è·å颿¥è¦è®¾ç½®è¯¦ç»ä¿¡æ¯ */ @PreAuthorize("@ss.hasPermi('system:alarmitem:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") String id) { return AjaxResult.success(alarmItemService.selectAlarmItemById(id)); } /** * æ°å¢é¢æ¥è¦è®¾ç½® */ @PreAuthorize("@ss.hasPermi('system:alarmitem:add')") @Log(title = "颿¥è¦è®¾ç½®", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody AlarmItem alarmItem) { return toAjax(alarmItemService.insertAlarmItem(alarmItem)); } /** * ä¿®æ¹é¢æ¥è¦è®¾ç½®å¯åç¶æ */ @PreAuthorize("@ss.hasPermi('system:alarmitem:edit')") @Log(title = "颿¥è¦è®¾ç½®", businessType = BusinessType.UPDATE) @PostMapping(value = "/startstop/{flag}") public AjaxResult edit(@PathVariable String flag, @RequestBody String[] ids) { LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest()); String username = loginUser.getUsername(); return toAjax(alarmItemService.updateStartStop(ids, flag, username)); } /** * å é¤é¢æ¥è¦è®¾ç½® */ @PreAuthorize("@ss.hasPermi('system:alarmitem:remove')") @Log(title = "颿¥è¦è®¾ç½®", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable String[] ids) { return toAjax(alarmItemService.deleteAlarmItemByIds(ids)); } /** * è·å颿¥è¦è®¾ç½®è¯¦ç»ä¿¡æ¯ */ @PreAuthorize("@ss.hasPermi('system:alarmitem:query1')") @GetMapping(value = "/getSettingInfo/{id}") public AjaxResult getSettingInfo(@PathVariable("id") String id) { return AjaxResult.success(alarmItemService.selectAlarmItemtingById(id)); } /** * è·å主表æ¯è¡å¯åç¶æå¼ */ @PreAuthorize("@ss.hasPermi('system:alarmitem:query1')") @GetMapping(value = "/getStartStop/{indexid}") public AjaxResult getStartStop(@PathVariable("indexid") String indexid) { return AjaxResult.success(alarmItemService.getStartStop(indexid)); } /** * ä¿®æ¹å¼¹åºæ¡éå¼ */ @PreAuthorize("@ss.hasPermi('system:alarmitem:edit')") @Log(title = "ä¿®æ¹å¼¹åºæ¡éå¼", businessType = BusinessType.UPDATE) @PutMapping(value = "/editLimitVal") public AjaxResult editLimitVal(@RequestBody List<Map<String, Object>> listMap) { LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest()); String username = loginUser.getUsername(); return toAjax(alarmItemService.updateLimitVal(listMap, username)); } /** * æ¥è¯¢é¢idä¸è®¾ç½®éå¼çæ°é */ @PreAuthorize("@ss.hasPermi('system:alarmitem:query1')") @GetMapping(value = "/getSettingCount/{id}") public AjaxResult getSettingCount(@PathVariable("id") String[] id) { return AjaxResult.success(alarmItemService.getSettingCount(id)); } } zhitan-admin/src/main/java/com/zhitan/web/controller/alarm/AlarmLimitTypeController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,100 @@ package com.zhitan.web.controller.alarm; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zhitan.alarm.domain.LimitType; import com.zhitan.alarm.services.IAlarmLimitTypeService; import com.zhitan.common.annotation.Log; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.domain.model.LoginUser; import com.zhitan.common.core.page.TableDataInfo; import com.zhitan.common.enums.BusinessType; import com.zhitan.common.utils.ServletUtils; import com.zhitan.framework.web.service.TokenService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; /** * @Description æ¥è¦éå¼ç±»å管çController * * @Author zhoubg * @Date 2024-10-11 */ @RestController @RequestMapping("/alarm/limit") @Api(value = "æ¥è¦éå¼ç±»å管ç",tags = {"æ¥è¦éå¼ç±»å管ç"}) public class AlarmLimitTypeController extends BaseController { @Autowired private IAlarmLimitTypeService alarmLimitTypeService; @Autowired private TokenService tokenService; /** * å表 * **/ @PreAuthorize("@ss.hasPermi('basicsetting:limitType:list')") @GetMapping("/list") @ApiOperation(value = "æ¥è¦éå¼å表") public TableDataInfo list(LimitType alarmLimitType, Long pageNum, Long pageSize){ Page<LimitType> page = alarmLimitTypeService.selectAlarmLimitTypePage(alarmLimitType, pageNum, pageSize); return getDataTable(page); } /** * è·å详æ * */ @PreAuthorize("@ss.hasPermi('basicsetting:limitType:query')") @GetMapping(value = "/{id}") @ApiOperation(value = "è·åæ¥è¦éå¼ç±»åç»´æ¤è¯¦ç»ä¿¡æ¯") public AjaxResult getInfo(@PathVariable("id") String id) { return AjaxResult.success(alarmLimitTypeService.selectAlarmLimitTypeById(id)); } /** * æ°å¢ * **/ @PreAuthorize("@ss.hasPermi('basicsetting:limitType:add')") @Log(title = "æ°å¢æ¥è¦éå¼", businessType = BusinessType.INSERT) @PostMapping("/add") @ApiOperation(value = "æ°å¢æ¥è¦éå¼") public AjaxResult add(@RequestBody LimitType alarmLimitType){ LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest()); alarmLimitType.setCreateBy(loginUser.getUsername()); return toAjax(alarmLimitTypeService.insertAlarmLimitType(alarmLimitType)) ; } /** * ç¼è¾ * **/ @PreAuthorize("@ss.hasPermi('facility:annex:edit')") @Log(title = "ä¿®æ¹æ¥è¦éå¼", businessType = BusinessType.UPDATE) @PutMapping @ApiOperation(value = "计éå¨å ·å表") public AjaxResult edit(@RequestBody LimitType alarmLimitType){ return toAjax(alarmLimitTypeService.updateAlarmLimitType(alarmLimitType)); } /** * å é¤ * **/ @PreAuthorize("@ss.hasPermi('basicsetting:limitType:remove')") @Log(title = "å 餿¥è¦éå¼", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") @ApiOperation(value = "å 餿¥è¦éå¼") public AjaxResult remove(@PathVariable String[] ids){ return toAjax(alarmLimitTypeService.deleteLimitTypeByIds(ids)); } } zhitan-admin/src/main/java/com/zhitan/web/controller/alarm/HistoryAlarmController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,171 @@ package com.zhitan.web.controller.alarm; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zhitan.alarm.domain.HistoryTable; import com.zhitan.alarm.domain.JkHistoryAlarm; import com.zhitan.alarm.services.IHistoryAlarmService; import com.zhitan.common.annotation.Log; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.page.TableDataInfo; import com.zhitan.common.enums.BusinessType; import com.zhitan.common.utils.poi.ExcelUtil; import com.zhitan.framework.web.service.TokenService; import com.zhitan.realtimedata.domain.TagValue; import com.zhitan.realtimedata.service.RealtimeDatabaseService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * æ¥è¦çæµ ä¸ å岿¥è¦çæµ Controller * * @author zhaowei * @date 2020-02-12 */ @Api(value = "æ¥è¦æ£æµâå岿¥è¦æ£æµ",tags = {"æ¥è¦æ£æµ"}) @RestController @RequestMapping("/energyAlarm/historicalAlarm") public class HistoryAlarmController extends BaseController { @Autowired private IHistoryAlarmService iHistoryAlarmService; @Autowired private TokenService tokenService; @Autowired private RealtimeDatabaseService realtimeDatabaseService; /** * å岿¥è¦ é¡µé¢ æ ¹æ® èç¹ç®å½å æ¡ä»¶æ¥è¯¢ */ @ApiOperation("å岿¥è¦æ¥è¯¢") // @PreAuthorize("@ss.hasPermi('energyAlarm:historicalAlarm:list')") @GetMapping("/list") public TableDataInfo list(JkHistoryAlarm jkHistoryAlarm,Long pageNum,Long pageSize) { Page<JkHistoryAlarm> list = iHistoryAlarmService.selectJkHistoryAlarmPage(jkHistoryAlarm,pageNum,pageSize); return getDataTable(list); } /** * 导åºå岿¥è¦çæ§å表 */ @PreAuthorize("@ss.hasPermi('energyAlarm:historicalAlarm:export')") @Log(title = "å岿¥è¦", businessType = BusinessType.EXPORT) @GetMapping("/export") public AjaxResult export(JkHistoryAlarm jkHistoryAlarm) { List<JkHistoryAlarm> list = iHistoryAlarmService.selectJkHistoryAlarmListExcel(jkHistoryAlarm); ExcelUtil<JkHistoryAlarm> util = new ExcelUtil<JkHistoryAlarm>(JkHistoryAlarm.class); return util.exportExcel(list, "alarm"); } /** * å岿¥è¦ ç»ä»¶ å岿°æ®è·å */ @ApiOperation("å岿¥è¦æ°æ®æ¥è¯¢") @PreAuthorize("@ss.hasPermi('energyAlarm:realTimeAlarm:list')") @GetMapping("/historyData/{code}/{start}/{end}/{pointCount}") public AjaxResult historyDataList(@PathVariable("code") String code, @PathVariable("start") String start, @PathVariable("end") String end, @PathVariable("pointCount") String pointCount) { int count = Integer.parseInt(pointCount); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date sdate = null; Date edate = null; try { sdate = formatter.parse(start); edate = formatter.parse(end); List<TagValue> TagValuelist = realtimeDatabaseService.retrieve(code, sdate, edate, count); System.out.println("TagValuelist>>>>>>>>>"+TagValuelist); System.out.println("TagValuelist size>>>>>>>>>"+TagValuelist.size()); for(TagValue tagVal:TagValuelist){ System.out.println("TagValue>>>>>>>>>"+tagVal); if(ObjectUtils.isEmpty(tagVal)){ tagVal = new TagValue(); } tagVal.setShowDataTime("yyyy-MM-dd HH:mm:ss"); if(ObjectUtils.isEmpty(tagVal.getValue())){ tagVal.setValue(0.00); }else{ BigDecimal b = new BigDecimal(tagVal.getValue()); tagVal.setValue( b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); } } return AjaxResult.success(TagValuelist); } catch (ParseException e) { e.printStackTrace(); return AjaxResult.success("æ°æ®æ¥è¯¢å¤±è´¥"); } // Collections.reverse(TagValuelist); } /** * å岿¥è¦ ç»ä»¶ å岿¥è¦è¡¨æ ¼å¯¼åº */ @ApiOperation("å岿¥è¦è¡¨æ ¼å¯¼åº") @PreAuthorize("@ss.hasPermi('energyAlarm:realTimeAlarm:list')") @GetMapping("/historyDataExcel/{code}/{start}/{end}/{pointCount}/{indexName}/{indexUnit}") public AjaxResult historyDataExcel(@PathVariable("code") String code, @PathVariable("start") String start, @PathVariable("end") String end, @PathVariable("pointCount") String pointCount, @PathVariable("indexName") String indexName, @PathVariable("indexUnit") String indexUnit) { int count = Integer.parseInt(pointCount); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date sdate = null; Date edate = null; try { sdate = formatter.parse(start); edate = formatter.parse(end); } catch (ParseException e) { e.printStackTrace(); } List<TagValue> tagValuelist = realtimeDatabaseService.retrieve(code, sdate, edate, count); List<HistoryTable> historyTableList = new ArrayList<>(); for(TagValue tagVal:tagValuelist) { tagVal.setShowDataTime("yyyy-MM-dd HH:mm:ss"); HistoryTable hh = new HistoryTable(); hh.setCode(tagVal.getTagCode()); hh.setAlarmTime(tagVal.getShowDataTime()); BigDecimal b = new BigDecimal(tagVal.getValue()); hh.setEarlyWarningValue(b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); hh.setIndexName(indexName); hh.setUnitName(indexUnit); historyTableList.add(hh); } ExcelUtil<HistoryTable> util = new ExcelUtil<HistoryTable>(HistoryTable.class); return util.exportExcel(historyTableList, "template"); } /** * 宿¶æ£æµ åè½ çå¤ sheet页 å±ç¤º ç»æå¾ æµç¹ æ¥è¦ä¿¡æ¯ */ @ApiOperation("宿¶æ£æµæ¥è¦ä¿¡æ¯æ¥è¯¢") @GetMapping("/listNote") public TableDataInfo listNote(JkHistoryAlarm jkHistoryAlarm) { startPage(); List<JkHistoryAlarm> list = iHistoryAlarmService.selectHistoryAlarmNoteList(jkHistoryAlarm); return getDataTable(list); } } zhitan-admin/src/main/java/com/zhitan/web/controller/alarm/RealTimeAlarmController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,88 @@ package com.zhitan.web.controller.alarm; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zhitan.alarm.domain.JkRealTimeAlarmList; import com.zhitan.alarm.services.IRealtimeAlarmService; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.page.TableDataInfo; import com.zhitan.realtimedata.domain.TagValue; import com.zhitan.realtimedata.service.RealtimeDatabaseService; import io.swagger.annotations.Api; import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.math.BigDecimal; import java.util.Calendar; import java.util.Date; import java.util.List; /** * æ¥è¦çæµ ä¸ å®æ¶æ¥è¦çæµ Controller * * @author zhaowei * @date 2020-02-12 */ @Api("æ¥è¦æ£æµââ宿¶æ¥è¦æ£æµ") @RestController @RequestMapping("/energyAlarm/realTimeAlarm") public class RealTimeAlarmController extends BaseController { @Autowired private IRealtimeAlarmService iRealtimeAlarmService; @Autowired private RealtimeDatabaseService realtimeDatabaseService; /** * 宿¶æ¥è¦ é¡µé¢ æ ¹æ® èç¹ç®å½å æ¡ä»¶æ¥è¯¢ */ // @ApiOperation("宿¶æ¥è¦æ¥è¯¢") @PreAuthorize("@ss.hasPermi('energyAlarm:realTimeAlarm:list')") @GetMapping("/list") public TableDataInfo list(JkRealTimeAlarmList jkRealTimeAlarmList, Long pageNum, Long pageSize) { Page<JkRealTimeAlarmList> list = iRealtimeAlarmService.selectRealtimeAlarmJkPage(jkRealTimeAlarmList,pageNum,pageSize); return getDataTable(list); } /** * 宿¶æ¥è¦ ç»ä»¶ 宿¶æ°æ®è·å */ // @ApiOperation("宿¶æ¥è¦æ¥è¯¢") @PreAuthorize("@ss.hasPermi('energyAlarm:realTimeAlarm:list')") @GetMapping("/liveHistoryData/{code}/{minute}/{pointCount}") public AjaxResult liveList(@PathVariable("code") String code,@PathVariable("minute") String minute,@PathVariable("pointCount") String pointCount) { int time = Integer.parseInt(minute); int count = Integer.parseInt(pointCount); Calendar c = Calendar.getInstance(); Date endTime= c.getTime(); c.add(Calendar.MINUTE, -time); Date startTime = c.getTime(); List<TagValue> TagValuelist = realtimeDatabaseService.retrieve(code, startTime, endTime, count); for(TagValue tagVal:TagValuelist) { if(ObjectUtils.isEmpty(tagVal)){ tagVal = new TagValue(); } tagVal.setShowDataTime("HH:mm:ss"); if(ObjectUtils.isEmpty(tagVal.getValue())){ tagVal.setValue(0.00); }else{ BigDecimal b = new BigDecimal(tagVal.getValue()); tagVal.setValue( b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); } } // Collections.reverse(TagValuelist); return AjaxResult.success(TagValuelist); } } zhitan-admin/src/main/java/com/zhitan/web/controller/auxiliaryinput/EnergyIndicatorsController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,117 @@ package com.zhitan.web.controller.auxiliaryinput; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zhitan.common.annotation.Log; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.page.TableDataInfo; import com.zhitan.common.enums.BusinessType; import com.zhitan.common.utils.poi.ExcelUtil; import com.zhitan.energyIndicators.domain.EnergyIndicators; import com.zhitan.energyIndicators.service.IEnergyIndicatorsService; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.util.List; import java.util.UUID; /** * è½æºææ Controller * * @author ZhiTan * @date 2024-10-25 */ @RestController public class EnergyIndicatorsController extends BaseController { @Resource private IEnergyIndicatorsService energyIndicatorsService; /** * æ¥è¯¢è½æºææ å表 */ @PreAuthorize("@ss.hasPermi('system:energyIndicators:list')") @GetMapping("/energyIndicators/list") public TableDataInfo energyIndicatorsPage(EnergyIndicators energyIndicators, @RequestParam Long pageNum, @RequestParam Long pageSize) { // startPage(); Page<EnergyIndicators> list = energyIndicatorsService.selectEnergyIndicatorsPage(energyIndicators,pageNum,pageSize); return getDataTable(list); } /** * 导åºè½æºææ å表 */ @PreAuthorize("@ss.hasPermi('system:energyIndicators:export')") @Log(title = "è½æºææ ", businessType = BusinessType.EXPORT) @PostMapping("/energyIndicators/export") public void export(HttpServletResponse response, EnergyIndicators energyIndicators) { List<EnergyIndicators> list = energyIndicatorsService.selectEnergyIndicatorsList(energyIndicators); ExcelUtil<EnergyIndicators> util = new ExcelUtil<EnergyIndicators>(EnergyIndicators.class); util.exportExcel(response, list, "è½æºææ æ°æ®"); } /** * è·åè½æºææ 详ç»ä¿¡æ¯ */ @PreAuthorize("@ss.hasPermi('system:energyIndicators:query')") @GetMapping(value = "/energyIndicators/{energyIndicatorsId}") public AjaxResult getInfo(@PathVariable("energyIndicatorsId") String energyIndicatorsId) { return success(energyIndicatorsService.selectEnergyIndicatorsByNodeId(energyIndicatorsId)); } /** * æ°å¢è½æºææ */ @PreAuthorize("@ss.hasPermi('system:energyIndicators:add')") @Log(title = "è½æºææ ", businessType = BusinessType.INSERT) @PostMapping(value = "/energyIndicators") public AjaxResult add(@RequestBody EnergyIndicators energyIndicators) { //todo æ ¡éªæ¯å¦éå¤ï¼å¦æéå¤å°±æ´æ°ã妿ä¸éå¤å°±æ°å¢. // æ ¡éªéå¤è§åï¼nodeId+timeType+dataTime+energyType+indicatorsType EnergyIndicators queryParam = new EnergyIndicators(); queryParam.setNodeId(energyIndicators.getNodeId()); queryParam.setDataTime(energyIndicators.getDataTime()); queryParam.setTimeType(energyIndicators.getTimeType()); queryParam.setEnergyType(energyIndicators.getEnergyType()); queryParam.setIndicatorsType(energyIndicators.getIndicatorsType()); List<EnergyIndicators> list = energyIndicatorsService.selectEnergyIndicatorsList(queryParam); //夿æ¥è¯¢å°çæ°æ®,ä¸ä¸ºç©ºè¯´æå·²ç»åå¨ï¼æ´æ°æ°æ®ã为空说æä¸åå¨ï¼æ°å¢ if (list!=null && !list.isEmpty()){ return AjaxResult.error("å½åèç¹å·²ç»æ·»å è¿è¯¥ææ ç±»å"); }else { energyIndicators.setEnergyIndicatorsId(UUID.randomUUID().toString()); return toAjax(energyIndicatorsService.insertEnergyIndicators(energyIndicators)); } } /** * ä¿®æ¹è½æºææ */ @PreAuthorize("@ss.hasPermi('system:energyIndicators:edit')") @Log(title = "è½æºææ ", businessType = BusinessType.UPDATE) @PutMapping(value = "/energyIndicators") public AjaxResult edit(@RequestBody EnergyIndicators energyIndicators) { return toAjax(energyIndicatorsService.updateEnergyIndicators(energyIndicators)); } /** * å é¤è½æºææ */ @PreAuthorize("@ss.hasPermi('system:energyIndicators:remove')") @Log(title = "è½æºææ ", businessType = BusinessType.DELETE) @DeleteMapping("/energyIndicators/{energyIndicatorsIds}") public AjaxResult remove(@PathVariable String[] energyIndicatorsIds) { return toAjax(energyIndicatorsService.deleteEnergyIndicatorsByEnergyIndicatorsIds(energyIndicatorsIds)); } } zhitan-admin/src/main/java/com/zhitan/web/controller/auxiliaryinput/ProductOutputController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,528 @@ package com.zhitan.web.controller.auxiliaryinput; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zhitan.common.annotation.Log; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.page.TableDataInfo; import com.zhitan.common.enums.BusinessType; import com.zhitan.common.utils.poi.ExcelUtil; import com.zhitan.productoutput.domain.ProductOutput; import com.zhitan.productoutput.services.IProductOutputService; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.util.List; import java.util.UUID; /** * description è¾ å©å½å ¥ 产å产éå½å ¥ãè½æºä»ªè¡¨å½å ¥ãè½æºææ å½å ¥ * * @author hmj * @date 2024-10-08 16:37 */ @RestController public class ProductOutputController extends BaseController { @Resource private IProductOutputService auxiliaryInputService; /** * æ¥è¯¢äº§å产éå½å ¥å表 */ @PreAuthorize("@ss.hasPermi('system:prodoutput:list')") @GetMapping("/productoutput/list") public TableDataInfo list(ProductOutput productOutput, @RequestParam Long pageNum, @RequestParam Long pageSize) { productOutput.setDataType("1"); Page<ProductOutput> list = auxiliaryInputService.selectProductOutputPage(productOutput,pageNum,pageSize); return getDataTable(list); } /** * 导åºäº§å产éå½å ¥å表 */ @PreAuthorize("@ss.hasPermi('system:prodoutput:export')") @Log(title = "产å产éå½å ¥", businessType = BusinessType.EXPORT) @PostMapping("/productoutput/export") public void export(HttpServletResponse response, ProductOutput productOutput) { productOutput.setDataType("1"); List<ProductOutput> list = auxiliaryInputService.selectProductOutputList(productOutput); ExcelUtil<ProductOutput> util = new ExcelUtil<ProductOutput>(ProductOutput.class); util.exportExcel(response, list, "产å产éå½å ¥æ°æ®"); } /** * è·å产å产éå½å ¥è¯¦ç»ä¿¡æ¯ */ @PreAuthorize("@ss.hasPermi('system:prodoutput:query')") @GetMapping(value = "/productoutput/{productOutputId}") public AjaxResult getInfo(@PathVariable("productOutputId") String productOutputId) { return success(auxiliaryInputService.selectProductOutputById(productOutputId)); } /** * æ°å¢äº§å产éå½å ¥ */ @PreAuthorize("@ss.hasPermi('system:prodoutput:add')") @Log(title = "产å产éå½å ¥", businessType = BusinessType.INSERT) @PostMapping(value = "/productoutput") public AjaxResult add(@RequestBody ProductOutput productOutput) { productOutput.setProductOutputId(UUID.randomUUID().toString()); productOutput.setDataType("1"); return toAjax(auxiliaryInputService.insertProductOutput(productOutput)); } /** * ä¿®æ¹äº§å产éå½å ¥ */ @PreAuthorize("@ss.hasPermi('system:prodoutput:edit')") @Log(title = "产å产éå½å ¥", businessType = BusinessType.UPDATE) @PutMapping(value = "/productoutput") public AjaxResult edit(@RequestBody ProductOutput productOutput) { return toAjax(auxiliaryInputService.updateProductOutput(productOutput)); } /** * å é¤äº§å产éå½å ¥ */ @PreAuthorize("@ss.hasPermi('system:prodoutput:remove')") @Log(title = "产å产éå½å ¥", businessType = BusinessType.DELETE) @DeleteMapping("/productoutput/{ids}") public AjaxResult remove(@PathVariable String[] ids) { return toAjax(auxiliaryInputService.deleteProductOutputByIds(ids)); } /** * æ¥è¯¢è½æºä»ªè¡¨å½å ¥å表 */ @PreAuthorize("@ss.hasPermi('system:meter:list')") @GetMapping("/meter/list") public TableDataInfo meterList(ProductOutput productOutput, @RequestParam Long pageNum, @RequestParam Long pageSize) { // startPage(); productOutput.setDataType("2"); Page<ProductOutput> list = auxiliaryInputService.selectProductOutputPage(productOutput,pageNum,pageSize); return getDataTable(list); } /** * 导åºè½æºä»ªè¡¨å½å ¥å表 */ @PreAuthorize("@ss.hasPermi('system:meter:export')") @Log(title = "è½æºä»ªè¡¨å½å ¥", businessType = BusinessType.EXPORT) @PostMapping("/meter/export") public void meterExport(HttpServletResponse response, ProductOutput productOutput) { productOutput.setDataType("2"); List<ProductOutput> list = auxiliaryInputService.selectProductOutputList(productOutput); ExcelUtil<ProductOutput> util = new ExcelUtil<ProductOutput>(ProductOutput.class); util.exportExcel(response, list, "è½æºä»ªè¡¨å½å ¥æ°æ®"); } /** * è·åè½æºä»ªè¡¨å½å ¥è¯¦ç»ä¿¡æ¯ */ @PreAuthorize("@ss.hasPermi('system:meter:query')") @GetMapping(value = "/meter/{productOutputId}") public AjaxResult meterGetInfo(@PathVariable("productOutputId") String productOutputId) { return success(auxiliaryInputService.selectProductOutputById(productOutputId)); } /** * æ°å¢è½æºä»ªè¡¨å½å ¥ */ @PreAuthorize("@ss.hasPermi('system:meter:add')") @Log(title = "è½æºä»ªè¡¨å½å ¥", businessType = BusinessType.INSERT) @PostMapping(value = "/meter") public AjaxResult meterAdd(@RequestBody ProductOutput productOutput) { productOutput.setProductOutputId(UUID.randomUUID().toString()); productOutput.setDataType("2"); return toAjax(auxiliaryInputService.insertProductOutput(productOutput)); } /** * ä¿®æ¹è½æºä»ªè¡¨å½å ¥ */ @PreAuthorize("@ss.hasPermi('system:meter:edit')") @Log(title = "è½æºä»ªè¡¨å½å ¥", businessType = BusinessType.UPDATE) @PutMapping(value = "/meter") public AjaxResult meterEdit(@RequestBody ProductOutput productOutput) { return toAjax(auxiliaryInputService.updateProductOutput(productOutput)); } /** * å é¤è½æºä»ªè¡¨å½å ¥ */ @PreAuthorize("@ss.hasPermi('system:meter:remove')") @Log(title = "è½æºä»ªè¡¨å½å ¥", businessType = BusinessType.DELETE) @DeleteMapping("/meter/{ids}") public AjaxResult meterRemove(@PathVariable String[] ids) { return toAjax(auxiliaryInputService.deleteProductOutputByIds(ids)); } /** * æ¥è¯¢è½æºææ å½å ¥å表 */ @PreAuthorize("@ss.hasPermi('system:energyindex:list')") @GetMapping("/energyindex/list") public TableDataInfo energyIndexList(ProductOutput productOutput, @RequestParam Long pageNum, @RequestParam Long pageSize) { startPage(); productOutput.setDataType("3"); Page<ProductOutput> list = auxiliaryInputService.selectProductOutputPage(productOutput,pageNum,pageSize); return getDataTable(list); } /** * 导åºè½æºææ å½å ¥å表 */ @PreAuthorize("@ss.hasPermi('system:energyindex:export')") @Log(title = "è½æºææ å½å ¥", businessType = BusinessType.EXPORT) @PostMapping("/energyindex/export") public void energyIndexExport(HttpServletResponse response, ProductOutput productOutput) { productOutput.setDataType("3"); List<ProductOutput> list = auxiliaryInputService.selectProductOutputList(productOutput); ExcelUtil<ProductOutput> util = new ExcelUtil<ProductOutput>(ProductOutput.class); util.exportExcel(response, list, "è½æºææ å½å ¥æ°æ®"); } /** * è·åè½æºææ å½å ¥è¯¦ç»ä¿¡æ¯ */ @PreAuthorize("@ss.hasPermi('system:energyindex:query')") @GetMapping(value = "/energyindex/{productOutputId}") public AjaxResult energyIndexGetInfo(@PathVariable("productOutputId") String productOutputId) { return success(auxiliaryInputService.selectProductOutputById(productOutputId)); } /** * æ°å¢è½æºææ å½å ¥ */ @PreAuthorize("@ss.hasPermi('system:energyindex:add')") @Log(title = "è½æºææ å½å ¥", businessType = BusinessType.INSERT) @PostMapping(value = "/energyindex") public AjaxResult energyIndexAdd(@RequestBody ProductOutput productOutput) { productOutput.setProductOutputId(UUID.randomUUID().toString()); productOutput.setDataType("3"); return toAjax(auxiliaryInputService.insertProductOutput(productOutput)); } /** * ä¿®æ¹è½æºææ å½å ¥ */ @PreAuthorize("@ss.hasPermi('system:energyindex:edit')") @Log(title = "è½æºææ å½å ¥", businessType = BusinessType.UPDATE) @PutMapping(value = "/energyindex") public AjaxResult energyIndexEdit(@RequestBody ProductOutput productOutput) { return toAjax(auxiliaryInputService.updateProductOutput(productOutput)); } /** * å é¤è½æºææ å½å ¥ */ @PreAuthorize("@ss.hasPermi('system:energyindex:remove')") @Log(title = "è½æºææ å½å ¥", businessType = BusinessType.DELETE) @DeleteMapping("/energyindex/{ids}") public AjaxResult energyIndexRemove(@PathVariable String[] ids) { return toAjax(auxiliaryInputService.deleteProductOutputByIds(ids)); } // // /** // * æ¥è¯¢è½æºäº§éå½å ¥å表 // */ // @PreAuthorize("@ss.hasPermi('system:energyYield:list')") // @GetMapping("/energyYield/list") // public TableDataInfo energyYieldList(ProductOutput productOutput, @RequestParam Long pageNum, @RequestParam Long pageSize) // { //// startPage(); // productOutput.setDataType("5"); // productOutput.setTimeType("MONTH"); // Page<ProductOutput> list = auxiliaryInputService.selectProductOutputPage(productOutput,pageNum,pageSize); // return getDataTable(list); // } // // /** // * 导åºè½æºäº§éå½å ¥å表 // */ // @PreAuthorize("@ss.hasPermi('system:energyYield:export')") // @Log(title = "è½æºäº§éå½å ¥", businessType = BusinessType.EXPORT) // @PostMapping("/energyYield/export") // public void energyYieldExport(HttpServletResponse response, ProductOutput productOutput) // { // productOutput.setDataType("5"); // productOutput.setTimeType("MONTH"); // List<ProductOutput> list = auxiliaryInputService.selectProductOutputList(productOutput); // ExcelUtil<ProductOutput> util = new ExcelUtil<ProductOutput>(ProductOutput.class); // util.exportExcel(response, list, "è½æºäº§éå½å ¥æ°æ®"); // } // // /** // * è·åè½æºäº§éå½å ¥è¯¦ç»ä¿¡æ¯ // */ // @PreAuthorize("@ss.hasPermi('system:energyYield:query')") // @GetMapping(value = "/energyYield/{productOutputId}") // public AjaxResult energyYieldGetInfo(@PathVariable("productOutputId") String productOutputId) // { // return success(auxiliaryInputService.selectProductOutputById(productOutputId)); // } // // /** // * æ°å¢è½æºäº§éå½å ¥ // */ // @PreAuthorize("@ss.hasPermi('system:energyYield:add')") // @Log(title = "è½æºäº§éå½å ¥", businessType = BusinessType.INSERT) // @PostMapping(value = "/energyYield") // public AjaxResult energyYieldAdd(@RequestBody ProductOutput productOutput) // { // //todo å æ ¹æ®nodeId(èç¹ï¼+timeType(å½å ¥æ¶é´ç±»åï¼+dataTypeï¼æ°æ®ç±»åï¼+dataTimeï¼æ¶é´ï¼ // // æ ¡éªå½åæ°å¢çæ°æ®æ¯å¦åå¨ï¼å¦æåå¨èµ°æ´æ°ï¼å¦æä¸åå¨èµ°æ°å¢ // // // productOutput.setDataType("5"); // productOutput.setTimeType("MONTH"); // ProductOutput queryParams= new ProductOutput(); // queryParams.setTimeType(productOutput.getTimeType()); // queryParams.setDataTime(productOutput.getDataTime()); // queryParams.setDataType(productOutput.getDataType()); // queryParams.setNodeId(productOutput.getNodeId()); // List<ProductOutput> existsList=auxiliaryInputService.selectProductOutputList(queryParams); // if (existsList!=null && !existsList.isEmpty()){ // productOutput.setProductOutputId(existsList.get(0).getProductOutputId()); // return energyYieldEdit(productOutput); // }else { // productOutput.setProductOutputId(UUID.randomUUID().toString()); // return toAjax(auxiliaryInputService.insertProductOutput(productOutput)); // } // } // // /** // * ä¿®æ¹è½æºäº§éå½å ¥ // */ // @PreAuthorize("@ss.hasPermi('system:energyYield:edit')") // @Log(title = "è½æºäº§éå½å ¥", businessType = BusinessType.UPDATE) // @PutMapping(value = "/energyYield") // public AjaxResult energyYieldEdit(@RequestBody ProductOutput productOutput) // { // productOutput.setDataType("5"); // productOutput.setTimeType("MONTH"); // return toAjax(auxiliaryInputService.updateProductOutput(productOutput)); // } // // /** // * å é¤è½æºäº§éå½å ¥ // */ // @PreAuthorize("@ss.hasPermi('system:energyYield:remove')") // @Log(title = "è½æºäº§éå½å ¥", businessType = BusinessType.DELETE) // @DeleteMapping("/energyYield/{ids}") // public AjaxResult energyYieldRemove(@PathVariable String[] ids) // { // return toAjax(auxiliaryInputService.deleteProductOutputByIds(ids)); // } // //// -------------------------------------计åéå½å ¥---------------------------------------------- // // // /** // * æ¥è¯¢è½æºè®¡å产éå½å ¥å表 // */ // @PreAuthorize("@ss.hasPermi('system:energyPlanYield:list')") // @GetMapping("/energyPlanYield/list") // public TableDataInfo energyPlanYieldList(ProductOutput productOutput, @RequestParam Long pageNum, @RequestParam Long pageSize) // { //// startPage(); // productOutput.setDataType("4"); // productOutput.setTimeType("MONTH"); // Page<ProductOutput> list = auxiliaryInputService.selectProductOutputPage(productOutput,pageNum,pageSize); // return getDataTable(list); // } // // /** // * 导åºè½æºè®¡å产éå½å ¥å表 // */ // @PreAuthorize("@ss.hasPermi('system:energyPlanYield:export')") // @Log(title = "è½æºè®¡åéå½å ¥", businessType = BusinessType.EXPORT) // @PostMapping("/energyPlanYield/export") // public void energyPlanYieldExport(HttpServletResponse response, ProductOutput productOutput) // { // productOutput.setDataType("4"); // productOutput.setTimeType("MONTH"); // List<ProductOutput> list = auxiliaryInputService.selectProductOutputList(productOutput); // ExcelUtil<ProductOutput> util = new ExcelUtil<ProductOutput>(ProductOutput.class); // util.exportExcel(response, list, "è½æºè®¡å产éå½å ¥æ°æ®"); // } // // /** // * è·åè½æºè®¡å产éå½å ¥è¯¦ç»ä¿¡æ¯ // */ // @PreAuthorize("@ss.hasPermi('system:energyPlanYield:query')") // @GetMapping(value = "/energyPlanYield/{productOutputId}") // public AjaxResult energyPlanYieldGetInfo(@PathVariable("productOutputId") String productOutputId) // { // return success(auxiliaryInputService.selectProductOutputById(productOutputId)); // } // // /** // * æ°å¢è½æºè®¡å产éå½å ¥ // */ // @PreAuthorize("@ss.hasPermi('system:energyPlanYield:add')") // @Log(title = "è½æºè®¡åéå½å ¥", businessType = BusinessType.INSERT) // @PostMapping(value = "/energyPlanYield") // public AjaxResult energyPlanYieldAdd(@RequestBody ProductOutput productOutput) // { // //todo å æ ¹æ®nodeId(èç¹ï¼+timeType(å½å ¥æ¶é´ç±»åï¼+dataTypeï¼æ°æ®ç±»åï¼+dataTimeï¼æ¶é´ï¼ // // æ ¡éªå½åæ°å¢çæ°æ®æ¯å¦åå¨ï¼å¦æåå¨èµ°æ´æ°ï¼å¦æä¸åå¨èµ°æ°å¢ // // // productOutput.setDataType("4"); // productOutput.setTimeType("MONTH"); // ProductOutput queryParams= new ProductOutput(); // queryParams.setTimeType(productOutput.getTimeType()); // queryParams.setDataTime(productOutput.getDataTime()); // queryParams.setDataType(productOutput.getDataType()); // queryParams.setNodeId(productOutput.getNodeId()); // List<ProductOutput> existsList=auxiliaryInputService.selectProductOutputList(queryParams); // if (existsList!=null && !existsList.isEmpty()){ // productOutput.setProductOutputId(existsList.get(0).getProductOutputId()); // return energyPlanYieldEdit(productOutput); // }else { // productOutput.setProductOutputId(UUID.randomUUID().toString()); // return toAjax(auxiliaryInputService.insertProductOutput(productOutput)); // } // } // // /** // * ä¿®æ¹è½æºè®¡å产éå½å ¥ // */ // @PreAuthorize("@ss.hasPermi('system:energyPlanYield:edit')") // @Log(title = "è½æºè®¡åéå½å ¥", businessType = BusinessType.UPDATE) // @PutMapping(value = "/energyPlanYield") // public AjaxResult energyPlanYieldEdit(@RequestBody ProductOutput productOutput) // { // productOutput.setDataType("4"); // productOutput.setTimeType("MONTH"); // return toAjax(auxiliaryInputService.updateProductOutput(productOutput)); // } // // /** // * å é¤è½æºè®¡å产éå½å ¥ // */ // @PreAuthorize("@ss.hasPermi('system:energyPlanYield:remove')") // @Log(title = "è½æºè®¡åéå½å ¥", businessType = BusinessType.DELETE) // @DeleteMapping("/energyPlanYield/{ids}") // public AjaxResult energyPlanYieldRemove(@PathVariable String[] ids) // { // return toAjax(auxiliaryInputService.deleteProductOutputByIds(ids)); // } // // // // -------------------------------------è½æºç»ç®éå½å ¥---------------------------------------------- // // // /** // * æ¥è¯¢è½æºç»ç®éå½å ¥å表 // */ // @PreAuthorize("@ss.hasPermi('system:energySettlement:list')") // @GetMapping("/energySettlement/list") // public TableDataInfo energySettlementList(ProductOutput productOutput, @RequestParam Long pageNum, @RequestParam Long pageSize) // { //// startPage(); // productOutput.setDataType("6"); // productOutput.setTimeType("MONTH"); // Page<ProductOutput> list = auxiliaryInputService.selectProductOutputPage(productOutput,pageNum,pageSize); // return getDataTable(list); // } // // /** // * 导åºè½æºç»ç®éå½å ¥å表 // */ // @PreAuthorize("@ss.hasPermi('system:energySettlement:export')") // @Log(title = "è½æºç»ç®éå½å ¥", businessType = BusinessType.EXPORT) // @PostMapping("/energySettlement/export") // public void energySettlementExport(HttpServletResponse response, ProductOutput productOutput) // { // productOutput.setDataType("6"); // productOutput.setTimeType("MONTH"); // List<ProductOutput> list = auxiliaryInputService.selectProductOutputList(productOutput); // ExcelUtil<ProductOutput> util = new ExcelUtil<ProductOutput>(ProductOutput.class); // util.exportExcel(response, list, "è½æºç»ç®éå½å ¥æ°æ®"); // } // // /** // * è·åè½æºç»ç®éå½å ¥è¯¦ç»ä¿¡æ¯ // */ // @PreAuthorize("@ss.hasPermi('system:energySettlement:query')") // @GetMapping(value = "/energySettlement/{productOutputId}") // public AjaxResult energySettlementGetInfo(@PathVariable("productOutputId") String productOutputId) // { // return success(auxiliaryInputService.selectProductOutputById(productOutputId)); // } // // /** // * æ°å¢è½æºç»ç®éå½å ¥ // */ // @PreAuthorize("@ss.hasPermi('system:energySettlement:add')") // @Log(title = "è½æºç»ç®éå½å ¥", businessType = BusinessType.INSERT) // @PostMapping(value = "/energySettlement") // public AjaxResult energySettlementAdd(@RequestBody ProductOutput productOutput) // { // //todo å æ ¹æ®nodeId(èç¹ï¼+timeType(å½å ¥æ¶é´ç±»åï¼+dataTypeï¼æ°æ®ç±»åï¼+dataTimeï¼æ¶é´ï¼ // // æ ¡éªå½åæ°å¢çæ°æ®æ¯å¦åå¨ï¼å¦æåå¨èµ°æ´æ°ï¼å¦æä¸åå¨èµ°æ°å¢ // // // productOutput.setDataType("6"); // productOutput.setTimeType("MONTH"); // ProductOutput queryParams= new ProductOutput(); // queryParams.setTimeType(productOutput.getTimeType()); // queryParams.setDataTime(productOutput.getDataTime()); // queryParams.setDataType(productOutput.getDataType()); // queryParams.setNodeId(productOutput.getNodeId()); // List<ProductOutput> existsList=auxiliaryInputService.selectProductOutputList(queryParams); // if (existsList!=null && !existsList.isEmpty()){ // productOutput.setProductOutputId(existsList.get(0).getProductOutputId()); // return energySettlementEdit(productOutput); // }else { // productOutput.setProductOutputId(UUID.randomUUID().toString()); // return toAjax(auxiliaryInputService.insertProductOutput(productOutput)); // } // } // // /** // * ä¿®æ¹è½æºç»ç®éå½å ¥ // */ // @PreAuthorize("@ss.hasPermi('system:energySettlement:edit')") // @Log(title = "è½æºç»ç®éå½å ¥", businessType = BusinessType.UPDATE) // @PutMapping(value = "/energySettlement") // public AjaxResult energySettlementEdit(@RequestBody ProductOutput productOutput) // { // productOutput.setDataType("6"); // productOutput.setTimeType("MONTH"); // return toAjax(auxiliaryInputService.updateProductOutput(productOutput)); // } // // /** // * å é¤è½æºç»ç®éå½å ¥ // */ // @PreAuthorize("@ss.hasPermi('system:energySettlement:remove')") // @Log(title = "è½æºç»ç®éå½å ¥", businessType = BusinessType.DELETE) // @DeleteMapping("/energySettlement/{ids}") // public AjaxResult energySettlementRemove(@PathVariable String[] ids) // { // return toAjax(auxiliaryInputService.deleteProductOutputByIds(ids)); // } } zhitan-admin/src/main/java/com/zhitan/web/controller/basicdata/FacilityAnnexController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,181 @@ package com.zhitan.web.controller.basicdata; import com.zhitan.basicdata.domain.FacilityAnnex; import com.zhitan.basicdata.services.IFacilityAnnexService; import com.zhitan.common.annotation.Log; import com.zhitan.common.config.BaseConfig; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.domain.model.LoginUser; import com.zhitan.common.core.page.TableDataInfo; import com.zhitan.common.enums.BusinessType; import com.zhitan.common.utils.ServletUtils; import com.zhitan.common.utils.file.FileUploadUtils; import com.zhitan.common.utils.file.FileUtils; import com.zhitan.common.utils.poi.ExcelUtil; import com.zhitan.common.utils.uuid.IdUtils; import com.zhitan.framework.web.service.TokenService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.List; /** * è®¾å¤æ¡£æ¡éä»¶Controller * * @author sys * @date 2020-02-24 */ @RestController @RequestMapping("/facility/annex") public class FacilityAnnexController extends BaseController { @Autowired private IFacilityAnnexService facilityAnnexService; @Autowired private TokenService tokenService; private static final Logger log = LoggerFactory.getLogger(FacilityAnnexController.class); /** * æ¥è¯¢è®¾å¤æ¡£æ¡éä»¶å表 */ @PreAuthorize("@ss.hasPermi('facility:annex:list')") @GetMapping("/list") public TableDataInfo list(FacilityAnnex facilityAnnex) { startPage(); List<FacilityAnnex> list = facilityAnnexService.selectFacilityAnnexList(facilityAnnex); return getDataTable(list); } /** * 导åºè®¾å¤æ¡£æ¡éä»¶å表 */ @PreAuthorize("@ss.hasPermi('facility:annex:export')") @Log(title = "è®¾å¤æ¡£æ¡éä»¶", businessType = BusinessType.EXPORT) @GetMapping("/export") public AjaxResult export(FacilityAnnex facilityAnnex) { List<FacilityAnnex> list = facilityAnnexService.selectFacilityAnnexList(facilityAnnex); ExcelUtil<FacilityAnnex> util = new ExcelUtil<FacilityAnnex>(FacilityAnnex.class); return util.exportExcel(list, "annex"); } /** * è·åè®¾å¤æ¡£æ¡é件详ç»ä¿¡æ¯ */ @PreAuthorize("@ss.hasPermi('facility:annex:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") String id) { return AjaxResult.success(facilityAnnexService.selectFacilityAnnexById(id)); } /** * æ°å¢è®¾å¤æ¡£æ¡éä»¶ */ @PreAuthorize("@ss.hasPermi('facility:annex:add')") @Log(title = "è®¾å¤æ¡£æ¡éä»¶", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody FacilityAnnex facilityAnnex) { return toAjax(facilityAnnexService.insertFacilityAnnex(facilityAnnex)); } /** * ä¿®æ¹è®¾å¤æ¡£æ¡éä»¶ */ @PreAuthorize("@ss.hasPermi('facility:annex:edit')") @Log(title = "è®¾å¤æ¡£æ¡éä»¶", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody FacilityAnnex facilityAnnex) { return toAjax(facilityAnnexService.updateFacilityAnnex(facilityAnnex)); } /** * å é¤è®¾å¤æ¡£æ¡éä»¶ */ @PreAuthorize("@ss.hasPermi('facility:annex:remove')") @Log(title = "è®¾å¤æ¡£æ¡éä»¶", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable String[] ids) { return toAjax(facilityAnnexService.deleteFacilityAnnexByIds(ids)); } /** * éç¨æå®æä»¶ä¸è½½è¯·æ± * * @param showFileName ä¸è½½å±ç¤ºæä»¶åç§° // * @param filePath ä¸è½½æä»¶ç»å¯¹è·¯å¾ 带 æä»¶çå®åååè·¯å¾ * @param delete æ¯å¦å é¤/ */ @PreAuthorize("@ss.hasPermi('facility:annex:assignDownload')") @PostMapping("/assignDownload") public void fileAssignDownload(String showFileName, String filePath, Boolean delete, HttpServletResponse response, HttpServletRequest request) { try { response.setCharacterEncoding("utf-8"); response.setContentType("multipart/form-data"); response.setHeader("Content-Disposition", "attachment;fileName=" + FileUtils.setFileDownloadHeader(request, showFileName)); FileUtils.writeBytes(filePath, response.getOutputStream()); // if (delete) // { // FileUtils.deleteFile(filePath); // } log.error("ä¸è½½æå", "aa"); } catch (Exception e) { log.error("ä¸è½½æä»¶å¤±è´¥", e); } } @Log(title = "è®¾å¤æ¡£æ¡éä»¶ä¸ä¼ ", businessType = BusinessType.IMPORT) @PreAuthorize("@ss.hasPermi('facility:annex:fileImport')") @PostMapping("/fileImport") public AjaxResult importData(MultipartFile file, String facilityId) throws Exception { if (!file.isEmpty()) { LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest()); //è·åé ç½®çæä»¶ä¸ä¼ è·¯å¾ String uploadPathDir = BaseConfig.getUploadPath(); //è·åæä»¶åå§åç§° String fileName = file.getOriginalFilename(); //è·åæä»¶æ©å±å String fileSuffix = FileUploadUtils.getExtension(file); // System.out.println("implementId==="+implementId); // System.out.println("filedir==="+uploadPathDir); // System.out.println("fileName==="+fileName); // System.out.println("fileSuffix==="+fileSuffix); //æä»¶æç»ä¿åçç»å¯¹è·¯å¾ String filePath = FileUploadUtils.uploadAll(uploadPathDir, file); // System.out.println("ä¸ä¼ æä»¶å°å:===>"+filePath); FacilityAnnex facilityAnnex = new FacilityAnnex(); //设置主é®UUID facilityAnnex.setId(IdUtils.simpleUUID()); facilityAnnex.setFileName(fileName); facilityAnnex.setFilePath(filePath); facilityAnnex.setFilesuffix(fileSuffix); facilityAnnex.setFacilityId(facilityId); facilityAnnex.setCreateBy(loginUser.getUsername()); facilityAnnex.setCreateBy(loginUser.getUsername()); if (this.facilityAnnexService.insertFacilityAnnex(facilityAnnex)>0) { return AjaxResult.success("éä»¶ä¸ä¼ 宿"); } } return AjaxResult.success("éä»¶ä¸ä¼ 失败"); } } zhitan-admin/src/main/java/com/zhitan/web/controller/basicdata/FacilityArchivesController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,166 @@ package com.zhitan.web.controller.basicdata; import com.zhitan.basicdata.domain.FacilityArchives; import com.zhitan.basicdata.services.IFacilityArchivesService; import com.zhitan.common.annotation.Log; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.domain.model.LoginUser; import com.zhitan.common.core.page.TableDataInfo; import com.zhitan.common.enums.BusinessType; import com.zhitan.common.utils.ServletUtils; import com.zhitan.common.utils.poi.ExcelUtil; import com.zhitan.framework.web.service.TokenService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.util.List; import java.util.UUID; /** * è®¾å¤æ¡£æ¡Controller * * @author zhaowei * @date 2020-02-24 */ @RestController @RequestMapping("/facility/archives") @Api(value = "è®¾å¤æ¡£æ¡controller",tags = {"è®¾å¤æ¡£æ¡ç®¡ç"}) public class FacilityArchivesController extends BaseController { @Autowired private IFacilityArchivesService facilityArchivesService; @Autowired private TokenService tokenService; /** * æ¥è¯¢è®¾å¤æ¡£æ¡å表 */ @ApiOperation(value = "è®¾å¤æ¡£æ¡å表") @PreAuthorize("@ss.hasPermi('facility:archives:list')") @GetMapping("/list") public TableDataInfo list(FacilityArchives facilityArchives) { startPage(); List<FacilityArchives> list = facilityArchivesService.selectFacilityArchivesList(facilityArchives); return getDataTable(list); } /** * 导åºè®¾å¤æ¡£æ¡å表 */ @PreAuthorize("@ss.hasPermi('facility:archives:export')") @Log(title = "è®¾å¤æ¡£æ¡", businessType = BusinessType.EXPORT) @GetMapping("/export") @ApiOperation("è®¾å¤æ¡£æ¡å表导åº") public AjaxResult export(FacilityArchives facilityArchives) { List<FacilityArchives> list = facilityArchivesService.excelFacilityArchivesList(facilityArchives); ExcelUtil<FacilityArchives> util = new ExcelUtil<FacilityArchives>(FacilityArchives.class); return util.exportExcel(list, "archives"); } /** * è·åè®¾å¤æ¡£æ¡è¯¦ç»ä¿¡æ¯ */ @PreAuthorize("@ss.hasPermi('facility:archives:query')") @GetMapping(value = "/{id}") @ApiOperation(value = "æ ¹æ®idè·åè®¾å¤æ¡£æ¡è¯¦ç»ä¿¡æ¯") public AjaxResult getInfo(@PathVariable("id") String id) { return AjaxResult.success(facilityArchivesService.selectFacilityArchivesById(id)); } /** * æ°å¢è®¾å¤æ¡£æ¡ */ @PreAuthorize("@ss.hasPermi('facility:archives:add')") @Log(title = "è®¾å¤æ¡£æ¡", businessType = BusinessType.INSERT) @PostMapping @ApiOperation(value = "æ°å¢è®¾å¤æ¡£æ¡") public AjaxResult add(@RequestBody FacilityArchives facilityArchives) { FacilityArchives check = facilityArchivesService.selectFacilityArchivesByCode(facilityArchives); LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest()); //ç¼å·å¯ä¸æ§æ£æµ if(check!=null && check.getCode()!=null && check.getCode().length()>0) { return AjaxResult.error(check.getCode()+"ç¼ç å·²åå¨!"); }else { facilityArchives.setId(UUID.randomUUID().toString()); facilityArchives.setCreateBy(loginUser.getUsername()); return toAjax(facilityArchivesService.insertFacilityArchives(facilityArchives)); } } /** * ä¿®æ¹è®¾å¤æ¡£æ¡ */ @PreAuthorize("@ss.hasPermi('facility:archives:edit')") @Log(title = "è®¾å¤æ¡£æ¡", businessType = BusinessType.UPDATE) @PutMapping @ApiOperation(value = "ç¼è¾è®¾å¤æ¡£æ¡") public AjaxResult edit(@RequestBody FacilityArchives facilityArchives) { //æ´æ°æ¶çç¼ç å¯ä¸çº¦æ è¦å¤æ idä¸çäºèªå·±ï¼ä¸ codeåå¨éå¤çï¼è¦å 廿èªå·±ï¼å¦å èªå·±çä¿®æ¹ä¹æ¥é FacilityArchives check = facilityArchivesService.selectFacilityArchivesByCode(facilityArchives); LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest()); //ç¼å·å¯ä¸æ§æ£æµ if(check!=null && check.getCode()!=null && check.getCode().length()>0) { return AjaxResult.error(check.getCode()+"ç¼ç å·²åå¨!"); }else { facilityArchives.setUpdateBy(loginUser.getUsername()); return toAjax(facilityArchivesService.updateFacilityArchives(facilityArchives)); } } /** * å é¤è®¾å¤æ¡£æ¡ */ @PreAuthorize("@ss.hasPermi('facility:archives:remove')")/**/ @Log(title = "è®¾å¤æ¡£æ¡", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") @ApiOperation(value = "å é¤è®¾å¤æ¡£æ¡") public AjaxResult remove(@PathVariable String[] ids) { return toAjax(facilityArchivesService.deleteFacilityArchivesByIds(ids)); } /** * æ£å®æ¢å¤ */ @PreAuthorize("@ss.hasPermi('facility:archives:reset')") @Log(title = "è®¾å¤æ¡£æ¡", businessType = BusinessType.UPDATE) @PostMapping ("/{ids}") @ApiOperation(value = "è®¾å¤æ¡£æ¡æ£å®æ¢å¤") public AjaxResult reset(@PathVariable String[] ids) { return toAjax(facilityArchivesService.resetFacilityArchivesByIds(ids)); } @Log(title = "è®¾å¤æ¡£æ¡ç»´æ¤å¯¼å ¥", businessType = BusinessType.IMPORT) @PreAuthorize("@ss.hasPermi('facility:archives:import')") @PostMapping("/importData") public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception { ExcelUtil<FacilityArchives> util = new ExcelUtil<FacilityArchives>(FacilityArchives.class); List<FacilityArchives> facilityList = util.importExcel(file.getInputStream()); LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest()); String message = facilityArchivesService.excelImpSave(facilityList,loginUser); return AjaxResult.success(message); } @GetMapping("/importTemplate") public AjaxResult importTemplate() { ExcelUtil<FacilityArchives> util = new ExcelUtil<FacilityArchives>(FacilityArchives.class); return util.importTemplateExcel("è®¾å¤æ¡£æ¡æ°æ®"); } } zhitan-admin/src/main/java/com/zhitan/web/controller/basicdata/MeterImplementController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,162 @@ package com.zhitan.web.controller.basicdata; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zhitan.basicdata.domain.MeterImplement; import com.zhitan.basicdata.domain.MeterImplementExcel; import com.zhitan.basicdata.services.IMeterImplementService; import com.zhitan.common.annotation.Log; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.domain.model.LoginUser; import com.zhitan.common.core.page.TableDataInfo; import com.zhitan.common.enums.BusinessType; import com.zhitan.common.utils.ServletUtils; import com.zhitan.common.utils.poi.ExcelUtil; import com.zhitan.framework.web.service.TokenService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.util.List; import java.util.UUID; /** * 计éå¨å ·æ¡£æ¡ç»´æ¤Controller * * @author zhaowei * @date 2020-02-12 */ @RestController @RequestMapping("/meter/implement") @Api(value = "计éå¨å ·ç®¡ç",tags = {"计éå¨å ·ç®¡ç"}) public class MeterImplementController extends BaseController { @Autowired private IMeterImplementService meterImplementService; @Autowired private TokenService tokenService; /** * æ¥è¯¢è®¡éå¨å ·æ¡£æ¡ç»´æ¤å表 */ @PreAuthorize("@ss.hasPermi('meter:implement:list')") @GetMapping("/list") @ApiOperation(value = "计éå¨å ·å表") public TableDataInfo list(MeterImplement meterImplement,Long pageNum, Long pageSize) { Page<MeterImplement> list = meterImplementService.selectMeterImplementPage(meterImplement,pageNum,pageSize); return getDataTable(list); } /** * 导åºè®¡éå¨å ·æ¡£æ¡ç»´æ¤å表 */ @PreAuthorize("@ss.hasPermi('meter:implement:export')") @Log(title = "计éå¨å ·æ¡£æ¡ç»´æ¤", businessType = BusinessType.EXPORT) @GetMapping("/export") @ApiOperation(value = "计éå¨å ·å表导åº") public AjaxResult export(MeterImplement meterImplement) { // List<MeterImplement> list = meterImplementService.selectMeterImplementList(meterImplement); //使ç¨ä¸ç¨ç导åºè°ç¨æ¹æ³ï¼è¿éé¢å° æ°æ®è¿è¡è½¬åï¼ ç¶æãç§ç±» è½¬æ¢æ 䏿ï¼ç¨å½æ°å®ç° éè¿æ°æ®åå ¸è½¬æ¢ //MeterImplementExcel å¯¼åº Excelä¸ç¨å¯¹è±¡ List<MeterImplementExcel> list = meterImplementService.exectMeterImplementList(meterImplement); ExcelUtil<MeterImplementExcel> util = new ExcelUtil<MeterImplementExcel>(MeterImplementExcel.class); return util.exportExcel(list, "implement"); } /** * è·å计éå¨å ·æ¡£æ¡ç»´æ¤è¯¦ç»ä¿¡æ¯ */ @PreAuthorize("@ss.hasPermi('meter:implement:query')") @GetMapping(value = "/{id}") @ApiOperation(value = "æ ¹æ®idè·å计éå¨å ·ç¸ä¿¡ä¿¡æ¯") public AjaxResult getInfo(@PathVariable("id") String id) { return AjaxResult.success(meterImplementService.selectMeterImplementById(id)); } /** * æ°å¢è®¡éå¨å ·æ¡£æ¡ç»´æ¤ */ @PreAuthorize("@ss.hasPermi('meter:implement:add')") @Log(title = "计éå¨å ·æ¡£æ¡ç»´æ¤", businessType = BusinessType.INSERT) @PostMapping @ApiOperation(value = "æ°å¢è®¡éå¨å ·") public AjaxResult add(@RequestBody MeterImplement meterImplement) { MeterImplement check = meterImplementService.selectMeterImplementByCode(meterImplement); LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest()); //ç¼å·å¯ä¸æ§æ£æµ if(check!=null && check.getCode()!=null && check.getCode().length()>0) { return AjaxResult.error(check.getCode()+"ç¼ç å·²åå¨!"); }else { meterImplement.setId(UUID.randomUUID().toString()); meterImplement.setCreateBy(loginUser.getUsername()); return toAjax(meterImplementService.insertMeterImplement(meterImplement)); } } /** * ä¿®æ¹è®¡éå¨å ·æ¡£æ¡ç»´æ¤ */ @PreAuthorize("@ss.hasPermi('meter:implement:edit')") @Log(title = "计éå¨å ·æ¡£æ¡ç»´æ¤", businessType = BusinessType.UPDATE) @PutMapping @ApiOperation(value = "ç¼è¾è®¡éå¨å ·") public AjaxResult edit(@RequestBody MeterImplement meterImplement) { //æ´æ°æ¶çç¼ç å¯ä¸çº¦æ è¦å¤æ idä¸çäºèªå·±ï¼ä¸ codeåå¨éå¤çï¼è¦å 廿èªå·±ï¼å¦å èªå·±çä¿®æ¹ä¹æ¥é MeterImplement check = meterImplementService.selectMeterImplementByCode(meterImplement); LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest()); //ç¼å·å¯ä¸æ§æ£æµ if(check!=null && check.getCode()!=null && check.getCode().length()>0) { return AjaxResult.error(check.getCode()+"ç¼ç å·²åå¨!"); }else { meterImplement.setUpdateBy(loginUser.getUsername()); return toAjax(meterImplementService.updateMeterImplement(meterImplement)); } } /** * å é¤è®¡éå¨å ·æ¡£æ¡ç»´æ¤ */ @PreAuthorize("@ss.hasPermi('meter:implement:remove')") @Log(title = "计éå¨å ·æ¡£æ¡ç»´æ¤", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") @ApiOperation(value = "å é¤è®¡éå¨å ·") public AjaxResult remove(@PathVariable String[] ids) { return toAjax(meterImplementService.deleteMeterImplementByIds(ids)); } @Log(title = "计éå¨å ·æ¡£æ¡ç»´æ¤", businessType = BusinessType.IMPORT) @PreAuthorize("@ss.hasPermi('meter:implement:import')") @PostMapping("/importData") @ApiOperation(value = "计éå¨å ·å¯¼å ¥") public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception { ExcelUtil<MeterImplement> util = new ExcelUtil<MeterImplement>(MeterImplement.class); List<MeterImplement> meterList = util.importExcel(file.getInputStream()); LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest()); String message = meterImplementService.excelImpSave(meterList,loginUser); return AjaxResult.success(message); } @GetMapping("/importTemplate") @ApiOperation(value = "计éå¨å ·å¯¼åºæ¨¡æ¿") public AjaxResult importTemplate() { ExcelUtil<MeterImplementExcel> util = new ExcelUtil<MeterImplementExcel>(MeterImplementExcel.class); return util.importTemplateExcel("计éå¨å ·æ¡£æ¡æ°æ®"); } } zhitan-admin/src/main/java/com/zhitan/web/controller/basicdata/SysEnerclassController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,128 @@ package com.zhitan.web.controller.basicdata; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zhitan.basicdata.domain.SysEnerclass; import com.zhitan.basicdata.services.ISysEnerclassService; import com.zhitan.common.annotation.Log; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.page.TableDataInfo; import com.zhitan.common.enums.BusinessType; import com.zhitan.common.utils.poi.ExcelUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import java.util.List; /** * è½æºåç§è®¾ç½®Controller * * @author ruoyi * @date 2020-02-10 */ @RestController @RequestMapping("/enerInfoManage/enerclass") public class SysEnerclassController extends BaseController { @Autowired private ISysEnerclassService sysEnerclassService; /** * æ¥è¯¢è½æºåç§è®¾ç½®å表 */ @PreAuthorize("@ss.hasPermi('enerInfoManage:enerclass:list')") @GetMapping("/page") public TableDataInfo page(SysEnerclass sysEnerclass, Long pageNum, Long pageSize) { Page<SysEnerclass> list = sysEnerclassService.selectSysEnerclassPage(sysEnerclass, pageNum, pageSize); return getDataTable(list); } /** * æ¥è¯¢ææè½æºåç§è®¾ç½®å表 */ @PreAuthorize("@ss.hasPermi('enerInfoManage:enerclass:list')") @GetMapping("/list") public AjaxResult list(SysEnerclass sysEnerclass) { List<SysEnerclass> list = sysEnerclassService.selectSysEnerclassList(sysEnerclass); return AjaxResult.success(list); } /** * 导åºè½æºåç§è®¾ç½®å表 */ @PreAuthorize("@ss.hasPermi('enerInfoManage:enerclass:export')") @Log(title = "è½æºåç§è®¾ç½®", businessType = BusinessType.EXPORT) @GetMapping("/export") public AjaxResult export(SysEnerclass sysEnerclass) { List<SysEnerclass> list = sysEnerclassService.selectSysEnerclassList(sysEnerclass); ExcelUtil<SysEnerclass> util = new ExcelUtil<SysEnerclass>(SysEnerclass.class); return util.exportExcel(list, "enerclass"); } /** * è·åè½æºåç§è®¾ç½®è¯¦ç»ä¿¡æ¯ */ @PreAuthorize("@ss.hasPermi('enerInfoManage:enerclass:query')") @GetMapping(value = "/{enerclassid}") public AjaxResult getInfo(@PathVariable("enerclassid") Integer enerclassid) { return AjaxResult.success(sysEnerclassService.selectSysEnerclassById(enerclassid)); } /** * æ°å¢è½æºåç§è®¾ç½® */ @PreAuthorize("@ss.hasPermi('enerInfoManage:enerclass:add')") @Log(title = "è½æºåç§è®¾ç½®", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody SysEnerclass sysEnerclass) { //éç©ºæ ¡éª String name = sysEnerclass.getEnerclassname(); if(name.length()>10){ return AjaxResult.error("æ°å¢å¤±è´¥ï¼è½æºåç§°è¶ é¿ï¼"); } Integer nameNum = sysEnerclassService.selectSameEnergyNameNum(name); if (nameNum==0){ return toAjax(sysEnerclassService.insertSysEnerclass(sysEnerclass)); } return AjaxResult.error("æ°å¢å¤±è´¥ï¼è¯·æ£æ¥è½æºåç§°æ¯å¦éå¤ï¼"); } /** * ä¿®æ¹è½æºåç§è®¾ç½® */ @PreAuthorize("@ss.hasPermi('enerInfoManage:enerclass:edit')") @Log(title = "è½æºåç§è®¾ç½®", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody SysEnerclass sysEnerclass) { //å¯ä¸æ ¡éª Integer id = sysEnerclass.getEnerclassid(); String enerName = sysEnerclass.getEnerclassname(); if(enerName.length()>10){ return AjaxResult.error("ä¿®æ¹å¤±è´¥ï¼è½æºåç§°è¶ é¿ï¼"); } // éè¿è¦æ¹çè½æºåç§°æ¥å·²æä¸æ ·çè½æºåç§°æå 个 妿çäº1å°±è¦éè¿id夿æ¯ä¸æ¯æ¹èªå·± if(sysEnerclassService.selectSameEnergyNameNum(enerName)==1&&id.equals(sysEnerclassService.selectIdByName(enerName))){ return toAjax(sysEnerclassService.updateSysEnerclass(sysEnerclass)); // 妿=0 就说æè¿ä¸ªè½æºåç§°å¯æ¹ }else if(sysEnerclassService.selectSameEnergyNameNum(enerName)==0){ return toAjax(sysEnerclassService.updateSysEnerclass(sysEnerclass)); } return AjaxResult.error("ä¿®æ¹å¤±è´¥ï¼è½æºåç§°éå¤ï¼"); } /** * å é¤è½æºåç§è®¾ç½® */ @PreAuthorize("@ss.hasPermi('enerInfoManage:enerclass:remove')") @Log(title = "è½æºåç§è®¾ç½®", businessType = BusinessType.DELETE) @DeleteMapping("/{enerclassids}") public AjaxResult remove(@PathVariable Integer[] enerclassids) { return toAjax(sysEnerclassService.deleteSysEnerclassByIds(enerclassids)); } } zhitan-admin/src/main/java/com/zhitan/web/controller/basicdata/SysEnergyController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,211 @@ package com.zhitan.web.controller.basicdata; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zhitan.basicdata.domain.SysEnerclass; import com.zhitan.basicdata.domain.SysEnergy; import com.zhitan.basicdata.services.ISysEnergyService; import com.zhitan.common.annotation.Log; import com.zhitan.common.constant.UserConstants; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.page.TableDataInfo; import com.zhitan.common.enums.BusinessType; import com.zhitan.common.utils.poi.ExcelUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; /** * energyController * * @author ruoyi * @date 2020-02-12 */ @RestController @RequestMapping("/enerInfoManage/energy") public class SysEnergyController extends BaseController { @Autowired private ISysEnergyService sysEnergyService; /** * æ¥è¯¢enerclassnameè½æºç±»ååç§°ä¸ææ¡ */ @PreAuthorize("@ss.hasPermi('enerInfoManage:energy:getenerclassname')") @GetMapping("/getenerclassname") public AjaxResult list() { List<SysEnerclass> s = sysEnergyService.getenerclassname(); return AjaxResult.success(s); } /** * æ¥è¯¢energyå表 */ @PreAuthorize("@ss.hasPermi('enerInfoManage:energy:list')") @GetMapping("/page") public TableDataInfo page(SysEnergy sysEnergy, Long pageNum, Long pageSize) { Page<SysEnergy> list = sysEnergyService.selectSysEnergyPage(sysEnergy,pageNum,pageSize); return getDataTable(list); } /** * æ¥è¯¢energyå表 */ @PreAuthorize("@ss.hasPermi('enerInfoManage:energy:list')") @GetMapping("/list") public AjaxResult list(SysEnergy sysEnergy) { List<SysEnergy> list = sysEnergyService.selectSysEnergyList(sysEnergy); return AjaxResult.success(list); } /** * 导åºenergyå表 */ @PreAuthorize("@ss.hasPermi('enerInfoManage:energy:export')") @Log(title = "energy", businessType = BusinessType.EXPORT) @GetMapping("/export") public AjaxResult export(SysEnergy sysEnergy) { List<SysEnergy> list = sysEnergyService.selectSysEnergyList(sysEnergy); ExcelUtil<SysEnergy> util = new ExcelUtil<SysEnergy>(SysEnergy.class); return util.exportExcel(list, "energy"); } /** * è·åenergy详ç»ä¿¡æ¯ */ @PreAuthorize("@ss.hasPermi('enerInfoManage:energy:query')") @GetMapping(value = "/{enerid}") public AjaxResult getInfo(@PathVariable("enerid") Integer enerid) { SysEnergy sysEnergy = sysEnergyService.selectSysEnergyById(enerid); if (UserConstants.YES.equals(sysEnergy.getIsstorage())) { sysEnergy.setIsstorageString("æ¯"); }else{ sysEnergy.setIsstorageString("å¦"); } return AjaxResult.success(sysEnergy); } /** * æ°å¢energy */ @PreAuthorize("@ss.hasPermi('enerInfoManage:energy:add')") @Log(title = "energy", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody SysEnergy sysEnergy) { //éç©ºæ ¡éª String name = sysEnergy.getEnername(); if(name.length()>10){ return AjaxResult.error("æ°å¢å¤±è´¥ï¼è½æºåç§°è¶ é¿ï¼"); } SysEnergy nameNum = sysEnergyService.selectSameEnergyNameNum(name); SysEnergy codeNum = sysEnergyService.selectSameEnergyCodeNum(sysEnergy.getEnersno()); if (null != nameNum){ return AjaxResult.error("æ°å¢å¤±è´¥ï¼è¯·æ£æ¥è½æºåç§°æ¯å¦éå¤ï¼"); } if (null != codeNum){ return AjaxResult.error("æ°å¢å¤±è´¥ï¼è¯·æ£æ¥è½æºç¼å·æ¯å¦éå¤ï¼"); } return toAjax(sysEnergyService.insertSysEnergy(sysEnergy)); } /** * ä¿®æ¹energy */ @PreAuthorize("@ss.hasPermi('enerInfoManage:energy:edit')") @Log(title = "energy", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody SysEnergy sysEnergy) { String enerName = sysEnergy.getEnername(); //å¯ä¸æ ¡éª Integer id = sysEnergy.getEnerid(); if(enerName.length()>10){ return AjaxResult.error("ä¿®æ¹å¤±è´¥ï¼è½æºåç§°è¶ é¿ï¼"); } SysEnergy nameNum = sysEnergyService.selectSameEnergyNameNum(enerName); SysEnergy codeNum = sysEnergyService.selectSameEnergyCodeNum(sysEnergy.getEnersno()); if (null != nameNum && nameNum.getEnerid() != sysEnergy.getEnerid()){ return AjaxResult.error("ä¿®æ¹å¤±è´¥ï¼è¯·æ£æ¥è½æºåç§°æ¯å¦éå¤ï¼"); } if (null != codeNum && codeNum.getEnerid() != sysEnergy.getEnerid()){ return AjaxResult.error("ä¿®æ¹å¤±è´¥ï¼è¯·æ£æ¥è½æºç¼å·æ¯å¦éå¤ï¼"); } return toAjax(sysEnergyService.updateSysEnergy(sysEnergy)); } /** * ä¿åè½æºå价设置 */ @PreAuthorize("@ss.hasPermi('enerInfoManage:energy:updateEnergyPrice')") @Log(title = "energy", businessType = BusinessType.UPDATE) @PutMapping("/updateEnergyPrice") public AjaxResult updateEnergyPrice(@RequestBody(required = false) SysEnergy sysEnergy) throws ParseException { Integer enerid = sysEnergy.getEnerid(); if(sysEnergy.getExecdate()==null){ return AjaxResult.error("æ§è¡æ¥æä¸è½ä¸ºç©ºï¼"); } Date date = new Date(); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); String dateString = formatter.format(date); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); Date now = df.parse(dateString); if(sysEnergy.getExecdate().before(now)){ return AjaxResult.error("æ§è¡æ¥æä»¥è¿ï¼"); } if((sysEnergyService.getPriceCountByEnerid(sysEnergy))==0){ return toAjax(sysEnergyService.insertEnergyPrice(sysEnergy)); }else if((sysEnergyService.getPriceCountByEnerid(sysEnergy))==1){ return toAjax(sysEnergyService.updateEnergyPrice(sysEnergy)); } return AjaxResult.error("ä¿å失败ï¼"); } /** * ä¿åè½æºææ ç³»æ°è®¾ç½® */ @PreAuthorize("@ss.hasPermi('enerInfoManage:energy:updateEnergyCoefficient')") @Log(title = "energy", businessType = BusinessType.UPDATE) @PutMapping("/updateEnergyCoefficient") public AjaxResult updateEnergyCoefficient(@RequestBody(required = false) SysEnergy sysEnergy) throws ParseException { Integer enerid = sysEnergy.getEnerid(); if(sysEnergy.getCoefficientexecdate()==null){ return AjaxResult.error("æ§è¡æ¥æä¸è½ä¸ºç©ºï¼"); } Date date = new Date(); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); String dateString = formatter.format(date); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); Date now = df.parse(dateString); if(sysEnergy.getCoefficientexecdate().before(now)){ return AjaxResult.error("æ§è¡æ¥æä»¥è¿ï¼"); } Integer count = sysEnergyService.getCoefficientCountByEnerid(enerid); if(count==0){ return toAjax(sysEnergyService.insertEnergyCoefficient(sysEnergy)); }else if(count==1){ return toAjax(sysEnergyService.updateEnergyCoefficient(sysEnergy)); } return AjaxResult.error("ä¿å失败ï¼"); } /** * å é¤energy */ @PreAuthorize("@ss.hasPermi('enerInfoManage:energy:remove')") @Log(title = "energy", businessType = BusinessType.DELETE) @DeleteMapping("/{enerids}") public AjaxResult remove(@PathVariable Integer[] enerids) { return toAjax(sysEnergyService.deleteSysEnergyByIds(enerids)); } } zhitan-admin/src/main/java/com/zhitan/web/controller/common/CaptchaController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,94 @@ package com.zhitan.web.controller.common; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.concurrent.TimeUnit; import javax.annotation.Resource; import javax.imageio.ImageIO; import javax.servlet.http.HttpServletResponse; import org.springframework.util.FastByteArrayOutputStream; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import com.google.code.kaptcha.Producer; import com.zhitan.common.config.BaseConfig; import com.zhitan.common.constant.CacheConstants; import com.zhitan.common.constant.Constants; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.redis.RedisCache; import com.zhitan.common.utils.sign.Base64; import com.zhitan.common.utils.uuid.IdUtils; import com.zhitan.system.service.ISysConfigService; /** * éªè¯ç æä½å¤ç * * @author zhitan */ @RestController public class CaptchaController { @Resource(name = "captchaProducer") private Producer captchaProducer; @Resource(name = "captchaProducerMath") private Producer captchaProducerMath; @Resource private RedisCache redisCache; @Resource private ISysConfigService sysConfigService; /** * çæéªè¯ç */ @GetMapping("/captchaImage") public AjaxResult getCode(HttpServletResponse response) throws IOException { AjaxResult ajax = AjaxResult.success(); boolean captchaEnabled = sysConfigService.selectCaptchaEnabled(); ajax.put("captchaEnabled", captchaEnabled); if (!captchaEnabled) { return ajax; } // ä¿åéªè¯ç ä¿¡æ¯ String uuid = IdUtils.simpleUUID(); String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + uuid; String capStr = null, code = null; BufferedImage image = null; // çæéªè¯ç String captchaType = BaseConfig.getCaptchaType(); if ("math".equals(captchaType)) { String capText = captchaProducerMath.createText(); capStr = capText.substring(0, capText.lastIndexOf("@")); code = capText.substring(capText.lastIndexOf("@") + 1); image = captchaProducerMath.createImage(capStr); } else if ("char".equals(captchaType)) { capStr = code = captchaProducer.createText(); image = captchaProducer.createImage(capStr); } redisCache.setCacheObject(verifyKey, code, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES); // è½¬æ¢æµä¿¡æ¯ååº FastByteArrayOutputStream os = new FastByteArrayOutputStream(); try { ImageIO.write(image, "jpg", os); } catch (IOException e) { return AjaxResult.error(e.getMessage()); } ajax.put("uuid", uuid); ajax.put("img", Base64.encode(os.toByteArray())); return ajax; } } zhitan-admin/src/main/java/com/zhitan/web/controller/common/CommonController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,163 @@ package com.zhitan.web.controller.common; import java.util.ArrayList; import java.util.List; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import com.zhitan.common.config.BaseConfig; import com.zhitan.common.constant.Constants; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.utils.StringUtils; import com.zhitan.common.utils.file.FileUploadUtils; import com.zhitan.common.utils.file.FileUtils; import com.zhitan.framework.config.ServerConfig; /** * éç¨è¯·æ±å¤ç * * @author zhitan */ @RestController @RequestMapping("/common") public class CommonController { private static final Logger log = LoggerFactory.getLogger(CommonController.class); @Resource private ServerConfig serverConfig; private static final String FILE_DELIMETER = ","; /** * éç¨ä¸è½½è¯·æ± * * @param fileName æä»¶åç§° * @param delete æ¯å¦å é¤ */ @GetMapping("/download") public void fileDownload(String fileName, Boolean delete, HttpServletResponse response, HttpServletRequest request) { try { if (!FileUtils.checkAllowDownload(fileName)) { throw new Exception(StringUtils.format("æä»¶åç§°({})éæ³ï¼ä¸å 许ä¸è½½ã ", fileName)); } String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1); String filePath = BaseConfig.getDownloadPath() + fileName; response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); FileUtils.setAttachmentResponseHeader(response, realFileName); FileUtils.writeBytes(filePath, response.getOutputStream()); if (delete) { FileUtils.deleteFile(filePath); } } catch (Exception e) { log.error("ä¸è½½æä»¶å¤±è´¥", e); } } /** * éç¨ä¸ä¼ 请æ±ï¼åä¸ªï¼ */ @PostMapping("/upload") public AjaxResult uploadFile(MultipartFile file) throws Exception { try { // ä¸ä¼ æä»¶è·¯å¾ String filePath = BaseConfig.getUploadPath(); // ä¸ä¼ å¹¶è¿åæ°æä»¶åç§° String fileName = FileUploadUtils.upload(filePath, file); String url = serverConfig.getUrl() + fileName; AjaxResult ajax = AjaxResult.success(); ajax.put("url", url); ajax.put("fileName", fileName); ajax.put("newFileName", FileUtils.getName(fileName)); ajax.put("originalFilename", file.getOriginalFilename()); return ajax; } catch (Exception e) { return AjaxResult.error(e.getMessage()); } } /** * éç¨ä¸ä¼ 请æ±ï¼å¤ä¸ªï¼ */ @PostMapping("/uploads") public AjaxResult uploadFiles(List<MultipartFile> files) throws Exception { try { // ä¸ä¼ æä»¶è·¯å¾ String filePath = BaseConfig.getUploadPath(); List<String> urls = new ArrayList<String>(); List<String> fileNames = new ArrayList<String>(); List<String> newFileNames = new ArrayList<String>(); List<String> originalFilenames = new ArrayList<String>(); for (MultipartFile file : files) { // ä¸ä¼ å¹¶è¿åæ°æä»¶åç§° String fileName = FileUploadUtils.upload(filePath, file); String url = serverConfig.getUrl() + fileName; urls.add(url); fileNames.add(fileName); newFileNames.add(FileUtils.getName(fileName)); originalFilenames.add(file.getOriginalFilename()); } AjaxResult ajax = AjaxResult.success(); ajax.put("urls", StringUtils.join(urls, FILE_DELIMETER)); ajax.put("fileNames", StringUtils.join(fileNames, FILE_DELIMETER)); ajax.put("newFileNames", StringUtils.join(newFileNames, FILE_DELIMETER)); ajax.put("originalFilenames", StringUtils.join(originalFilenames, FILE_DELIMETER)); return ajax; } catch (Exception e) { return AjaxResult.error(e.getMessage()); } } /** * æ¬å°èµæºéç¨ä¸è½½ */ @GetMapping("/download/resource") public void resourceDownload(String resource, HttpServletRequest request, HttpServletResponse response) throws Exception { try { if (!FileUtils.checkAllowDownload(resource)) { throw new Exception(StringUtils.format("èµæºæä»¶({})éæ³ï¼ä¸å 许ä¸è½½ã ", resource)); } // æ¬å°èµæºè·¯å¾ String localPath = BaseConfig.getProfile(); // æ°æ®åºèµæºå°å String downloadPath = localPath + StringUtils.substringAfter(resource, Constants.RESOURCE_PREFIX); // ä¸è½½åç§° String downloadName = StringUtils.substringAfterLast(downloadPath, "/"); response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); FileUtils.setAttachmentResponseHeader(response, downloadName); FileUtils.writeBytes(downloadPath, response.getOutputStream()); } catch (Exception e) { log.error("ä¸è½½æä»¶å¤±è´¥", e); } } } zhitan-admin/src/main/java/com/zhitan/web/controller/comprehensivestatistics/ComprehensiveStatisticsController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,175 @@ package com.zhitan.web.controller.comprehensivestatistics; import com.zhitan.basicdata.domain.FacilityArchives; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.utils.poi.ExcelUtil; import com.zhitan.comprehensivestatistics.domain.ComprehensiveStatistics; import com.zhitan.comprehensivestatistics.service.IComprehensiveStatisticsService; import com.zhitan.keyequipment.service.IDailyKeyEquipmentService; import com.zhitan.model.domain.EnergyIndex; import com.zhitan.model.service.IModelNodeService; import com.zhitan.realtimedata.service.IPeriodDataService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * electricityPriceController * * @author sys * @date 2020-02-18 */ @RestController @RequestMapping("/statisticalData/comprehensiveStatistics") public class ComprehensiveStatisticsController extends BaseController { @Autowired private IPeriodDataService periodDataService; @Autowired private IModelNodeService modelNodeService; @Autowired private IComprehensiveStatisticsService comprehensiveStatisticsService; @Autowired private IDailyKeyEquipmentService dailykeyEquipment; @GetMapping("/getList") public AjaxResult getList(ComprehensiveStatistics dataItem) { try { /*List<EnergyIndex> list = modelNodeService.getSettingIndex(dataItem.getIndexCode()); List<String> indexCode = list.stream().map(EnergyIndex::getIndexId).collect(Collectors.toList());*/ List<ComprehensiveStatistics> list = comprehensiveStatisticsService.getEnergyByIndex(dataItem.getIndexType()); List<String> indexCode = list.stream().map(ComprehensiveStatistics::getIndexId).collect(Collectors.toList()); List<ComprehensiveStatistics> resultList = comprehensiveStatisticsService.getDatasByIndex(indexCode, dataItem.getDataTime(), dataItem.getTimeType()); Map<String, List<ComprehensiveStatistics>> groupBy = resultList.stream().collect(Collectors.groupingBy(ComprehensiveStatistics::getName)); List<Map> energyHeadList = new ArrayList<Map>(); groupBy.forEach((IndexName,value)->{ Map tableColumn =new HashMap<>();//è¡¨æ°æ® tableColumn.put("name",IndexName); for(ComprehensiveStatistics result:value){ if(result.getIndexCode().contains("electric")){ tableColumn.put("electric",result.getValue()); }else if(result.getIndexCode().contains("water")){ tableColumn.put("water",result.getValue()); }else if(result.getIndexCode().contains("coal")){ tableColumn.put("coal",result.getValue()); }else if(result.getIndexCode().contains("steam")){ tableColumn.put("steam",result.getValue()); } } energyHeadList.add(tableColumn); }); return AjaxResult.success(energyHeadList); } catch (Exception ex) { logger.error("è·ååºéï¼", ex); return AjaxResult.error("è·ååºé!"); } } @GetMapping("/energyList") public AjaxResult getEnergyList(ComprehensiveStatistics dataItem) { try { List<EnergyIndex> list = modelNodeService.getSettingIndex(dataItem.getIndexCode()); List<String> indexCode = list.stream().map(EnergyIndex::getIndexId).collect(Collectors.toList()); List<ComprehensiveStatistics> resultList = comprehensiveStatisticsService.getDatasIndex(indexCode, dataItem.getDataTime(), dataItem.getTimeType()); Map<String, List<ComprehensiveStatistics>> groupBy = resultList.stream().collect(Collectors.groupingBy(ComprehensiveStatistics::getFacilityName)); List<Map> energyHeadList = new ArrayList<Map>(); groupBy.forEach((IndexName,value)->{ Map tableColumn =new HashMap<>();//è¡¨æ°æ® tableColumn.put("name",IndexName); tableColumn.put("value",value); energyHeadList.add(tableColumn); }); return AjaxResult.success(energyHeadList); } catch (Exception ex) { logger.error("è·ååºéï¼", ex); return AjaxResult.error("è·ååºé!"); } } @GetMapping("/energyDevice") public AjaxResult energyDevice(ComprehensiveStatistics dataItem) { try { List<EnergyIndex> list = modelNodeService.getSettingIndex(dataItem.getIndexCode()); List<String> indexCode = list.stream().map(EnergyIndex::getIndexId).collect(Collectors.toList()); List<ComprehensiveStatistics> resultList = comprehensiveStatisticsService.getDatasIndex(indexCode, dataItem.getDataTime(), dataItem.getTimeType()); return AjaxResult.success(resultList); } catch (Exception ex) { logger.error("è·ååºéï¼", ex); return AjaxResult.error("è·ååºé!"); } } @GetMapping("/getDeviceList") public AjaxResult getDeviceList(ComprehensiveStatistics dataItem) { try { List<EnergyIndex> list = modelNodeService.getSettingIndex(dataItem.getIndexCode()); List<String> indexCode = list.stream().map(EnergyIndex::getIndexId).collect(Collectors.toList()); List<ComprehensiveStatistics> resultList = comprehensiveStatisticsService.getDatasIndex(indexCode, dataItem.getDataTime(), dataItem.getTimeType()); List<Map> energyHeadList = new ArrayList<Map>(); if(dataItem.getIndexType().equals("1")){ resultList.forEach(value->{ if(!value.getIndexCode().contains("scale")){ Map tableColumn =new HashMap<>();//è¡¨æ°æ® tableColumn.put("value",value.getValue()); tableColumn.put("facilityName",value.getFacilityName()); energyHeadList.add(tableColumn); } }); }else{ resultList.forEach(value->{ if(value.getIndexCode().contains("scale")){ Map tableColumn =new HashMap<>();//è¡¨æ°æ® tableColumn.put("facilityName",value.getFacilityName()); tableColumn.put("value",value.getValue()); energyHeadList.add(tableColumn); } }); } return AjaxResult.success(energyHeadList); } catch (Exception ex) { logger.error("è·ååºéï¼", ex); return AjaxResult.error("è·ååºé!"); } } @GetMapping("/getFacilityArchives") public AjaxResult getFacilityArchives() { try { List<FacilityArchives> list= comprehensiveStatisticsService.getFacilityArchives(); return AjaxResult.success(list); } catch (Exception ex) { logger.error("è·åæ é¢åºéï¼", ex); return AjaxResult.error("è·åæ é¢åºé!"); } } /** * éç¹è½èè®¾å¤ * @return */ @GetMapping("/getPointFacility") public AjaxResult getPointFacility() { try { List<FacilityArchives> list=dailykeyEquipment.getPointFacility(); return AjaxResult.success(list); } catch (Exception ex) { logger.error("è·å设å¤åºéï¼", ex); return AjaxResult.error("è·åæ é¢åºé!"); } } @GetMapping("/export") public AjaxResult export(ComprehensiveStatistics dataItem) { List<ComprehensiveStatistics> list = comprehensiveStatisticsService.getEnergyByIndex(dataItem.getIndexType()); List<String> indexCode = list.stream().map(ComprehensiveStatistics::getIndexId).collect(Collectors.toList()); List<ComprehensiveStatistics> resultList = comprehensiveStatisticsService.getDatasByList(indexCode, dataItem.getBeginTime(),dataItem.getEndTime(),dataItem.getTimeType()); ExcelUtil<ComprehensiveStatistics> util = new ExcelUtil<ComprehensiveStatistics>(ComprehensiveStatistics.class); return util.exportExcel(resultList, "set"); } } zhitan-admin/src/main/java/com/zhitan/web/controller/comprehensivestatistics/DailyComprehensiveController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,94 @@ package com.zhitan.web.controller.comprehensivestatistics; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.comprehensivestatistics.domain.DailyComprehensive; import com.zhitan.comprehensivestatistics.service.IDailyComprehensiveService; import com.zhitan.model.domain.ModelNode; import com.zhitan.model.service.IModelNodeService; import com.zhitan.realtimedata.domain.DataItem; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; /** * * @author sys * @date 2020-02-18 */ @RestController @RequestMapping("/comprehensive/dailyComprehensive") @Api(value = "ç»¼åææ åæï¼æ¥ï¼controller",tags = {"ç»¼åææ åæ"}) public class DailyComprehensiveController extends BaseController { @Autowired private IModelNodeService modelNodeService; @Autowired private IDailyComprehensiveService dailyComprehensiveService; /*å ¨åè½èç»è®¡*/ @ApiOperation(value = "è·åç»¼åææ åæï¼æ¥ï¼å表") @GetMapping("/list") public AjaxResult list(DataItem dataItem) { try { ModelNode modelNode = modelNodeService.getModelNodeByModelCodeByIndexCode(dataItem.getIndexCode()); if (ObjectUtils.isEmpty(modelNode)) { return AjaxResult.success("ææ æ°æ®"); } List<DailyComprehensive> dataList = new ArrayList<>(); DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String aa = df.format(dataItem.getDataTime()); String bb = ""; int i = 0; dataItem.setBeginTime(dataItem.getDataTime()); String endTime=aa+" 24:00:00"; dataItem.setEndTime(sf.parse(endTime)); while (i < 24) { if(i>9){ bb = aa + " " + i + ":00:00"; } else { bb = aa + " 0" + i + ":00:00"; } DailyComprehensive report = new DailyComprehensive(); report.setDataTime(sf.parse(bb)); report.setValue("value" + i); dataList.add(report); i++; } List<DailyComprehensive> list = dailyComprehensiveService.getDailyComprehensiveList(modelNode.getNodeId(), dataList, dataItem.getBeginTime(), dataItem.getEndTime(), dataItem.getTimeType(), dataItem.getIndexStorageId()); return AjaxResult.success(list); } catch (Exception ex) { logger.error("è·ååºéï¼", ex); return AjaxResult.error("è·ååºé!"); } } /** * å ¨å综åè½èç»è®¡å¾ */ @ApiOperation(value = "è·åç»¼åææ åæå¾è¡¨ï¼æ¥ï¼æ°æ®") @GetMapping("/listChart") public AjaxResult listChart(DataItem dataItem) throws ParseException { DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String aa= df.format(dataItem.getDataTime()); dataItem.setBeginTime(dataItem.getDataTime()); String endTime=aa+" 24:00:00"; dataItem.setEndTime(sf.parse(endTime)); List<DailyComprehensive> list = dailyComprehensiveService.getListChart(dataItem.getIndexId(),dataItem.getBeginTime(),dataItem.getEndTime(), dataItem.getTimeType(),dataItem.getIndexStorageId()); return AjaxResult.success(list); } } zhitan-admin/src/main/java/com/zhitan/web/controller/consumptionanalysis/ConsumptionAnalysisController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,184 @@ package com.zhitan.web.controller.consumptionanalysis; import com.zhitan.basicdata.domain.SysEnergy; import com.zhitan.basicdata.services.ISysEnergyService; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.consumptionanalysis.domain.dto.ConsumptionAnalysisDTO; import com.zhitan.consumptionanalysis.domain.vo.ConsumptionAnalysisVO; import com.zhitan.consumptionanalysis.domain.vo.ProductEnergyAnalysisVO; import com.zhitan.consumptionanalysis.domain.vo.RankingDataVO; import com.zhitan.consumptionanalysis.domain.vo.RankingEnergyData; import com.zhitan.consumptionanalysis.service.IConsumptionAnalysisService; import io.swagger.annotations.ApiOperation; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.util.IOUtils; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.List; /** * ç»è®¡åæ æ§å¶å± * * @Author: Zhujw * @Date: 2023/3/1 */ @RestController @RequestMapping("/consumptionanalysis") public class ConsumptionAnalysisController extends BaseController { @Autowired private IConsumptionAnalysisService consumptionAnalysisService; @Autowired private ISysEnergyService sysEnergyService; @GetMapping("/getByArea") @ApiOperation(value = "ç§å®¤è½èåæå表", notes = "ç§å®¤è½èåæå表") public AjaxResult getByArea(@Validated ConsumptionAnalysisDTO dto) { ConsumptionAnalysisVO consumptionAnalysisVO = consumptionAnalysisService.getByArea(dto); return AjaxResult.success(consumptionAnalysisVO); } @PostMapping("/energyExport") @ApiOperation(value = "ç§å®¤è½èåæå¯¼åº", notes = "ç§å®¤è½èåæå¯¼åº") public void energyExport(HttpServletResponse response, ConsumptionAnalysisDTO dto) { ConsumptionAnalysisVO consumptionAnalysisVO = consumptionAnalysisService.getByArea(dto); Workbook workbook = new XSSFWorkbook(); Sheet sheet = workbook.createSheet("è½èåæ"); final SysEnergy sysEnergy = sysEnergyService.selectSameEnergyCodeNum(dto.getEnergyType()); String[] columnNames = new String[] { "æ¬ææ¶é´", "æ¬æè" + sysEnergy.getEnername() + "(" + sysEnergy.getMuid()+ ")", "åææ¶é´","åæè" + sysEnergy.getEnername() + "(" + sysEnergy.getMuid()+ ")", "YOY".equals( dto.getAnalysisType())?"忝(%)":"ç¯æ¯(%)" }; // å®ä¹æ°æ® List<String[]> data = new ArrayList<>(); data.add(columnNames); consumptionAnalysisVO.getDataList().forEach(vo->{ final String[] strings = new String[]{vo.getCurrentTime(),vo.getCurrentValue()+"", vo.getCompareTime(),vo.getCompareValue()+"",vo.getRatio()+""}; data.add(strings); }); // åå ¥æ°æ® int rowNum = 0; for (String[] rowData : data) { Row row = sheet.createRow(rowNum++); int colNum = 0; for (String field : rowData) { Cell cell = row.createCell(colNum++); cell.setCellValue(field); } } try { workbook.write(response.getOutputStream()); } catch (Exception e) { throw new RuntimeException("è½èåæå¯¼åºå¼å¸¸"); } finally { IOUtils.closeQuietly(workbook); } } @GetMapping("/getByDepartment") @ApiOperation(value = "æ ¹æ®ç§å®¤è·åè½èæå", notes = "æ ¹æ®ç§å®¤è·åè½èæå") public AjaxResult getByDepartment(@Validated ConsumptionAnalysisDTO dto) { List<RankingDataVO> consumptionAnalysisVO = consumptionAnalysisService.getByDepartment(dto); return AjaxResult.success(consumptionAnalysisVO); } @GetMapping("/getComprehensiveEnergy") @ApiOperation(value = "æ ¹æ®èç¹è·å综åè½èå表", notes = "æ ¹æ®èç¹è·å综åè½èå表") public AjaxResult getComprehensiveEnergy(@Validated ConsumptionAnalysisDTO dto) { ConsumptionAnalysisVO consumptionAnalysisVO = consumptionAnalysisService.getComprehensiveEnergy(dto); return AjaxResult.success(consumptionAnalysisVO); } @GetMapping("/getYOY") @ApiOperation(value = "æ ¹æ®èç¹è·å综åè½èåæ¯ç¯æ¯", notes = "æ ¹æ®èç¹è·å综åè½èåæ¯ç¯æ¯") public AjaxResult getYOY(@Validated ConsumptionAnalysisDTO dto) { ConsumptionAnalysisVO consumptionAnalysisVO = consumptionAnalysisService.getYOY(dto); return AjaxResult.success(consumptionAnalysisVO); } @GetMapping("/getEnergyRanking") @ApiOperation(value = "æ ¹æ®èç¹è·å综åè½èæå", notes = "æ ¹æ®èç¹è·å综åè½èæå") public AjaxResult getEnergyRanking(@Validated ConsumptionAnalysisDTO dto) { List<RankingEnergyData> consumptionAnalysisVO = consumptionAnalysisService.getEnergyRanking(dto); return AjaxResult.success(consumptionAnalysisVO); } @PostMapping("/comprehensiveEnergyExport") @ApiOperation(value = "综åè½èåæå¯¼åº", notes = "综åè½èåæå¯¼åº") public void comprehensiveEnergyExport(HttpServletResponse response, ConsumptionAnalysisDTO dto) { ConsumptionAnalysisVO consumptionAnalysisVO = consumptionAnalysisService.getComprehensiveEnergy(dto); Workbook workbook = new XSSFWorkbook(); Sheet sheet = workbook.createSheet("综åè½èåæ"); String[] columnNames = new String[] { "æ¥æ", "综åè½èé(tce)" }; // å®ä¹æ°æ® List<String[]> data = new ArrayList<>(); data.add(columnNames); consumptionAnalysisVO.getDataList().forEach(vo->{ final String[] strings = new String[]{vo.getCurrentTime(),vo.getCurrentValue()+""}; data.add(strings); }); // åå ¥æ°æ® int rowNum = 0; for (String[] rowData : data) { Row row = sheet.createRow(rowNum++); int colNum = 0; for (String field : rowData) { Cell cell = row.createCell(colNum++); cell.setCellValue(field); } } try { workbook.write(response.getOutputStream()); } catch (Exception e) { throw new RuntimeException("综åè½èåæå¯¼åºå¼å¸¸"); } finally { IOUtils.closeQuietly(workbook); } } @GetMapping("/getPlanAndProdCount") @ApiOperation(value = "æ ¹æ®èç¹åæ¥æè·åå¹³å产éå计åé", notes = "æ ¹æ®èç¹åæ¥æè·åå¹³å产éå计åé") public AjaxResult getPlanAndProdCount(@Validated ConsumptionAnalysisDTO dto) { ConsumptionAnalysisVO consumptionAnalysisVO = consumptionAnalysisService.getPlanAndProdCount(dto); ConsumptionAnalysisVO consumptionAnalysisServiceByArea = consumptionAnalysisService.getByArea(dto); consumptionAnalysisServiceByArea.setProdCount(consumptionAnalysisVO.getProdCount()); consumptionAnalysisServiceByArea.setPlanCount(consumptionAnalysisVO.getPlanCount()); return AjaxResult.success(consumptionAnalysisServiceByArea); } @GetMapping("/getProdEnergy") @ApiOperation(value = "æ ¹æ®èç¹åæ¥æè·å产ååè", notes = "æ ¹æ®èç¹åæ¥æè·å产ååè") public AjaxResult getProdEnergy(@Validated ConsumptionAnalysisDTO dto) { ProductEnergyAnalysisVO productEnergyAnalysisVO = consumptionAnalysisService.getProdEnergy(dto); return AjaxResult.success(productEnergyAnalysisVO); } } zhitan-admin/src/main/java/com/zhitan/web/controller/gatewaysetting/GatewaySettingController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,142 @@ package com.zhitan.web.controller.gatewaysetting; import javax.servlet.http.HttpServletResponse; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.pagehelper.PageHelper; import com.zhitan.common.annotation.Anonymous; import com.zhitan.common.core.page.TableDataInfo; import com.zhitan.common.utils.StringUtils; import com.zhitan.common.utils.poi.ExcelUtil; import com.zhitan.gatewaysetting.domain.GatewaySetting; import com.zhitan.gatewaysetting.service.IGatewaySettingService; import org.springframework.security.access.prepost.PreAuthorize; import javax.annotation.Resource; import org.springframework.web.bind.annotation.*; import com.zhitan.common.annotation.Log; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.enums.BusinessType; import java.util.List; import java.util.UUID; /** * ç½å ³é 置信æ¯Controller * * @author ZhiTan * @date 2024-10-30 */ @RestController @RequestMapping("/gatewaySetting") public class GatewaySettingController extends BaseController { @Resource private IGatewaySettingService gatewaySettingService; /** * æ¥è¯¢ç½å ³é 置信æ¯å表 */ @PreAuthorize("@ss.hasPermi('system:setting:list')") @GetMapping("/list") public TableDataInfo list(GatewaySetting gatewaySetting,@RequestParam Long pageNum,@RequestParam Long pageSize) { // startPage(); Page<GatewaySetting> list = gatewaySettingService.selectGatewaySettingPage(gatewaySetting,pageNum,pageSize); return getDataTable(list); } /** * æ¥è¯¢è®¡éå¨å ·æ°éåç¹ä½æ°é * @param gatewaySetting * @return */ @GetMapping("/ptNum") public AjaxResult ptNum(GatewaySetting gatewaySetting) { return success(gatewaySettingService.ptNum(gatewaySetting)); } /** * 导åºç½å ³é 置信æ¯å表 */ @PreAuthorize("@ss.hasPermi('system:setting:export')") @Log(title = "ç½å ³é 置信æ¯", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, GatewaySetting gatewaySetting) { List<GatewaySetting> list = gatewaySettingService.selectGatewaySettingList(gatewaySetting); ExcelUtil<GatewaySetting> util = new ExcelUtil<GatewaySetting>(GatewaySetting.class); util.exportExcel(response, list, "ç½å ³é ç½®ä¿¡æ¯æ°æ®"); } /** * è·åç½å ³é 置信æ¯è¯¦ç»ä¿¡æ¯ */ @PreAuthorize("@ss.hasPermi('system:setting:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") String id) { return success(gatewaySettingService.selectGatewaySettingById(id)); } /** * æ°å¢ç½å ³é ç½®ä¿¡æ¯ */ @PreAuthorize("@ss.hasPermi('system:setting:add')") @Log(title = "ç½å ³é 置信æ¯", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody GatewaySetting gatewaySetting) { int repeatCount = gatewaySettingService.checkOne(gatewaySetting); if(repeatCount>0){ return AjaxResult.error("ç½å ³ç¼å·éå¤"); } gatewaySetting.setId(UUID.randomUUID().toString()); return toAjax(gatewaySettingService.insertGatewaySetting(gatewaySetting)); } /** * ä¿®æ¹ç½å ³é ç½®ä¿¡æ¯ */ @PreAuthorize("@ss.hasPermi('system:setting:edit')") @Log(title = "ç½å ³é 置信æ¯", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody GatewaySetting gatewaySetting) { if(ObjectUtils.isEmpty(gatewaySetting.getId())){ return AjaxResult.error("æ ç½å ³ä¸»é®"); } int repeatCount = gatewaySettingService.checkOne(gatewaySetting); if(repeatCount>0){ return AjaxResult.error("ç½å ³ç¼å·éå¤"); } return toAjax(gatewaySettingService.updateGatewaySetting(gatewaySetting)); } /** * å é¤ç½å ³é ç½®ä¿¡æ¯ */ @PreAuthorize("@ss.hasPermi('system:setting:remove')") @Log(title = "ç½å ³é 置信æ¯", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable String[] ids) { return toAjax(gatewaySettingService.deleteGatewaySettingByIds(ids)); } /** * æ¥è¯¢ææç½å ³ç¼ç æåç§° * @param gatewaySetting * @return */ @GetMapping("/baseList") public AjaxResult baseList(GatewaySetting gatewaySetting) { return success(gatewaySettingService.selectGatewaySettingList(gatewaySetting)); } } zhitan-admin/src/main/java/com/zhitan/web/controller/homepage/HomePageController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,105 @@ package com.zhitan.web.controller.homepage; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.consumptionanalysis.domain.vo.RankingEnergyData; import com.zhitan.home.domain.vo.HomeEnergyConsumptionTrendVO; import com.zhitan.home.domain.vo.HomePeakValleyVO; import com.zhitan.home.service.impl.IHomePageService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; /** * HomePageController * * @author hmj * @date 2024-10-08 */ @RestController @RequestMapping("/homepage") public class HomePageController extends BaseController { @Autowired public IHomePageService homepageService; /** * @description: å ¨åè½èç»è®¡ * @param timeType * @return * @author: hmj * @date: 2024/10/8 13:41 */ @GetMapping("/energyConsumptionSummation") public AjaxResult energyConsumptionSummation(String timeType) { try { String modelcode = "Composite_Indicators"; return AjaxResult.success(homepageService.energyConsumptionSummation(timeType,modelcode)); } catch (Exception ex) { logger.error("è·ååºéï¼", ex); return AjaxResult.error("è·ååºé!"); } } /** * @description: è½èè¶å¿ * @param timeType * @return * @author: hmj * @date: 2024/10/8 13:41 */ @GetMapping("/energyConsumptionTrend") public AjaxResult energyConsumptionTrend(String timeType) { try { String modelcode = "Composite_Indicators"; HomeEnergyConsumptionTrendVO vo = homepageService.energyConsumptionTrend(timeType,modelcode); return AjaxResult.success(vo); } catch (Exception ex) { logger.error("è·ååºéï¼", ex); return AjaxResult.error("è·ååºé!"); } } /** * @description: ç§å®¤è½èæå * @param timeType * @return * @author: hmj * @date: 2024/10/8 13:41 */ @GetMapping("/energyConsumptionRanking") public AjaxResult energyConsumptionRanking(String timeType) { try { String modelcode = "Composite_Indicators"; List<RankingEnergyData> consumptionAnalysisVO = homepageService.energyConsumptionRanking(modelcode,timeType); return AjaxResult.success(consumptionAnalysisVO); } catch (Exception ex) { logger.error("è·ååºéï¼", ex); return AjaxResult.error("è·ååºé!"); } } /** * @description: å³°å¹³è°·å æ¯ * @param timeType * @return * @author: hmj * @date: 2024/10/8 13:41 */ @GetMapping("/peakValley") public AjaxResult peakValley(String timeType) { try { // String modelcode = "Composite_Indicators"; String modelcode = "PEAK_VALLEY"; List<HomePeakValleyVO> vo = homepageService.peakValley(timeType,modelcode); return AjaxResult.success(vo); } catch (Exception ex) { logger.error("è·ååºéï¼", ex); return AjaxResult.error("è·ååºé!"); } } } zhitan-admin/src/main/java/com/zhitan/web/controller/keyequipment/DailyKeyEquipmenteController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,123 @@ package com.zhitan.web.controller.keyequipment; import com.zhitan.basicdata.domain.FacilityArchives; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.page.TableDataInfo; import com.zhitan.keyequipment.domain.DailyKeyEquipment; import com.zhitan.keyequipment.service.IDailyKeyEquipmentService; import com.zhitan.model.domain.EnergyIndex; import com.zhitan.model.domain.ModelNode; import com.zhitan.model.service.IModelNodeService; import com.zhitan.realtimedata.domain.DataItem; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; /** *éç¹è®¾å¤è½èç»è®¡ æ¥ * * @author sys * @date 2021-01-11 */ @RestController @RequestMapping("/keyEquipment/dailyKeyEquipment") @Api(value = "éç¹è®¾å¤è½èç»è®¡ï¼æ¥ï¼",tags = {"设å¤åèåæ"}) public class DailyKeyEquipmenteController extends BaseController { @Autowired private IModelNodeService modelNodeService; @Autowired private IDailyKeyEquipmentService dailykeyEquipment; @GetMapping("/list") @ApiOperation(value = "éç¹è®¾å¤è½èåæï¼æ¥ï¼å表") public TableDataInfo list(DataItem dataItem) throws ParseException { List<ModelNode> nodeId = modelNodeService.getModelNodeByModelCode(dataItem.getIndexCode()); if(CollectionUtils.isEmpty(nodeId)){ return getDataTable(new ArrayList<>()); } List<EnergyIndex> energyList = modelNodeService.getSettingIndex(nodeId.get(0).getNodeId()); if(CollectionUtils.isEmpty(energyList)){ return getDataTable(new ArrayList<>()); } List<String> indexIds = energyList.stream().map(EnergyIndex::getIndexId).collect(Collectors.toList()); List<DailyKeyEquipment> dataList=new ArrayList<>(); DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String aa= df.format(dataItem.getDataTime()); String bb=""; int i = 0; dataItem.setBeginTime(dataItem.getDataTime()); String endTime=aa+" 24:00:00"; dataItem.setEndTime(sf.parse(endTime)); while (i < 24) { if(i>9){ bb=aa+" "+i+":00:00"; }else{ bb=aa+" 0"+i+":00:00"; } DailyKeyEquipment report=new DailyKeyEquipment(); report.setDataTime(sf.parse(bb)); report.setValue("value"+i); dataList.add(report); i++; }; startPage(); List<DailyKeyEquipment> list = dailykeyEquipment.getdailyKeyEquipmentList(indexIds, dataList,dataItem.getBeginTime(),dataItem.getEndTime(), dataItem.getTimeType(),dataItem.getIndexStorageId()); //return AjaxResult.success(list); return getDataTable(list); } @GetMapping("/listChart") @ApiOperation(value = "éç¹è®¾å¤è½èåæï¼æ¥ï¼å¾è¡¨") public AjaxResult listChart(DataItem dataItem) throws ParseException { DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String aa= df.format(dataItem.getDataTime()); dataItem.setBeginTime(dataItem.getDataTime()); String endTime=aa+" 24:00:00"; dataItem.setEndTime(sf.parse(endTime)); List<DailyKeyEquipment> list = dailykeyEquipment.getListChart(dataItem.getIndexId(),dataItem.getBeginTime(),dataItem.getEndTime(), dataItem.getTimeType(),dataItem.getIndexStorageId()); return AjaxResult.success(list); } /*ææè®¾å¤*/ @GetMapping("/getFacilityArchives") @ApiOperation(value = "æ¥è¯¢ææè®¾å¤å表") public AjaxResult getFacilityArchives() { try { List<FacilityArchives> list=dailykeyEquipment.getFacilityArchives(); return AjaxResult.success(list); } catch (Exception ex) { logger.error("è·å设å¤åºéï¼", ex); return AjaxResult.error("è·åæ é¢åºé!"); } } /** * éç¹è½èè®¾å¤ * @return */ @GetMapping("/getPointFacility") @ApiOperation(value = "æ¥è¯¢éç¹è®¾å¤å表") public AjaxResult getPointFacility() { try { List<FacilityArchives> list=dailykeyEquipment.getPointFacility(); return AjaxResult.success(list); } catch (Exception ex) { logger.error("è·å设å¤åºéï¼", ex); return AjaxResult.error("è·åæ é¢åºé!"); } } } zhitan-admin/src/main/java/com/zhitan/web/controller/keyequipment/MonthlyKeyEquipmentController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,132 @@ package com.zhitan.web.controller.keyequipment; import com.github.pagehelper.PageInfo; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.keyequipment.domain.MonthlyKeyEquipment; import com.zhitan.keyequipment.service.IMonthlyKeyEquipmentService; import com.zhitan.model.domain.EnergyIndex; import com.zhitan.model.domain.ModelNode; import com.zhitan.model.service.IModelNodeService; import com.zhitan.realtimedata.domain.DataItem; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; /** *éç¹è®¾å¤è½èç»è®¡ æ * * @author sys * @date 2021-01-11 */ @RestController @RequestMapping("/keyEquipment/MonthlyKeyEquipment") @Api(value = "éç¹è®¾å¤è½èç»è®¡ï¼æï¼",tags = {"设å¤åèåæ"}) public class MonthlyKeyEquipmentController extends BaseController { @Autowired private IModelNodeService modelNodeService; @Autowired private IMonthlyKeyEquipmentService monthlyKeyEquipmentService; @GetMapping("/list") @ApiOperation(value = "éç¹è®¾å¤è½èç»è®¡ï¼æï¼å表") public AjaxResult list(DataItem dataItem) { try { List<MonthlyKeyEquipment> dataList=new ArrayList<>(); Map tableColumn =new HashMap<>();//è¡¨æ°æ® DateFormat df = new SimpleDateFormat("yyyy-MM"); SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String aa= df.format(dataItem.getDataTime()); String bb=""; int i = 1; String beginTime=aa+"-01 00:00:00"; dataItem.setBeginTime(sf.parse(beginTime)); String endTime=aa+"-"+Integer.valueOf(getLastDayOfMonth(aa).substring(getLastDayOfMonth(aa).length()-2))+" 00:00:00"; dataItem.setEndTime(sf.parse(endTime)); while (i <= Integer.valueOf(getLastDayOfMonth(aa).substring(getLastDayOfMonth(aa).length()-2))) { if(i>9){ bb=aa+"-"+i+" 00:00:00"; }else{ bb=aa+"-0"+i+" 00:00:00"; } MonthlyKeyEquipment report=new MonthlyKeyEquipment(); report.setDataTime(sf.parse(bb)); report.setValue("value"+i); dataList.add(report); tableColumn.put("value"+i,String.valueOf(i)+"æ¥"); i++; } List<Map> table=new ArrayList<>(); MonthlyKeyEquipment reportList =new MonthlyKeyEquipment(); table.add(tableColumn); reportList.setTablehead(table); List<ModelNode> nodeId = modelNodeService.getModelNodeByModelCode(dataItem.getIndexCode()); if(CollectionUtils.isEmpty(nodeId)){ return AjaxResult.success(reportList); } List<EnergyIndex> energyList = modelNodeService.getSettingIndex(nodeId.get(0).getNodeId()); if(CollectionUtils.isEmpty(energyList)){ return AjaxResult.success(reportList); } List<String> indexIds = energyList.stream().map(EnergyIndex::getIndexId).collect(Collectors.toList()); startPage(); List<MonthlyKeyEquipment> list = monthlyKeyEquipmentService.getMonthlyKeyEquipmentList(indexIds, dataList,dataItem.getBeginTime(),dataItem.getEndTime(), dataItem.getTimeType(),dataItem.getIndexStorageId()); int count=Integer.valueOf(getLastDayOfMonth(aa).substring(getLastDayOfMonth(aa).length()-2)); list.forEach(monthlyReport -> monthlyReport.setCount(count)); reportList.setTabledata(list); reportList.setTotal(new PageInfo(list).getTotal()); return AjaxResult.success(reportList); } catch (Exception ex) { logger.error("è·ååºéï¼", ex); return AjaxResult.error("è·ååºé!"); } } @GetMapping("/listChart") @ApiOperation(value = "éç¹è®¾å¤è½èç»è®¡ï¼æï¼å¾è¡¨") public AjaxResult listChart(DataItem dataItem) throws ParseException { DateFormat df = new SimpleDateFormat("yyyy-MM"); SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String aa= df.format(dataItem.getDataTime()); String beginTime=aa+"-01 00:00:00"; dataItem.setBeginTime(sf.parse(beginTime)); String endTime=aa+"-"+Integer.valueOf(getLastDayOfMonth(aa).substring(getLastDayOfMonth(aa).length()-2))+" 00:00:00"; dataItem.setEndTime(sf.parse(endTime)); List<MonthlyKeyEquipment> list = monthlyKeyEquipmentService.getListChart(dataItem.getIndexId(),dataItem.getBeginTime(),dataItem.getEndTime(), dataItem.getTimeType(),dataItem.getIndexStorageId()); return AjaxResult.success(list); } public static String getLastDayOfMonth(String yearMonth) { int year = Integer.parseInt(yearMonth.split("-")[0]); //å¹´ int month = Integer.parseInt(yearMonth.split("-")[1]); //æ Calendar cal = Calendar.getInstance(); // 设置年份 cal.set(Calendar.YEAR, year); // 设置æä»½ // cal.set(Calendar.MONTH, month - 1); cal.set(Calendar.MONTH, month); //设置å½åæçä¸ä¸ä¸ªæ // è·åæææå¤§å¤©æ° //int lastDay = cal.getActualMaximum(Calendar.DATE); int lastDay = cal.getMinimum(Calendar.DATE); //è·åæä»½ä¸çæå°å¼ï¼å³ç¬¬ä¸å¤© // 设置æ¥å䏿份çæå¤§å¤©æ° //cal.set(Calendar.DAY_OF_MONTH, lastDay); cal.set(Calendar.DAY_OF_MONTH, lastDay - 1); //䏿ç第ä¸å¤©åå»1å°±æ¯å½æçæåä¸å¤© // æ ¼å¼åæ¥æ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); return sdf.format(cal.getTime()); } } zhitan-admin/src/main/java/com/zhitan/web/controller/keyequipment/YearKeyEquipmentController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,84 @@ package com.zhitan.web.controller.keyequipment; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.page.TableDataInfo; import com.zhitan.keyequipment.domain.YearKeyEquipment; import com.zhitan.keyequipment.service.IYearKeyEquipmentService; import com.zhitan.model.domain.EnergyIndex; import com.zhitan.model.domain.ModelNode; import com.zhitan.model.service.IModelNodeService; import com.zhitan.realtimedata.domain.DataItem; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; /** *éç¹è®¾å¤è½èç»è®¡ å¹´ * * @author sys * @date 2021-01-11 */ @RestController @RequestMapping("/keyEquipment/YearKeyEquipment") @Api(value = "éç¹è®¾å¤è½èç»è®¡ï¼å¹´ï¼",tags = {"设å¤åèåæ"}) public class YearKeyEquipmentController extends BaseController { @Autowired private IModelNodeService modelNodeService; @Autowired private IYearKeyEquipmentService yearKeyEquipmentService; @GetMapping("/list") @ApiOperation(value = "éç¹è®¾å¤è½èç»è®¡ï¼å¹´ï¼å表") public TableDataInfo list(DataItem dataItem) throws ParseException { List<ModelNode> nodeId = modelNodeService.getModelNodeByModelCode(dataItem.getIndexCode()); if(CollectionUtils.isEmpty(nodeId)){ return getDataTable(new ArrayList<>()); } List<EnergyIndex> energyList = modelNodeService.getSettingIndex(nodeId.get(0).getNodeId()); if(CollectionUtils.isEmpty(energyList)){ return getDataTable(new ArrayList<>()); } List<String> indexIds = energyList.stream().map(EnergyIndex::getIndexId).collect(Collectors.toList()); List<YearKeyEquipment> dataList=new ArrayList<>(); DateFormat df = new SimpleDateFormat("yyyy"); SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String aa= df.format(dataItem.getBeginTime()); String bb=""; int i = 1; while (i <= 12) { if(i>9){ bb=aa+"-"+i+"-01 00:00:00"; }else{ bb=aa+"-0"+i+"-01 00:00:00"; } YearKeyEquipment report=new YearKeyEquipment(); report.setDataTime(sf.parse(bb)); report.setValue("value"+i); dataList.add(report); i++; } startPage(); List<YearKeyEquipment> list = yearKeyEquipmentService.getYearKeyEquipmentList(indexIds, dataList,dataItem.getBeginTime(),dataItem.getEndTime(), dataItem.getTimeType(),dataItem.getIndexStorageId()); return getDataTable(list); } @GetMapping("/listChart") @ApiOperation(value = "éç¹è®¾å¤è½èç»è®¡ï¼å¹´ï¼å¾è¡¨") public AjaxResult listChart(DataItem dataItem){ List<YearKeyEquipment> list = yearKeyEquipmentService.getListChart(dataItem.getIndexId(),dataItem.getBeginTime(),dataItem.getEndTime(), dataItem.getTimeType(),dataItem.getIndexStorageId()); return AjaxResult.success(list); } } zhitan-admin/src/main/java/com/zhitan/web/controller/meter/MeterAnnexController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,179 @@ package com.zhitan.web.controller.meter; import com.zhitan.basicdata.domain.MeterAnnex; import com.zhitan.basicdata.services.IMeterAnnexService; import com.zhitan.common.annotation.Log; import com.zhitan.common.config.BaseConfig; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.domain.model.LoginUser; import com.zhitan.common.core.page.TableDataInfo; import com.zhitan.common.enums.BusinessType; import com.zhitan.common.utils.ServletUtils; import com.zhitan.common.utils.file.FileUploadUtils; import com.zhitan.common.utils.file.FileUtils; import com.zhitan.common.utils.poi.ExcelUtil; import com.zhitan.common.utils.uuid.IdUtils; import com.zhitan.framework.web.service.TokenService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.List; /** * 计éå¨å ·æ¡£æ¡éä»¶Controller * * @author zhaowei * @date 2020-02-14 */ @RestController @RequestMapping("/meter/annex") public class MeterAnnexController extends BaseController { @Autowired private IMeterAnnexService meterAnnexService; @Autowired private TokenService tokenService; private static final Logger log = LoggerFactory.getLogger(MeterAnnexController.class); /** * æ¥è¯¢è®¡éå¨å ·æ¡£æ¡éä»¶å表 */ @PreAuthorize("@ss.hasPermi('meter:annex:list')") @GetMapping("/list") public TableDataInfo list(MeterAnnex meterAnnex) { startPage(); List<MeterAnnex> list = meterAnnexService.selectMeterAnnexList(meterAnnex); return getDataTable(list); } /** * 导åºè®¡éå¨å ·æ¡£æ¡éä»¶å表 */ @PreAuthorize("@ss.hasPermi('meter:annex:export')") @Log(title = "计éå¨å ·æ¡£æ¡éä»¶", businessType = BusinessType.EXPORT) @GetMapping("/export") public AjaxResult export(MeterAnnex meterAnnex) { List<MeterAnnex> list = meterAnnexService.selectMeterAnnexList(meterAnnex); ExcelUtil<MeterAnnex> util = new ExcelUtil<MeterAnnex>(MeterAnnex.class); return util.exportExcel(list, "annex"); } /** * è·å计éå¨å ·æ¡£æ¡é件详ç»ä¿¡æ¯ */ @PreAuthorize("@ss.hasPermi('meter:annex:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") String id) { return AjaxResult.success(meterAnnexService.selectMeterAnnexById(id)); } /** * æ°å¢è®¡éå¨å ·æ¡£æ¡éä»¶ */ @PreAuthorize("@ss.hasPermi('meter:annex:add')") @Log(title = "计éå¨å ·æ¡£æ¡éä»¶", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody MeterAnnex meterAnnex) { return toAjax(meterAnnexService.insertMeterAnnex(meterAnnex)); } /** * ä¿®æ¹è®¡éå¨å ·æ¡£æ¡éä»¶ */ @PreAuthorize("@ss.hasPermi('meter:annex:edit')") @Log(title = "计éå¨å ·æ¡£æ¡éä»¶", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody MeterAnnex meterAnnex) { return toAjax(meterAnnexService.updateMeterAnnex(meterAnnex)); } /** * å é¤è®¡éå¨å ·æ¡£æ¡éä»¶ */ @PreAuthorize("@ss.hasPermi('meter:annex:remove')") @Log(title = "计éå¨å ·æ¡£æ¡éä»¶", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable String[] ids) { return toAjax(meterAnnexService.deleteMeterAnnexByIds(ids)); } /** * éç¨æå®æä»¶ä¸è½½è¯·æ± * * @param showFileName ä¸è½½å±ç¤ºæä»¶åç§° // * @param filePath ä¸è½½æä»¶ç»å¯¹è·¯å¾ 带 æä»¶çå®åååè·¯å¾ * @param delete æ¯å¦å é¤/ */ @PreAuthorize("@ss.hasPermi('meter:annex:assignDownload')") @PostMapping("/assignDownload") public void fileAssignDownload(String showFileName, String filePath,Boolean delete, HttpServletResponse response, HttpServletRequest request) { try { response.setCharacterEncoding("utf-8"); response.setContentType("multipart/form-data"); response.setHeader("Content-Disposition", "attachment;fileName=" + FileUtils.setFileDownloadHeader(request, showFileName)); FileUtils.writeBytes(filePath, response.getOutputStream()); // if (delete) // { // FileUtils.deleteFile(filePath); // } log.error("ä¸è½½æå", "aa"); } catch (Exception e) { log.error("ä¸è½½æä»¶å¤±è´¥", e); } } @Log(title = "计éå¨å ·æ¡£æ¡éä»¶ä¸ä¼ ", businessType = BusinessType.IMPORT) @PreAuthorize("@ss.hasPermi('meter:annex:fileImport')") @PostMapping("/fileImport") public AjaxResult importData(MultipartFile file, String implementId) throws Exception { if (!file.isEmpty()) { LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest()); //è·åé ç½®çæä»¶ä¸ä¼ è·¯å¾ String uploadPathDir = BaseConfig.getUploadPath(); //è·åæä»¶åå§åç§° String fileName = file.getOriginalFilename(); //è·åæä»¶æ©å±å String fileSuffix = FileUploadUtils.getExtension(file); // System.out.println("implementId==="+implementId); // System.out.println("filedir==="+uploadPathDir); // System.out.println("fileName==="+fileName); // System.out.println("fileSuffix==="+fileSuffix); //æä»¶æç»ä¿åçç»å¯¹è·¯å¾ String filePath = FileUploadUtils.uploadAll(uploadPathDir, file); // System.out.println("ä¸ä¼ æä»¶å°å:===>"+filePath); MeterAnnex meterAnnex = new MeterAnnex(); //设置主é®UUID meterAnnex.setId(IdUtils.simpleUUID()); meterAnnex.setFileName(fileName); meterAnnex.setFilePath(filePath); meterAnnex.setFileSuffix(fileSuffix); meterAnnex.setImplementId(implementId); meterAnnex.setCreateBy(loginUser.getUsername()); if (this.meterAnnexService.insertMeterAnnex(meterAnnex)>0) { return AjaxResult.success("éä»¶ä¸ä¼ 宿"); } } return AjaxResult.success("éä»¶ä¸ä¼ 失败"); } } zhitan-admin/src/main/java/com/zhitan/web/controller/meter/MeterController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,93 @@ package com.zhitan.web.controller.meter; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.R; import com.zhitan.meter.domain.MeterConfig; import com.zhitan.meter.domain.MeterImplements; import com.zhitan.meter.domain.MeterParam; import com.zhitan.meter.services.IMetersService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.poi.ss.formula.functions.T; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.List; /** * @ClassName: MeterController * @Author: * @CreateTime: 2024-09-20 15-33-37 * @Description: ééæ°æ®çæå¨ * @Version: 1.0 * @Since: JDK1.8 */ @Slf4j @Api("éé计éè¡¨æ°æ®ç®¡ç") @RestController @RequestMapping("/meters") public class MeterController extends BaseController { @Resource private IMetersService iMeterservice; @ApiOperation("è·å计éè¡¨æ°æ®") @GetMapping("/listMeterData") public R<List<MeterImplements>> listMeterData(@RequestParam String meterType){ log.info("å¼å§è·å计éè¡¨æ°æ®......"); List<MeterImplements> meterImplementList = iMeterservice.listMeterData(meterType); if (meterImplementList != null || meterImplementList .size() > 0) { return R.ok(meterImplementList); } else { return R.fail("è·å计éè¡¨æ°æ®å¤±è´¥"); } } @ApiOperation("è·åç¹ä½é 置信æ¯") @GetMapping("/listConfigurationData") public R<List<MeterParam>> listConfigurationData(@RequestParam String meterType, @RequestParam String indexType) { log.info("å¼å§è·åç¹ä½é 置信æ¯......"); List<MeterParam> meterParams = iMeterservice.listConfigurationData(meterType,indexType); if (meterParams != null || meterParams .size() > 0) { return (R.ok(meterParams)); } else { return R.fail("è·åç¹ä½é 置信æ¯å¤±è´¥"); } } @ApiOperation("æ ¹æ®index_typeè·åç¹ä½é 置信æ¯") @GetMapping("/listConfigData") public R<List<MeterConfig>> listConfigData(@RequestParam String indexType) { log.info("å¼å§è·åç¹ä½é 置信æ¯......"); List<MeterConfig> meterConfigList = iMeterservice.listConfigData(indexType); if (meterConfigList != null || meterConfigList.size() > 0) { return R.ok(meterConfigList); } else { return R.fail("è·åç¹ä½é 置信æ¯å¤±è´¥"); } } @ApiOperation("æ°å¢ä¿åé ç½®æ°æ®") @GetMapping("/addConfigurationData") public R<T> addConfigurationData(){ log.info("æ§è¡æ°å¢ä¿åé ç½®æ°æ®......"); return R.ok(); } } zhitan-admin/src/main/java/com/zhitan/web/controller/model/CalcFunctionController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,109 @@ package com.zhitan.web.controller.model; import com.zhitan.common.annotation.Log; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.page.TableDataInfo; import com.zhitan.common.enums.BusinessType; import com.zhitan.common.utils.poi.ExcelUtil; import com.zhitan.common.utils.uuid.UUID; import com.zhitan.model.domain.CalcFunction; import com.zhitan.model.service.ICalcFunctionService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import java.util.List; /** * 计ç®å½æ°Controller * * @author fanxinfu * @date 2020-03-10 */ @RestController @RequestMapping("/basicsetting/function") @Api(value = "计ç®å ¬å¼ç®¡ç",tags = {"计ç®å ¬å¼ç®¡ç"}) public class CalcFunctionController extends BaseController { @Autowired private ICalcFunctionService calcFunctionService; /** * æ¥è¯¢è®¡ç®å½æ°å表 */ @PreAuthorize("@ss.hasPermi('basicsetting:function:list')") @GetMapping("/list") @ApiOperation(value = "计ç®å½æ°å表") public TableDataInfo list(CalcFunction calcFunction) { startPage(); List<CalcFunction> list = calcFunctionService.selectCalcFunctionList(calcFunction); return getDataTable(list); } /** * 导åºè®¡ç®å½æ°å表 */ @ApiOperation(value = "计ç®å½æ°å表导åº") @PreAuthorize("@ss.hasPermi('basicsetting:function:export')") @Log(title = "计ç®å½æ°", businessType = BusinessType.EXPORT) @GetMapping("/export") public AjaxResult export(CalcFunction calcFunction) { List<CalcFunction> list = calcFunctionService.selectCalcFunctionList(calcFunction); ExcelUtil<CalcFunction> util = new ExcelUtil<CalcFunction>(CalcFunction.class); return util.exportExcel(list, "function"); } /** * è·å计ç®å½æ°è¯¦ç»ä¿¡æ¯ */ @ApiOperation(value = "è·å计ç®å½æ°è¯¦ç»ä¿¡æ¯") @PreAuthorize("@ss.hasPermi('basicsetting:function:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") String id) { return AjaxResult.success(calcFunctionService.selectCalcFunctionById(id)); } /** * æ°å¢è®¡ç®å½æ° */ @PreAuthorize("@ss.hasPermi('basicsetting:function:add')") @Log(title = "计ç®å½æ°", businessType = BusinessType.INSERT) @PostMapping @ApiOperation(value = "æ°å¢è®¡ç®å½æ°") public AjaxResult add(@RequestBody CalcFunction calcFunction) { calcFunction.setId(UUID.fastUUID().toString()); return toAjax(calcFunctionService.insertCalcFunction(calcFunction)); } /** * ä¿®æ¹è®¡ç®å½æ° */ @PreAuthorize("@ss.hasPermi('basicsetting:function:edit')") @Log(title = "计ç®å½æ°", businessType = BusinessType.UPDATE) @PutMapping @ApiOperation(value = "ç¼è¾è®¡ç®å½æ°") public AjaxResult edit(@RequestBody CalcFunction calcFunction) { return toAjax(calcFunctionService.updateCalcFunction(calcFunction)); } /** * å é¤è®¡ç®å½æ° */ @PreAuthorize("@ss.hasPermi('basicsetting:function:remove')") @Log(title = "计ç®å½æ°", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") @ApiOperation(value = "å é¤è®¡ç®å½æ°") public AjaxResult remove(@PathVariable String[] ids) { return toAjax(calcFunctionService.deleteCalcFunctionByIds(ids)); } } zhitan-admin/src/main/java/com/zhitan/web/controller/model/DaqTemplateController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,102 @@ package com.zhitan.web.controller.model; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zhitan.common.annotation.Log; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.page.TableDataInfo; import com.zhitan.common.enums.BusinessType; import com.zhitan.common.utils.poi.ExcelUtil; import com.zhitan.model.domain.DaqTemplate; import com.zhitan.model.service.IDaqTemplateService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.UUID; /** * ééåæ°æ¨¡æ¿Controller * * @author ruoyi * @date 2020-02-08 */ @RestController @RequestMapping("/system/template") public class DaqTemplateController extends BaseController { @Autowired private IDaqTemplateService daqTemplateService; /** * æ¥è¯¢ééåæ°æ¨¡æ¿å表 */ @PreAuthorize("@ss.hasPermi('basicsetting:template:query')") @GetMapping("/list") public TableDataInfo list(DaqTemplate daqTemplate, @RequestParam Long pageNum, @RequestParam Long pageSize) { Page<DaqTemplate> list = daqTemplateService.selectDaqTemplatePage(daqTemplate,pageNum,pageSize); return getDataTable(list); } /** * 导åºééåæ°æ¨¡æ¿å表 */ @PreAuthorize("@ss.hasPermi('basicsetting:template:query')") @Log(title = "ééåæ°æ¨¡æ¿" , businessType = BusinessType.EXPORT) @GetMapping("/export") public AjaxResult export(DaqTemplate daqTemplate) { List<DaqTemplate> list = daqTemplateService.selectDaqTemplateList(daqTemplate); ExcelUtil<DaqTemplate> util = new ExcelUtil<DaqTemplate>(DaqTemplate.class); return util.exportExcel(list, "template"); } /** * è·åééåæ°æ¨¡æ¿è¯¦ç»ä¿¡æ¯ */ @PreAuthorize("@ss.hasPermi('basicsetting:template:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") String id) { return AjaxResult.success(daqTemplateService.selectDaqTemplateById(id)); } /** * æ°å¢ééåæ°æ¨¡æ¿ */ @PreAuthorize("@ss.hasPermi('basicsetting:template:add')") @Log(title = "ééåæ°æ¨¡æ¿" , businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody DaqTemplate daqTemplate) { daqTemplate.setId(UUID.randomUUID().toString()); boolean isExist = daqTemplateService.dapHasExist(daqTemplate.getCode(), daqTemplate.getDeviceType()); if (isExist) { return AjaxResult.error("ç¸å设å¤ç±»åä¸çåæ°ç¼ç ä¸è½éå¤ï¼"); } else { return toAjax(daqTemplateService.insertDaqTemplate(daqTemplate)); } } /** * ä¿®æ¹ééåæ°æ¨¡æ¿ */ @PreAuthorize("@ss.hasPermi('basicsetting:template:edit')") @Log(title = "ééåæ°æ¨¡æ¿" , businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody DaqTemplate daqTemplate) { boolean isExist = daqTemplateService.dapHasExist(daqTemplate); if (isExist) { return AjaxResult.error("ç¸å设å¤ç±»åä¸çåæ°ç¼ç ä¸è½éå¤ï¼"); } else { return toAjax(daqTemplateService.updateDaqTemplate(daqTemplate)); } } /** * å é¤ééåæ°æ¨¡æ¿ */ @PreAuthorize("@ss.hasPermi('basicsetting:template:remove')") @Log(title = "ééåæ°æ¨¡æ¿" , businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable String[] ids) { return toAjax(daqTemplateService.deleteDaqTemplateByIds(ids)); } } zhitan-admin/src/main/java/com/zhitan/web/controller/model/EnergyIndexController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,207 @@ package com.zhitan.web.controller.model; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zhitan.common.annotation.Log; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.page.TableDataInfo; import com.zhitan.common.enums.BusinessType; import com.zhitan.common.utils.poi.ExcelUtil; import com.zhitan.model.domain.EnergyIndex; import com.zhitan.model.domain.EnergyIndexQuery; import com.zhitan.model.service.IEnergyIndexService; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.util.Arrays; import java.util.List; import java.util.UUID; import java.util.stream.Collectors; /** * ææ ä¿¡æ¯Controller * * @author fanxinfu * @date 2020-02-14 */ @RestController @RequestMapping("/basicsetting/energyindex") public class EnergyIndexController extends BaseController { @Autowired private IEnergyIndexService energyIndexService; /** * æ¥è¯¢ææ ä¿¡æ¯å表 */ @PreAuthorize("@ss.hasPermi('energyindex:energyindex:query')") @GetMapping("/list") public TableDataInfo list(EnergyIndex energyIndex, @RequestParam Long pageNum, @RequestParam Long pageSize) { EnergyIndexQuery query = new EnergyIndexQuery(energyIndex.getNodeId(), energyIndex.getName(), energyIndex.getIndexCategory(), energyIndex.getIndexType()); Page<EnergyIndex> list = energyIndexService.selectEnergyIndexPage(query,pageNum,pageSize); return getDataTable(list); } /** * æ¥è¯¢ææ ä¿¡æ¯å表 */ @GetMapping("/filter") public AjaxResult filter(EnergyIndexQuery query) { List<EnergyIndex> list = energyIndexService.selectEnergyIndexList(query); return AjaxResult.success(list); } /** * æ¥è¯¢ææ ä¿¡æ¯å表 */ @PreAuthorize("@ss.hasPermi('energyindex:energyindex:query')") @GetMapping("/collectIndex") public TableDataInfo listCollectIndex(String deviceId) { startPage(); List<EnergyIndex> list = energyIndexService.selectCollectIndex(deviceId); return getDataTable(list); } /** * å¯¼åºææ ä¿¡æ¯å表 */ @PreAuthorize("@ss.hasPermi('energyindex:energyindex:export')") @Log(title = "ææ ä¿¡æ¯", businessType = BusinessType.EXPORT) @GetMapping("/export") public AjaxResult export(EnergyIndex energyIndex) { List<EnergyIndex> list = energyIndexService.selectEnergyIndexList(energyIndex); ExcelUtil<EnergyIndex> util = new ExcelUtil<>(EnergyIndex.class); return util.exportExcel(list, "energyindex"); } /** * è·åææ ä¿¡æ¯è¯¦ç»ä¿¡æ¯ */ @PreAuthorize("@ss.hasPermi('energyindex:energyindex:query')") @GetMapping(value = "/{indexId}") public AjaxResult getInfo(@PathVariable("indexId") String indexId) { return AjaxResult.success(energyIndexService.selectEnergyIndexById(indexId)); } /** * æ°å¢ææ ä¿¡æ¯ */ @PreAuthorize("@ss.hasPermi('energyindex:energyindex:add')") @Log(title = "ææ ä¿¡æ¯", businessType = BusinessType.INSERT) @PostMapping(value = "/{nodeId}") public AjaxResult add(@PathVariable("nodeId") String nodeId, @RequestBody EnergyIndex energyIndex) { boolean isExist = energyIndexService.energyIndexHasExist(energyIndex.getCode()); if (isExist) { return AjaxResult.error("ææ ç¼ç ä¸è½éå¤ï¼"); } else { energyIndex.setIndexId(UUID.randomUUID().toString()); energyIndexService.insertEnergyIndex(nodeId, energyIndex); return AjaxResult.success(); } } /** * ä¿®æ¹ææ ä¿¡æ¯ */ @PreAuthorize("@ss.hasPermi('energyindex:energyindex:edit')") @Log(title = "ææ ä¿¡æ¯", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody EnergyIndex energyIndex) { boolean isExist = energyIndexService .energyIndexHasExist(energyIndex.getIndexId(), energyIndex.getCode()); if (isExist) { return AjaxResult.error("ææ ç¼ç ä¸è½éå¤ï¼"); } else { return toAjax(energyIndexService.updateEnergyIndex(energyIndex)); } } /** * å 餿æ ä¿¡æ¯ */ @PreAuthorize("@ss.hasPermi('energyindex:energyindex:remove')") @Log(title = "ææ ä¿¡æ¯", businessType = BusinessType.DELETE) @DeleteMapping("/{nodeId}/{indexIds}") public AjaxResult remove(@PathVariable String nodeId, @PathVariable String[] indexIds) { List<EnergyIndex> energyIndexList = energyIndexService.getEnergyIndexByIds( Arrays.asList(indexIds)); List<String> deleteIds = energyIndexList.stream() .filter(f -> StringUtils.isBlank(f.getMeterId())) .map(EnergyIndex::getIndexId) .collect(Collectors.toList()); List<String> removeLink = energyIndexList.stream() .filter(f -> StringUtils.isNotBlank(f.getMeterId())) .map(EnergyIndex::getIndexId) .collect(Collectors.toList()); if (!removeLink.isEmpty()) { energyIndexService.removeNodeIndex(nodeId, removeLink); } if (!deleteIds.isEmpty()) { energyIndexService.deleteEnergyIndexByIds(nodeId, deleteIds.toArray(new String[0])); } return AjaxResult.success(); } @Log(title = "å¢å 计éå¨å ·ééç¹", businessType = BusinessType.INSERT) @PostMapping("/meterIndex/{meterId}") public AjaxResult addCollectIndex(@PathVariable("meterId") String meterId) { try { return energyIndexService.addMeterIndex(meterId); } catch (Exception ex) { logger.error("å建计éå¨å ·ééç¹å¤±è´¥ï¼", ex); return AjaxResult.error(); } } @GetMapping("/meterIndex/{meterId}") public AjaxResult getDeviceCollectIndex(@PathVariable("meterId") String meterId) { return AjaxResult.success(energyIndexService.getMeterIndex(meterId)); } @GetMapping("/includeChildrenNode/{nodeId}") public AjaxResult getIndexByNodeAndChildrenNode(@PathVariable("nodeId") String nodeId) { try { return AjaxResult.success(energyIndexService.getIndexByNodeAndChildrenNode(nodeId)); } catch (Exception ex) { logger.error("è·åå ³èééææ åºéï¼", ex); return AjaxResult.error("è·åå ³èææ åºé!"); } } @GetMapping("/includeChildrenNode/search") public AjaxResult searchIndexByNodeAndChildrenNode(String nodeId, String filter) { try { return AjaxResult .success(energyIndexService.searchIndexByNodeAndChildrenNode(nodeId, filter)); } catch (Exception ex) { logger.error("è·åå ³èééææ åºéï¼", ex); return AjaxResult.error("è·åå ³èææ åºé!"); } } @GetMapping("/importTemplate") public AjaxResult importTemplate() { ExcelUtil<EnergyIndex> util = new ExcelUtil<>(EnergyIndex.class); return util.importTemplateExcel("ææ æ°æ®"); } @PostMapping("/importData") public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception { ExcelUtil<EnergyIndex> util = new ExcelUtil<>(EnergyIndex.class); List<EnergyIndex> energyIndexList = util.importExcel(file.getInputStream()); return energyIndexService.importEnergyIndex(energyIndexList, updateSupport); } @GetMapping("/getIndexByCode") public AjaxResult getIndexByCode(String code,String nodeId) { List<EnergyIndex> energyIndexList = energyIndexService.getIndexByCode(code,nodeId); return AjaxResult.success(energyIndexList); } } zhitan-admin/src/main/java/com/zhitan/web/controller/model/IndexStorageController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,151 @@ package com.zhitan.web.controller.model; import com.alibaba.fastjson.JSONObject; import com.greenpineyu.fel.FelEngine; import com.greenpineyu.fel.FelEngineImpl; import com.greenpineyu.fel.parser.FelNode; import com.greenpineyu.fel.parser.VarAstNode; import com.zhitan.common.annotation.RepeatSubmit; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.enums.CalcType; import com.zhitan.common.enums.TimeType; import com.zhitan.model.domain.IndexFormula; import com.zhitan.model.domain.IndexStorage; import com.zhitan.model.service.IIndexStorageService; import com.zhitan.model.service.IndexFormulaService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.jetbrains.annotations.NotNull; import java.util.*; import java.util.stream.Collectors; /** * @author fanxinfu */ @RestController @RequestMapping("/basicsetting/indexStorage") public class IndexStorageController extends BaseController { private final IIndexStorageService indexStorageService; private final IndexFormulaService indexFormulaService; @Autowired public IndexStorageController( IIndexStorageService indexStorageService, IndexFormulaService indexFormulaService) { this.indexStorageService = indexStorageService; this.indexFormulaService = indexFormulaService; } @GetMapping("/{indexId}") public AjaxResult getIndexStorage(@PathVariable String indexId) { JSONObject result = new JSONObject(); IndexFormula indexFormula = indexFormulaService.getIndexFormula(indexId); List<IndexStorage> indexStorageList = indexStorageService.getIndexStorage(indexId); List<IndexStorage> defaultStorageList = getDefaultIndexStorage(); Map<TimeType, IndexStorage> map = indexStorageList.stream() .collect(Collectors.toMap(IndexStorage::getTimeType, storage -> storage)); List<IndexStorage> storageList; if (!indexStorageList.isEmpty()) { storageList = new ArrayList<>(); defaultStorageList.forEach(storage -> { storageList.add(map.get(storage.getTimeType())); }); } else { storageList = defaultStorageList; } result.put("indexFormula", indexFormula); result.put("indexStorage", storageList); return AjaxResult.success(result); } @RepeatSubmit @PostMapping("/{indexId}") public AjaxResult saveIndexStorage(@RequestBody JSONObject param, @PathVariable String indexId) { try { IndexFormula indexFormula = param.getObject("indexFormula", IndexFormula.class); List<IndexStorage> indexStorage = param.getJSONArray("indexStorage").toJavaList(IndexStorage.class); indexFormula.setIndexId(indexId); indexStorageService.saveFormulaAndStorage(indexFormula, indexStorage, indexId); } catch (Exception ex) { logger.error("", ex); return AjaxResult.error(); } return AjaxResult.success(); } @PostMapping("/parseFormula") public AjaxResult parseFormula(@RequestBody JSONObject formulaText) { String calcText = formulaText.getString("calcText"); FelEngine e = new FelEngineImpl(); Set<String> params = new HashSet<>(); try { FelNode felNode = e.parse(calcText); buildParam(felNode, params); } catch (Exception ex) { logger.error("å ¬å¼è§£æåºéï¼"); } return AjaxResult.success(params); } @GetMapping("/calcPeriod") public AjaxResult getIndexStorage() { List<IndexStorage> calcPeriods = getDefaultIndexStorage(); return AjaxResult.success(calcPeriods); } @NotNull private List<IndexStorage> getDefaultIndexStorage() { List<IndexStorage> calcPeriods = new ArrayList<>(); getPeriod(calcPeriods, TimeType.HOUR); getPeriod(calcPeriods, TimeType.SCHEDULING); getPeriod(calcPeriods, TimeType.DAY); getPeriod(calcPeriods, TimeType.MONTH); getPeriod(calcPeriods, TimeType.YEAR); return calcPeriods; } private void getPeriod(List<IndexStorage> calcPeriods, TimeType timeType) { IndexStorage hour = new IndexStorage(); hour.setTimeType(timeType); hour.setCalcType(CalcType.CALC); calcPeriods.add(hour); } private void buildParam(FelNode felNode, Set<String> params) { if (felNode.getChildren() == null) { if (isConfigParam(felNode.getText())) { params.add(felNode.getText()); } } else { for (FelNode node : felNode.getChildren()) { if (node.getChildren() == null) { if (node instanceof VarAstNode && isConfigParam(node.getText())) { params.add(node.getText()); } } else { buildParam(node, params); } } } } private boolean isConfigParam(String param) { if (param.startsWith("'") && param.endsWith("'")) { return false; } if (param.startsWith("$")) { return true; } return true; } } zhitan-admin/src/main/java/com/zhitan/web/controller/model/ModelInfoController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,116 @@ package com.zhitan.web.controller.model; import com.zhitan.common.annotation.Log; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.enums.BusinessType; import com.zhitan.common.utils.StringUtils; import com.zhitan.common.utils.poi.ExcelUtil; import com.zhitan.model.domain.ModelInfo; import com.zhitan.model.domain.vo.PointDataVO; import com.zhitan.model.service.IEnergyIndexService; import com.zhitan.model.service.IModelInfoService; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import java.util.List; /** * 模åController * * @author fanxinfu * @date 2020-02-17 */ @RestController @RequestMapping("/basicsetting/model") public class ModelInfoController extends BaseController { @Autowired private IModelInfoService modelInfoService; @Autowired private IEnergyIndexService energyIndexService; /** * æ¥è¯¢æ¨¡åå表 */ @PreAuthorize("@ss.hasPermi('basicsetting:model:list')") @GetMapping("/list") public AjaxResult list(ModelInfo modelInfo) { List<ModelInfo> list = modelInfoService.selectModelInfoList(modelInfo); return AjaxResult.success(list); } /** * å¯¼åºæ¨¡åå表 */ @PreAuthorize("@ss.hasPermi('basicsetting:model:export')") @Log(title = "模å", businessType = BusinessType.EXPORT) @GetMapping("/export") public AjaxResult export(ModelInfo modelInfo) { List<ModelInfo> list = modelInfoService.selectModelInfoList(modelInfo); ExcelUtil<ModelInfo> util = new ExcelUtil<ModelInfo>(ModelInfo.class); return util.exportExcel(list, "model"); } /** * è·å模å详ç»ä¿¡æ¯ */ @PreAuthorize("@ss.hasPermi('basicsetting:model:query')") @GetMapping(value = "/{modelCode}") public AjaxResult getInfo(@PathVariable("modelCode") String modelCode) { return AjaxResult.success(modelInfoService.selectModelInfoById(modelCode)); } /** * æ°å¢æ¨¡å */ @PreAuthorize("@ss.hasPermi('basicsetting:model:add')") @Log(title = "模å", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody ModelInfo modelInfo) { return toAjax(modelInfoService.insertModelInfo(modelInfo)); } /** * ä¿®æ¹æ¨¡å */ @PreAuthorize("@ss.hasPermi('basicsetting:model:edit')") @Log(title = "模å", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody ModelInfo modelInfo) { return toAjax(modelInfoService.updateModelInfo(modelInfo)); } /** * å 餿¨¡å */ @PreAuthorize("@ss.hasPermi('basicsetting:model:remove')") @Log(title = "模å", businessType = BusinessType.DELETE) @DeleteMapping("/{modelCode}") public AjaxResult remove(@PathVariable String modelCode) { boolean hasConfig = energyIndexService.modelHasConfig(modelCode); if (hasConfig) { return AjaxResult.error("该模åå·²ç»é ç½®èç¹æææ ï¼ä¸è½å é¤ï¼"); } return toAjax(modelInfoService.deleteModelInfoByCode(modelCode)); } /** * æ ¹æ®æ¨¡åidæ¥è¯¢å¯¹åºç¹ä½ä¿¡æ¯ * * @param modelId æ¥è¯¢æ¨¡åid * @return */ @ApiOperation("æ ¹æ®æ¨¡åidæ¥è¯¢å¯¹åºç¹ä½ä¿¡æ¯") @GetMapping("/getEnergyIndexByModelId") public AjaxResult listEnergyIndexByModelId(String modelId) { if (StringUtils.isEmpty(modelId)) { return AjaxResult.error("æªæ¾å°æ¥è¯¢æ¨¡åä¿¡æ¯"); } List<PointDataVO> voList = modelInfoService.listEnergyIndexByModelId(modelId); return AjaxResult.success(voList); } } zhitan-admin/src/main/java/com/zhitan/web/controller/model/ModelNodeController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,383 @@ package com.zhitan.web.controller.model; import com.alibaba.fastjson.JSONObject; import com.zhitan.common.annotation.Log; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.page.TableDataInfo; import com.zhitan.common.enums.BusinessType; import com.zhitan.common.utils.SecurityUtils; import com.zhitan.common.utils.poi.ExcelUtil; import com.zhitan.common.utils.uuid.UUID; import com.zhitan.model.domain.EnergyIndex; import com.zhitan.model.domain.ModelNode; import com.zhitan.model.service.IEnergyIndexService; import com.zhitan.model.service.IModelNodeService; import com.zhitan.system.service.ISysRoleService; import com.zhitan.system.service.ISysUserService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import java.util.List; /** * 模åèç¹Controller * * @author fanxinfu * @date 2020-02-10 */ @RestController @RequestMapping("/basicsetting/modelnode") @Api(value = "模åèç¹",tags = {"模åèç¹"}) public class ModelNodeController extends BaseController { private final IModelNodeService modelNodeService; @Autowired public ModelNodeController( IModelNodeService modelNodeService, IEnergyIndexService energyIndexService, ISysUserService sysUserService, ISysRoleService roleService) { this.modelNodeService = modelNodeService; } /** * æ¥è¯¢æ¨¡åèç¹å表 */ @ApiOperation(value = "æ¥è¯¢æ¨¡åèç¹å表") @PreAuthorize("@ss.hasPermi('basicsetting:modelNode:query')") @GetMapping("/list") public TableDataInfo list(ModelNode modelNode) { startPage(); List<ModelNode> list = modelNodeService.selectModelNodeList(modelNode); return getDataTable(list); } /** * æ¥è¯¢æ¨¡åèç¹å表 */ @PreAuthorize("@ss.hasPermi('basicsetting:modelNode:list')") @GetMapping("/treelist") @ApiOperation(value = "æ¥è¯¢æ¨¡åèç¹æ ç¶å表") public AjaxResult treeList(String modelCode) { List<ModelNode> list = modelNodeService.getModelNodeByModelCode(modelCode); return AjaxResult.success(modelNodeService.buildModelNodeTree(list)); } /** * æ¥è¯¢æ¨¡åèç¹å表 */ @GetMapping("/treelist/withAuth") @ApiOperation(value = "æ¥è¯¢æ¨¡åèç¹å表") public AjaxResult treeListWithAuth(String modelCode) { Long userId = SecurityUtils.getUserId(); List<ModelNode> list = modelNodeService.getModelNodeByModelCodeWithAuth(modelCode, userId); return AjaxResult.success(modelNodeService.buildModelNodeTree(list)); } /** * å¯¼åºæ¨¡åèç¹å表 */ @ApiOperation(value = "å¯¼åºæ¨¡åèç¹å表") @PreAuthorize("@ss.hasPermi('basicsetting:modelNode:export')") @Log(title = "模åèç¹", businessType = BusinessType.EXPORT) @GetMapping("/export") public AjaxResult export(ModelNode modelNode) { List<ModelNode> list = modelNodeService.selectModelNodeList(modelNode); ExcelUtil<ModelNode> util = new ExcelUtil<ModelNode>(ModelNode.class); return util.exportExcel(list, "modelNode"); } /** * è·å模åèç¹è¯¦ç»ä¿¡æ¯ */ @ApiOperation(value = "è·å模åèç¹è¯¦ç»ä¿¡æ¯") @PreAuthorize("@ss.hasPermi('basicsetting:modelNode:query')") @GetMapping(value = "/{nodeId}") public AjaxResult getInfo(@PathVariable("nodeId") String nodeId) { return AjaxResult.success(modelNodeService.selectModelNodeById(nodeId)); } @GetMapping(value = "/hasEnergyIndex") @ApiOperation(value = "è·å模åèç¹è¯¦ç»ä¿¡æ¯") public AjaxResult hasEnergyIndex(String nodeId) { return AjaxResult.success(modelNodeService.hasEnergyIndex(nodeId)); } /** * æ°å¢æ¨¡åèç¹ */ @ApiOperation(value = "æ°å¢æ¨¡åèç¹") @PreAuthorize("@ss.hasPermi('basicsetting:modelNode:add')") @Log(title = "模åèç¹", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody ModelNode modelNode) { boolean isExist = modelNodeService .modelNodeHasExist(modelNode.getCode(), modelNode.getModelCode()); if (isExist) { return AjaxResult.error("模åèç¹ç¼ç ä¸è½éå¤ï¼"); } else { modelNode.setNodeId(UUID.randomUUID().toString()); modelNodeService.insertModelNode(modelNode); return AjaxResult.success(modelNode); } } /** * ä¿®æ¹æ¨¡åèç¹ */ @ApiOperation(value = "ä¿®æ¹æ¨¡åèç¹") @PreAuthorize("@ss.hasPermi('basicsetting:modelNode:edit')") @Log(title = "模åèç¹", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody ModelNode modelNode) { boolean isExist = modelNodeService.modelNodeHasExist(modelNode); if (isExist) { return AjaxResult.error("模åèç¹ç¼ç ä¸è½éå¤ï¼"); } else { return toAjax(modelNodeService.updateModelNode(modelNode)); } } /** * ä¿®æ¹æ¨¡åèç¹ */ @ApiOperation(value = "模åèç¹æåº") @PreAuthorize("@ss.hasPermi('basicsetting:modelNode:edit')") @Log(title = "模åèç¹", businessType = BusinessType.UPDATE) @PutMapping("/order") public AjaxResult order(@RequestBody JSONObject param) { String nodeId = param.getString("nodeId"); String parentId = param.getString("parentId"); String[] children = param.getJSONArray("children").toJavaList(String.class).toArray( new String[]{}); modelNodeService.updateOrder(nodeId, parentId, children); return AjaxResult.success(); } /** * å 餿¨¡åèç¹ */ @ApiOperation(value = "å 餿¨¡åèç¹") @PreAuthorize("@ss.hasPermi('basicsetting:modelNode:remove')") @Log(title = "模åèç¹", businessType = BusinessType.DELETE) @DeleteMapping("/{nodeIds}") public AjaxResult remove(@PathVariable String[] nodeIds) { return toAjax(modelNodeService.deleteModelNodeByIds(nodeIds)); } @PreAuthorize("@ss.hasPermi('basicsetting:modelNode:edit')") @Log(title = "设置模åèç¹å ³è设å¤", businessType = BusinessType.UPDATE) @GetMapping("/device/{nodeId}") @ApiOperation(value = "设置模åèç¹å ³è设å¤") public AjaxResult getSettingDevice(@PathVariable("nodeId") String nodeId) { try { return AjaxResult.success(modelNodeService.getSettingDevice(nodeId)); } catch (Exception ex) { logger.error("è·åå ³è设å¤åºéï¼", ex); return AjaxResult.error("è·åå ³è设å¤åºé!"); } } @PreAuthorize("@ss.hasPermi('basicsetting:modelNode:edit')") @Log(title = "设置模åèç¹å ³è设å¤", businessType = BusinessType.UPDATE) @PostMapping("/device/{nodeId}") @ApiOperation(value = "设置模åèç¹å ³è设å¤") public AjaxResult setDevice(@PathVariable("nodeId") String nodeId, @RequestBody String[] deviceIds) { try { modelNodeService.setDevice(nodeId, deviceIds); return AjaxResult.success(); } catch (Exception ex) { logger.error("è®¾ç½®å ³è设å¤åºéï¼", ex); return AjaxResult.error(); } } @PreAuthorize("@ss.hasPermi('basicsetting:modelNode:edit')") @Log(title = "设置模åèç¹å ³è设å¤", businessType = BusinessType.UPDATE) @DeleteMapping("/device/{nodeId}") @ApiOperation(value = "å 餿¨¡åèç¹å ³è设å¤") public AjaxResult delDevice(@PathVariable("nodeId") String nodeId, @RequestBody String[] deviceIds) { try { modelNodeService.delDevice(nodeId, deviceIds); return AjaxResult.success(); } catch (Exception ex) { logger.error("å é¤å ³è设å¤åºéï¼", ex); return AjaxResult.error(); } } @PreAuthorize("@ss.hasPermi('basicsetting:modelNode:edit')") @Log(title = "设置模åèç¹å ³èè½æº", businessType = BusinessType.UPDATE) @GetMapping("/energy/{nodeId}") @ApiOperation(value = "è·å模åèç¹å ³èè½æº") public AjaxResult getSettingEnergy(@PathVariable("nodeId") String nodeId) { try { return AjaxResult.success(modelNodeService.getSettingEnergy(nodeId)); } catch (Exception ex) { logger.error("è·åå ³èè½æºåºéï¼", ex); return AjaxResult.error("è·åå ³èè½æºåºé!"); } } @PreAuthorize("@ss.hasPermi('basicsetting:modelNode:edit')") @Log(title = "设置模åèç¹å ³èè½æº", businessType = BusinessType.UPDATE) @PostMapping("/energy/{nodeId}") @ApiOperation(value = "设置模åèç¹å ³èè½æº") public AjaxResult setEnergy(@PathVariable("nodeId") String nodeId, @RequestBody Integer[] energyIds) { try { modelNodeService.setEnergy(nodeId, energyIds); return AjaxResult.success(); } catch (Exception ex) { logger.error("è®¾ç½®å ³èè½æºåºéï¼", ex); return AjaxResult.error(); } } @PreAuthorize("@ss.hasPermi('basicsetting:modelNode:edit')") @Log(title = "设置模åèç¹å ³èè½æº", businessType = BusinessType.UPDATE) @DeleteMapping("/energy/{nodeId}") @ApiOperation(value = "å 餿¨¡åèç¹å ³èè½æº") public AjaxResult delEnergy(@PathVariable("nodeId") String nodeId, @RequestBody Integer[] energyIds) { try { modelNodeService.delEnergy(nodeId, energyIds); return AjaxResult.success(); } catch (Exception ex) { logger.error("å é¤å ³èè½æºåºéï¼", ex); return AjaxResult.error(); } } @PreAuthorize("@ss.hasPermi('basicsetting:modelNode:edit')") @Log(title = "设置模åèç¹å ³è产å", businessType = BusinessType.UPDATE) @GetMapping("/product/{nodeId}") @ApiOperation(value = "è·å模åèç¹å ³è产å") public AjaxResult getSettingProduct(@PathVariable("nodeId") String nodeId) { try { return AjaxResult.success(modelNodeService.getSettingProduct(nodeId)); } catch (Exception ex) { logger.error("è·åå ³è产ååºéï¼", ex); return AjaxResult.error("è·åå ³è产ååºé!"); } } @PreAuthorize("@ss.hasPermi('basicsetting:modelNode:edit')") @Log(title = "设置模åèç¹å ³è产å", businessType = BusinessType.UPDATE) @PostMapping("/product/{nodeId}") @ApiOperation(value = "设置模åèç¹å ³è产å") public AjaxResult setProduct(@PathVariable("nodeId") String nodeId, @RequestBody Integer[] productIds) { try { modelNodeService.setProduct(nodeId, productIds); return AjaxResult.success(); } catch (Exception ex) { logger.error("è®¾ç½®å ³è产ååºéï¼", ex); return AjaxResult.error(); } } @PreAuthorize("@ss.hasPermi('basicsetting:modelNode:edit')") @Log(title = "设置模åèç¹å ³è产å", businessType = BusinessType.UPDATE) @DeleteMapping("/product/{nodeId}") @ApiOperation(value = "å 餿¨¡åèç¹å ³è产å") public AjaxResult delProduct(@PathVariable("nodeId") String nodeId, @RequestBody Integer[] productIds) { try { modelNodeService.delProduct(nodeId, productIds); return AjaxResult.success(); } catch (Exception ex) { logger.error("å é¤å ³è产ååºéï¼", ex); return AjaxResult.error(); } } @GetMapping("/energyIndex/{nodeId}") @ApiOperation(value = "è·å模åèç¹å ³èææ ") public AjaxResult getSettingIndex(@PathVariable("nodeId") String nodeId) { try { return AjaxResult.success(modelNodeService.getSettingIndex(nodeId)); } catch (Exception ex) { logger.error("è·åå ³èééææ åºéï¼", ex); return AjaxResult.error("è·åå ³èææ åºé!"); } } @GetMapping("/energyIndex/{indexType}/{nodeId}") @ApiOperation(value = "è·å模åèç¹å ³èææ ") public AjaxResult getSettingIndex(@PathVariable("indexType") String indexType, @PathVariable("nodeId") String nodeId, String code, String name, Long pageNum, Long pageSize) { try { return AjaxResult.success(modelNodeService.getSettingIndex(indexType, nodeId,code, name,pageNum,pageSize)); } catch (Exception ex) { logger.error("è·åå ³èééææ åºéï¼", ex); return AjaxResult.error("è·åå ³èææ åºé!"); } } @PreAuthorize("@ss.hasPermi('basicsetting:modelNode:edit')") @Log(title = "设置模åèç¹å ³èééææ ", businessType = BusinessType.UPDATE) @PostMapping("/energyIndex/{nodeId}/{indexType}") @ApiOperation(value = "设置模åèç¹å ³èææ ") public AjaxResult setSettingIndex(@PathVariable("nodeId") String nodeId, @PathVariable("indexType") String indexType, @RequestBody String[] indexIds) { try { modelNodeService.setIndex(nodeId, indexType, indexIds); return AjaxResult.success(); } catch (Exception ex) { logger.error("è®¾ç½®å ³èééææ åºéï¼", ex); return AjaxResult.error(); } } @PreAuthorize("@ss.hasPermi('basicsetting:modelNode:edit')") @Log(title = "å 餿¨¡åèç¹å ³èééææ ", businessType = BusinessType.UPDATE) @DeleteMapping("/energyIndex/{nodeId}") @ApiOperation(value = "å 餿¨¡åèç¹å ³èææ ") public AjaxResult delSettingIndex(@PathVariable("nodeId") String nodeId, @RequestBody String[] indexIds) { try { modelNodeService.delIndex(nodeId, indexIds); return AjaxResult.success(); } catch (Exception ex) { logger.error("å é¤å ³èééææ åºéï¼", ex); return AjaxResult.error(); } } @Log(title = "æ ¹æ®nodeIdæ¥è¯¢ç¹ä½ä¿¡æ¯", businessType = BusinessType.UPDATE) @GetMapping("/getIndexInforByNodeId") @ApiOperation(value = "æ ¹æ®nodeIdæ¥è¯¢ç¹ä½ä¿¡æ¯") public AjaxResult getIndexInforByNodeId(String nodeId) { try { List<EnergyIndex> settingIndex = modelNodeService.getSettingIndex(nodeId); return AjaxResult.success(); } catch (Exception ex) { logger.error("å é¤å ³èééææ åºéï¼", ex); return AjaxResult.error(); } } @GetMapping("/energyIndex/meterImplement/{nodeId}") @ApiOperation(value = "æ ¹æ®nodeidè·å计éå¨å ·ï¼ç¶åè·å模åèç¹å ³èææ ") public TableDataInfo getIndexByMeterImplement(@PathVariable("nodeId") String nodeId, String code, String name, @RequestParam Long pageNum, @RequestParam Long pageSize) { return getDataTable(modelNodeService.getIndexByMeterImplement(nodeId,code,name,pageNum,pageSize)); } } zhitan-admin/src/main/java/com/zhitan/web/controller/monitor/CacheController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,120 @@ package com.zhitan.web.controller.monitor; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Properties; import java.util.Set; import javax.annotation.Resource; import org.springframework.data.redis.core.RedisCallback; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.zhitan.common.constant.CacheConstants; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.utils.StringUtils; import com.zhitan.system.domain.SysCache; /** * ç¼åçæ§ * * @author zhitan */ @RestController @RequestMapping("/monitor/cache") public class CacheController { @Resource private RedisTemplate<String, String> redisTemplate; private final static List<SysCache> caches = new ArrayList<SysCache>(); { caches.add(new SysCache(CacheConstants.LOGIN_TOKEN_KEY, "ç¨æ·ä¿¡æ¯")); caches.add(new SysCache(CacheConstants.SYS_CONFIG_KEY, "é 置信æ¯")); caches.add(new SysCache(CacheConstants.SYS_DICT_KEY, "æ°æ®åå ¸")); caches.add(new SysCache(CacheConstants.CAPTCHA_CODE_KEY, "éªè¯ç ")); caches.add(new SysCache(CacheConstants.REPEAT_SUBMIT_KEY, "é²éæäº¤")); caches.add(new SysCache(CacheConstants.RATE_LIMIT_KEY, "éæµå¤ç")); caches.add(new SysCache(CacheConstants.PWD_ERR_CNT_KEY, "å¯ç é误次æ°")); } @PreAuthorize("@ss.hasPermi('monitor:cache:list')") @GetMapping() public AjaxResult getInfo() throws Exception { Properties info = (Properties) redisTemplate.execute((RedisCallback<Object>) connection -> connection.info()); Properties commandStats = (Properties) redisTemplate.execute((RedisCallback<Object>) connection -> connection.info("commandstats")); Object dbSize = redisTemplate.execute((RedisCallback<Object>) connection -> connection.dbSize()); Map<String, Object> result = new HashMap<>(3); result.put("info", info); result.put("dbSize", dbSize); List<Map<String, String>> pieList = new ArrayList<>(); commandStats.stringPropertyNames().forEach(key -> { Map<String, String> data = new HashMap<>(2); String property = commandStats.getProperty(key); data.put("name", StringUtils.removeStart(key, "cmdstat_")); data.put("value", StringUtils.substringBetween(property, "calls=", ",usec")); pieList.add(data); }); result.put("commandStats", pieList); return AjaxResult.success(result); } @PreAuthorize("@ss.hasPermi('monitor:cache:list')") @GetMapping("/getNames") public AjaxResult cache() { return AjaxResult.success(caches); } @PreAuthorize("@ss.hasPermi('monitor:cache:list')") @GetMapping("/getKeys/{cacheName}") public AjaxResult getCacheKeys(@PathVariable String cacheName) { Set<String> cacheKeys = redisTemplate.keys(cacheName + "*"); return AjaxResult.success(cacheKeys); } @PreAuthorize("@ss.hasPermi('monitor:cache:list')") @GetMapping("/getValue/{cacheName}/{cacheKey}") public AjaxResult getCacheValue(@PathVariable String cacheName, @PathVariable String cacheKey) { String cacheValue = redisTemplate.opsForValue().get(cacheKey); SysCache sysCache = new SysCache(cacheName, cacheKey, cacheValue); return AjaxResult.success(sysCache); } @PreAuthorize("@ss.hasPermi('monitor:cache:list')") @DeleteMapping("/clearCacheName/{cacheName}") public AjaxResult clearCacheName(@PathVariable String cacheName) { Collection<String> cacheKeys = redisTemplate.keys(cacheName + "*"); redisTemplate.delete(cacheKeys); return AjaxResult.success(); } @PreAuthorize("@ss.hasPermi('monitor:cache:list')") @DeleteMapping("/clearCacheKey/{cacheKey}") public AjaxResult clearCacheKey(@PathVariable String cacheKey) { redisTemplate.delete(cacheKey); return AjaxResult.success(); } @PreAuthorize("@ss.hasPermi('monitor:cache:list')") @DeleteMapping("/clearCacheAll") public AjaxResult clearCacheAll() { Collection<String> cacheKeys = redisTemplate.keys("*"); redisTemplate.delete(cacheKeys); return AjaxResult.success(); } } zhitan-admin/src/main/java/com/zhitan/web/controller/monitor/ServerController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,27 @@ package com.zhitan.web.controller.monitor; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.framework.web.domain.Server; /** * æå¡å¨çæ§ * * @author zhitan */ @RestController @RequestMapping("/monitor/server") public class ServerController { @PreAuthorize("@ss.hasPermi('monitor:server:list')") @GetMapping() public AjaxResult getInfo() throws Exception { Server server = new Server(); server.copyTo(); return AjaxResult.success(server); } } zhitan-admin/src/main/java/com/zhitan/web/controller/monitor/SysLogininforController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,82 @@ package com.zhitan.web.controller.monitor; import java.util.List; import javax.servlet.http.HttpServletResponse; import javax.annotation.Resource; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.zhitan.common.annotation.Log; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.page.TableDataInfo; import com.zhitan.common.enums.BusinessType; import com.zhitan.common.utils.poi.ExcelUtil; import com.zhitan.framework.web.service.SysPasswordService; import com.zhitan.system.domain.SysLoginInfo; import com.zhitan.system.service.ISysLoginInfoService; /** * ç³»ç»è®¿é®è®°å½ * * @author zhitan */ @RestController @RequestMapping("/monitor/logininfor") public class SysLogininforController extends BaseController { @Resource private ISysLoginInfoService logininforService; @Resource private SysPasswordService passwordService; @PreAuthorize("@ss.hasPermi('monitor:logininfor:list')") @GetMapping("/list") public TableDataInfo list(SysLoginInfo logininfor) { startPage(); List<SysLoginInfo> list = logininforService.selectLogininforList(logininfor); return getDataTable(list); } @Log(title = "ç»å½æ¥å¿", businessType = BusinessType.EXPORT) @PreAuthorize("@ss.hasPermi('monitor:logininfor:export')") @PostMapping("/export") public void export(HttpServletResponse response, SysLoginInfo logininfor) { List<SysLoginInfo> list = logininforService.selectLogininforList(logininfor); ExcelUtil<SysLoginInfo> util = new ExcelUtil<SysLoginInfo>(SysLoginInfo.class); util.exportExcel(response, list, "ç»å½æ¥å¿"); } @PreAuthorize("@ss.hasPermi('monitor:logininfor:remove')") @Log(title = "ç»å½æ¥å¿", businessType = BusinessType.DELETE) @DeleteMapping("/{infoIds}") public AjaxResult remove(@PathVariable Long[] infoIds) { return toAjax(logininforService.deleteLoginInfoByIds(infoIds)); } @PreAuthorize("@ss.hasPermi('monitor:logininfor:remove')") @Log(title = "ç»å½æ¥å¿", businessType = BusinessType.CLEAN) @DeleteMapping("/clean") public AjaxResult clean() { logininforService.cleanLoginInfo(); return success(); } @PreAuthorize("@ss.hasPermi('monitor:logininfor:unlock')") @Log(title = "è´¦æ·è§£é", businessType = BusinessType.OTHER) @GetMapping("/unlock/{userName}") public AjaxResult unlock(@PathVariable("userName") String userName) { passwordService.clearLoginRecordCache(userName); return success(); } } zhitan-admin/src/main/java/com/zhitan/web/controller/monitor/SysOperlogController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,69 @@ package com.zhitan.web.controller.monitor; import java.util.List; import javax.servlet.http.HttpServletResponse; import javax.annotation.Resource; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.zhitan.common.annotation.Log; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.page.TableDataInfo; import com.zhitan.common.enums.BusinessType; import com.zhitan.common.utils.poi.ExcelUtil; import com.zhitan.system.domain.SysOperLog; import com.zhitan.system.service.ISysOperLogService; /** * æä½æ¥å¿è®°å½ * * @author zhitan */ @RestController @RequestMapping("/monitor/operlog") public class SysOperlogController extends BaseController { @Resource private ISysOperLogService operLogService; @PreAuthorize("@ss.hasPermi('monitor:operlog:list')") @GetMapping("/list") public TableDataInfo list(SysOperLog operLog) { startPage(); List<SysOperLog> list = operLogService.selectOperLogList(operLog); return getDataTable(list); } @Log(title = "æä½æ¥å¿", businessType = BusinessType.EXPORT) @PreAuthorize("@ss.hasPermi('monitor:operlog:export')") @PostMapping("/export") public void export(HttpServletResponse response, SysOperLog operLog) { List<SysOperLog> list = operLogService.selectOperLogList(operLog); ExcelUtil<SysOperLog> util = new ExcelUtil<SysOperLog>(SysOperLog.class); util.exportExcel(response, list, "æä½æ¥å¿"); } @Log(title = "æä½æ¥å¿", businessType = BusinessType.DELETE) @PreAuthorize("@ss.hasPermi('monitor:operlog:remove')") @DeleteMapping("/{operIds}") public AjaxResult remove(@PathVariable Long[] operIds) { return toAjax(operLogService.deleteOperLogByIds(operIds)); } @Log(title = "æä½æ¥å¿", businessType = BusinessType.CLEAN) @PreAuthorize("@ss.hasPermi('monitor:operlog:remove')") @DeleteMapping("/clean") public AjaxResult clean() { operLogService.cleanOperLog(); return success(); } } zhitan-admin/src/main/java/com/zhitan/web/controller/monitor/SysUserOnlineController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,83 @@ package com.zhitan.web.controller.monitor; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; import javax.annotation.Resource; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.zhitan.common.annotation.Log; import com.zhitan.common.constant.CacheConstants; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.domain.model.LoginUser; import com.zhitan.common.core.page.TableDataInfo; import com.zhitan.common.core.redis.RedisCache; import com.zhitan.common.enums.BusinessType; import com.zhitan.common.utils.StringUtils; import com.zhitan.system.domain.SysUserOnline; import com.zhitan.system.service.ISysUserOnlineService; /** * å¨çº¿ç¨æ·çæ§ * * @author zhitan */ @RestController @RequestMapping("/monitor/online") public class SysUserOnlineController extends BaseController { @Resource private ISysUserOnlineService userOnlineService; @Resource private RedisCache redisCache; @PreAuthorize("@ss.hasPermi('monitor:online:list')") @GetMapping("/list") public TableDataInfo list(String ipaddr, String userName) { Collection<String> keys = redisCache.keys(CacheConstants.LOGIN_TOKEN_KEY + "*"); List<SysUserOnline> userOnlineList = new ArrayList<SysUserOnline>(); for (String key : keys) { LoginUser user = redisCache.getCacheObject(key); if (StringUtils.isNotEmpty(ipaddr) && StringUtils.isNotEmpty(userName)) { userOnlineList.add(userOnlineService.selectOnlineByInfo(ipaddr, userName, user)); } else if (StringUtils.isNotEmpty(ipaddr)) { userOnlineList.add(userOnlineService.selectOnlineByIpaddr(ipaddr, user)); } else if (StringUtils.isNotEmpty(userName) && StringUtils.isNotNull(user.getUser())) { userOnlineList.add(userOnlineService.selectOnlineByUserName(userName, user)); } else { userOnlineList.add(userOnlineService.loginUserToUserOnline(user)); } } Collections.reverse(userOnlineList); userOnlineList.removeAll(Collections.singleton(null)); return getDataTable(userOnlineList); } /** * 强éç¨æ· */ @PreAuthorize("@ss.hasPermi('monitor:online:forceLogout')") @Log(title = "å¨çº¿ç¨æ·", businessType = BusinessType.FORCE) @DeleteMapping("/{tokenId}") public AjaxResult forceLogout(@PathVariable String tokenId) { redisCache.deleteObject(CacheConstants.LOGIN_TOKEN_KEY + tokenId); return success(); } } zhitan-admin/src/main/java/com/zhitan/web/controller/peakvalley/ElectricityPriceController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,110 @@ package com.zhitan.web.controller.peakvalley; import com.zhitan.common.annotation.Log; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.page.TableDataInfo; import com.zhitan.common.enums.BusinessType; import com.zhitan.common.utils.poi.ExcelUtil; import com.zhitan.peakvalley.domain.ElectricityPrice; import com.zhitan.peakvalley.service.IElectricityPriceService; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.util.List; /** * ãå°å³°å¹³è°·çµä»·æç»ãController * * @author ZhiTan * @date 2024-10-10 */ @RestController @RequestMapping("/electricityprice") public class ElectricityPriceController extends BaseController { @Resource private IElectricityPriceService electricityPriceService; /** * æ¥è¯¢ãå°å³°å¹³è°·çµä»·æç»ãå表 */ @PreAuthorize("@ss.hasPermi('system:price:list')") @GetMapping("/list") public TableDataInfo list(ElectricityPrice electricityPrice) { List<ElectricityPrice> list = electricityPriceService.selectElectricityPriceList(electricityPrice); return getDataTable(list); } /** * 导åºãå°å³°å¹³è°·çµä»·æç»ãå表 */ @PreAuthorize("@ss.hasPermi('system:price:export')") @Log(title = "ãå°å³°å¹³è°·çµä»·æç»ã", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, ElectricityPrice electricityPrice) { List<ElectricityPrice> list = electricityPriceService.selectElectricityPriceList(electricityPrice); ExcelUtil<ElectricityPrice> util = new ExcelUtil<ElectricityPrice>(ElectricityPrice.class); util.exportExcel(response, list, "ãå°å³°å¹³è°·çµä»·æç»ãæ°æ®"); } /** * è·åãå°å³°å¹³è°·çµä»·æç»ã详ç»ä¿¡æ¯ */ @PreAuthorize("@ss.hasPermi('system:price:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") String id) { return success(electricityPriceService.selectElectricityPriceById(id)); } /** * æ°å¢ãå°å³°å¹³è°·çµä»·æç»ã */ @PreAuthorize("@ss.hasPermi('system:price:add')") @Log(title = "ãå°å³°å¹³è°·çµä»·æç»ã", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody ElectricityPrice electricityPrice) { return toAjax(electricityPriceService.insertElectricityPrice(electricityPrice)); } /** * ä¿®æ¹ãå°å³°å¹³è°·çµä»·æç»ã */ @PreAuthorize("@ss.hasPermi('system:price:edit')") @Log(title = "ãå°å³°å¹³è°·çµä»·æç»ã", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody ElectricityPrice electricityPrice) { return toAjax(electricityPriceService.updateElectricityPrice(electricityPrice)); } /** * å é¤ãå°å³°å¹³è°·çµä»·æç»ã */ @PreAuthorize("@ss.hasPermi('system:price:remove')") @Log(title = "ãå°å³°å¹³è°·çµä»·æç»ã", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable String[] ids) { return toAjax(electricityPriceService.deleteElectricityPriceByIds(ids)); } /** * ä¿®æ¹ãå°å³°å¹³è°·çµä»·æç»ã */ @PreAuthorize("@ss.hasPermi('system:price:edit')") @Log(title = "ãå°å³°å¹³è°·çµä»·æç»ã", businessType = BusinessType.UPDATE) @PutMapping(value = "/save") public AjaxResult saveList(@RequestBody List<ElectricityPrice> electricityPriceList) { electricityPriceService.saveList(electricityPriceList); return AjaxResult.success(); } } zhitan-admin/src/main/java/com/zhitan/web/controller/peakvalley/ElectricityPriceDateController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,100 @@ package com.zhitan.web.controller.peakvalley; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zhitan.common.annotation.Log; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.page.TableDataInfo; import com.zhitan.common.enums.BusinessType; import com.zhitan.common.utils.poi.ExcelUtil; import com.zhitan.peakvalley.domain.ElectricityPriceDate; import com.zhitan.peakvalley.service.IElectricityPriceDateService; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.util.List; /** * å°å³°å¹³è°·çµä»·æ¶é´æ®µController * * @author ZhiTan * @date 2024-10-10 */ @RestController @RequestMapping("/electricitypricedate") public class ElectricityPriceDateController extends BaseController { @Resource private IElectricityPriceDateService electricityPriceDateService; /** * æ¥è¯¢å°å³°å¹³è°·çµä»·æ¶é´æ®µå表 */ @PreAuthorize("@ss.hasPermi('system:date:list')") @GetMapping("/list") public TableDataInfo list(ElectricityPriceDate electricityPriceDate, @RequestParam Long pageNum, @RequestParam Long pageSize) { Page<ElectricityPriceDate> list = electricityPriceDateService.selectElectricityPriceDatePage(electricityPriceDate,pageNum,pageSize); return getDataTable(list); } /** * 导åºå°å³°å¹³è°·çµä»·æ¶é´æ®µå表 */ @PreAuthorize("@ss.hasPermi('system:date:export')") @Log(title = "å°å³°å¹³è°·çµä»·æ¶é´æ®µ", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, ElectricityPriceDate electricityPriceDate) { List<ElectricityPriceDate> list = electricityPriceDateService.selectElectricityPriceDateList(electricityPriceDate); ExcelUtil<ElectricityPriceDate> util = new ExcelUtil<ElectricityPriceDate>(ElectricityPriceDate.class); util.exportExcel(response, list, "å°å³°å¹³è°·çµä»·æ¶é´æ®µæ°æ®"); } /** * è·åå°å³°å¹³è°·çµä»·æ¶é´æ®µè¯¦ç»ä¿¡æ¯ */ @PreAuthorize("@ss.hasPermi('system:date:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") String id) { return success(electricityPriceDateService.selectElectricityPriceDateById(id)); } /** * æ°å¢å°å³°å¹³è°·çµä»·æ¶é´æ®µ */ @PreAuthorize("@ss.hasPermi('system:date:add')") @Log(title = "å°å³°å¹³è°·çµä»·æ¶é´æ®µ", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody ElectricityPriceDate electricityPriceDate) { return toAjax(electricityPriceDateService.insertElectricityPriceDate(electricityPriceDate)); } /** * ä¿®æ¹å°å³°å¹³è°·çµä»·æ¶é´æ®µ */ @PreAuthorize("@ss.hasPermi('system:date:edit')") @Log(title = "å°å³°å¹³è°·çµä»·æ¶é´æ®µ", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody ElectricityPriceDate electricityPriceDate) { return toAjax(electricityPriceDateService.updateElectricityPriceDate(electricityPriceDate)); } /** * å é¤å°å³°å¹³è°·çµä»·æ¶é´æ®µ */ @PreAuthorize("@ss.hasPermi('system:date:remove')") @Log(title = "å°å³°å¹³è°·çµä»·æ¶é´æ®µ", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable String[] ids) { return toAjax(electricityPriceDateService.deleteElectricityPriceDateByIds(ids)); } } zhitan-admin/src/main/java/com/zhitan/web/controller/peakvalley/PeakValleyController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,66 @@ package com.zhitan.web.controller.peakvalley; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.utils.poi.ExcelUtil; import com.zhitan.peakvalley.domain.dto.PeakValleyDTO; import com.zhitan.peakvalley.domain.vo.peakvalley.PeakValleyHourDataVO; import com.zhitan.peakvalley.service.IPeakValleyService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.util.List; /** * å°å³°å¹³è°·æ°æ®Controller * * @author ruoyi * @date 2024-06-19 */ @RestController @RequestMapping("/peakValley") @Api(tags = "å°å³°å¹³è°·æ°æ®") public class PeakValleyController extends BaseController { @Resource private IPeakValleyService rulesService; /** * è·åå°å³°å¹³è°·æ°æ®ç»è®¡ - æå°æ¶ç»è®¡ */ @GetMapping("/segmentAnalysis/hour") @ApiOperation(value = "è·åå°å³°å¹³è°·åæ¶ç»è®¡") public AjaxResult segmentAnalysisHour(PeakValleyDTO dto) { return AjaxResult.success(rulesService.segmentAnalysisHour(dto)); } /** * è·åå°å³°å¹³è°·æ°æ®ç»è®¡ - æå°æ¶ç»è®¡ */ @PostMapping("/segmentAnalysis/hour/export") @ApiOperation(value = "è·åå°å³°å¹³è°·åæ¶ç»è®¡") public void segmentAnalysisHourExport(HttpServletResponse response, PeakValleyDTO dto) { List<PeakValleyHourDataVO> list = rulesService.segmentAnalysisHourExport(dto); ExcelUtil<PeakValleyHourDataVO> util = new ExcelUtil<PeakValleyHourDataVO>(PeakValleyHourDataVO.class); util.exportExcel(response, list, "å°å³°å¹³è°·åæ¶ç»è®¡æ°æ®"); } /** * è·åå°å³°å¹³è°·æ°æ®ç»è®¡ - æå¤©ç»è®¡ */ @GetMapping("/segmentAnalysis/day") @ApiOperation(value = "è·åå°å³°å¹³è°·åæ¶ç»è®¡") public AjaxResult segmentAnalysisDay(PeakValleyDTO dto) { return AjaxResult.success(rulesService.segmentAnalysisDay(dto)); } } zhitan-admin/src/main/java/com/zhitan/web/controller/realtimedata/RealtimeDataController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,61 @@ package com.zhitan.web.controller.realtimedata; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.model.domain.EnergyIndex; import com.zhitan.model.service.IEnergyIndexService; import com.zhitan.realtimedata.domain.TagValue; import com.zhitan.realtimedata.domain.TagValueResult; import com.zhitan.realtimedata.service.RealtimeDatabaseService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @Controller @RequestMapping("/rtdb") public class RealtimeDataController extends BaseController { @Autowired private RealtimeDatabaseService realtimeDatabaseService; @Autowired private IEnergyIndexService energyIndexService; @GetMapping("/retrieve/{tagCodes}") @ResponseBody public AjaxResult getLiveData(@PathVariable("tagCodes") String[] tagCodes) { List<String> codes = new ArrayList<>(Arrays.asList(tagCodes)); List<TagValue> tagValues = realtimeDatabaseService.retrieve(codes); List<EnergyIndex> energyIndices = energyIndexService.getEnergyIndexMeterByCodes(codes); Map<String, EnergyIndex> mapValue = energyIndices.stream() .collect(Collectors.toMap(EnergyIndex::getCode, m -> m)); List<TagValueResult> results = new ArrayList<>(); if (!tagValues.isEmpty()) { tagValues.forEach(value -> { TagValueResult result = new TagValueResult(); if (mapValue.containsKey(value.getTagCode())) { EnergyIndex energyIndex = mapValue.get(value.getTagCode()); result.setTagName(energyIndex.getName()); result.setUnitId(energyIndex.getUnitId()); result.setMeteName(energyIndex.getMeterName()); } result.setTagCode(value.getTagCode()); result.setValue(value.getValue()); result.setDataTime(value.getDataTime()); result.setQuality(value.getQuality()); results.add(result); }); } return AjaxResult.success(results); } } zhitan-admin/src/main/java/com/zhitan/web/controller/realtimedata/RealtimeTrendController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,72 @@ package com.zhitan.web.controller.realtimedata; import com.zhitan.common.annotation.Log; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.enums.BusinessType; import com.zhitan.common.utils.poi.ExcelUtil; import com.zhitan.realtimedata.domain.dto.EnergyIndexMonitorDTO; import com.zhitan.realtimedata.domain.vo.EquipmentPointParametersExcel; import com.zhitan.realtimedata.domain.vo.ExportrealtimeTrendVO; import com.zhitan.realtimedata.service.RealtimeTrendService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.util.List; /** * @Description 宿¶çæµæ§å¶ç±» * * @Author zhoubg * @date 2024-10-15 **/ @RestController @RequestMapping("rtdb/realtimeTrend") @Api(value = "宿¶çæ§",tags = {"宿¶çæ§"}) public class RealtimeTrendController extends BaseController { @Autowired private RealtimeTrendService realtimeTrendService; /** * è·å模åèç¹å ³èééææ * * @return */ @GetMapping("/list") @ApiOperation(value = "è·å模åèç¹å ³èééææ ") public AjaxResult list(@Validated EnergyIndexMonitorDTO energyIndexMonitorDTO){ return AjaxResult.success(realtimeTrendService.list(energyIndexMonitorDTO)); } /** * è·åå岿¨¡åèç¹å ³èééææ æ°æ® * @param tagCode * @param dataTime * @return */ @Log(title = "è·åå岿¨¡åèç¹å ³èééææ æ°æ®", businessType = BusinessType.UPDATE) @GetMapping("/chartByDay") @ApiOperation(value = "è·åå岿¨¡åèç¹å ³èééææ æ°æ®") public AjaxResult lineList(@RequestParam String tagCode, @RequestParam String dataTime){ return AjaxResult.success(realtimeTrendService.chartByDay(tagCode,dataTime)); } /** * 导åºå®æ¶çæµExcelä¿¡æ¯ * @return */ @Log(title = "导åºå®æ¶çæµExcelä¿¡æ¯", businessType = BusinessType.EXPORT) @PostMapping("/export") @ApiOperation(value = "导åºå®æ¶çæµExcelä¿¡æ¯") public void export(HttpServletResponse response , ExportrealtimeTrendVO exportrealtimeTrendVO){ List<EquipmentPointParametersExcel> list = realtimeTrendService.export(exportrealtimeTrendVO); ExcelUtil<EquipmentPointParametersExcel> util = new ExcelUtil<EquipmentPointParametersExcel>(EquipmentPointParametersExcel.class); util.exportExcel(response,list, "宿¶çæµ"); } } zhitan-admin/src/main/java/com/zhitan/web/controller/realtimedata/SysEquipmentFileController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,103 @@ package com.zhitan.web.controller.realtimedata; import com.zhitan.common.annotation.Anonymous; import com.zhitan.common.annotation.Log; import com.zhitan.common.config.BaseConfig; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.enums.BusinessType; import com.zhitan.common.utils.file.FileUploadUtils; import com.zhitan.common.utils.uuid.UUID; import com.zhitan.realtimedata.domain.SysEquipmentFile; import com.zhitan.realtimedata.domain.SysSvgInfo; import com.zhitan.realtimedata.service.ISysEquipmentFileService; import org.apache.commons.lang3.StringUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.io.IOException; import java.util.List; /** * ææå¾Controller * * @author sys * @date 2020-02-24 */ @RestController @RequestMapping("/equipmentFile") public class SysEquipmentFileController extends BaseController { @Resource private ISysEquipmentFileService sysEquipmentFileService; /** * ä¸ä¼ å¾ï¼ä» éäºæ ¼å¼ä¸ºsvgãjpgãpngãgif * @param file * @return * @throws IOException */ @PostMapping(value = "/upload") @Log(title = "ç³»ç»å¾", businessType = BusinessType.IMPORT) public AjaxResult upload(MultipartFile file) throws IOException { if (!file.isEmpty()) { String fileSuffix = FileUploadUtils.getExtension(file); if (StringUtils.containsIgnoreCase(".svg,.jpg,.png,.gif", fileSuffix)) { //æä»¶æç»ä¿åçç»å¯¹è·¯å¾ String filePath = FileUploadUtils.upload(BaseConfig.getUploadPath(), file); return AjaxResult.success(filePath); } return AjaxResult.error("æä»¶æ ¼å¼é误"); } return AjaxResult.error("ç³»ç»å¾ä¸ä¼ 失败"); } /** * ä¿åææå¾ï¼éè¿ä¸ä¼ æä»¶è·åçå°ååèç¹ä¿åï¼å¦æå½åèç¹åå¨å¾å°åï¼æ´æ°æï¼ç´æ¥å¨SQLå æ§è¡ï¼ */ @Log(title = "ææå¾", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody SysEquipmentFile sysEquipmentfile) { try { sysEquipmentFileService.saveEquipmentFile(sysEquipmentfile); return AjaxResult.success(); } catch (Exception ex) { return AjaxResult.error(); } } /** * ä¿åé ç½®æ¥å£ï¼å æ ¹æ®èç¹æ°æ®å é¤ï¼ç¶å忰墿°æ®ï¼ç´æ¥å¨SQLå æ§è¡ï¼ * @param nodeId * @param svgInfo * @return */ @PutMapping("/setting/{nodeId}") public AjaxResult saveSetting(@PathVariable("nodeId") String nodeId, @RequestBody List<SysSvgInfo> svgInfo) { try { svgInfo.forEach(info -> info.setId(UUID.fastUUID().toString())); sysEquipmentFileService.saveSettingInfo(nodeId, svgInfo); return AjaxResult.success("ä¿åæåï¼"); } catch (Exception ex) { return AjaxResult.error("ä¿å失败ï¼"); } } /** * æ ¹æ®èç¹æ¥è¯¢åæ°åééç¹ * @param nodeId * @return */ @GetMapping("/configure/{nodeId}") public AjaxResult getConfigure(@PathVariable("nodeId") String nodeId) { try { SysEquipmentFile sysEquipmentfile = sysEquipmentFileService.getConfigure(nodeId); return AjaxResult.success(sysEquipmentfile); } catch (Exception ex) { return AjaxResult.error("æ¥è¯¢å¤±è´¥ï¼"); } } } zhitan-admin/src/main/java/com/zhitan/web/controller/system/SysConfigController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,133 @@ package com.zhitan.web.controller.system; import java.util.List; import javax.servlet.http.HttpServletResponse; import javax.annotation.Resource; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.zhitan.common.annotation.Log; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.page.TableDataInfo; import com.zhitan.common.enums.BusinessType; import com.zhitan.common.utils.poi.ExcelUtil; import com.zhitan.system.domain.SysConfig; import com.zhitan.system.service.ISysConfigService; /** * åæ°é ç½® ä¿¡æ¯æä½å¤ç * * @author zhitan */ @RestController @RequestMapping("/system/config") public class SysConfigController extends BaseController { @Resource private ISysConfigService configService; /** * è·ååæ°é ç½®å表 */ @PreAuthorize("@ss.hasPermi('system:config:list')") @GetMapping("/list") public TableDataInfo list(SysConfig config) { startPage(); List<SysConfig> list = configService.selectConfigList(config); return getDataTable(list); } @Log(title = "åæ°ç®¡ç", businessType = BusinessType.EXPORT) @PreAuthorize("@ss.hasPermi('system:config:export')") @PostMapping("/export") public void export(HttpServletResponse response, SysConfig config) { List<SysConfig> list = configService.selectConfigList(config); ExcelUtil<SysConfig> util = new ExcelUtil<SysConfig>(SysConfig.class); util.exportExcel(response, list, "åæ°æ°æ®"); } /** * æ ¹æ®åæ°ç¼å·è·å详ç»ä¿¡æ¯ */ @PreAuthorize("@ss.hasPermi('system:config:query')") @GetMapping(value = "/{configId}") public AjaxResult getInfo(@PathVariable Long configId) { return success(configService.selectConfigById(configId)); } /** * æ ¹æ®åæ°é®åæ¥è¯¢åæ°å¼ */ @GetMapping(value = "/configKey/{configKey}") public AjaxResult getConfigKey(@PathVariable String configKey) { return success(configService.selectConfigByKey(configKey)); } /** * æ°å¢åæ°é ç½® */ @PreAuthorize("@ss.hasPermi('system:config:add')") @Log(title = "åæ°ç®¡ç", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@Validated @RequestBody SysConfig config) { if (!configService.checkConfigKeyUnique(config)) { return error("æ°å¢åæ°'" + config.getConfigName() + "'失败ï¼åæ°é®åå·²åå¨"); } config.setCreateBy(getUsername()); return toAjax(configService.insertConfig(config)); } /** * ä¿®æ¹åæ°é ç½® */ @PreAuthorize("@ss.hasPermi('system:config:edit')") @Log(title = "åæ°ç®¡ç", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@Validated @RequestBody SysConfig config) { if (!configService.checkConfigKeyUnique(config)) { return error("ä¿®æ¹åæ°'" + config.getConfigName() + "'失败ï¼åæ°é®åå·²åå¨"); } config.setUpdateBy(getUsername()); return toAjax(configService.updateConfig(config)); } /** * å é¤åæ°é ç½® */ @PreAuthorize("@ss.hasPermi('system:config:remove')") @Log(title = "åæ°ç®¡ç", businessType = BusinessType.DELETE) @DeleteMapping("/{configIds}") public AjaxResult remove(@PathVariable Long[] configIds) { configService.deleteConfigByIds(configIds); return success(); } /** * å·æ°åæ°ç¼å */ @PreAuthorize("@ss.hasPermi('system:config:remove')") @Log(title = "åæ°ç®¡ç", businessType = BusinessType.CLEAN) @DeleteMapping("/refreshCache") public AjaxResult refreshCache() { configService.resetConfigCache(); return success(); } } zhitan-admin/src/main/java/com/zhitan/web/controller/system/SysDeptController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,132 @@ package com.zhitan.web.controller.system; import java.util.List; import org.apache.commons.lang3.ArrayUtils; import javax.annotation.Resource; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.zhitan.common.annotation.Log; import com.zhitan.common.constant.UserConstants; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.domain.entity.SysDept; import com.zhitan.common.enums.BusinessType; import com.zhitan.common.utils.StringUtils; import com.zhitan.system.service.ISysDeptService; /** * é¨é¨ä¿¡æ¯ * * @author zhitan */ @RestController @RequestMapping("/system/dept") public class SysDeptController extends BaseController { @Resource private ISysDeptService deptService; /** * è·åé¨é¨å表 */ @PreAuthorize("@ss.hasPermi('system:dept:list')") @GetMapping("/list") public AjaxResult list(SysDept dept) { List<SysDept> depts = deptService.selectDeptList(dept); return success(depts); } /** * æ¥è¯¢é¨é¨åè¡¨ï¼æé¤èç¹ï¼ */ @PreAuthorize("@ss.hasPermi('system:dept:list')") @GetMapping("/list/exclude/{deptId}") public AjaxResult excludeChild(@PathVariable(value = "deptId", required = false) Long deptId) { List<SysDept> depts = deptService.selectDeptList(new SysDept()); depts.removeIf(d -> d.getDeptId().intValue() == deptId || ArrayUtils.contains(StringUtils.split(d.getAncestors(), ","), deptId + "")); return success(depts); } /** * æ ¹æ®é¨é¨ç¼å·è·å详ç»ä¿¡æ¯ */ @PreAuthorize("@ss.hasPermi('system:dept:query')") @GetMapping(value = "/{deptId}") public AjaxResult getInfo(@PathVariable Long deptId) { deptService.checkDeptDataScope(deptId); return success(deptService.selectDeptById(deptId)); } /** * æ°å¢é¨é¨ */ @PreAuthorize("@ss.hasPermi('system:dept:add')") @Log(title = "é¨é¨ç®¡ç", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@Validated @RequestBody SysDept dept) { if (!deptService.checkDeptNameUnique(dept)) { return error("æ°å¢é¨é¨'" + dept.getDeptName() + "'失败ï¼é¨é¨åç§°å·²åå¨"); } dept.setCreateBy(getUsername()); return toAjax(deptService.insertDept(dept)); } /** * ä¿®æ¹é¨é¨ */ @PreAuthorize("@ss.hasPermi('system:dept:edit')") @Log(title = "é¨é¨ç®¡ç", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@Validated @RequestBody SysDept dept) { Long deptId = dept.getDeptId(); deptService.checkDeptDataScope(deptId); if (!deptService.checkDeptNameUnique(dept)) { return error("ä¿®æ¹é¨é¨'" + dept.getDeptName() + "'失败ï¼é¨é¨åç§°å·²åå¨"); } else if (dept.getParentId().equals(deptId)) { return error("ä¿®æ¹é¨é¨'" + dept.getDeptName() + "'失败ï¼ä¸çº§é¨é¨ä¸è½æ¯èªå·±"); } else if (StringUtils.equals(UserConstants.DEPT_DISABLE, dept.getStatus()) && deptService.selectNormalChildrenDeptById(deptId) > 0) { return error("该é¨é¨å 嫿ªåç¨çåé¨é¨ï¼"); } dept.setUpdateBy(getUsername()); return toAjax(deptService.updateDept(dept)); } /** * å é¤é¨é¨ */ @PreAuthorize("@ss.hasPermi('system:dept:remove')") @Log(title = "é¨é¨ç®¡ç", businessType = BusinessType.DELETE) @DeleteMapping("/{deptId}") public AjaxResult remove(@PathVariable Long deptId) { if (deptService.hasChildByDeptId(deptId)) { return warn("åå¨ä¸çº§é¨é¨,ä¸å 许å é¤"); } if (deptService.checkDeptExistUser(deptId)) { return warn("é¨é¨åå¨ç¨æ·,ä¸å 许å é¤"); } deptService.checkDeptDataScope(deptId); return toAjax(deptService.deleteDeptById(deptId)); } } zhitan-admin/src/main/java/com/zhitan/web/controller/system/SysDictDataController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,115 @@ package com.zhitan.web.controller.system; import com.zhitan.common.annotation.Log; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.domain.entity.SysDictData; import com.zhitan.common.core.page.TableDataInfo; import com.zhitan.common.enums.BusinessType; import com.zhitan.common.utils.StringUtils; import com.zhitan.common.utils.poi.ExcelUtil; import com.zhitan.system.service.ISysDictDataService; import com.zhitan.system.service.ISysDictTypeService; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.List; /** * æ°æ®åå ¸ä¿¡æ¯ * * @author zhitan */ @RestController @RequestMapping("/system/dict/data") public class SysDictDataController extends BaseController { @Resource private ISysDictDataService dictDataService; @Resource private ISysDictTypeService dictTypeService; @PreAuthorize("@ss.hasPermi('system:dict:list')") @GetMapping("/list") public TableDataInfo list(SysDictData dictData) { startPage(); List<SysDictData> list = dictDataService.selectDictDataList(dictData); return getDataTable(list); } @Log(title = "åå ¸æ°æ®", businessType = BusinessType.EXPORT) @PreAuthorize("@ss.hasPermi('system:dict:export')") @PostMapping("/export") public void export(HttpServletResponse response, SysDictData dictData) { List<SysDictData> list = dictDataService.selectDictDataList(dictData); ExcelUtil<SysDictData> util = new ExcelUtil<SysDictData>(SysDictData.class); util.exportExcel(response, list, "åå ¸æ°æ®"); } /** * æ¥è¯¢åå ¸æ°æ®è¯¦ç» */ @PreAuthorize("@ss.hasPermi('system:dict:query')") @GetMapping(value = "/{dictCode}") public AjaxResult getInfo(@PathVariable Long dictCode) { return success(dictDataService.selectDictDataById(dictCode)); } /** * æ ¹æ®åå ¸ç±»åæ¥è¯¢åå ¸æ°æ®ä¿¡æ¯ */ @GetMapping(value = "/type/{dictType}") public AjaxResult dictType(@PathVariable String dictType) { List<SysDictData> data = dictTypeService.selectDictDataByType(dictType); if (StringUtils.isNull(data)) { data = new ArrayList<SysDictData>(); } return success(data); } /** * æ°å¢åå ¸ç±»å */ @PreAuthorize("@ss.hasPermi('system:dict:add')") @Log(title = "åå ¸æ°æ®", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@Validated @RequestBody SysDictData dict) { dict.setCreateBy(getUsername()); return toAjax(dictDataService.insertDictData(dict)); } /** * ä¿®æ¹ä¿ååå ¸ç±»å */ @PreAuthorize("@ss.hasPermi('system:dict:edit')") @Log(title = "åå ¸æ°æ®", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@Validated @RequestBody SysDictData dict) { dict.setUpdateBy(getUsername()); return toAjax(dictDataService.updateDictData(dict)); } /** * å é¤åå ¸ç±»å */ @PreAuthorize("@ss.hasPermi('system:dict:remove')") @Log(title = "åå ¸ç±»å", businessType = BusinessType.DELETE) @DeleteMapping("/{dictCodes}") public AjaxResult remove(@PathVariable Long[] dictCodes) { dictDataService.deleteDictDataByIds(dictCodes); return success(); } } zhitan-admin/src/main/java/com/zhitan/web/controller/system/SysDictTypeController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,125 @@ package com.zhitan.web.controller.system; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zhitan.common.annotation.Log; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.domain.entity.SysDictType; import com.zhitan.common.core.page.TableDataInfo; import com.zhitan.common.enums.BusinessType; import com.zhitan.common.utils.poi.ExcelUtil; import com.zhitan.system.service.ISysDictTypeService; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.util.List; /** * æ°æ®åå ¸ä¿¡æ¯ * * @author zhitan */ @RestController @RequestMapping("/system/dict/type") public class SysDictTypeController extends BaseController { @Resource private ISysDictTypeService dictTypeService; @PreAuthorize("@ss.hasPermi('system:dict:list')") @GetMapping("/list") public TableDataInfo list(SysDictType dictType, @RequestParam Long pageNum, @RequestParam Long pageSize) { Page<SysDictType> list = dictTypeService.selectDictTypePageList(dictType,pageNum,pageSize); return getDataTable(list); } @Log(title = "åå ¸ç±»å", businessType = BusinessType.EXPORT) @PreAuthorize("@ss.hasPermi('system:dict:export')") @PostMapping("/export") public void export(HttpServletResponse response, SysDictType dictType) { List<SysDictType> list = dictTypeService.selectDictTypeList(dictType); ExcelUtil<SysDictType> util = new ExcelUtil<SysDictType>(SysDictType.class); util.exportExcel(response, list, "åå ¸ç±»å"); } /** * æ¥è¯¢åå ¸ç±»åè¯¦ç» */ @PreAuthorize("@ss.hasPermi('system:dict:query')") @GetMapping(value = "/{dictId}") public AjaxResult getInfo(@PathVariable Long dictId) { return success(dictTypeService.selectDictTypeById(dictId)); } /** * æ°å¢åå ¸ç±»å */ @PreAuthorize("@ss.hasPermi('system:dict:add')") @Log(title = "åå ¸ç±»å", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@Validated @RequestBody SysDictType dict) { if (!dictTypeService.checkDictTypeUnique(dict)) { return error("æ°å¢åå ¸'" + dict.getDictName() + "'失败ï¼åå ¸ç±»åå·²åå¨"); } dict.setCreateBy(getUsername()); return toAjax(dictTypeService.insertDictType(dict)); } /** * ä¿®æ¹åå ¸ç±»å */ @PreAuthorize("@ss.hasPermi('system:dict:edit')") @Log(title = "åå ¸ç±»å", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@Validated @RequestBody SysDictType dict) { if (!dictTypeService.checkDictTypeUnique(dict)) { return error("ä¿®æ¹åå ¸'" + dict.getDictName() + "'失败ï¼åå ¸ç±»åå·²åå¨"); } dict.setUpdateBy(getUsername()); return toAjax(dictTypeService.updateDictType(dict)); } /** * å é¤åå ¸ç±»å */ @PreAuthorize("@ss.hasPermi('system:dict:remove')") @Log(title = "åå ¸ç±»å", businessType = BusinessType.DELETE) @DeleteMapping("/{dictIds}") public AjaxResult remove(@PathVariable Long[] dictIds) { dictTypeService.deleteDictTypeByIds(dictIds); return success(); } /** * å·æ°åå ¸ç¼å */ @PreAuthorize("@ss.hasPermi('system:dict:remove')") @Log(title = "åå ¸ç±»å", businessType = BusinessType.CLEAN) @DeleteMapping("/refreshCache") public AjaxResult refreshCache() { dictTypeService.resetDictCache(); return success(); } /** * è·ååå ¸éæ©æ¡å表 */ @GetMapping("/optionselect") public AjaxResult optionselect() { List<SysDictType> dictTypes = dictTypeService.selectDictTypeAll(); return success(dictTypes); } } zhitan-admin/src/main/java/com/zhitan/web/controller/system/SysIndexController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,30 @@ package com.zhitan.web.controller.system; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.zhitan.common.config.BaseConfig; import com.zhitan.common.utils.StringUtils; import javax.annotation.Resource; /** * é¦é¡µ * * @author zhitan */ @RestController public class SysIndexController { /** ç³»ç»åºç¡é ç½® */ @Resource private BaseConfig baseConfig; /** * 访é®é¦é¡µï¼æç¤ºè¯ */ @RequestMapping("/") public String index() { return StringUtils.format("欢è¿ä½¿ç¨{}åå°ç®¡çæ¡æ¶ï¼å½åçæ¬ï¼v{}ï¼è¯·éè¿å端å°å访é®ã", baseConfig.getName(), baseConfig.getVersion()); } } zhitan-admin/src/main/java/com/zhitan/web/controller/system/SysLoginController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,86 @@ package com.zhitan.web.controller.system; import java.util.List; import java.util.Set; import javax.annotation.Resource; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import com.zhitan.common.constant.Constants; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.domain.entity.SysMenu; import com.zhitan.common.core.domain.entity.SysUser; import com.zhitan.common.core.domain.model.LoginBody; import com.zhitan.common.utils.SecurityUtils; import com.zhitan.framework.web.service.SysLoginService; import com.zhitan.framework.web.service.SysPermissionService; import com.zhitan.system.service.ISysMenuService; /** * ç»å½éªè¯ * * @author zhitan */ @RestController public class SysLoginController { @Resource private SysLoginService loginService; @Resource private ISysMenuService menuService; @Resource private SysPermissionService permissionService; /** * ç»å½æ¹æ³ * * @param loginBody ç»å½ä¿¡æ¯ * @return ç»æ */ @PostMapping("/login") public AjaxResult login(@RequestBody LoginBody loginBody) { AjaxResult ajax = AjaxResult.success(); // çæä»¤ç String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(), loginBody.getUuid()); ajax.put(Constants.TOKEN, token); return ajax; } /** * è·åç¨æ·ä¿¡æ¯ * * @return ç¨æ·ä¿¡æ¯ */ @GetMapping("getInfo") public AjaxResult getInfo() { SysUser user = SecurityUtils.getLoginUser().getUser(); // è§è²éå Set<String> roles = permissionService.getRolePermission(user); // æééå Set<String> permissions = permissionService.getMenuPermission(user); AjaxResult ajax = AjaxResult.success(); ajax.put("user", user); ajax.put("roles", roles); ajax.put("permissions", permissions); return ajax; } /** * è·åè·¯ç±ä¿¡æ¯ * * @return è·¯ç±ä¿¡æ¯ */ @GetMapping("getRouters") public AjaxResult getRouters() { Long userId = SecurityUtils.getUserId(); List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId); return AjaxResult.success(menuService.buildMenus(menus)); } } zhitan-admin/src/main/java/com/zhitan/web/controller/system/SysMenuController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,142 @@ package com.zhitan.web.controller.system; import java.util.List; import javax.annotation.Resource; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.zhitan.common.annotation.Log; import com.zhitan.common.constant.UserConstants; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.domain.entity.SysMenu; import com.zhitan.common.enums.BusinessType; import com.zhitan.common.utils.StringUtils; import com.zhitan.system.service.ISysMenuService; /** * èåä¿¡æ¯ * * @author zhitan */ @RestController @RequestMapping("/system/menu") public class SysMenuController extends BaseController { @Resource private ISysMenuService menuService; /** * è·åèåå表 */ @PreAuthorize("@ss.hasPermi('system:menu:list')") @GetMapping("/list") public AjaxResult list(SysMenu menu) { List<SysMenu> menus = menuService.selectMenuList(menu, getUserId()); return success(menus); } /** * æ ¹æ®èåç¼å·è·å详ç»ä¿¡æ¯ */ @PreAuthorize("@ss.hasPermi('system:menu:query')") @GetMapping(value = "/{menuId}") public AjaxResult getInfo(@PathVariable Long menuId) { return success(menuService.selectMenuById(menuId)); } /** * è·åèå䏿æ å表 */ @GetMapping("/treeselect") public AjaxResult treeselect(SysMenu menu) { List<SysMenu> menus = menuService.selectMenuList(menu, getUserId()); return success(menuService.buildMenuTreeSelect(menus)); } /** * å 载对åºè§è²èåå表æ */ @GetMapping(value = "/roleMenuTreeselect/{roleId}") public AjaxResult roleMenuTreeselect(@PathVariable("roleId") Long roleId) { List<SysMenu> menus = menuService.selectMenuList(getUserId()); AjaxResult ajax = AjaxResult.success(); ajax.put("checkedKeys", menuService.selectMenuListByRoleId(roleId)); ajax.put("menus", menuService.buildMenuTreeSelect(menus)); return ajax; } /** * æ°å¢èå */ @PreAuthorize("@ss.hasPermi('system:menu:add')") @Log(title = "èå管ç", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@Validated @RequestBody SysMenu menu) { if (!menuService.checkMenuNameUnique(menu)) { return error("æ°å¢èå'" + menu.getMenuName() + "'失败ï¼èååç§°å·²åå¨"); } else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath())) { return error("æ°å¢èå'" + menu.getMenuName() + "'失败ï¼å°åå¿ é¡»ä»¥http(s)://å¼å¤´"); } menu.setCreateBy(getUsername()); return toAjax(menuService.insertMenu(menu)); } /** * ä¿®æ¹èå */ @PreAuthorize("@ss.hasPermi('system:menu:edit')") @Log(title = "èå管ç", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@Validated @RequestBody SysMenu menu) { if (!menuService.checkMenuNameUnique(menu)) { return error("ä¿®æ¹èå'" + menu.getMenuName() + "'失败ï¼èååç§°å·²åå¨"); } else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath())) { return error("ä¿®æ¹èå'" + menu.getMenuName() + "'失败ï¼å°åå¿ é¡»ä»¥http(s)://å¼å¤´"); } else if (menu.getMenuId().equals(menu.getParentId())) { return error("ä¿®æ¹èå'" + menu.getMenuName() + "'失败ï¼ä¸çº§èåä¸è½éæ©èªå·±"); } menu.setUpdateBy(getUsername()); return toAjax(menuService.updateMenu(menu)); } /** * å é¤èå */ @PreAuthorize("@ss.hasPermi('system:menu:remove')") @Log(title = "èå管ç", businessType = BusinessType.DELETE) @DeleteMapping("/{menuId}") public AjaxResult remove(@PathVariable("menuId") Long menuId) { if (menuService.hasChildByMenuId(menuId)) { return warn("åå¨åèå,ä¸å 许å é¤"); } if (menuService.checkMenuExistRole(menuId)) { return warn("èåå·²åé ,ä¸å 许å é¤"); } return toAjax(menuService.deleteMenuById(menuId)); } } zhitan-admin/src/main/java/com/zhitan/web/controller/system/SysNameConfigController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,48 @@ package com.zhitan.web.controller.system; import com.zhitan.common.annotation.Anonymous; import com.zhitan.common.annotation.Log; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.enums.BusinessType; import com.zhitan.system.domain.SysNameConfig; import com.zhitan.system.service.ISysNameConfigService; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; /** * ç³»ç»åç§°é ç½®Controller * * @author ZhiTan * @date 2024-11-05 */ @RestController @RequestMapping("/system/nameconfig") public class SysNameConfigController extends BaseController { @Resource private ISysNameConfigService sysNameConfigService; /** * æ°å¢ç³»ç»åç§°é ç½® */ @Log(title = "ç³»ç»åç§°é ç½®", businessType = BusinessType.INSERT) @PostMapping public AjaxResult save(@RequestBody SysNameConfig sysNameConfig) { return toAjax(sysNameConfigService.saveOrUpdate(sysNameConfig)); } /** * æ°å¢ç³»ç»åç§°é ç½® */ @GetMapping @Anonymous public AjaxResult getSysNameConfig() { return AjaxResult.success(sysNameConfigService.getSysNameConfig()); } } zhitan-admin/src/main/java/com/zhitan/web/controller/system/SysNoticeController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,91 @@ package com.zhitan.web.controller.system; import java.util.List; import javax.annotation.Resource; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.zhitan.common.annotation.Log; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.page.TableDataInfo; import com.zhitan.common.enums.BusinessType; import com.zhitan.system.domain.SysNotice; import com.zhitan.system.service.ISysNoticeService; /** * å ¬å ä¿¡æ¯æä½å¤ç * * @author zhitan */ @RestController @RequestMapping("/system/notice") public class SysNoticeController extends BaseController { @Resource private ISysNoticeService noticeService; /** * è·åéç¥å ¬åå表 */ @PreAuthorize("@ss.hasPermi('system:notice:list')") @GetMapping("/list") public TableDataInfo list(SysNotice notice) { startPage(); List<SysNotice> list = noticeService.selectNoticeList(notice); return getDataTable(list); } /** * æ ¹æ®éç¥å ¬åç¼å·è·å详ç»ä¿¡æ¯ */ @PreAuthorize("@ss.hasPermi('system:notice:query')") @GetMapping(value = "/{noticeId}") public AjaxResult getInfo(@PathVariable Long noticeId) { return success(noticeService.selectNoticeById(noticeId)); } /** * æ°å¢éç¥å ¬å */ @PreAuthorize("@ss.hasPermi('system:notice:add')") @Log(title = "éç¥å ¬å", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@Validated @RequestBody SysNotice notice) { notice.setCreateBy(getUsername()); return toAjax(noticeService.insertNotice(notice)); } /** * ä¿®æ¹éç¥å ¬å */ @PreAuthorize("@ss.hasPermi('system:notice:edit')") @Log(title = "éç¥å ¬å", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@Validated @RequestBody SysNotice notice) { notice.setUpdateBy(getUsername()); return toAjax(noticeService.updateNotice(notice)); } /** * å é¤éç¥å ¬å */ @PreAuthorize("@ss.hasPermi('system:notice:remove')") @Log(title = "éç¥å ¬å", businessType = BusinessType.DELETE) @DeleteMapping("/{noticeIds}") public AjaxResult remove(@PathVariable Long[] noticeIds) { return toAjax(noticeService.deleteNoticeByIds(noticeIds)); } } zhitan-admin/src/main/java/com/zhitan/web/controller/system/SysPostController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,129 @@ package com.zhitan.web.controller.system; import java.util.List; import javax.servlet.http.HttpServletResponse; import javax.annotation.Resource; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.zhitan.common.annotation.Log; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.page.TableDataInfo; import com.zhitan.common.enums.BusinessType; import com.zhitan.common.utils.poi.ExcelUtil; import com.zhitan.system.domain.SysPost; import com.zhitan.system.service.ISysPostService; /** * å²ä½ä¿¡æ¯æä½å¤ç * * @author zhitan */ @RestController @RequestMapping("/system/post") public class SysPostController extends BaseController { @Resource private ISysPostService postService; /** * è·åå²ä½å表 */ @PreAuthorize("@ss.hasPermi('system:post:list')") @GetMapping("/list") public TableDataInfo list(SysPost post) { startPage(); List<SysPost> list = postService.selectPostList(post); return getDataTable(list); } @Log(title = "å²ä½ç®¡ç", businessType = BusinessType.EXPORT) @PreAuthorize("@ss.hasPermi('system:post:export')") @PostMapping("/export") public void export(HttpServletResponse response, SysPost post) { List<SysPost> list = postService.selectPostList(post); ExcelUtil<SysPost> util = new ExcelUtil<SysPost>(SysPost.class); util.exportExcel(response, list, "å²ä½æ°æ®"); } /** * æ ¹æ®å²ä½ç¼å·è·å详ç»ä¿¡æ¯ */ @PreAuthorize("@ss.hasPermi('system:post:query')") @GetMapping(value = "/{postId}") public AjaxResult getInfo(@PathVariable Long postId) { return success(postService.selectPostById(postId)); } /** * æ°å¢å²ä½ */ @PreAuthorize("@ss.hasPermi('system:post:add')") @Log(title = "å²ä½ç®¡ç", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@Validated @RequestBody SysPost post) { if (!postService.checkPostNameUnique(post)) { return error("æ°å¢å²ä½'" + post.getPostName() + "'失败ï¼å²ä½åç§°å·²åå¨"); } else if (!postService.checkPostCodeUnique(post)) { return error("æ°å¢å²ä½'" + post.getPostName() + "'失败ï¼å²ä½ç¼ç å·²åå¨"); } post.setCreateBy(getUsername()); return toAjax(postService.insertPost(post)); } /** * ä¿®æ¹å²ä½ */ @PreAuthorize("@ss.hasPermi('system:post:edit')") @Log(title = "å²ä½ç®¡ç", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@Validated @RequestBody SysPost post) { if (!postService.checkPostNameUnique(post)) { return error("ä¿®æ¹å²ä½'" + post.getPostName() + "'失败ï¼å²ä½åç§°å·²åå¨"); } else if (!postService.checkPostCodeUnique(post)) { return error("ä¿®æ¹å²ä½'" + post.getPostName() + "'失败ï¼å²ä½ç¼ç å·²åå¨"); } post.setUpdateBy(getUsername()); return toAjax(postService.updatePost(post)); } /** * å é¤å²ä½ */ @PreAuthorize("@ss.hasPermi('system:post:remove')") @Log(title = "å²ä½ç®¡ç", businessType = BusinessType.DELETE) @DeleteMapping("/{postIds}") public AjaxResult remove(@PathVariable Long[] postIds) { return toAjax(postService.deletePostByIds(postIds)); } /** * è·åå²ä½éæ©æ¡å表 */ @GetMapping("/optionselect") public AjaxResult optionselect() { List<SysPost> posts = postService.selectPostAll(); return success(posts); } } zhitan-admin/src/main/java/com/zhitan/web/controller/system/SysProfileController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,138 @@ package com.zhitan.web.controller.system; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import com.zhitan.common.annotation.Log; import com.zhitan.common.config.BaseConfig; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.domain.entity.SysUser; import com.zhitan.common.core.domain.model.LoginUser; import com.zhitan.common.enums.BusinessType; import com.zhitan.common.utils.SecurityUtils; import com.zhitan.common.utils.StringUtils; import com.zhitan.common.utils.file.FileUploadUtils; import com.zhitan.common.utils.file.MimeTypeUtils; import com.zhitan.framework.web.service.TokenService; import com.zhitan.system.service.ISysUserService; import javax.annotation.Resource; /** * ä¸ªäººä¿¡æ¯ ä¸å¡å¤ç * * @author zhitan */ @RestController @RequestMapping("/system/user/profile") public class SysProfileController extends BaseController { @Resource private ISysUserService userService; @Resource private TokenService tokenService; /** * ä¸ªäººä¿¡æ¯ */ @GetMapping public AjaxResult profile() { LoginUser loginUser = getLoginUser(); SysUser user = loginUser.getUser(); AjaxResult ajax = AjaxResult.success(user); ajax.put("roleGroup", userService.selectUserRoleGroup(loginUser.getUsername())); ajax.put("postGroup", userService.selectUserPostGroup(loginUser.getUsername())); return ajax; } /** * ä¿®æ¹ç¨æ· */ @Log(title = "个人信æ¯", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult updateProfile(@RequestBody SysUser user) { LoginUser loginUser = getLoginUser(); SysUser currentUser = loginUser.getUser(); currentUser.setNickName(user.getNickName()); currentUser.setEmail(user.getEmail()); currentUser.setPhoneNumber(user.getPhoneNumber()); currentUser.setSex(user.getSex()); if (StringUtils.isNotEmpty(user.getPhoneNumber()) && !userService.checkPhoneUnique(currentUser)) { return error("ä¿®æ¹ç¨æ·'" + loginUser.getUsername() + "'å¤±è´¥ï¼ææºå·ç å·²åå¨"); } if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(currentUser)) { return error("ä¿®æ¹ç¨æ·'" + loginUser.getUsername() + "'失败ï¼é®ç®±è´¦å·å·²åå¨"); } if (userService.updateUserProfile(currentUser) > 0) { // æ´æ°ç¼åç¨æ·ä¿¡æ¯ tokenService.setLoginUser(loginUser); return success(); } return error("ä¿®æ¹ä¸ªäººä¿¡æ¯å¼å¸¸ï¼è¯·è系管çå"); } /** * éç½®å¯ç */ @Log(title = "个人信æ¯", businessType = BusinessType.UPDATE) @PutMapping("/updatePwd") public AjaxResult updatePwd(String oldPassword, String newPassword) { LoginUser loginUser = getLoginUser(); String userName = loginUser.getUsername(); String password = loginUser.getPassword(); if (!SecurityUtils.matchesPassword(oldPassword, password)) { return error("ä¿®æ¹å¯ç å¤±è´¥ï¼æ§å¯ç é误"); } if (SecurityUtils.matchesPassword(newPassword, password)) { return error("æ°å¯ç ä¸è½ä¸æ§å¯ç ç¸å"); } newPassword = SecurityUtils.encryptPassword(newPassword); if (userService.resetUserPwd(userName, newPassword) > 0) { // æ´æ°ç¼åç¨æ·å¯ç loginUser.getUser().setPassword(newPassword); tokenService.setLoginUser(loginUser); return success(); } return error("ä¿®æ¹å¯ç å¼å¸¸ï¼è¯·è系管çå"); } /** * 头åä¸ä¼ */ @Log(title = "ç¨æ·å¤´å", businessType = BusinessType.UPDATE) @PostMapping("/avatar") public AjaxResult avatar(@RequestParam("avatarfile") MultipartFile file) throws Exception { if (!file.isEmpty()) { LoginUser loginUser = getLoginUser(); String avatar = FileUploadUtils.upload(BaseConfig.getAvatarPath(), file, MimeTypeUtils.IMAGE_EXTENSION); if (userService.updateUserAvatar(loginUser.getUsername(), avatar)) { AjaxResult ajax = AjaxResult.success(); ajax.put("imgUrl", avatar); // æ´æ°ç¼åç¨æ·å¤´å loginUser.getUser().setAvatar(avatar); tokenService.setLoginUser(loginUser); return ajax; } } return error("ä¸ä¼ å¾çå¼å¸¸ï¼è¯·è系管çå"); } } zhitan-admin/src/main/java/com/zhitan/web/controller/system/SysRegisterController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,38 @@ package com.zhitan.web.controller.system; import javax.annotation.Resource; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.domain.model.RegisterBody; import com.zhitan.common.utils.StringUtils; import com.zhitan.framework.web.service.SysRegisterService; import com.zhitan.system.service.ISysConfigService; /** * 注åéªè¯ * * @author zhitan */ @RestController public class SysRegisterController extends BaseController { @Resource private SysRegisterService registerService; @Resource private ISysConfigService configService; @PostMapping("/register") public AjaxResult register(@RequestBody RegisterBody user) { if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) { return error("å½åç³»ç»æ²¡æå¼å¯æ³¨ååè½ï¼"); } String msg = registerService.register(user); return StringUtils.isEmpty(msg) ? success() : error(msg); } } zhitan-admin/src/main/java/com/zhitan/web/controller/system/SysRoleController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,262 @@ package com.zhitan.web.controller.system; import java.util.List; import javax.servlet.http.HttpServletResponse; import javax.annotation.Resource; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.zhitan.common.annotation.Log; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.domain.entity.SysDept; import com.zhitan.common.core.domain.entity.SysRole; import com.zhitan.common.core.domain.entity.SysUser; import com.zhitan.common.core.domain.model.LoginUser; import com.zhitan.common.core.page.TableDataInfo; import com.zhitan.common.enums.BusinessType; import com.zhitan.common.utils.StringUtils; import com.zhitan.common.utils.poi.ExcelUtil; import com.zhitan.framework.web.service.SysPermissionService; import com.zhitan.framework.web.service.TokenService; import com.zhitan.system.domain.SysUserRole; import com.zhitan.system.service.ISysDeptService; import com.zhitan.system.service.ISysRoleService; import com.zhitan.system.service.ISysUserService; /** * è§è²ä¿¡æ¯ * * @author zhitan */ @RestController @RequestMapping("/system/role") public class SysRoleController extends BaseController { @Resource private ISysRoleService roleService; @Resource private TokenService tokenService; @Resource private SysPermissionService permissionService; @Resource private ISysUserService userService; @Resource private ISysDeptService deptService; @PreAuthorize("@ss.hasPermi('system:role:list')") @GetMapping("/list") public TableDataInfo list(SysRole role) { startPage(); List<SysRole> list = roleService.selectRoleList(role); return getDataTable(list); } @Log(title = "è§è²ç®¡ç", businessType = BusinessType.EXPORT) @PreAuthorize("@ss.hasPermi('system:role:export')") @PostMapping("/export") public void export(HttpServletResponse response, SysRole role) { List<SysRole> list = roleService.selectRoleList(role); ExcelUtil<SysRole> util = new ExcelUtil<SysRole>(SysRole.class); util.exportExcel(response, list, "è§è²æ°æ®"); } /** * æ ¹æ®è§è²ç¼å·è·å详ç»ä¿¡æ¯ */ @PreAuthorize("@ss.hasPermi('system:role:query')") @GetMapping(value = "/{roleId}") public AjaxResult getInfo(@PathVariable Long roleId) { roleService.checkRoleDataScope(roleId); return success(roleService.selectRoleById(roleId)); } /** * æ°å¢è§è² */ @PreAuthorize("@ss.hasPermi('system:role:add')") @Log(title = "è§è²ç®¡ç", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@Validated @RequestBody SysRole role) { if (!roleService.checkRoleNameUnique(role)) { return error("æ°å¢è§è²'" + role.getRoleName() + "'失败ï¼è§è²åç§°å·²åå¨"); } else if (!roleService.checkRoleKeyUnique(role)) { return error("æ°å¢è§è²'" + role.getRoleName() + "'失败ï¼è§è²æéå·²åå¨"); } role.setCreateBy(getUsername()); return toAjax(roleService.insertRole(role)); } /** * ä¿®æ¹ä¿åè§è² */ @PreAuthorize("@ss.hasPermi('system:role:edit')") @Log(title = "è§è²ç®¡ç", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@Validated @RequestBody SysRole role) { roleService.checkRoleAllowed(role); roleService.checkRoleDataScope(role.getRoleId()); if (!roleService.checkRoleNameUnique(role)) { return error("ä¿®æ¹è§è²'" + role.getRoleName() + "'失败ï¼è§è²åç§°å·²åå¨"); } else if (!roleService.checkRoleKeyUnique(role)) { return error("ä¿®æ¹è§è²'" + role.getRoleName() + "'失败ï¼è§è²æéå·²åå¨"); } role.setUpdateBy(getUsername()); if (roleService.updateRole(role) > 0) { // æ´æ°ç¼åç¨æ·æé LoginUser loginUser = getLoginUser(); if (StringUtils.isNotNull(loginUser.getUser()) && !loginUser.getUser().isAdmin()) { loginUser.setPermissions(permissionService.getMenuPermission(loginUser.getUser())); loginUser.setUser(userService.selectUserByUserName(loginUser.getUser().getUserName())); tokenService.setLoginUser(loginUser); } return success(); } return error("ä¿®æ¹è§è²'" + role.getRoleName() + "'失败ï¼è¯·è系管çå"); } /** * ä¿®æ¹ä¿åæ°æ®æé */ @PreAuthorize("@ss.hasPermi('system:role:edit')") @Log(title = "è§è²ç®¡ç", businessType = BusinessType.UPDATE) @PutMapping("/dataScope") public AjaxResult dataScope(@RequestBody SysRole role) { roleService.checkRoleAllowed(role); roleService.checkRoleDataScope(role.getRoleId()); return toAjax(roleService.authDataScope(role)); } /** * ç¶æä¿®æ¹ */ @PreAuthorize("@ss.hasPermi('system:role:edit')") @Log(title = "è§è²ç®¡ç", businessType = BusinessType.UPDATE) @PutMapping("/changeStatus") public AjaxResult changeStatus(@RequestBody SysRole role) { roleService.checkRoleAllowed(role); roleService.checkRoleDataScope(role.getRoleId()); role.setUpdateBy(getUsername()); return toAjax(roleService.updateRoleStatus(role)); } /** * å é¤è§è² */ @PreAuthorize("@ss.hasPermi('system:role:remove')") @Log(title = "è§è²ç®¡ç", businessType = BusinessType.DELETE) @DeleteMapping("/{roleIds}") public AjaxResult remove(@PathVariable Long[] roleIds) { return toAjax(roleService.deleteRoleByIds(roleIds)); } /** * è·åè§è²éæ©æ¡å表 */ @PreAuthorize("@ss.hasPermi('system:role:query')") @GetMapping("/optionselect") public AjaxResult optionselect() { return success(roleService.selectRoleAll()); } /** * æ¥è¯¢å·²åé ç¨æ·è§è²å表 */ @PreAuthorize("@ss.hasPermi('system:role:list')") @GetMapping("/authUser/allocatedList") public TableDataInfo allocatedList(SysUser user) { startPage(); List<SysUser> list = userService.selectAllocatedList(user); return getDataTable(list); } /** * æ¥è¯¢æªåé ç¨æ·è§è²å表 */ @PreAuthorize("@ss.hasPermi('system:role:list')") @GetMapping("/authUser/unallocatedList") public TableDataInfo unallocatedList(SysUser user) { startPage(); List<SysUser> list = userService.selectUnallocatedList(user); return getDataTable(list); } /** * åæ¶ææç¨æ· */ @PreAuthorize("@ss.hasPermi('system:role:edit')") @Log(title = "è§è²ç®¡ç", businessType = BusinessType.GRANT) @PutMapping("/authUser/cancel") public AjaxResult cancelAuthUser(@RequestBody SysUserRole userRole) { return toAjax(roleService.deleteAuthUser(userRole)); } /** * æ¹éåæ¶ææç¨æ· */ @PreAuthorize("@ss.hasPermi('system:role:edit')") @Log(title = "è§è²ç®¡ç", businessType = BusinessType.GRANT) @PutMapping("/authUser/cancelAll") public AjaxResult cancelAuthUserAll(Long roleId, Long[] userIds) { return toAjax(roleService.deleteAuthUsers(roleId, userIds)); } /** * æ¹ééæ©ç¨æ·ææ */ @PreAuthorize("@ss.hasPermi('system:role:edit')") @Log(title = "è§è²ç®¡ç", businessType = BusinessType.GRANT) @PutMapping("/authUser/selectAll") public AjaxResult selectAuthUserAll(Long roleId, Long[] userIds) { roleService.checkRoleDataScope(roleId); return toAjax(roleService.insertAuthUsers(roleId, userIds)); } /** * è·å对åºè§è²é¨é¨æ å表 */ @PreAuthorize("@ss.hasPermi('system:role:query')") @GetMapping(value = "/deptTree/{roleId}") public AjaxResult deptTree(@PathVariable("roleId") Long roleId) { AjaxResult ajax = AjaxResult.success(); ajax.put("checkedKeys", deptService.selectDeptListByRoleId(roleId)); ajax.put("depts", deptService.selectDeptTreeList(new SysDept())); return ajax; } } zhitan-admin/src/main/java/com/zhitan/web/controller/system/SysUserController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,251 @@ package com.zhitan.web.controller.system; import java.util.List; import java.util.stream.Collectors; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang3.ArrayUtils; import javax.annotation.Resource; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import com.zhitan.common.annotation.Log; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.domain.entity.SysDept; import com.zhitan.common.core.domain.entity.SysRole; import com.zhitan.common.core.domain.entity.SysUser; import com.zhitan.common.core.page.TableDataInfo; import com.zhitan.common.enums.BusinessType; import com.zhitan.common.utils.SecurityUtils; import com.zhitan.common.utils.StringUtils; import com.zhitan.common.utils.poi.ExcelUtil; import com.zhitan.system.service.ISysDeptService; import com.zhitan.system.service.ISysPostService; import com.zhitan.system.service.ISysRoleService; import com.zhitan.system.service.ISysUserService; /** * ç¨æ·ä¿¡æ¯ * * @author zhitan */ @RestController @RequestMapping("/system/user") public class SysUserController extends BaseController { @Resource private ISysUserService userService; @Resource private ISysRoleService roleService; @Resource private ISysDeptService deptService; @Resource private ISysPostService postService; /** * è·åç¨æ·å表 */ @PreAuthorize("@ss.hasPermi('system:user:list')") @GetMapping("/list") public TableDataInfo list(SysUser user) { startPage(); List<SysUser> list = userService.selectUserList(user); return getDataTable(list); } @Log(title = "ç¨æ·ç®¡ç", businessType = BusinessType.EXPORT) @PreAuthorize("@ss.hasPermi('system:user:export')") @PostMapping("/export") public void export(HttpServletResponse response, SysUser user) { List<SysUser> list = userService.selectUserList(user); ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class); util.exportExcel(response, list, "ç¨æ·æ°æ®"); } @Log(title = "ç¨æ·ç®¡ç", businessType = BusinessType.IMPORT) @PreAuthorize("@ss.hasPermi('system:user:import')") @PostMapping("/importData") public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception { ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class); List<SysUser> userList = util.importExcel(file.getInputStream()); String operName = getUsername(); String message = userService.importUser(userList, updateSupport, operName); return success(message); } @PostMapping("/importTemplate") public void importTemplate(HttpServletResponse response) { ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class); util.importTemplateExcel(response, "ç¨æ·æ°æ®"); } /** * æ ¹æ®ç¨æ·ç¼å·è·å详ç»ä¿¡æ¯ */ @PreAuthorize("@ss.hasPermi('system:user:query')") @GetMapping(value = { "/", "/{userId}" }) public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId) { userService.checkUserDataScope(userId); AjaxResult ajax = AjaxResult.success(); List<SysRole> roles = roleService.selectRoleAll(); ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); ajax.put("posts", postService.selectPostAll()); if (StringUtils.isNotNull(userId)) { SysUser sysUser = userService.selectUserById(userId); ajax.put(AjaxResult.DATA_TAG, sysUser); ajax.put("postIds", postService.selectPostListByUserId(userId)); ajax.put("roleIds", sysUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList())); } return ajax; } /** * æ°å¢ç¨æ· */ @PreAuthorize("@ss.hasPermi('system:user:add')") @Log(title = "ç¨æ·ç®¡ç", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@Validated @RequestBody SysUser user) { if (!userService.checkUserNameUnique(user)) { return error("æ°å¢ç¨æ·'" + user.getUserName() + "'失败ï¼ç»å½è´¦å·å·²åå¨"); } else if (StringUtils.isNotEmpty(user.getPhoneNumber()) && !userService.checkPhoneUnique(user)) { return error("æ°å¢ç¨æ·'" + user.getUserName() + "'å¤±è´¥ï¼ææºå·ç å·²åå¨"); } else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) { return error("æ°å¢ç¨æ·'" + user.getUserName() + "'失败ï¼é®ç®±è´¦å·å·²åå¨"); } user.setCreateBy(getUsername()); user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); return toAjax(userService.insertUser(user)); } /** * ä¿®æ¹ç¨æ· */ @PreAuthorize("@ss.hasPermi('system:user:edit')") @Log(title = "ç¨æ·ç®¡ç", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@Validated @RequestBody SysUser user) { userService.checkUserAllowed(user); userService.checkUserDataScope(user.getUserId()); if (!userService.checkUserNameUnique(user)) { return error("ä¿®æ¹ç¨æ·'" + user.getUserName() + "'失败ï¼ç»å½è´¦å·å·²åå¨"); } else if (StringUtils.isNotEmpty(user.getPhoneNumber()) && !userService.checkPhoneUnique(user)) { return error("ä¿®æ¹ç¨æ·'" + user.getUserName() + "'å¤±è´¥ï¼ææºå·ç å·²åå¨"); } else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) { return error("ä¿®æ¹ç¨æ·'" + user.getUserName() + "'失败ï¼é®ç®±è´¦å·å·²åå¨"); } user.setUpdateBy(getUsername()); return toAjax(userService.updateUser(user)); } /** * å é¤ç¨æ· */ @PreAuthorize("@ss.hasPermi('system:user:remove')") @Log(title = "ç¨æ·ç®¡ç", businessType = BusinessType.DELETE) @DeleteMapping("/{userIds}") public AjaxResult remove(@PathVariable Long[] userIds) { if (ArrayUtils.contains(userIds, getUserId())) { return error("å½åç¨æ·ä¸è½å é¤"); } return toAjax(userService.deleteUserByIds(userIds)); } /** * éç½®å¯ç */ @PreAuthorize("@ss.hasPermi('system:user:resetPwd')") @Log(title = "ç¨æ·ç®¡ç", businessType = BusinessType.UPDATE) @PutMapping("/resetPwd") public AjaxResult resetPwd(@RequestBody SysUser user) { userService.checkUserAllowed(user); userService.checkUserDataScope(user.getUserId()); user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); user.setUpdateBy(getUsername()); return toAjax(userService.resetPwd(user)); } /** * ç¶æä¿®æ¹ */ @PreAuthorize("@ss.hasPermi('system:user:edit')") @Log(title = "ç¨æ·ç®¡ç", businessType = BusinessType.UPDATE) @PutMapping("/changeStatus") public AjaxResult changeStatus(@RequestBody SysUser user) { userService.checkUserAllowed(user); userService.checkUserDataScope(user.getUserId()); user.setUpdateBy(getUsername()); return toAjax(userService.updateUserStatus(user)); } /** * æ ¹æ®ç¨æ·ç¼å·è·åææè§è² */ @PreAuthorize("@ss.hasPermi('system:user:query')") @GetMapping("/authRole/{userId}") public AjaxResult authRole(@PathVariable("userId") Long userId) { AjaxResult ajax = AjaxResult.success(); SysUser user = userService.selectUserById(userId); List<SysRole> roles = roleService.selectRolesByUserId(userId); ajax.put("user", user); ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); return ajax; } /** * ç¨æ·ææè§è² */ @PreAuthorize("@ss.hasPermi('system:user:edit')") @Log(title = "ç¨æ·ç®¡ç", businessType = BusinessType.GRANT) @PutMapping("/authRole") public AjaxResult insertAuthRole(Long userId, Long[] roleIds) { userService.checkUserDataScope(userId); userService.insertUserAuth(userId, roleIds); return success(); } /** * è·åé¨é¨æ å表 */ @PreAuthorize("@ss.hasPermi('system:user:list')") @GetMapping("/deptTree") public AjaxResult deptTree(SysDept dept) { return success(deptService.selectDeptTreeList(dept)); } } zhitan-admin/src/main/java/com/zhitan/web/controller/tool/TestController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,183 @@ package com.zhitan.web.controller.tool; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.R; import com.zhitan.common.utils.StringUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiOperation; /** * swagger ç¨æ·æµè¯æ¹æ³ * * @author zhitan */ @Api("ç¨æ·ä¿¡æ¯ç®¡ç") @RestController @RequestMapping("/test/user") public class TestController extends BaseController { private final static Map<Integer, UserEntity> users = new LinkedHashMap<Integer, UserEntity>(); { users.put(1, new UserEntity(1, "admin", "admin123", "15888888888")); users.put(2, new UserEntity(2, "ry", "admin123", "15666666666")); } @ApiOperation("è·åç¨æ·å表") @GetMapping("/list") public R<List<UserEntity>> userList() { List<UserEntity> userList = new ArrayList<UserEntity>(users.values()); return R.ok(userList); } @ApiOperation("è·åç¨æ·è¯¦ç»") @ApiImplicitParam(name = "userId", value = "ç¨æ·ID", required = true, dataType = "int", paramType = "path", dataTypeClass = Integer.class) @GetMapping("/{userId}") public R<UserEntity> getUser(@PathVariable Integer userId) { if (!users.isEmpty() && users.containsKey(userId)) { return R.ok(users.get(userId)); } else { return R.fail("ç¨æ·ä¸åå¨"); } } @ApiOperation("æ°å¢ç¨æ·") @ApiImplicitParams({ @ApiImplicitParam(name = "userId", value = "ç¨æ·id", dataType = "Integer", dataTypeClass = Integer.class), @ApiImplicitParam(name = "username", value = "ç¨æ·åç§°", dataType = "String", dataTypeClass = String.class), @ApiImplicitParam(name = "password", value = "ç¨æ·å¯ç ", dataType = "String", dataTypeClass = String.class), @ApiImplicitParam(name = "mobile", value = "ç¨æ·ææº", dataType = "String", dataTypeClass = String.class) }) @PostMapping("/save") public R<String> save(UserEntity user) { if (StringUtils.isNull(user) || StringUtils.isNull(user.getUserId())) { return R.fail("ç¨æ·IDä¸è½ä¸ºç©º"); } users.put(user.getUserId(), user); return R.ok(); } @ApiOperation("æ´æ°ç¨æ·") @PutMapping("/update") public R<String> update(@RequestBody UserEntity user) { if (StringUtils.isNull(user) || StringUtils.isNull(user.getUserId())) { return R.fail("ç¨æ·IDä¸è½ä¸ºç©º"); } if (users.isEmpty() || !users.containsKey(user.getUserId())) { return R.fail("ç¨æ·ä¸åå¨"); } users.remove(user.getUserId()); users.put(user.getUserId(), user); return R.ok(); } @ApiOperation("å é¤ç¨æ·ä¿¡æ¯") @ApiImplicitParam(name = "userId", value = "ç¨æ·ID", required = true, dataType = "int", paramType = "path", dataTypeClass = Integer.class) @DeleteMapping("/{userId}") public R<String> delete(@PathVariable Integer userId) { if (!users.isEmpty() && users.containsKey(userId)) { users.remove(userId); return R.ok(); } else { return R.fail("ç¨æ·ä¸åå¨"); } } } @ApiModel(value = "UserEntity", description = "ç¨æ·å®ä½") class UserEntity { @ApiModelProperty("ç¨æ·ID") private Integer userId; @ApiModelProperty("ç¨æ·åç§°") private String username; @ApiModelProperty("ç¨æ·å¯ç ") private String password; @ApiModelProperty("ç¨æ·ææº") private String mobile; public UserEntity() { } public UserEntity(Integer userId, String username, String password, String mobile) { this.userId = userId; this.username = username; this.password = password; this.mobile = mobile; } public Integer getUserId() { return userId; } public void setUserId(Integer userId) { this.userId = userId; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getMobile() { return mobile; } public void setMobile(String mobile) { this.mobile = mobile; } } zhitan-admin/src/main/java/com/zhitan/web/core/config/SwaggerConfig.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,127 @@ package com.zhitan.web.core.config; import java.util.ArrayList; import java.util.List; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import com.zhitan.common.config.BaseConfig; import io.swagger.annotations.ApiOperation; import io.swagger.models.auth.In; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.service.ApiKey; import springfox.documentation.service.AuthorizationScope; import springfox.documentation.service.Contact; import springfox.documentation.service.SecurityReference; import springfox.documentation.service.SecurityScheme; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spi.service.contexts.SecurityContext; import springfox.documentation.spring.web.plugins.Docket; import javax.annotation.Resource; /** * Swagger2çæ¥å£é ç½® * * @author zhitan */ @Configuration public class SwaggerConfig { /** * ç³»ç»åºç¡é ç½® */ @Resource private BaseConfig baseConfig; /** * æ¯å¦å¼å¯swagger */ @Value("${swagger.enabled}") private boolean enabled; /** * 设置请æ±çç»ä¸åç¼ */ @Value("${swagger.pathMapping}") private String pathMapping; /** * å建API */ @Bean public Docket createRestApi() { return new Docket(DocumentationType.OAS_30) // æ¯å¦å¯ç¨Swagger .enable(enabled) // ç¨æ¥å建该APIçåºæ¬ä¿¡æ¯ï¼å±ç¤ºå¨ææ¡£ç页é¢ä¸ï¼èªå®ä¹å±ç¤ºçä¿¡æ¯ï¼ .apiInfo(apiInfo()) // 设置åªäºæ¥å£æ´é²ç»Swaggerå±ç¤º .select() // æ«æææææ³¨è§£çapiï¼ç¨è¿ç§æ¹å¼æ´çµæ´» .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) // æ«ææå®å ä¸çswagger注解 // .apis(RequestHandlerSelectors.basePackage("com.zhitan.project.tool.swagger")) // æ«æææ .apis(RequestHandlerSelectors.any()) .paths(PathSelectors.any()) .build() /* 设置å®å ¨æ¨¡å¼ï¼swaggerå¯ä»¥è®¾ç½®è®¿é®token */ .securitySchemes(securitySchemes()) .securityContexts(securityContexts()) .pathMapping(pathMapping); } /** * å®å ¨æ¨¡å¼ï¼è¿éæå®tokenéè¿Authorization头请æ±å¤´ä¼ é */ private List<SecurityScheme> securitySchemes() { List<SecurityScheme> apiKeyList = new ArrayList<SecurityScheme>(); apiKeyList.add(new ApiKey("Authorization", "Authorization", In.HEADER.toValue())); return apiKeyList; } /** * å®å ¨ä¸ä¸æ */ private List<SecurityContext> securityContexts() { List<SecurityContext> securityContexts = new ArrayList<>(); securityContexts.add( SecurityContext.builder() .securityReferences(defaultAuth()) .operationSelector(o -> o.requestMappingPattern().matches("/.*")) .build()); return securityContexts; } /** * é»è®¤çå®å ¨ä¸å¼ç¨ */ private List<SecurityReference> defaultAuth() { AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything"); AuthorizationScope[] authorizationScopes = new AuthorizationScope[1]; authorizationScopes[0] = authorizationScope; List<SecurityReference> securityReferences = new ArrayList<>(); securityReferences.add(new SecurityReference("Authorization", authorizationScopes)); return securityReferences; } /** * æ·»å æè¦ä¿¡æ¯ */ private ApiInfo apiInfo() { // ç¨ApiInfoBuilderè¿è¡å®å¶ return new ApiInfoBuilder() // 设置æ é¢ .title("æ é¢:åå°ç®¡çç³»ç»_æ¥å£ææ¡£") // æè¿° .description("æè¿°:æ¥å£ææ¡£") // ä½è ä¿¡æ¯ .contact(new Contact(baseConfig.getName(), null, null)) // çæ¬ .version("çæ¬å·:" + baseConfig.getVersion()) .build(); } } zhitan-admin/src/main/resources/META-INF/spring-devtools.properties
¶Ô±ÈÐÂÎļþ @@ -0,0 +1 @@ restart.include.json=/com.alibaba.fastjson2.*.jar zhitan-admin/src/main/resources/application-dev.yml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,61 @@ # æ°æ®æºé ç½® spring: datasource: type: com.alibaba.druid.pool.DruidDataSource driverClassName: org.postgresql.Driver druid: # ä¸»åºæ°æ®æº master: url: jdbc:postgresql://127.0.0.1:5432/energy username: root password: 123456 # ä»åºæ°æ®æº slave: # 仿°æ®æºå¼å ³/é»è®¤å ³é enabled: false url: username: password: # åå§è¿æ¥æ° initialSize: 5 # æå°è¿æ¥æ± æ°é minIdle: 10 # æå¤§è¿æ¥æ± æ°é maxActive: 20 # é ç½®è·åè¿æ¥çå¾ è¶ æ¶çæ¶é´ maxWait: 60000 # é ç½®è¿æ¥è¶ æ¶æ¶é´ connectTimeout: 30000 # é ç½®ç½ç»è¶ æ¶æ¶é´ socketTimeout: 60000 # é ç½®é´éå¤ä¹ æè¿è¡ä¸æ¬¡æ£æµï¼æ£æµéè¦å ³éç空é²è¿æ¥ï¼å使¯æ¯«ç§ timeBetweenEvictionRunsMillis: 60000 # é ç½®ä¸ä¸ªè¿æ¥å¨æ± 䏿å°çåçæ¶é´ï¼å使¯æ¯«ç§ minEvictableIdleTimeMillis: 300000 # é ç½®ä¸ä¸ªè¿æ¥å¨æ± 䏿大çåçæ¶é´ï¼å使¯æ¯«ç§ maxEvictableIdleTimeMillis: 900000 # é ç½®æ£æµè¿æ¥æ¯å¦ææ validationQuery: SELECT 1 testWhileIdle: true testOnBorrow: false testOnReturn: false webStatFilter: enabled: true statViewServlet: enabled: true # 设置ç½ååï¼ä¸å¡«åå 许ææè®¿é® allow: url-pattern: /druid/* # æ§å¶å°ç®¡çç¨æ·ååå¯ç login-username: admin login-password: 123456 filter: stat: enabled: true # æ ¢SQLè®°å½ log-slow-sql: true slow-sql-millis: 1000 merge-sql: true wall: config: multi-statement-allow: true zhitan-admin/src/main/resources/application-prod.yml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,61 @@ # æ°æ®æºé ç½® spring: datasource: type: com.alibaba.druid.pool.DruidDataSource driverClassName: org.postgresql.Driver druid: # ä¸»åºæ°æ®æº master: url: jdbc:postgresql://127.0.0.1:5432/energy username: root password: 123456 # ä»åºæ°æ®æº slave: # 仿°æ®æºå¼å ³/é»è®¤å ³é enabled: false url: username: password: # åå§è¿æ¥æ° initialSize: 5 # æå°è¿æ¥æ± æ°é minIdle: 10 # æå¤§è¿æ¥æ± æ°é maxActive: 20 # é ç½®è·åè¿æ¥çå¾ è¶ æ¶çæ¶é´ maxWait: 60000 # é ç½®è¿æ¥è¶ æ¶æ¶é´ connectTimeout: 30000 # é ç½®ç½ç»è¶ æ¶æ¶é´ socketTimeout: 60000 # é ç½®é´éå¤ä¹ æè¿è¡ä¸æ¬¡æ£æµï¼æ£æµéè¦å ³éç空é²è¿æ¥ï¼å使¯æ¯«ç§ timeBetweenEvictionRunsMillis: 60000 # é ç½®ä¸ä¸ªè¿æ¥å¨æ± 䏿å°çåçæ¶é´ï¼å使¯æ¯«ç§ minEvictableIdleTimeMillis: 300000 # é ç½®ä¸ä¸ªè¿æ¥å¨æ± 䏿大çåçæ¶é´ï¼å使¯æ¯«ç§ maxEvictableIdleTimeMillis: 900000 # é ç½®æ£æµè¿æ¥æ¯å¦ææ validationQuery: SELECT 1 FROM DUAL testWhileIdle: true testOnBorrow: false testOnReturn: false webStatFilter: enabled: true statViewServlet: enabled: true # 设置ç½ååï¼ä¸å¡«åå 许ææè®¿é® allow: url-pattern: /druid/* # æ§å¶å°ç®¡çç¨æ·ååå¯ç login-username: admin login-password: 123456 filter: stat: enabled: true # æ ¢SQLè®°å½ log-slow-sql: true slow-sql-millis: 1000 merge-sql: true wall: config: multi-statement-allow: true zhitan-admin/src/main/resources/application.yml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,172 @@ # 项ç®ç¸å ³é ç½® base: # åç§° name: admin # çæ¬ version: 3.8.7 # çæå¹´ä»½ copyrightYear: 2024 profile: ./uploadPath # è·åipå°åå¼å ³ addressEnabled: true # éªè¯ç ç±»å math æ°åè®¡ç® char å符éªè¯ captchaType: math # å¼åç¯å¢é ç½® server: # æå¡å¨çHTTP端å£ï¼é»è®¤ä¸º8080 port: 8080 servlet: # åºç¨ç访é®è·¯å¾ context-path: / # undertow é ç½® undertow: # HTTP postå 容çæå¤§å¤§å°ãå½å¼ä¸º-1æ¶ï¼é»è®¤å¼ä¸ºå¤§å°æ¯æ éç max-http-post-size: -1 # 以ä¸çé ç½®ä¼å½±åbuffer,è¿äºbufferä¼ç¨äºæå¡å¨è¿æ¥çIOæä½,æç¹ç±»ä¼¼nettyçæ± åå å管ç # æ¯åbufferç空é´å¤§å°,è¶å°ç空é´è¢«å©ç¨è¶å å buffer-size: 512 # æ¯å¦åé çç´æ¥å å direct-buffers: true threads: # 设置IOçº¿ç¨æ°, å®ä¸»è¦æ§è¡éé»å¡çä»»å¡,å®ä»¬ä¼è´è´£å¤ä¸ªè¿æ¥, é»è®¤è®¾ç½®æ¯ä¸ªCPUæ ¸å¿ä¸ä¸ªçº¿ç¨ io: 8 # é»å¡ä»»å¡çº¿ç¨æ± , 彿§è¡ç±»ä¼¼servlet请æ±é»å¡æä½, undertowä¼ä»è¿ä¸ªçº¿ç¨æ± ä¸åå¾çº¿ç¨,å®çå¼è®¾ç½®åå³äºç³»ç»çè´è½½ worker: 256 # æ¥å¿é ç½® logging: level: com.zhitan: debug org.springframework: warn # ç¨æ·é ç½® user: password: # å¯ç æå¤§éè¯¯æ¬¡æ° maxRetryCount: 5 # å¯ç é宿¶é´ï¼é»è®¤10åéï¼ lockTime: 10 # Springé ç½® spring: # èµæºä¿¡æ¯ messages: # å½é åèµæºæä»¶è·¯å¾ basename: i18n/messages profiles: active: @profileActive@ # æä»¶ä¸ä¼ servlet: multipart: # å个æä»¶å¤§å° max-file-size: 10MB # 设置æ»ä¸ä¼ çæä»¶å¤§å° max-request-size: 20MB # æå¡æ¨¡å devtools: restart: # çé¨ç½²å¼å ³ enabled: true # redis é ç½® redis: # å°å host: localhost # 端å£ï¼é»è®¤ä¸º6379 port: 6379 # æ°æ®åºç´¢å¼ database: 0 # å¯ç password: # è¿æ¥è¶ æ¶æ¶é´ timeout: 10s lettuce: pool: # è¿æ¥æ± ä¸çæå°ç©ºé²è¿æ¥ min-idle: 0 # è¿æ¥æ± ä¸çæå¤§ç©ºé²è¿æ¥ max-idle: 8 # è¿æ¥æ± çæå¤§æ°æ®åºè¿æ¥æ° max-active: 8 # #è¿æ¥æ± æå¤§é»å¡çå¾ æ¶é´ï¼ä½¿ç¨è´å¼è¡¨ç¤ºæ²¡æéå¶ï¼ max-wait: -1ms # tokené ç½® token: # 令çèªå®ä¹æ è¯ header: Authorization # 令çå¯é¥ secret: abcdefghijklmnopqrstuvwxyzzhitancloud # ä»¤çæææï¼é»è®¤30åéï¼ expireTime: 300 mybatis-plus: # configuration: # log-impl: org.apache.ibatis.logging.stdout.StdOutImpl typeAliasesPackage: com.zhitan.**.domain mapperLocations: classpath*:mapper/**/*Mapper.xml # å è½½å ¨å±çé ç½®æä»¶ configLocation: classpath:mybatis/mybatis-config.xml # PageHelperå页æä»¶ pagehelper: helperDialect: PostgreSQL reasonable: true supportMethodsArguments: true params: count=countSql maxPageSize: 500 # Swaggeré ç½® swagger: # æ¯å¦å¼å¯swagger enabled: true # 请æ±åç¼ pathMapping: /dev-api # 鲿¢XSSæ»å» xss: # è¿æ»¤å¼å ³ enabled: true # æé¤é¾æ¥ï¼å¤ä¸ªç¨éå·åéï¼ excludes: /system/notice # å¹é 龿¥ urlPatterns: /system/*,/monitor/*,/tool/* # Shiro shiro: session: # åä¸ä¸ªç¨æ·æå¤§ä¼è¯æ°ï¼æ¯å¦2çæææ¯åä¸ä¸ªè´¦å·å 许æå¤åæ¶ä¸¤ä¸ªäººç»å½ï¼é»è®¤-1ä¸éå¶ï¼ maxSession: 1 # 踢åºä¹åç»å½ç/ä¹åç»å½çç¨æ·ï¼é»è®¤è¸¢åºä¹åç»å½çç¨æ· kickoutAfter: false rtdb: host: http://127.0.0.1:8086 token: == org: org bucket: bucket ###################### MQTT ################################# mqtt: # æå¡å¨å°å host: tcp://127.0.0.1:1883 # IDå¯ä¸ clientId: MQTT_WK # ä¸»é¢ å¤ä¸ªä¸»é¢ç¨éå·(,)åå² #表示è¿ä¸ªä¸»é¢ä¸é¢ææï¼topic1,topic2,topic2/topic22/#(é»è®¤ä¼å第ä¸ä¸ªä¸»é¢) topics: topic1 # ç¨æ·å username: admin # å¯ç password: 111111 # è¿æ¥è¶ æ¶ timeout: 30 # å¿è·³æ£æµ keepalive: 60 # å¯¹æ¶æ¯å¤ççå ç§æºå¶ã # 0 è¡¨ç¤ºçæ¯è®¢é è æ²¡æ¶å°æ¶æ¯ä¸ä¼å次åéï¼æ¶æ¯ä¼ä¸¢å¤± # 1 è¡¨ç¤ºçæ¯ä¼å°è¯éè¯ï¼ä¸ç´å°æ¥æ¶å°æ¶æ¯ï¼ä½è¿ç§æ åµå¯è½å¯¼è´è®¢é è æ¶å°å¤æ¬¡é夿¶æ¯ # 2 å¤äºä¸æ¬¡å»éçå¨ä½ï¼ç¡®ä¿è®¢é è æ¶å°çæ¶æ¯æä¸æ¬¡ qos: 1 # falseä¸ºå»ºç«æä¹ ä¼è¯ cleanSession: false # æå¼åéæ°è¿æ¥ automaticReconnect: true zhitan-admin/src/main/resources/banner.txt
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,24 @@ Application Version: ${zhitan.version} Spring Boot Version: ${spring-boot.version} //////////////////////////////////////////////////////////////////// // _ooOoo_ // // o8888888o // // 88" . "88 // // (| ^_^ |) // // O\ = /O // // ____/`---'\____ // // .' \\| |// `. // // / \\||| : |||// \ // // / _||||| -:- |||||- \ // // | | \\\ - /// | | // // | \_| ''\---/'' | | // // \ .-\__ `-` ___/-. / // // ___`. .' /--.--\ `. . ___ // // ."" '< `.___\_<|>_/___.' >'"". // // | | : `- \`.;`\ _ /`;.`/ - ` : | | // // \ \ `-. \_ __\ /__ _/ .-` / / // // ========`-.____`-.___\_____/___.-`____.-'======== // // `=---=' // // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // // ä½ç¥ä¿ä½ æ°¸ä¸å®æº æ°¸æ BUG // //////////////////////////////////////////////////////////////////// zhitan-admin/src/main/resources/i18n/messages.properties
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,38 @@ #éè¯¯æ¶æ¯ not.null=* å¿ é¡»å¡«å user.jcaptcha.error=éªè¯ç é误 user.jcaptcha.expire=éªè¯ç 已失æ user.not.exists=ç¨æ·ä¸åå¨/å¯ç é误 user.password.not.match=ç¨æ·ä¸åå¨/å¯ç é误 user.password.retry.limit.count=å¯ç è¾å ¥é误{0}次 user.password.retry.limit.exceed=å¯ç è¾å ¥é误{0}次ï¼å¸æ·éå®{1}åé user.password.delete=对ä¸èµ·ï¼æ¨çè´¦å·å·²è¢«å é¤ user.blocked=ç¨æ·å·²å°ç¦ï¼è¯·è系管çå role.blocked=è§è²å·²å°ç¦ï¼è¯·è系管çå login.blocked=å¾éæ¾ï¼è®¿é®IP已被åå ¥ç³»ç»é»åå user.logout.success=éåºæå length.not.valid=é¿åº¦å¿ é¡»å¨{min}å°{max}个å符ä¹é´ user.username.not.valid=* 2å°20个æ±åãåæ¯ãæ°åæä¸åçº¿ç»æï¼ä¸å¿ 须以鿰åå¼å¤´ user.password.not.valid=* 5-50个å符 user.email.not.valid=é®ç®±æ ¼å¼é误 user.mobile.phone.number.not.valid=ææºå·æ ¼å¼é误 user.login.success=ç»å½æå user.register.success=注åæå user.notfound=è¯·éæ°ç»å½ user.forcelogout=管çå强å¶éåºï¼è¯·éæ°ç»å½ user.unknown.error=æªç¥é误ï¼è¯·éæ°ç»å½ ##æä»¶ä¸ä¼ æ¶æ¯ upload.exceed.maxSize=ä¸ä¼ çæä»¶å¤§å°è¶ åºéå¶çæä»¶å¤§å°ï¼<br/>å 许çæä»¶æå¤§å¤§å°æ¯ï¼{0}MBï¼ upload.filename.exceed.length=ä¸ä¼ çæä»¶åæé¿{0}个å符 ##æé no.permission=æ¨æ²¡ææ°æ®çæéï¼è¯·è系管çåæ·»å æé [{0}] no.create.permission=æ¨æ²¡æåå»ºæ°æ®çæéï¼è¯·è系管çåæ·»å æé [{0}] no.update.permission=æ¨æ²¡æä¿®æ¹æ°æ®çæéï¼è¯·è系管çåæ·»å æé [{0}] no.delete.permission=æ¨æ²¡æå 餿°æ®çæéï¼è¯·è系管çåæ·»å æé [{0}] no.export.permission=æ¨æ²¡æå¯¼åºæ°æ®çæéï¼è¯·è系管çåæ·»å æé [{0}] no.view.permission=æ¨æ²¡ææ¥çæ°æ®çæéï¼è¯·è系管çåæ·»å æé [{0}] zhitan-admin/src/main/resources/logback.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,93 @@ <?xml version="1.0" encoding="UTF-8"?> <configuration> <!-- æ¥å¿åæ¾è·¯å¾ --> <property name="log.path" value="./logs" /> <!-- æ¥å¿è¾åºæ ¼å¼ --> <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" /> <!-- æ§å¶å°è¾åº --> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>${log.pattern}</pattern> </encoder> </appender> <!-- ç³»ç»æ¥å¿è¾åº --> <appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${log.path}/sys-info.log</file> <!-- å¾ªç¯æ¿çï¼åºäºæ¶é´å建æ¥å¿æä»¶ --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- æ¥å¿æä»¶åæ ¼å¼ --> <fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.log</fileNamePattern> <!-- æ¥å¿æå¤§çåå² 60天 --> <maxHistory>60</maxHistory> </rollingPolicy> <encoder> <pattern>${log.pattern}</pattern> </encoder> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <!-- è¿æ»¤ççº§å« --> <level>INFO</level> <!-- å¹é æ¶çæä½ï¼æ¥æ¶ï¼è®°å½ï¼ --> <onMatch>ACCEPT</onMatch> <!-- ä¸å¹é æ¶çæä½ï¼æç»ï¼ä¸è®°å½ï¼ --> <onMismatch>DENY</onMismatch> </filter> </appender> <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${log.path}/sys-error.log</file> <!-- å¾ªç¯æ¿çï¼åºäºæ¶é´å建æ¥å¿æä»¶ --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- æ¥å¿æä»¶åæ ¼å¼ --> <fileNamePattern>${log.path}/sys-error.%d{yyyy-MM-dd}.log</fileNamePattern> <!-- æ¥å¿æå¤§çåå² 60天 --> <maxHistory>60</maxHistory> </rollingPolicy> <encoder> <pattern>${log.pattern}</pattern> </encoder> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <!-- è¿æ»¤ççº§å« --> <level>ERROR</level> <!-- å¹é æ¶çæä½ï¼æ¥æ¶ï¼è®°å½ï¼ --> <onMatch>ACCEPT</onMatch> <!-- ä¸å¹é æ¶çæä½ï¼æç»ï¼ä¸è®°å½ï¼ --> <onMismatch>DENY</onMismatch> </filter> </appender> <!-- ç¨æ·è®¿é®æ¥å¿è¾åº --> <appender name="sys-user" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${log.path}/sys-user.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- æå¤©åæ» daily --> <fileNamePattern>${log.path}/sys-user.%d{yyyy-MM-dd}.log</fileNamePattern> <!-- æ¥å¿æå¤§çåå² 60天 --> <maxHistory>60</maxHistory> </rollingPolicy> <encoder> <pattern>${log.pattern}</pattern> </encoder> </appender> <!-- ç³»ç»æ¨¡åæ¥å¿çº§å«æ§å¶ --> <logger name="com.zhitan" level="info" /> <!-- Springæ¥å¿çº§å«æ§å¶ --> <logger name="org.springframework" level="warn" /> <root level="info"> <appender-ref ref="console" /> </root> <!--ç³»ç»æä½æ¥å¿--> <root level="info"> <appender-ref ref="file_info" /> <appender-ref ref="file_error" /> </root> <!--ç³»ç»ç¨æ·æä½æ¥å¿--> <logger name="sys-user" level="info"> <appender-ref ref="sys-user"/> </logger> </configuration> zhitan-admin/src/main/resources/mybatis/mybatis-config.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,20 @@ <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!-- å ¨å±åæ° --> <settings> <!-- ä½¿å ¨å±çæ å°å¨å¯ç¨æç¦ç¨ç¼å --> <setting name="cacheEnabled" value="true"/> <!-- å 许JDBC æ¯æèªå¨çæä¸»é® --> <setting name="useGeneratedKeys" value="true"/> <!-- é ç½®é»è®¤çæ§è¡å¨.SIMPLEå°±æ¯æ®éæ§è¡å¨;REUSEæ§è¡å¨ä¼éç¨é¢å¤çè¯å¥(prepared statements);BATCHæ§è¡å¨å°éç¨è¯å¥å¹¶æ§è¡æ¹éæ´æ° --> <setting name="defaultExecutorType" value="SIMPLE"/> <!-- æå® MyBatis æç¨æ¥å¿çå ·ä½å®ç° --> <setting name="logImpl" value="SLF4J"/> <!-- 使ç¨é©¼å³°å½åæ³è½¬æ¢å段 --> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings> </configuration> zhitan-admin/target/classes/META-INF/spring-devtools.properties
¶Ô±ÈÐÂÎļþ @@ -0,0 +1 @@ restart.include.json=/com.alibaba.fastjson2.*.jar zhitan-admin/target/classes/application-dev.yml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,61 @@ # æ°æ®æºé ç½® spring: datasource: type: com.alibaba.druid.pool.DruidDataSource driverClassName: org.postgresql.Driver druid: # ä¸»åºæ°æ®æº master: url: jdbc:postgresql://127.0.0.1:5432/energy username: root password: 123456 # ä»åºæ°æ®æº slave: # 仿°æ®æºå¼å ³/é»è®¤å ³é enabled: false url: username: password: # åå§è¿æ¥æ° initialSize: 5 # æå°è¿æ¥æ± æ°é minIdle: 10 # æå¤§è¿æ¥æ± æ°é maxActive: 20 # é ç½®è·åè¿æ¥çå¾ è¶ æ¶çæ¶é´ maxWait: 60000 # é ç½®è¿æ¥è¶ æ¶æ¶é´ connectTimeout: 30000 # é ç½®ç½ç»è¶ æ¶æ¶é´ socketTimeout: 60000 # é ç½®é´éå¤ä¹ æè¿è¡ä¸æ¬¡æ£æµï¼æ£æµéè¦å ³éç空é²è¿æ¥ï¼å使¯æ¯«ç§ timeBetweenEvictionRunsMillis: 60000 # é ç½®ä¸ä¸ªè¿æ¥å¨æ± 䏿å°çåçæ¶é´ï¼å使¯æ¯«ç§ minEvictableIdleTimeMillis: 300000 # é ç½®ä¸ä¸ªè¿æ¥å¨æ± 䏿大çåçæ¶é´ï¼å使¯æ¯«ç§ maxEvictableIdleTimeMillis: 900000 # é ç½®æ£æµè¿æ¥æ¯å¦ææ validationQuery: SELECT 1 testWhileIdle: true testOnBorrow: false testOnReturn: false webStatFilter: enabled: true statViewServlet: enabled: true # 设置ç½ååï¼ä¸å¡«åå 许ææè®¿é® allow: url-pattern: /druid/* # æ§å¶å°ç®¡çç¨æ·ååå¯ç login-username: admin login-password: 123456 filter: stat: enabled: true # æ ¢SQLè®°å½ log-slow-sql: true slow-sql-millis: 1000 merge-sql: true wall: config: multi-statement-allow: true zhitan-admin/target/classes/application-prod.yml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,61 @@ # æ°æ®æºé ç½® spring: datasource: type: com.alibaba.druid.pool.DruidDataSource driverClassName: org.postgresql.Driver druid: # ä¸»åºæ°æ®æº master: url: jdbc:postgresql://127.0.0.1:5432/energy username: root password: 123456 # ä»åºæ°æ®æº slave: # 仿°æ®æºå¼å ³/é»è®¤å ³é enabled: false url: username: password: # åå§è¿æ¥æ° initialSize: 5 # æå°è¿æ¥æ± æ°é minIdle: 10 # æå¤§è¿æ¥æ± æ°é maxActive: 20 # é ç½®è·åè¿æ¥çå¾ è¶ æ¶çæ¶é´ maxWait: 60000 # é ç½®è¿æ¥è¶ æ¶æ¶é´ connectTimeout: 30000 # é ç½®ç½ç»è¶ æ¶æ¶é´ socketTimeout: 60000 # é ç½®é´éå¤ä¹ æè¿è¡ä¸æ¬¡æ£æµï¼æ£æµéè¦å ³éç空é²è¿æ¥ï¼å使¯æ¯«ç§ timeBetweenEvictionRunsMillis: 60000 # é ç½®ä¸ä¸ªè¿æ¥å¨æ± 䏿å°çåçæ¶é´ï¼å使¯æ¯«ç§ minEvictableIdleTimeMillis: 300000 # é ç½®ä¸ä¸ªè¿æ¥å¨æ± 䏿大çåçæ¶é´ï¼å使¯æ¯«ç§ maxEvictableIdleTimeMillis: 900000 # é ç½®æ£æµè¿æ¥æ¯å¦ææ validationQuery: SELECT 1 FROM DUAL testWhileIdle: true testOnBorrow: false testOnReturn: false webStatFilter: enabled: true statViewServlet: enabled: true # 设置ç½ååï¼ä¸å¡«åå 许ææè®¿é® allow: url-pattern: /druid/* # æ§å¶å°ç®¡çç¨æ·ååå¯ç login-username: admin login-password: 123456 filter: stat: enabled: true # æ ¢SQLè®°å½ log-slow-sql: true slow-sql-millis: 1000 merge-sql: true wall: config: multi-statement-allow: true zhitan-admin/target/classes/application.yml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,172 @@ # 项ç®ç¸å ³é ç½® base: # åç§° name: admin # çæ¬ version: 3.8.7 # çæå¹´ä»½ copyrightYear: 2024 profile: ./uploadPath # è·åipå°åå¼å ³ addressEnabled: true # éªè¯ç ç±»å math æ°åè®¡ç® char å符éªè¯ captchaType: math # å¼åç¯å¢é ç½® server: # æå¡å¨çHTTP端å£ï¼é»è®¤ä¸º8080 port: 8080 servlet: # åºç¨ç访é®è·¯å¾ context-path: / # undertow é ç½® undertow: # HTTP postå 容çæå¤§å¤§å°ãå½å¼ä¸º-1æ¶ï¼é»è®¤å¼ä¸ºå¤§å°æ¯æ éç max-http-post-size: -1 # 以ä¸çé ç½®ä¼å½±åbuffer,è¿äºbufferä¼ç¨äºæå¡å¨è¿æ¥çIOæä½,æç¹ç±»ä¼¼nettyçæ± åå å管ç # æ¯åbufferç空é´å¤§å°,è¶å°ç空é´è¢«å©ç¨è¶å å buffer-size: 512 # æ¯å¦åé çç´æ¥å å direct-buffers: true threads: # 设置IOçº¿ç¨æ°, å®ä¸»è¦æ§è¡éé»å¡çä»»å¡,å®ä»¬ä¼è´è´£å¤ä¸ªè¿æ¥, é»è®¤è®¾ç½®æ¯ä¸ªCPUæ ¸å¿ä¸ä¸ªçº¿ç¨ io: 8 # é»å¡ä»»å¡çº¿ç¨æ± , 彿§è¡ç±»ä¼¼servlet请æ±é»å¡æä½, undertowä¼ä»è¿ä¸ªçº¿ç¨æ± ä¸åå¾çº¿ç¨,å®çå¼è®¾ç½®åå³äºç³»ç»çè´è½½ worker: 256 # æ¥å¿é ç½® logging: level: com.zhitan: debug org.springframework: warn # ç¨æ·é ç½® user: password: # å¯ç æå¤§éè¯¯æ¬¡æ° maxRetryCount: 5 # å¯ç é宿¶é´ï¼é»è®¤10åéï¼ lockTime: 10 # Springé ç½® spring: # èµæºä¿¡æ¯ messages: # å½é åèµæºæä»¶è·¯å¾ basename: i18n/messages profiles: active: dev # æä»¶ä¸ä¼ servlet: multipart: # å个æä»¶å¤§å° max-file-size: 10MB # 设置æ»ä¸ä¼ çæä»¶å¤§å° max-request-size: 20MB # æå¡æ¨¡å devtools: restart: # çé¨ç½²å¼å ³ enabled: true # redis é ç½® redis: # å°å host: localhost # 端å£ï¼é»è®¤ä¸º6379 port: 6379 # æ°æ®åºç´¢å¼ database: 0 # å¯ç password: # è¿æ¥è¶ æ¶æ¶é´ timeout: 10s lettuce: pool: # è¿æ¥æ± ä¸çæå°ç©ºé²è¿æ¥ min-idle: 0 # è¿æ¥æ± ä¸çæå¤§ç©ºé²è¿æ¥ max-idle: 8 # è¿æ¥æ± çæå¤§æ°æ®åºè¿æ¥æ° max-active: 8 # #è¿æ¥æ± æå¤§é»å¡çå¾ æ¶é´ï¼ä½¿ç¨è´å¼è¡¨ç¤ºæ²¡æéå¶ï¼ max-wait: -1ms # tokené ç½® token: # 令çèªå®ä¹æ è¯ header: Authorization # 令çå¯é¥ secret: abcdefghijklmnopqrstuvwxyzzhitancloud # ä»¤çæææï¼é»è®¤30åéï¼ expireTime: 300 mybatis-plus: # configuration: # log-impl: org.apache.ibatis.logging.stdout.StdOutImpl typeAliasesPackage: com.zhitan.**.domain mapperLocations: classpath*:mapper/**/*Mapper.xml # å è½½å ¨å±çé ç½®æä»¶ configLocation: classpath:mybatis/mybatis-config.xml # PageHelperå页æä»¶ pagehelper: helperDialect: PostgreSQL reasonable: true supportMethodsArguments: true params: count=countSql maxPageSize: 500 # Swaggeré ç½® swagger: # æ¯å¦å¼å¯swagger enabled: true # 请æ±åç¼ pathMapping: /dev-api # 鲿¢XSSæ»å» xss: # è¿æ»¤å¼å ³ enabled: true # æé¤é¾æ¥ï¼å¤ä¸ªç¨éå·åéï¼ excludes: /system/notice # å¹é 龿¥ urlPatterns: /system/*,/monitor/*,/tool/* # Shiro shiro: session: # åä¸ä¸ªç¨æ·æå¤§ä¼è¯æ°ï¼æ¯å¦2çæææ¯åä¸ä¸ªè´¦å·å 许æå¤åæ¶ä¸¤ä¸ªäººç»å½ï¼é»è®¤-1ä¸éå¶ï¼ maxSession: 1 # 踢åºä¹åç»å½ç/ä¹åç»å½çç¨æ·ï¼é»è®¤è¸¢åºä¹åç»å½çç¨æ· kickoutAfter: false rtdb: host: http://127.0.0.1:8086 token: == org: org bucket: bucket ###################### MQTT ################################# mqtt: # æå¡å¨å°å host: tcp://127.0.0.1:1883 # IDå¯ä¸ clientId: MQTT_WK # ä¸»é¢ å¤ä¸ªä¸»é¢ç¨éå·(,)åå² #表示è¿ä¸ªä¸»é¢ä¸é¢ææï¼topic1,topic2,topic2/topic22/#(é»è®¤ä¼å第ä¸ä¸ªä¸»é¢) topics: topic1 # ç¨æ·å username: admin # å¯ç password: 111111 # è¿æ¥è¶ æ¶ timeout: 30 # å¿è·³æ£æµ keepalive: 60 # å¯¹æ¶æ¯å¤ççå ç§æºå¶ã # 0 è¡¨ç¤ºçæ¯è®¢é è æ²¡æ¶å°æ¶æ¯ä¸ä¼å次åéï¼æ¶æ¯ä¼ä¸¢å¤± # 1 è¡¨ç¤ºçæ¯ä¼å°è¯éè¯ï¼ä¸ç´å°æ¥æ¶å°æ¶æ¯ï¼ä½è¿ç§æ åµå¯è½å¯¼è´è®¢é è æ¶å°å¤æ¬¡é夿¶æ¯ # 2 å¤äºä¸æ¬¡å»éçå¨ä½ï¼ç¡®ä¿è®¢é è æ¶å°çæ¶æ¯æä¸æ¬¡ qos: 1 # falseä¸ºå»ºç«æä¹ ä¼è¯ cleanSession: false # æå¼åéæ°è¿æ¥ automaticReconnect: true zhitan-admin/target/classes/banner.txt
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,24 @@ Application Version: 3.8.7 Spring Boot Version: ${spring-boot.version} //////////////////////////////////////////////////////////////////// // _ooOoo_ // // o8888888o // // 88" . "88 // // (| ^_^ |) // // O\ = /O // // ____/`---'\____ // // .' \\| |// `. // // / \\||| : |||// \ // // / _||||| -:- |||||- \ // // | | \\\ - /// | | // // | \_| ''\---/'' | | // // \ .-\__ `-` ___/-. / // // ___`. .' /--.--\ `. . ___ // // ."" '< `.___\_<|>_/___.' >'"". // // | | : `- \`.;`\ _ /`;.`/ - ` : | | // // \ \ `-. \_ __\ /__ _/ .-` / / // // ========`-.____`-.___\_____/___.-`____.-'======== // // `=---=' // // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // // ä½ç¥ä¿ä½ æ°¸ä¸å®æº æ°¸æ BUG // //////////////////////////////////////////////////////////////////// zhitan-admin/target/classes/i18n/messages.properties
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,38 @@ #éè¯¯æ¶æ¯ not.null=* å¿ é¡»å¡«å user.jcaptcha.error=éªè¯ç é误 user.jcaptcha.expire=éªè¯ç 已失æ user.not.exists=ç¨æ·ä¸åå¨/å¯ç é误 user.password.not.match=ç¨æ·ä¸åå¨/å¯ç é误 user.password.retry.limit.count=å¯ç è¾å ¥é误{0}次 user.password.retry.limit.exceed=å¯ç è¾å ¥é误{0}次ï¼å¸æ·éå®{1}åé user.password.delete=对ä¸èµ·ï¼æ¨çè´¦å·å·²è¢«å é¤ user.blocked=ç¨æ·å·²å°ç¦ï¼è¯·è系管çå role.blocked=è§è²å·²å°ç¦ï¼è¯·è系管çå login.blocked=å¾éæ¾ï¼è®¿é®IP已被åå ¥ç³»ç»é»åå user.logout.success=éåºæå length.not.valid=é¿åº¦å¿ é¡»å¨{min}å°{max}个å符ä¹é´ user.username.not.valid=* 2å°20个æ±åãåæ¯ãæ°åæä¸åçº¿ç»æï¼ä¸å¿ 须以鿰åå¼å¤´ user.password.not.valid=* 5-50个å符 user.email.not.valid=é®ç®±æ ¼å¼é误 user.mobile.phone.number.not.valid=ææºå·æ ¼å¼é误 user.login.success=ç»å½æå user.register.success=注åæå user.notfound=è¯·éæ°ç»å½ user.forcelogout=管çå强å¶éåºï¼è¯·éæ°ç»å½ user.unknown.error=æªç¥é误ï¼è¯·éæ°ç»å½ ##æä»¶ä¸ä¼ æ¶æ¯ upload.exceed.maxSize=ä¸ä¼ çæä»¶å¤§å°è¶ åºéå¶çæä»¶å¤§å°ï¼<br/>å 许çæä»¶æå¤§å¤§å°æ¯ï¼{0}MBï¼ upload.filename.exceed.length=ä¸ä¼ çæä»¶åæé¿{0}个å符 ##æé no.permission=æ¨æ²¡ææ°æ®çæéï¼è¯·è系管çåæ·»å æé [{0}] no.create.permission=æ¨æ²¡æåå»ºæ°æ®çæéï¼è¯·è系管çåæ·»å æé [{0}] no.update.permission=æ¨æ²¡æä¿®æ¹æ°æ®çæéï¼è¯·è系管çåæ·»å æé [{0}] no.delete.permission=æ¨æ²¡æå 餿°æ®çæéï¼è¯·è系管çåæ·»å æé [{0}] no.export.permission=æ¨æ²¡æå¯¼åºæ°æ®çæéï¼è¯·è系管çåæ·»å æé [{0}] no.view.permission=æ¨æ²¡ææ¥çæ°æ®çæéï¼è¯·è系管çåæ·»å æé [{0}] zhitan-admin/target/classes/logback.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,93 @@ <?xml version="1.0" encoding="UTF-8"?> <configuration> <!-- æ¥å¿åæ¾è·¯å¾ --> <property name="log.path" value="./logs" /> <!-- æ¥å¿è¾åºæ ¼å¼ --> <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" /> <!-- æ§å¶å°è¾åº --> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>${log.pattern}</pattern> </encoder> </appender> <!-- ç³»ç»æ¥å¿è¾åº --> <appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${log.path}/sys-info.log</file> <!-- å¾ªç¯æ¿çï¼åºäºæ¶é´å建æ¥å¿æä»¶ --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- æ¥å¿æä»¶åæ ¼å¼ --> <fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.log</fileNamePattern> <!-- æ¥å¿æå¤§çåå² 60天 --> <maxHistory>60</maxHistory> </rollingPolicy> <encoder> <pattern>${log.pattern}</pattern> </encoder> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <!-- è¿æ»¤ççº§å« --> <level>INFO</level> <!-- å¹é æ¶çæä½ï¼æ¥æ¶ï¼è®°å½ï¼ --> <onMatch>ACCEPT</onMatch> <!-- ä¸å¹é æ¶çæä½ï¼æç»ï¼ä¸è®°å½ï¼ --> <onMismatch>DENY</onMismatch> </filter> </appender> <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${log.path}/sys-error.log</file> <!-- å¾ªç¯æ¿çï¼åºäºæ¶é´å建æ¥å¿æä»¶ --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- æ¥å¿æä»¶åæ ¼å¼ --> <fileNamePattern>${log.path}/sys-error.%d{yyyy-MM-dd}.log</fileNamePattern> <!-- æ¥å¿æå¤§çåå² 60天 --> <maxHistory>60</maxHistory> </rollingPolicy> <encoder> <pattern>${log.pattern}</pattern> </encoder> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <!-- è¿æ»¤ççº§å« --> <level>ERROR</level> <!-- å¹é æ¶çæä½ï¼æ¥æ¶ï¼è®°å½ï¼ --> <onMatch>ACCEPT</onMatch> <!-- ä¸å¹é æ¶çæä½ï¼æç»ï¼ä¸è®°å½ï¼ --> <onMismatch>DENY</onMismatch> </filter> </appender> <!-- ç¨æ·è®¿é®æ¥å¿è¾åº --> <appender name="sys-user" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${log.path}/sys-user.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- æå¤©åæ» daily --> <fileNamePattern>${log.path}/sys-user.%d{yyyy-MM-dd}.log</fileNamePattern> <!-- æ¥å¿æå¤§çåå² 60天 --> <maxHistory>60</maxHistory> </rollingPolicy> <encoder> <pattern>${log.pattern}</pattern> </encoder> </appender> <!-- ç³»ç»æ¨¡åæ¥å¿çº§å«æ§å¶ --> <logger name="com.zhitan" level="info" /> <!-- Springæ¥å¿çº§å«æ§å¶ --> <logger name="org.springframework" level="warn" /> <root level="info"> <appender-ref ref="console" /> </root> <!--ç³»ç»æä½æ¥å¿--> <root level="info"> <appender-ref ref="file_info" /> <appender-ref ref="file_error" /> </root> <!--ç³»ç»ç¨æ·æä½æ¥å¿--> <logger name="sys-user" level="info"> <appender-ref ref="sys-user"/> </logger> </configuration> zhitan-admin/target/classes/mybatis/mybatis-config.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,20 @@ <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!-- å ¨å±åæ° --> <settings> <!-- ä½¿å ¨å±çæ å°å¨å¯ç¨æç¦ç¨ç¼å --> <setting name="cacheEnabled" value="true"/> <!-- å 许JDBC æ¯æèªå¨çæä¸»é® --> <setting name="useGeneratedKeys" value="true"/> <!-- é ç½®é»è®¤çæ§è¡å¨.SIMPLEå°±æ¯æ®éæ§è¡å¨;REUSEæ§è¡å¨ä¼éç¨é¢å¤çè¯å¥(prepared statements);BATCHæ§è¡å¨å°éç¨è¯å¥å¹¶æ§è¡æ¹éæ´æ° --> <setting name="defaultExecutorType" value="SIMPLE"/> <!-- æå® MyBatis æç¨æ¥å¿çå ·ä½å®ç° --> <setting name="logImpl" value="SLF4J"/> <!-- 使ç¨é©¼å³°å½åæ³è½¬æ¢å段 --> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings> </configuration> zhitan-common/pom.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,139 @@ <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>BaseAdminAPI</artifactId> <groupId>com.zhitan</groupId> <version>3.8.7</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>zhitan-common</artifactId> <description> commonéç¨å·¥å · </description> <dependencies> <!-- Springæ¡æ¶åºæ¬çæ ¸å¿å·¥å · --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> </dependency> <!-- SpringWeb模å --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> </dependency> <!-- spring security å®å ¨è®¤è¯ --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> </dependency> <dependency> <groupId>com.github.jsqlparser</groupId> <artifactId>jsqlparser</artifactId> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> </dependency> <!-- èªå®ä¹éªè¯æ³¨è§£ --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </dependency> <!--常ç¨å·¥å ·ç±» --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> </dependency> <!-- JSONå·¥å ·ç±» --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> </dependency> <!-- å¨ææ°æ®æº --> <dependency> <groupId>com.baomidou</groupId> <artifactId>dynamic-datasource-spring-boot-starter</artifactId> <version>3.5.2</version> </dependency> <!-- é¿éJSONè§£æå¨ --> <dependency> <groupId>com.alibaba.fastjson2</groupId> <artifactId>fastjson2</artifactId> </dependency> <!-- io常ç¨å·¥å ·ç±» --> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> </dependency> <!-- excelå·¥å · --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> </dependency> <!-- ymlè§£æå¨ --> <dependency> <groupId>org.yaml</groupId> <artifactId>snakeyaml</artifactId> </dependency> <!-- Tokençæä¸è§£æ--> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> </dependency> <!-- Jaxb --> <dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> </dependency> <!-- redis ç¼åæä½ --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <!-- pool å¯¹è±¡æ± --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> </dependency> <!-- è§£æå®¢æ·ç«¯æä½ç³»ç»ãæµè§å¨ç --> <dependency> <groupId>eu.bitwalker</groupId> <artifactId>UserAgentUtils</artifactId> </dependency> <!-- servletå --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> </dependency> </dependencies> </project> zhitan-common/src/main/java/com/zhitan/common/annotation/Anonymous.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,19 @@ package com.zhitan.common.annotation; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** * å¿å访é®ä¸é´ææ³¨è§£ * * @author zhitan */ @Target({ ElementType.METHOD, ElementType.TYPE }) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface Anonymous { } zhitan-common/src/main/java/com/zhitan/common/annotation/DataScope.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,33 @@ package com.zhitan.common.annotation; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** * æ°æ®æéè¿æ»¤æ³¨è§£ * * @author zhitan */ @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface DataScope { /** * é¨é¨è¡¨çå«å */ public String deptAlias() default ""; /** * ç¨æ·è¡¨çå«å */ public String userAlias() default ""; /** * æéå符ï¼ç¨äºå¤ä¸ªè§è²å¹é 符åè¦æ±çæéï¼é»è®¤æ ¹æ®æé注解@ssè·åï¼å¤ä¸ªæéç¨éå·åé弿¥ */ public String permission() default ""; } zhitan-common/src/main/java/com/zhitan/common/annotation/DataSource.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,28 @@ package com.zhitan.common.annotation; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Inherited; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import com.zhitan.common.enums.DataSourceType; /** * èªå®ä¹å¤æ°æ®æºåæ¢æ³¨è§£ * * ä¼å 级ï¼å æ¹æ³ï¼åç±»ï¼å¦ææ¹æ³è¦çäºç±»ä¸çæ°æ®æºç±»åï¼ä»¥æ¹æ³ç为åï¼å¦å以类ä¸ç为å * * @author zhitan */ @Target({ ElementType.METHOD, ElementType.TYPE }) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited public @interface DataSource { /** * åæ¢æ°æ®æºåç§° */ public DataSourceType value() default DataSourceType.MASTER; } zhitan-common/src/main/java/com/zhitan/common/annotation/Excel.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,187 @@ package com.zhitan.common.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import java.math.BigDecimal; import org.apache.poi.ss.usermodel.HorizontalAlignment; import org.apache.poi.ss.usermodel.IndexedColors; import com.zhitan.common.utils.poi.ExcelHandlerAdapter; /** * èªå®ä¹å¯¼åºExcelæ°æ®æ³¨è§£ * * @author zhitan */ @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) public @interface Excel { /** * å¯¼åºæ¶å¨excelä¸æåº */ public int sort() default Integer.MAX_VALUE; /** * 导åºå°Excelä¸çåå. */ public String name() default ""; /** * æ¥ææ ¼å¼, å¦: yyyy-MM-dd */ public String dateFormat() default ""; /** * 妿æ¯åå ¸ç±»åï¼è¯·è®¾ç½®åå ¸çtypeå¼ (å¦: sys_user_sex) */ public String dictType() default ""; /** * 读åå å®¹è½¬è¡¨è¾¾å¼ (å¦: 0=ç·,1=女,2=æªç¥) */ public String readConverterExp() default ""; /** * åé符ï¼è¯»åå符串ç»å 容 */ public String separator() default ","; /** * BigDecimal 精度 é»è®¤:-1(é»è®¤ä¸å¼å¯BigDecimalæ ¼å¼å) */ public int scale() default -1; /** * BigDecimal èå ¥è§å é»è®¤:BigDecimal.ROUND_HALF_EVEN */ public int roundingMode() default BigDecimal.ROUND_HALF_EVEN; /** * å¯¼åºæ¶å¨excel䏿¯ä¸ªåçé«åº¦ */ public double height() default 14; /** * å¯¼åºæ¶å¨excel䏿¯ä¸ªåç宽度 */ public double width() default 16; /** * æååç¼,å¦% 90 åæ90% */ public String suffix() default ""; /** * å½å¼ä¸ºç©ºæ¶,åæ®µçé»è®¤å¼ */ public String defaultValue() default ""; /** * æç¤ºä¿¡æ¯ */ public String prompt() default ""; /** * 设置åªè½éæ©ä¸è½è¾å ¥çåå 容. */ public String[] combo() default {}; /** * æ¯å¦éè¦çºµååå¹¶åå æ ¼,åºå¯¹éæ±:嫿listéååå æ ¼) */ public boolean needMerge() default false; /** * æ¯å¦å¯¼åºæ°æ®,åºå¯¹éæ±:ææ¶æä»¬éè¦å¯¼åºä¸ä»½æ¨¡æ¿,è¿æ¯æ é¢éè¦ä½å 容éè¦ç¨æ·æå·¥å¡«å. */ public boolean isExport() default true; /** * å¦ä¸ä¸ªç±»ä¸ç屿§åç§°,æ¯æå¤çº§è·å,以尿°ç¹éå¼ */ public String targetAttr() default ""; /** * æ¯å¦èªå¨ç»è®¡æ°æ®,卿å追å ä¸è¡ç»è®¡æ°æ®æ»å */ public boolean isStatistics() default false; /** * 导åºç±»åï¼0æ°å 1å符串 2å¾çï¼ */ public ColumnType cellType() default ColumnType.STRING; /** * 导åºåå¤´èæ¯é¢è² */ public IndexedColors headerBackgroundColor() default IndexedColors.GREY_50_PERCENT; /** * 导åºå头åä½é¢è² */ public IndexedColors headerColor() default IndexedColors.WHITE; /** * 导åºåå æ ¼èæ¯é¢è² */ public IndexedColors backgroundColor() default IndexedColors.WHITE; /** * 导åºåå æ ¼åä½é¢è² */ public IndexedColors color() default IndexedColors.BLACK; /** * 导åºåæ®µå¯¹é½æ¹å¼ */ public HorizontalAlignment align() default HorizontalAlignment.CENTER; /** * èªå®ä¹æ°æ®å¤çå¨ */ public Class<?> handler() default ExcelHandlerAdapter.class; /** * èªå®ä¹æ°æ®å¤çå¨åæ° */ public String[] args() default {}; /** * åæ®µç±»åï¼0ï¼å¯¼åºå¯¼å ¥ï¼1ï¼ä» 导åºï¼2ï¼ä» å¯¼å ¥ï¼ */ Type type() default Type.ALL; public enum Type { ALL(0), EXPORT(1), IMPORT(2); private final int value; Type(int value) { this.value = value; } public int value() { return this.value; } } public enum ColumnType { NUMERIC(0), STRING(1), IMAGE(2), TEXT(3); private final int value; ColumnType(int value) { this.value = value; } public int value() { return this.value; } } } zhitan-common/src/main/java/com/zhitan/common/annotation/Excels.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,18 @@ package com.zhitan.common.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** * Excel注解é * * @author zhitan */ @Target(ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) public @interface Excels { public Excel[] value(); } zhitan-common/src/main/java/com/zhitan/common/annotation/Log.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,51 @@ package com.zhitan.common.annotation; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import com.zhitan.common.enums.BusinessType; import com.zhitan.common.enums.OperatorType; /** * èªå®ä¹æä½æ¥å¿è®°å½æ³¨è§£ * * @author zhitan * */ @Target({ ElementType.PARAMETER, ElementType.METHOD }) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface Log { /** * 模å */ public String title() default ""; /** * åè½ */ public BusinessType businessType() default BusinessType.OTHER; /** * æä½äººç±»å« */ public OperatorType operatorType() default OperatorType.MANAGE; /** * æ¯å¦ä¿å请æ±çåæ° */ public boolean isSaveRequestData() default true; /** * æ¯å¦ä¿åååºçåæ° */ public boolean isSaveResponseData() default true; /** * æé¤æå®ç请æ±åæ° */ public String[] excludeParamNames() default {}; } zhitan-common/src/main/java/com/zhitan/common/annotation/RateLimiter.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,40 @@ package com.zhitan.common.annotation; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import com.zhitan.common.constant.CacheConstants; import com.zhitan.common.enums.LimitType; /** * éæµæ³¨è§£ * * @author zhitan */ @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface RateLimiter { /** * éæµkey */ public String key() default CacheConstants.RATE_LIMIT_KEY; /** * éæµæ¶é´,åä½ç§ */ public int time() default 60; /** * éæµæ¬¡æ° */ public int count() default 100; /** * éæµç±»å */ public LimitType limitType() default LimitType.DEFAULT; } zhitan-common/src/main/java/com/zhitan/common/annotation/RepeatSubmit.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,31 @@ package com.zhitan.common.annotation; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Inherited; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** * èªå®ä¹æ³¨è§£é²æ¢è¡¨åéå¤æäº¤ * * @author zhitan * */ @Inherited @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface RepeatSubmit { /** * é´éæ¶é´(ms)ï¼å°äºæ¤æ¶é´è§ä¸ºéå¤æäº¤ */ public int interval() default 5000; /** * æç¤ºæ¶æ¯ */ public String message() default "ä¸å 许éå¤æäº¤ï¼è¯·ç¨ååè¯"; } zhitan-common/src/main/java/com/zhitan/common/annotation/Sensitive.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,24 @@ package com.zhitan.common.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import com.fasterxml.jackson.annotation.JacksonAnnotationsInside; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.zhitan.common.config.serializer.SensitiveJsonSerializer; import com.zhitan.common.enums.DesensitizedType; /** * æ°æ®è±ææ³¨è§£ * * @author zhitan */ @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) @JacksonAnnotationsInside @JsonSerialize(using = SensitiveJsonSerializer.class) public @interface Sensitive { DesensitizedType desensitizedType(); } zhitan-common/src/main/java/com/zhitan/common/config/BaseConfig.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,122 @@ package com.zhitan.common.config; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; /** * 读å项ç®ç¸å ³é ç½® * * @author zhitan */ @Component @ConfigurationProperties(prefix = "base") public class BaseConfig { /** 项ç®åç§° */ private String name; /** çæ¬ */ private String version; /** çæå¹´ä»½ */ private String copyrightYear; /** ä¸ä¼ è·¯å¾ */ private static String profile; /** è·åå°åå¼å ³ */ private static boolean addressEnabled; /** éªè¯ç ç±»å */ private static String captchaType; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getVersion() { return version; } public void setVersion(String version) { this.version = version; } public String getCopyrightYear() { return copyrightYear; } public void setCopyrightYear(String copyrightYear) { this.copyrightYear = copyrightYear; } public static String getProfile() { return profile; } public void setProfile(String profile) { BaseConfig.profile = profile; } public static boolean isAddressEnabled() { return addressEnabled; } public void setAddressEnabled(boolean addressEnabled) { BaseConfig.addressEnabled = addressEnabled; } public static String getCaptchaType() { return captchaType; } public void setCaptchaType(String captchaType) { BaseConfig.captchaType = captchaType; } /** * è·åå¯¼å ¥ä¸ä¼ è·¯å¾ */ public static String getImportPath() { return getProfile() + "/import"; } /** * è·å头åä¸ä¼ è·¯å¾ */ public static String getAvatarPath() { return getProfile() + "/avatar"; } /** * è·åä¸è½½è·¯å¾ */ public static String getDownloadPath() { return getProfile() + "/download/"; } /** * è·åä¸ä¼ è·¯å¾ */ public static String getUploadPath() { return getProfile() + "/upload"; } } zhitan-common/src/main/java/com/zhitan/common/config/serializer/SensitiveJsonSerializer.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,67 @@ package com.zhitan.common.config.serializer; import java.io.IOException; import java.util.Objects; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.BeanProperty; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.ser.ContextualSerializer; import com.zhitan.common.annotation.Sensitive; import com.zhitan.common.core.domain.model.LoginUser; import com.zhitan.common.enums.DesensitizedType; import com.zhitan.common.utils.SecurityUtils; /** * æ°æ®è±æåºååè¿æ»¤ * * @author zhitan */ public class SensitiveJsonSerializer extends JsonSerializer<String> implements ContextualSerializer { private DesensitizedType desensitizedType; @Override public void serialize(String value, JsonGenerator gen, SerializerProvider serializers) throws IOException { if (desensitization()) { gen.writeString(desensitizedType.desensitizer().apply(value)); } else { gen.writeString(value); } } @Override public JsonSerializer<?> createContextual(SerializerProvider prov, BeanProperty property) throws JsonMappingException { Sensitive annotation = property.getAnnotation(Sensitive.class); if (Objects.nonNull(annotation) && Objects.equals(String.class, property.getType().getRawClass())) { this.desensitizedType = annotation.desensitizedType(); return this; } return prov.findValueSerializer(property.getType(), property); } /** * æ¯å¦éè¦è±æå¤ç */ private boolean desensitization() { try { LoginUser securityUser = SecurityUtils.getLoginUser(); // 管çåä¸è±æ return !securityUser.getUser().isAdmin(); } catch (Exception e) { return true; } } } zhitan-common/src/main/java/com/zhitan/common/constant/CacheConstants.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,44 @@ package com.zhitan.common.constant; /** * ç¼åçkey 常é * * @author zhitan */ public class CacheConstants { /** * ç»å½ç¨æ· redis key */ public static final String LOGIN_TOKEN_KEY = "login_tokens:"; /** * éªè¯ç redis key */ public static final String CAPTCHA_CODE_KEY = "captcha_codes:"; /** * åæ°ç®¡ç cache key */ public static final String SYS_CONFIG_KEY = "sys_config:"; /** * åå ¸ç®¡ç cache key */ public static final String SYS_DICT_KEY = "sys_dict:"; /** * é²éæäº¤ redis key */ public static final String REPEAT_SUBMIT_KEY = "repeat_submit:"; /** * éæµ redis key */ public static final String RATE_LIMIT_KEY = "rate_limit:"; /** * ç»å½è´¦æ·å¯ç éè¯¯æ¬¡æ° redis key */ public static final String PWD_ERR_CNT_KEY = "pwd_err_cnt:"; } zhitan-common/src/main/java/com/zhitan/common/constant/CommonConst.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,145 @@ package com.zhitan.common.constant; /** * @Description: 常éå°è£ * @author: yxw * @date: 2022å¹´02æ02æ¥ 11:37 */ public class CommonConst { /** * 常éå符串 - 空å符串 */ public static final String EMPTY = ""; /** * ååå· */ public static final String DOUBLE_MINUS_SIGN = "--"; /** * ç¾åæ¯ */ public static final String PERCENTAGE = "%"; /** * å符串æ°å -1 */ public static final String STR_NUMBER_MINUS_ONE = "-1"; /** * å符串æ°å 0 */ public static final String STR_NUMBER_0 = "0"; /** * å符串æ°å 1 */ public static final String STR_NUMBER_1 = "1"; /** * å符串æ°å 2 */ public static final String STR_NUMBER_2 = "2"; /** * å符串æ°å 3 */ public static final String STR_NUMBER_3 = "3"; /** * å符串æ°å 4 */ public static final String STR_NUMBER_4 = "4"; /** * å符串æ°å 5 */ public static final String STR_NUMBER_5 = "5"; /** * å符串æ°å 6 */ public static final String STR_NUMBER_6 = "6"; /** * å符串æ°å 7 */ public static final String STR_NUMBER_7 = "7"; /** * å符串æ°å 8 */ public static final String STR_NUMBER_8 = "8"; /** * å符串æ°å 9 */ public static final String STR_NUMBER_9 = "9"; /** * å符串æ°å 10 */ public static final String STR_NUMBER_10 = "10"; /** * å符串æ°å 11 */ public static final String STR_NUMBER_11 = "11"; /** * å符串æ°å 12 */ public static final String STR_NUMBER_12 = "12"; /** * 大å忝 M */ public static final String WORD_M = "M"; /** * 大å忝 Y */ public static final String WORD_Y = "Y"; /** * 大å忝 D */ public static final String WORD_D = "D"; /** * æ°å 0 */ public static final int DIGIT_0 = 0; /** * æ°å 1 */ public static final int DIGIT_1 = 1; /** * æ°å 2 */ public static final int DIGIT_2 = 2; /** * æ°å 3 */ public static final int DIGIT_3 = 3; /** * æ°å 4 */ public static final int DIGIT_4 = 4; /** * æ°å 100 */ public static final int DIGIT_100 = 100; /** * æ°å 1000 */ public static final int DIGIT_1000 = 1000; /** * æ°å -1 */ public static final int DIGIT_MINUS_1 = -1; /** * æ°å -3 */ public static final int DIGIT_MINUS_3 = -3; /** * 计ç®ç¹è¯å«è§å 累积é */ public static final String COMMON_STR_CALC_POINT_RULE_LJL = "_LJL"; /** * 计ç®ç¹è¯å«è§å 综åè½è */ public static final String COMMON_STR_CALC_POINT_RULE_ZHNH = "_ZHNH"; /** * 计ç®ç¹è¯å«è§å è½æºä»·æ ¼ */ public static final String COMMON_STR_CALC_POINT_RULE_NYJG = "_NYJG"; /** * æ¶é´ç±»åå符串 - 天 */ public static final String TIME_TYPE_DAY = "DAY"; /** * éç®æ¥å£å°å */ public static final String RE_CALC_INTERFACE_ADDRESS = "http://127.0.0.1:8999/computing/recalc"; } zhitan-common/src/main/java/com/zhitan/common/constant/Constants.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,178 @@ package com.zhitan.common.constant; import java.util.Locale; import io.jsonwebtoken.Claims; /** * éç¨å¸¸éä¿¡æ¯ * * @author zhitan */ public class Constants { /** * UTF-8 å符é */ public static final String UTF8 = "UTF-8"; /** * GBK å符é */ public static final String GBK = "GBK"; /** * ç³»ç»è¯è¨ */ public static final Locale DEFAULT_LOCALE = Locale.SIMPLIFIED_CHINESE; /** * www主å */ public static final String WWW = "www."; /** * httpè¯·æ± */ public static final String HTTP = "http://"; /** * httpsè¯·æ± */ public static final String HTTPS = "https://"; /** * éç¨æåæ è¯ */ public static final String SUCCESS = "0"; /** * éç¨å¤±è´¥æ è¯ */ public static final String FAIL = "1"; /** * ç»å½æå */ public static final String LOGIN_SUCCESS = "Success"; /** * 注é */ public static final String LOGOUT = "Logout"; /** * 注å */ public static final String REGISTER = "Register"; /** * ç»å½å¤±è´¥ */ public static final String LOGIN_FAIL = "Error"; /** * æææéæ è¯ */ public static final String ALL_PERMISSION = "*:*:*"; /** * 管çåè§è²æéæ è¯ */ public static final String SUPER_ADMIN = "admin"; /** * è§è²æéåé符 */ public static final String ROLE_DELIMETER = ","; /** * æéæ è¯åé符 */ public static final String PERMISSION_DELIMETER = ","; /** * éªè¯ç æææï¼åéï¼ */ public static final Integer CAPTCHA_EXPIRATION = 2; /** * 令ç */ public static final String TOKEN = "token"; /** * 令çåç¼ */ public static final String TOKEN_PREFIX = "Bearer "; /** * 令çåç¼ */ public static final String LOGIN_USER_KEY = "login_user_key"; /** * ç¨æ·ID */ public static final String JWT_USERID = "userid"; /** * ç¨æ·åç§° */ public static final String JWT_USERNAME = Claims.SUBJECT; /** * ç¨æ·å¤´å */ public static final String JWT_AVATAR = "avatar"; /** * å建æ¶é´ */ public static final String JWT_CREATED = "created"; /** * ç¨æ·æé */ public static final String JWT_AUTHORITIES = "authorities"; /** * èµæºæ å°è·¯å¾ åç¼ */ public static final String RESOURCE_PREFIX = "/profile"; /** * ææ æ¨¡æ¿ redis key */ public static final String DAQ_TEMPLATE_KEY = "daq_template"; /** * RMI è¿ç¨æ¹æ³è°ç¨ */ public static final String LOOKUP_RMI = "rmi:"; /** * LDAP è¿ç¨æ¹æ³è°ç¨ */ public static final String LOOKUP_LDAP = "ldap:"; /** * LDAPS è¿ç¨æ¹æ³è°ç¨ */ public static final String LOOKUP_LDAPS = "ldaps:"; /** * èªå¨è¯å«json对象ç½ååé ç½®ï¼ä» å 许解æçå åï¼èå´è¶å°è¶å®å ¨ï¼ */ public static final String[] JSON_WHITELIST_STR = { "org.springframework", "com.zhitan" }; /** * 宿¶ä»»å¡ç½ååé ç½®ï¼ä» å 许访é®çå åï¼å¦å ¶ä»éè¦å¯ä»¥èªè¡æ·»å ï¼ */ public static final String[] JOB_WHITELIST_STR = { "com.zhitan.quartz.task" }; /** * 宿¶ä»»å¡è¿è§çå符 */ public static final String[] JOB_ERROR_STR = { "java.net.URL", "javax.naming.InitialContext", "org.yaml.snakeyaml", "org.springframework", "org.apache", "com.zhitan.common.utils.file", "com.zhitan.common.config", "com.zhitan.generator" }; } zhitan-common/src/main/java/com/zhitan/common/constant/GenConstants.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,117 @@ package com.zhitan.common.constant; /** * 代ç çæéç¨å¸¸é * * @author zhitan */ public class GenConstants { /** å表ï¼å¢å æ¹æ¥ï¼ */ public static final String TPL_CRUD = "crud"; /** æ 表ï¼å¢å æ¹æ¥ï¼ */ public static final String TPL_TREE = "tree"; /** 主å表ï¼å¢å æ¹æ¥ï¼ */ public static final String TPL_SUB = "sub"; /** æ ç¼ç åæ®µ */ public static final String TREE_CODE = "treeCode"; /** æ ç¶ç¼ç åæ®µ */ public static final String TREE_PARENT_CODE = "treeParentCode"; /** æ åç§°åæ®µ */ public static final String TREE_NAME = "treeName"; /** ä¸çº§èåIDåæ®µ */ public static final String PARENT_MENU_ID = "parentMenuId"; /** ä¸çº§èååç§°åæ®µ */ public static final String PARENT_MENU_NAME = "parentMenuName"; /** æ°æ®åºå符串类å */ public static final String[] COLUMNTYPE_STR = { "char", "varchar", "nvarchar", "varchar2" }; /** æ°æ®åºææ¬ç±»å */ public static final String[] COLUMNTYPE_TEXT = { "tinytext", "text", "mediumtext", "longtext" }; /** æ°æ®åºæ¶é´ç±»å */ public static final String[] COLUMNTYPE_TIME = { "datetime", "time", "date", "timestamp" }; /** æ°æ®åºæ°åç±»å */ public static final String[] COLUMNTYPE_NUMBER = { "tinyint", "smallint", "mediumint", "int", "number", "integer", "bit", "bigint", "float", "double", "decimal" }; /** 页é¢ä¸éè¦ç¼è¾å段 */ public static final String[] COLUMNNAME_NOT_EDIT = { "id", "create_by", "create_time", "del_flag" }; /** 页é¢ä¸éè¦æ¾ç¤ºçåè¡¨åæ®µ */ public static final String[] COLUMNNAME_NOT_LIST = { "id", "create_by", "create_time", "del_flag", "update_by", "update_time" }; /** 页é¢ä¸éè¦æ¥è¯¢å段 */ public static final String[] COLUMNNAME_NOT_QUERY = { "id", "create_by", "create_time", "del_flag", "update_by", "update_time", "remark" }; /** Entityåºç±»å段 */ public static final String[] BASE_ENTITY = { "createBy", "createTime", "updateBy", "updateTime", "remark" }; /** Treeåºç±»å段 */ public static final String[] TREE_ENTITY = { "parentName", "parentId", "orderNum", "ancestors", "children" }; /** ææ¬æ¡ */ public static final String HTML_INPUT = "input"; /** ææ¬å */ public static final String HTML_TEXTAREA = "textarea"; /** ä¸ææ¡ */ public static final String HTML_SELECT = "select"; /** åéæ¡ */ public static final String HTML_RADIO = "radio"; /** å¤éæ¡ */ public static final String HTML_CHECKBOX = "checkbox"; /** æ¥ææ§ä»¶ */ public static final String HTML_DATETIME = "datetime"; /** å¾çä¸ä¼ æ§ä»¶ */ public static final String HTML_IMAGE_UPLOAD = "imageUpload"; /** æä»¶ä¸ä¼ æ§ä»¶ */ public static final String HTML_FILE_UPLOAD = "fileUpload"; /** å¯ææ¬æ§ä»¶ */ public static final String HTML_EDITOR = "editor"; /** å符串类å */ public static final String TYPE_STRING = "String"; /** æ´å */ public static final String TYPE_INTEGER = "Integer"; /** é¿æ´å */ public static final String TYPE_LONG = "Long"; /** æµ®ç¹å */ public static final String TYPE_DOUBLE = "Double"; /** é«ç²¾åº¦è®¡ç®ç±»å */ public static final String TYPE_BIGDECIMAL = "BigDecimal"; /** æ¶é´ç±»å */ public static final String TYPE_DATE = "Date"; /** æ¨¡ç³æ¥è¯¢ */ public static final String QUERY_LIKE = "LIKE"; /** ç¸çæ¥è¯¢ */ public static final String QUERY_EQ = "EQ"; /** éè¦ */ public static final String REQUIRE = "1"; } zhitan-common/src/main/java/com/zhitan/common/constant/HttpStatus.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,94 @@ package com.zhitan.common.constant; /** * è¿åç¶æç * * @author zhitan */ public class HttpStatus { /** * æä½æå */ public static final int SUCCESS = 200; /** * 对象å建æå */ public static final int CREATED = 201; /** * 请æ±å·²ç»è¢«æ¥å */ public static final int ACCEPTED = 202; /** * æä½å·²ç»æ§è¡æåï¼ä½æ¯æ²¡æè¿åæ°æ® */ public static final int NO_CONTENT = 204; /** * èµæºå·²è¢«ç§»é¤ */ public static final int MOVED_PERM = 301; /** * éå®å */ public static final int SEE_OTHER = 303; /** * èµæºæ²¡æè¢«ä¿®æ¹ */ public static final int NOT_MODIFIED = 304; /** * åæ°å表é误ï¼ç¼ºå°ï¼æ ¼å¼ä¸å¹é ï¼ */ public static final int BAD_REQUEST = 400; /** * æªææ */ public static final int UNAUTHORIZED = 401; /** * 访é®åéï¼ææè¿æ */ public static final int FORBIDDEN = 403; /** * èµæºï¼æå¡æªæ¾å° */ public static final int NOT_FOUND = 404; /** * ä¸å 许çhttpæ¹æ³ */ public static final int BAD_METHOD = 405; /** * èµæºå²çªï¼æè èµæºè¢«é */ public static final int CONFLICT = 409; /** * 䏿¯æçæ°æ®ï¼åªä½ç±»å */ public static final int UNSUPPORTED_TYPE = 415; /** * ç³»ç»å é¨é误 */ public static final int ERROR = 500; /** * æ¥å£æªå®ç° */ public static final int NOT_IMPLEMENTED = 501; /** * ç³»ç»è¦åæ¶æ¯ */ public static final int WARN = 601; } zhitan-common/src/main/java/com/zhitan/common/constant/ScheduleConstants.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,50 @@ package com.zhitan.common.constant; /** * ä»»å¡è°åº¦éç¨å¸¸é * * @author zhitan */ public class ScheduleConstants { public static final String TASK_CLASS_NAME = "TASK_CLASS_NAME"; /** æ§è¡ç®æ key */ public static final String TASK_PROPERTIES = "TASK_PROPERTIES"; /** é»è®¤ */ public static final String MISFIRE_DEFAULT = "0"; /** ç«å³è§¦åæ§è¡ */ public static final String MISFIRE_IGNORE_MISFIRES = "1"; /** 触å䏿¬¡æ§è¡ */ public static final String MISFIRE_FIRE_AND_PROCEED = "2"; /** ä¸è§¦åç«å³æ§è¡ */ public static final String MISFIRE_DO_NOTHING = "3"; public enum Status { /** * æ£å¸¸ */ NORMAL("0"), /** * æå */ PAUSE("1"); private String value; private Status(String value) { this.value = value; } public String getValue() { return value; } } } zhitan-common/src/main/java/com/zhitan/common/constant/UserConstants.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,78 @@ package com.zhitan.common.constant; /** * ç¨æ·å¸¸éä¿¡æ¯ * * @author zhitan */ public class UserConstants { /** * å¹³å°å ç³»ç»ç¨æ·çå¯ä¸æ å¿ */ public static final String SYS_USER = "SYS_USER"; /** æ£å¸¸ç¶æ */ public static final String NORMAL = "0"; /** å¼å¸¸ç¶æ */ public static final String EXCEPTION = "1"; /** ç¨æ·å°ç¦ç¶æ */ public static final String USER_DISABLE = "1"; /** è§è²å°ç¦ç¶æ */ public static final String ROLE_DISABLE = "1"; /** é¨é¨æ£å¸¸ç¶æ */ public static final String DEPT_NORMAL = "0"; /** é¨é¨åç¨ç¶æ */ public static final String DEPT_DISABLE = "1"; /** åå ¸æ£å¸¸ç¶æ */ public static final String DICT_NORMAL = "0"; /** æ¯å¦ä¸ºç³»ç»é»è®¤ï¼æ¯ï¼ */ public static final String YES = "Y"; /** æ¯å¦èåå¤é¾ï¼æ¯ï¼ */ public static final String YES_FRAME = "0"; /** æ¯å¦èåå¤é¾ï¼å¦ï¼ */ public static final String NO_FRAME = "1"; /** èåç±»åï¼ç®å½ï¼ */ public static final String TYPE_DIR = "M"; /** èåç±»åï¼èåï¼ */ public static final String TYPE_MENU = "C"; /** èåç±»åï¼æé®ï¼ */ public static final String TYPE_BUTTON = "F"; /** Layoutç»ä»¶æ è¯ */ public final static String LAYOUT = "Layout"; /** ParentViewç»ä»¶æ è¯ */ public final static String PARENT_VIEW = "ParentView"; /** InnerLinkç»ä»¶æ è¯ */ public final static String INNER_LINK = "InnerLink"; /** æ ¡éªæ¯å¦å¯ä¸çè¿åæ è¯ */ public final static boolean UNIQUE = true; public final static boolean NOT_UNIQUE = false; /** * ç¨æ·åé¿åº¦éå¶ */ public static final int USERNAME_MIN_LENGTH = 2; public static final int USERNAME_MAX_LENGTH = 20; /** * å¯ç é¿åº¦éå¶ */ public static final int PASSWORD_MIN_LENGTH = 5; public static final int PASSWORD_MAX_LENGTH = 20; } zhitan-common/src/main/java/com/zhitan/common/core/controller/BaseController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,218 @@ package com.zhitan.common.core.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.zhitan.common.constant.HttpStatus; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.domain.model.LoginUser; import com.zhitan.common.core.page.PageDomain; import com.zhitan.common.core.page.TableDataInfo; import com.zhitan.common.core.page.TableSupport; import com.zhitan.common.utils.DateUtils; import com.zhitan.common.utils.PageUtils; import com.zhitan.common.utils.SecurityUtils; import com.zhitan.common.utils.StringUtils; import com.zhitan.common.utils.sql.SqlUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.InitBinder; import java.beans.PropertyEditorSupport; import java.util.Date; import java.util.List; /** * webå±éç¨æ°æ®å¤ç * * @author zhitan */ public class BaseController { protected final Logger logger = LoggerFactory.getLogger(this.getClass()); /** * å°åå°ä¼ éè¿æ¥çæ¥ææ ¼å¼çå符串ï¼èªå¨è½¬å为Dateç±»å */ @InitBinder public void initBinder(WebDataBinder binder) { // Date ç±»åè½¬æ¢ binder.registerCustomEditor(Date.class, new PropertyEditorSupport() { @Override public void setAsText(String text) { setValue(DateUtils.parseDate(text)); } }); } /** * 设置请æ±åé¡µæ°æ® */ protected void startPage() { PageUtils.startPage(); } /** * è®¾ç½®è¯·æ±æåºæ°æ® */ protected void startOrderBy() { PageDomain pageDomain = TableSupport.buildPageRequest(); if (StringUtils.isNotEmpty(pageDomain.getOrderBy())) { String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy()); PageHelper.orderBy(orderBy); } } /** * æ¸ çå页ç线ç¨åé */ protected void clearPage() { PageUtils.clearPage(); } /** * ååºè¯·æ±åé¡µæ°æ® */ @SuppressWarnings({ "rawtypes", "unchecked" }) protected TableDataInfo getDataTable(List<?> list) { TableDataInfo rspData = new TableDataInfo(); rspData.setCode(HttpStatus.SUCCESS); rspData.setMsg("æ¥è¯¢æå"); rspData.setRows(list); rspData.setTotal(new PageInfo(list).getTotal()); return rspData; } /** * ååºè¯·æ±åé¡µæ°æ® */ @SuppressWarnings({ "rawtypes", "unchecked" }) protected TableDataInfo getDataTable(Page<?> list) { TableDataInfo rspData = new TableDataInfo(); rspData.setCode(HttpStatus.SUCCESS); rspData.setMsg("æ¥è¯¢æå"); rspData.setRows(list.getRecords()); rspData.setTotal(list.getTotal()); return rspData; } /** * è¿åæå */ public AjaxResult success() { return AjaxResult.success(); } /** * è¿åå¤±è´¥æ¶æ¯ */ public AjaxResult error() { return AjaxResult.error(); } /** * è¿åæåæ¶æ¯ */ public AjaxResult success(String message) { return AjaxResult.success(message); } /** * è¿åæåæ¶æ¯ */ public AjaxResult success(Object data) { return AjaxResult.success(data); } /** * è¿åå¤±è´¥æ¶æ¯ */ public AjaxResult error(String message) { return AjaxResult.error(message); } /** * è¿åè¦åæ¶æ¯ */ public AjaxResult warn(String message) { return AjaxResult.warn(message); } /** * ååºè¿åç»æ * * @param rows å½±åè¡æ° * @return æä½ç»æ */ protected AjaxResult toAjax(int rows) { return rows > 0 ? AjaxResult.success() : AjaxResult.error(); } /** * ååºè¿åç»æ * * @param result ç»æ * @return æä½ç»æ */ protected AjaxResult toAjax(boolean result) { return result ? success() : error(); } /** * 页é¢è·³è½¬ */ public String redirect(String url) { return StringUtils.format("redirect:{}", url); } /** * è·åç¨æ·ç¼åä¿¡æ¯ */ public LoginUser getLoginUser() { return SecurityUtils.getLoginUser(); } /** * è·åç»å½ç¨æ·id */ public Long getUserId() { return getLoginUser().getUserId(); } /** * è·åç»å½é¨é¨id */ public Long getDeptId() { return getLoginUser().getDeptId(); } /** * è·åç»å½ç¨æ·å */ public String getUsername() { return getLoginUser().getUsername(); } } zhitan-common/src/main/java/com/zhitan/common/core/domain/AjaxResult.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,216 @@ package com.zhitan.common.core.domain; import java.util.HashMap; import java.util.Objects; import com.zhitan.common.constant.HttpStatus; import com.zhitan.common.utils.StringUtils; /** * æä½æ¶æ¯æé * * @author zhitan */ public class AjaxResult extends HashMap<String, Object> { private static final long serialVersionUID = 1L; /** ç¶æç */ public static final String CODE_TAG = "code"; /** è¿åå 容 */ public static final String MSG_TAG = "msg"; /** æ°æ®å¯¹è±¡ */ public static final String DATA_TAG = "data"; /** * åå§åä¸ä¸ªæ°å建ç AjaxResult 对象ï¼ä½¿å ¶è¡¨ç¤ºä¸ä¸ªç©ºæ¶æ¯ã */ public AjaxResult() { } /** * åå§åä¸ä¸ªæ°å建ç AjaxResult 对象 * * @param code ç¶æç * @param msg è¿åå 容 */ public AjaxResult(int code, String msg) { super.put(CODE_TAG, code); super.put(MSG_TAG, msg); } /** * åå§åä¸ä¸ªæ°å建ç AjaxResult 对象 * * @param code ç¶æç * @param msg è¿åå 容 * @param data æ°æ®å¯¹è±¡ */ public AjaxResult(int code, String msg, Object data) { super.put(CODE_TAG, code); super.put(MSG_TAG, msg); if (StringUtils.isNotNull(data)) { super.put(DATA_TAG, data); } } /** * è¿åæåæ¶æ¯ * * @return æåæ¶æ¯ */ public static AjaxResult success() { return AjaxResult.success("æä½æå"); } /** * è¿åæåæ°æ® * * @return æåæ¶æ¯ */ public static AjaxResult success(Object data) { return AjaxResult.success("æä½æå", data); } /** * è¿åæåæ¶æ¯ * * @param msg è¿åå 容 * @return æåæ¶æ¯ */ public static AjaxResult success(String msg) { return AjaxResult.success(msg, null); } /** * è¿åæåæ¶æ¯ * * @param msg è¿åå 容 * @param data æ°æ®å¯¹è±¡ * @return æåæ¶æ¯ */ public static AjaxResult success(String msg, Object data) { return new AjaxResult(HttpStatus.SUCCESS, msg, data); } /** * è¿åè¦åæ¶æ¯ * * @param msg è¿åå 容 * @return è¦åæ¶æ¯ */ public static AjaxResult warn(String msg) { return AjaxResult.warn(msg, null); } /** * è¿åè¦åæ¶æ¯ * * @param msg è¿åå 容 * @param data æ°æ®å¯¹è±¡ * @return è¦åæ¶æ¯ */ public static AjaxResult warn(String msg, Object data) { return new AjaxResult(HttpStatus.WARN, msg, data); } /** * è¿åéè¯¯æ¶æ¯ * * @return éè¯¯æ¶æ¯ */ public static AjaxResult error() { return AjaxResult.error("æä½å¤±è´¥"); } /** * è¿åéè¯¯æ¶æ¯ * * @param msg è¿åå 容 * @return éè¯¯æ¶æ¯ */ public static AjaxResult error(String msg) { return AjaxResult.error(msg, null); } /** * è¿åéè¯¯æ¶æ¯ * * @param msg è¿åå 容 * @param data æ°æ®å¯¹è±¡ * @return éè¯¯æ¶æ¯ */ public static AjaxResult error(String msg, Object data) { return new AjaxResult(HttpStatus.ERROR, msg, data); } /** * è¿åéè¯¯æ¶æ¯ * * @param code ç¶æç * @param msg è¿åå 容 * @return éè¯¯æ¶æ¯ */ public static AjaxResult error(int code, String msg) { return new AjaxResult(code, msg, null); } /** * æ¯å¦ä¸ºæåæ¶æ¯ * * @return ç»æ */ public boolean isSuccess() { return Objects.equals(HttpStatus.SUCCESS, this.get(CODE_TAG)); } /** * æ¯å¦ä¸ºè¦åæ¶æ¯ * * @return ç»æ */ public boolean isWarn() { return Objects.equals(HttpStatus.WARN, this.get(CODE_TAG)); } /** * æ¯å¦ä¸ºéè¯¯æ¶æ¯ * * @return ç»æ */ public boolean isError() { return Objects.equals(HttpStatus.ERROR, this.get(CODE_TAG)); } /** * æ¹ä¾¿é¾å¼è°ç¨ * * @param key é® * @param value å¼ * @return æ°æ®å¯¹è±¡ */ @Override public AjaxResult put(String key, Object value) { super.put(key, value); return this; } } zhitan-common/src/main/java/com/zhitan/common/core/domain/BaseEntity.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,170 @@ package com.zhitan.common.core.domain; import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; import java.util.Date; import java.util.HashMap; import java.util.Map; /** * Entityåºç±» * * @author zhitan */ public class BaseEntity implements Serializable { private static final long serialVersionUID = 1L; /** æç´¢å¼ */ @JsonIgnore @TableField(exist = false) private String searchValue; /** å建è */ private String createBy; /** å建æ¶é´ */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; /** æ´æ°è */ private String updateBy; /** æ´æ°æ¶é´ */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; /** 夿³¨ */ private String remark; /** æ°æ®æé */ @ApiModelProperty(value = "æ°æ®æé") @TableField(exist = false) private String dataScope; /** å¼å§æ¶é´ */ @ApiModelProperty(value = "å¼å§æ¶é´") @JsonIgnore @TableField(exist = false) private String beginTime; /** ç»ææ¶é´ */ @ApiModelProperty(value = "ç»ææ¶é´") @JsonIgnore @TableField(exist = false) private String endTime; /** 请æ±åæ° */ @JsonInclude(JsonInclude.Include.NON_EMPTY) @TableField(exist = false) private Map<String, Object> params; public String getSearchValue() { return searchValue; } public void setSearchValue(String searchValue) { this.searchValue = searchValue; } public String getCreateBy() { return createBy; } public void setCreateBy(String createBy) { this.createBy = createBy; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } public String getUpdateBy() { return updateBy; } public void setUpdateBy(String updateBy) { this.updateBy = updateBy; } public Date getUpdateTime() { return updateTime; } public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } public String getDataScope() { return dataScope; } public void setDataScope(String dataScope) { this.dataScope = dataScope; } public String getBeginTime() { return beginTime; } public void setBeginTime(String beginTime) { this.beginTime = beginTime; } public String getEndTime() { return endTime; } public void setEndTime(String endTime) { this.endTime = endTime; } public Map<String, Object> getParams() { if (params == null) { params = new HashMap<>(); } return params; } public void setParams(Map<String, Object> params) { this.params = params; } } zhitan-common/src/main/java/com/zhitan/common/core/domain/R.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,115 @@ package com.zhitan.common.core.domain; import java.io.Serializable; import com.zhitan.common.constant.HttpStatus; /** * ååºä¿¡æ¯ä¸»ä½ * * @author zhitan */ public class R<T> implements Serializable { private static final long serialVersionUID = 1L; /** æå */ public static final int SUCCESS = HttpStatus.SUCCESS; /** 失败 */ public static final int FAIL = HttpStatus.ERROR; private int code; private String msg; private T data; public static <T> R<T> ok() { return restResult(null, SUCCESS, "æä½æå"); } public static <T> R<T> ok(T data) { return restResult(data, SUCCESS, "æä½æå"); } public static <T> R<T> ok(T data, String msg) { return restResult(data, SUCCESS, msg); } public static <T> R<T> fail() { return restResult(null, FAIL, "æä½å¤±è´¥"); } public static <T> R<T> fail(String msg) { return restResult(null, FAIL, msg); } public static <T> R<T> fail(T data) { return restResult(data, FAIL, "æä½å¤±è´¥"); } public static <T> R<T> fail(T data, String msg) { return restResult(data, FAIL, msg); } public static <T> R<T> fail(int code, String msg) { return restResult(null, code, msg); } private static <T> R<T> restResult(T data, int code, String msg) { R<T> apiResult = new R<>(); apiResult.setCode(code); apiResult.setData(data); apiResult.setMsg(msg); return apiResult; } public int getCode() { return code; } public void setCode(int code) { this.code = code; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public T getData() { return data; } public void setData(T data) { this.data = data; } public static <T> Boolean isError(R<T> ret) { return !isSuccess(ret); } public static <T> Boolean isSuccess(R<T> ret) { return R.SUCCESS == ret.getCode(); } } zhitan-common/src/main/java/com/zhitan/common/core/domain/TreeEntity.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,79 @@ package com.zhitan.common.core.domain; import java.util.ArrayList; import java.util.List; /** * Treeåºç±» * * @author zhitan */ public class TreeEntity extends BaseEntity { private static final long serialVersionUID = 1L; /** ç¶èååç§° */ private String parentName; /** ç¶èåID */ private Long parentId; /** æ¾ç¤ºé¡ºåº */ private Integer orderNum; /** ç¥çº§å表 */ private String ancestors; /** åé¨é¨ */ private List<?> children = new ArrayList<>(); public String getParentName() { return parentName; } public void setParentName(String parentName) { this.parentName = parentName; } public Long getParentId() { return parentId; } public void setParentId(Long parentId) { this.parentId = parentId; } public Integer getOrderNum() { return orderNum; } public void setOrderNum(Integer orderNum) { this.orderNum = orderNum; } public String getAncestors() { return ancestors; } public void setAncestors(String ancestors) { this.ancestors = ancestors; } public List<?> getChildren() { return children; } public void setChildren(List<?> children) { this.children = children; } } zhitan-common/src/main/java/com/zhitan/common/core/domain/TreeSelect.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,77 @@ package com.zhitan.common.core.domain; import java.io.Serializable; import java.util.List; import java.util.stream.Collectors; import com.fasterxml.jackson.annotation.JsonInclude; import com.zhitan.common.core.domain.entity.SysDept; import com.zhitan.common.core.domain.entity.SysMenu; /** * Treeselectæ ç»æå®ä½ç±» * * @author zhitan */ public class TreeSelect implements Serializable { private static final long serialVersionUID = 1L; /** èç¹ID */ private Long id; /** èç¹åç§° */ private String label; /** åèç¹ */ @JsonInclude(JsonInclude.Include.NON_EMPTY) private List<TreeSelect> children; public TreeSelect() { } public TreeSelect(SysDept dept) { this.id = dept.getDeptId(); this.label = dept.getDeptName(); this.children = dept.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList()); } public TreeSelect(SysMenu menu) { this.id = menu.getMenuId(); this.label = menu.getMenuName(); this.children = menu.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList()); } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getLabel() { return label; } public void setLabel(String label) { this.label = label; } public List<TreeSelect> getChildren() { return children; } public void setChildren(List<TreeSelect> children) { this.children = children; } } zhitan-common/src/main/java/com/zhitan/common/core/domain/entity/SysDept.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,208 @@ package com.zhitan.common.core.domain.entity; import java.util.ArrayList; import java.util.List; import javax.validation.constraints.Email; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.zhitan.common.core.domain.BaseEntity; /** * é¨é¨è¡¨ sys_dept * * @author zhitan */ @TableName("sys_dept") public class SysDept extends BaseEntity { private static final long serialVersionUID = 1L; /** é¨é¨ID */ @TableId private Long deptId; /** ç¶é¨é¨ID */ private Long parentId; /** ç¥çº§å表 */ private String ancestors; /** é¨é¨åç§° */ private String deptName; /** æ¾ç¤ºé¡ºåº */ private Integer orderNum; /** è´è´£äºº */ private String leader; /** èç³»çµè¯ */ private String phone; /** é®ç®± */ private String email; /** é¨é¨ç¶æ:0æ£å¸¸,1åç¨ */ private String status; /** å 餿 å¿ï¼0代表åå¨ 2代表å é¤ï¼ */ private String delFlag; /** ç¶é¨é¨åç§° */ private String parentName; /** åé¨é¨ */ private List<SysDept> children = new ArrayList<SysDept>(); public Long getDeptId() { return deptId; } public void setDeptId(Long deptId) { this.deptId = deptId; } public Long getParentId() { return parentId; } public void setParentId(Long parentId) { this.parentId = parentId; } public String getAncestors() { return ancestors; } public void setAncestors(String ancestors) { this.ancestors = ancestors; } @NotBlank(message = "é¨é¨åç§°ä¸è½ä¸ºç©º") @Size(min = 0, max = 30, message = "é¨é¨åç§°é¿åº¦ä¸è½è¶ è¿30个å符") public String getDeptName() { return deptName; } public void setDeptName(String deptName) { this.deptName = deptName; } @NotNull(message = "æ¾ç¤ºé¡ºåºä¸è½ä¸ºç©º") public Integer getOrderNum() { return orderNum; } public void setOrderNum(Integer orderNum) { this.orderNum = orderNum; } public String getLeader() { return leader; } public void setLeader(String leader) { this.leader = leader; } @Size(min = 0, max = 11, message = "èç³»çµè¯é¿åº¦ä¸è½è¶ è¿11个å符") public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } @Email(message = "é®ç®±æ ¼å¼ä¸æ£ç¡®") @Size(min = 0, max = 50, message = "é®ç®±é¿åº¦ä¸è½è¶ è¿50个å符") public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } public String getDelFlag() { return delFlag; } public void setDelFlag(String delFlag) { this.delFlag = delFlag; } public String getParentName() { return parentName; } public void setParentName(String parentName) { this.parentName = parentName; } public List<SysDept> getChildren() { return children; } public void setChildren(List<SysDept> children) { this.children = children; } @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) .append("deptId", getDeptId()) .append("parentId", getParentId()) .append("ancestors", getAncestors()) .append("deptName", getDeptName()) .append("orderNum", getOrderNum()) .append("leader", getLeader()) .append("phone", getPhone()) .append("email", getEmail()) .append("status", getStatus()) .append("delFlag", getDelFlag()) .append("createBy", getCreateBy()) .append("createTime", getCreateTime()) .append("updateBy", getUpdateBy()) .append("updateTime", getUpdateTime()) .toString(); } } zhitan-common/src/main/java/com/zhitan/common/core/domain/entity/SysDictData.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,180 @@ package com.zhitan.common.core.domain.entity; import javax.validation.constraints.NotBlank; import javax.validation.constraints.Size; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.zhitan.common.annotation.Excel; import com.zhitan.common.constant.UserConstants; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.zhitan.common.core.domain.BaseEntity; /** * åå ¸æ°æ®è¡¨ sys_dict_data * * @author zhitan */ @TableName("sys_dict_data") public class SysDictData extends BaseEntity { private static final long serialVersionUID = 1L; /** åå ¸ç¼ç */ @TableId @Excel(name = "åå ¸ç¼ç ", cellType = Excel.ColumnType.NUMERIC) private Long dictCode; /** åå ¸æåº */ @Excel(name = "åå ¸æåº", cellType = Excel.ColumnType.NUMERIC) private Long dictSort; /** åå ¸æ ç¾ */ @Excel(name = "åå ¸æ ç¾") private String dictLabel; /** åå ¸é®å¼ */ @Excel(name = "åå ¸é®å¼") private String dictValue; /** åå ¸ç±»å */ @Excel(name = "åå ¸ç±»å") private String dictType; /** æ ·å¼å±æ§ï¼å ¶ä»æ ·å¼æ©å±ï¼ */ private String cssClass; /** è¡¨æ ¼åå ¸æ ·å¼ */ private String listClass; /** æ¯å¦é»è®¤ï¼Yæ¯ Nå¦ï¼ */ @Excel(name = "æ¯å¦é»è®¤", readConverterExp = "Y=æ¯,N=å¦") private String isDefault; /** ç¶æï¼0æ£å¸¸ 1åç¨ï¼ */ @Excel(name = "ç¶æ", readConverterExp = "0=æ£å¸¸,1=åç¨") private String status; public Long getDictCode() { return dictCode; } public void setDictCode(Long dictCode) { this.dictCode = dictCode; } public Long getDictSort() { return dictSort; } public void setDictSort(Long dictSort) { this.dictSort = dictSort; } @NotBlank(message = "åå ¸æ ç¾ä¸è½ä¸ºç©º") @Size(min = 0, max = 100, message = "åå ¸æ ç¾é¿åº¦ä¸è½è¶ è¿100个å符") public String getDictLabel() { return dictLabel; } public void setDictLabel(String dictLabel) { this.dictLabel = dictLabel; } @NotBlank(message = "åå ¸é®å¼ä¸è½ä¸ºç©º") @Size(min = 0, max = 100, message = "åå ¸é®å¼é¿åº¦ä¸è½è¶ è¿100个å符") public String getDictValue() { return dictValue; } public void setDictValue(String dictValue) { this.dictValue = dictValue; } @NotBlank(message = "åå ¸ç±»åä¸è½ä¸ºç©º") @Size(min = 0, max = 100, message = "åå ¸ç±»åé¿åº¦ä¸è½è¶ è¿100个å符") public String getDictType() { return dictType; } public void setDictType(String dictType) { this.dictType = dictType; } @Size(min = 0, max = 100, message = "æ ·å¼å±æ§é¿åº¦ä¸è½è¶ è¿100个å符") public String getCssClass() { return cssClass; } public void setCssClass(String cssClass) { this.cssClass = cssClass; } public String getListClass() { return listClass; } public void setListClass(String listClass) { this.listClass = listClass; } public boolean getDefault() { return UserConstants.YES.equals(this.isDefault); } public String getIsDefault() { return isDefault; } public void setIsDefault(String isDefault) { this.isDefault = isDefault; } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) .append("dictCode", getDictCode()) .append("dictSort", getDictSort()) .append("dictLabel", getDictLabel()) .append("dictValue", getDictValue()) .append("dictType", getDictType()) .append("cssClass", getCssClass()) .append("listClass", getListClass()) .append("isDefault", getIsDefault()) .append("status", getStatus()) .append("createBy", getCreateBy()) .append("createTime", getCreateTime()) .append("updateBy", getUpdateBy()) .append("updateTime", getUpdateTime()) .append("remark", getRemark()) .toString(); } } zhitan-common/src/main/java/com/zhitan/common/core/domain/entity/SysDictType.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,100 @@ package com.zhitan.common.core.domain.entity; import javax.validation.constraints.NotBlank; import javax.validation.constraints.Pattern; import javax.validation.constraints.Size; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.zhitan.common.annotation.Excel; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.zhitan.common.core.domain.BaseEntity; /** * åå ¸ç±»å表 sys_dict_type * * @author zhitan */ @TableName("sys_dict_type") public class SysDictType extends BaseEntity { private static final long serialVersionUID = 1L; /** åå ¸ä¸»é® */ @TableId @Excel(name = "åå ¸ä¸»é®", cellType = Excel.ColumnType.NUMERIC) private Long dictId; /** åå ¸åç§° */ @Excel(name = "åå ¸åç§°") private String dictName; /** åå ¸ç±»å */ @Excel(name = "åå ¸ç±»å") private String dictType; /** ç¶æï¼0æ£å¸¸ 1åç¨ï¼ */ @Excel(name = "ç¶æ", readConverterExp = "0=æ£å¸¸,1=åç¨") private String status; public Long getDictId() { return dictId; } public void setDictId(Long dictId) { this.dictId = dictId; } @NotBlank(message = "åå ¸åç§°ä¸è½ä¸ºç©º") @Size(min = 0, max = 100, message = "åå ¸ç±»ååç§°é¿åº¦ä¸è½è¶ è¿100个å符") public String getDictName() { return dictName; } public void setDictName(String dictName) { this.dictName = dictName; } @NotBlank(message = "åå ¸ç±»åä¸è½ä¸ºç©º") @Size(min = 0, max = 100, message = "åå ¸ç±»åç±»åé¿åº¦ä¸è½è¶ è¿100个å符") @Pattern(regexp = "^[a-z][a-z0-9_]*$", message = "åå ¸ç±»åå¿ é¡»ä»¥åæ¯å¼å¤´ï¼ä¸åªè½ä¸ºï¼å°ååæ¯ï¼æ°åï¼ä¸æ»çº¿ï¼") public String getDictType() { return dictType; } public void setDictType(String dictType) { this.dictType = dictType; } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) .append("dictId", getDictId()) .append("dictName", getDictName()) .append("dictType", getDictType()) .append("status", getStatus()) .append("createBy", getCreateBy()) .append("createTime", getCreateTime()) .append("updateBy", getUpdateBy()) .append("updateTime", getUpdateTime()) .append("remark", getRemark()) .toString(); } } zhitan-common/src/main/java/com/zhitan/common/core/domain/entity/SysMenu.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,276 @@ package com.zhitan.common.core.domain.entity; import java.util.ArrayList; import java.util.List; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.zhitan.common.core.domain.BaseEntity; /** * èåæé表 sys_menu * * @author zhitan */ @TableName("sys_menu") public class SysMenu extends BaseEntity { private static final long serialVersionUID = 1L; /** èåID */ @TableId private Long menuId; /** èååç§° */ private String menuName; /** ç¶èååç§° */ private String parentName; /** ç¶èåID */ private Long parentId; /** æ¾ç¤ºé¡ºåº */ private Integer orderNum; /** è·¯ç±å°å */ private String path; /** ç»ä»¶è·¯å¾ */ private String component; /** è·¯ç±åæ° */ private String query; /** æ¯å¦ä¸ºå¤é¾ï¼0æ¯ 1å¦ï¼ */ private String isFrame; /** æ¯å¦ç¼åï¼0ç¼å 1ä¸ç¼åï¼ */ private String isCache; /** ç±»åï¼Mç®å½ Cèå Fæé®ï¼ */ private String menuType; /** æ¾ç¤ºç¶æï¼0æ¾ç¤º 1éèï¼ */ private String visible; /** èåç¶æï¼0æ£å¸¸ 1åç¨ï¼ */ private String status; /** æéå符串 */ private String perms; /** èå徿 */ private String icon; /** 页é¢åæ° */ private String parameter; /** åèå */ private List<SysMenu> children = new ArrayList<SysMenu>(); public Long getMenuId() { return menuId; } public void setMenuId(Long menuId) { this.menuId = menuId; } @NotBlank(message = "èååç§°ä¸è½ä¸ºç©º") @Size(min = 0, max = 50, message = "èååç§°é¿åº¦ä¸è½è¶ è¿50个å符") public String getMenuName() { return menuName; } public void setMenuName(String menuName) { this.menuName = menuName; } public String getParentName() { return parentName; } public void setParentName(String parentName) { this.parentName = parentName; } public Long getParentId() { return parentId; } public void setParentId(Long parentId) { this.parentId = parentId; } @NotNull(message = "æ¾ç¤ºé¡ºåºä¸è½ä¸ºç©º") public Integer getOrderNum() { return orderNum; } public void setOrderNum(Integer orderNum) { this.orderNum = orderNum; } @Size(min = 0, max = 200, message = "è·¯ç±å°åä¸è½è¶ è¿200个å符") public String getPath() { return path; } public void setPath(String path) { this.path = path; } @Size(min = 0, max = 200, message = "ç»ä»¶è·¯å¾ä¸è½è¶ è¿255个å符") public String getComponent() { return component; } public void setComponent(String component) { this.component = component; } public String getQuery() { return query; } public void setQuery(String query) { this.query = query; } public String getIsFrame() { return isFrame; } public void setIsFrame(String isFrame) { this.isFrame = isFrame; } public String getIsCache() { return isCache; } public void setIsCache(String isCache) { this.isCache = isCache; } @NotBlank(message = "èåç±»åä¸è½ä¸ºç©º") public String getMenuType() { return menuType; } public void setMenuType(String menuType) { this.menuType = menuType; } public String getVisible() { return visible; } public void setVisible(String visible) { this.visible = visible; } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } @Size(min = 0, max = 100, message = "æéæ è¯é¿åº¦ä¸è½è¶ è¿100个å符") public String getPerms() { return perms; } public void setPerms(String perms) { this.perms = perms; } public String getIcon() { return icon; } public void setIcon(String icon) { this.icon = icon; } public List<SysMenu> getChildren() { return children; } public void setChildren(List<SysMenu> children) { this.children = children; } public String getParameter(){ return parameter; } public void setParameter(String parameter){ this.parameter = parameter; } @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) .append("menuId", getMenuId()) .append("menuName", getMenuName()) .append("parentId", getParentId()) .append("orderNum", getOrderNum()) .append("path", getPath()) .append("component", getComponent()) .append("isFrame", getIsFrame()) .append("IsCache", getIsCache()) .append("menuType", getMenuType()) .append("visible", getVisible()) .append("status ", getStatus()) .append("perms", getPerms()) .append("icon", getIcon()) .append("createBy", getCreateBy()) .append("createTime", getCreateTime()) .append("updateBy", getUpdateBy()) .append("updateTime", getUpdateTime()) .append("remark", getRemark()) .toString(); } } zhitan-common/src/main/java/com/zhitan/common/core/domain/entity/SysRole.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,245 @@ package com.zhitan.common.core.domain.entity; import java.util.Set; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.zhitan.common.annotation.Excel; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.zhitan.common.core.domain.BaseEntity; /** * è§è²è¡¨ sys_role * * @author zhitan */ @TableName("sys_role") public class SysRole extends BaseEntity { private static final long serialVersionUID = 1L; /** è§è²ID */ @TableId @Excel(name = "è§è²åºå·", cellType = Excel.ColumnType.NUMERIC) private Long roleId; /** è§è²åç§° */ @Excel(name = "è§è²åç§°") private String roleName; /** è§è²æé */ @Excel(name = "è§è²æé") private String roleKey; /** è§è²æåº */ @Excel(name = "è§è²æåº") private Integer roleSort; /** æ°æ®èå´ï¼1ï¼æææ°æ®æéï¼2ï¼èªå®ä¹æ°æ®æéï¼3ï¼æ¬é¨é¨æ°æ®æéï¼4ï¼æ¬é¨é¨å以䏿°æ®æéï¼5ï¼ä» æ¬äººæ°æ®æéï¼ */ @Excel(name = "æ°æ®èå´", readConverterExp = "1=æææ°æ®æé,2=èªå®ä¹æ°æ®æé,3=æ¬é¨é¨æ°æ®æé,4=æ¬é¨é¨å以䏿°æ®æé,5=ä» æ¬äººæ°æ®æé") private String dataScope; /** èåæ éæ©é¡¹æ¯å¦å ³èæ¾ç¤ºï¼ 0ï¼ç¶åä¸äºç¸å ³èæ¾ç¤º 1ï¼ç¶åäºç¸å ³èæ¾ç¤ºï¼ */ private boolean menuCheckStrictly; /** é¨é¨æ 鿩项æ¯å¦å ³èæ¾ç¤ºï¼0ï¼ç¶åä¸äºç¸å ³èæ¾ç¤º 1ï¼ç¶åäºç¸å ³èæ¾ç¤º ï¼ */ private boolean deptCheckStrictly; /** è§è²ç¶æï¼0æ£å¸¸ 1åç¨ï¼ */ @Excel(name = "è§è²ç¶æ", readConverterExp = "0=æ£å¸¸,1=åç¨") private String status; /** å 餿 å¿ï¼0代表åå¨ 2代表å é¤ï¼ */ private String delFlag; /** ç¨æ·æ¯å¦å卿¤è§è²æ è¯ é»è®¤ä¸åå¨ */ private boolean flag = false; /** èåç» */ private Long[] menuIds; /** é¨é¨ç»ï¼æ°æ®æéï¼ */ private Long[] deptIds; /** è§è²èåæé */ private Set<String> permissions; public SysRole() { } public SysRole(Long roleId) { this.roleId = roleId; } public Long getRoleId() { return roleId; } public void setRoleId(Long roleId) { this.roleId = roleId; } public boolean isAdmin() { return isAdmin(this.roleId); } public static boolean isAdmin(Long roleId) { return roleId != null && 1L == roleId; } @NotBlank(message = "è§è²åç§°ä¸è½ä¸ºç©º") @Size(min = 0, max = 30, message = "è§è²åç§°é¿åº¦ä¸è½è¶ è¿30个å符") public String getRoleName() { return roleName; } public void setRoleName(String roleName) { this.roleName = roleName; } @NotBlank(message = "æéå符ä¸è½ä¸ºç©º") @Size(min = 0, max = 100, message = "æéå符é¿åº¦ä¸è½è¶ è¿100个å符") public String getRoleKey() { return roleKey; } public void setRoleKey(String roleKey) { this.roleKey = roleKey; } @NotNull(message = "æ¾ç¤ºé¡ºåºä¸è½ä¸ºç©º") public Integer getRoleSort() { return roleSort; } public void setRoleSort(Integer roleSort) { this.roleSort = roleSort; } public String getDataScope() { return dataScope; } public void setDataScope(String dataScope) { this.dataScope = dataScope; } public boolean isMenuCheckStrictly() { return menuCheckStrictly; } public void setMenuCheckStrictly(boolean menuCheckStrictly) { this.menuCheckStrictly = menuCheckStrictly; } public boolean isDeptCheckStrictly() { return deptCheckStrictly; } public void setDeptCheckStrictly(boolean deptCheckStrictly) { this.deptCheckStrictly = deptCheckStrictly; } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } public String getDelFlag() { return delFlag; } public void setDelFlag(String delFlag) { this.delFlag = delFlag; } public boolean isFlag() { return flag; } public void setFlag(boolean flag) { this.flag = flag; } public Long[] getMenuIds() { return menuIds; } public void setMenuIds(Long[] menuIds) { this.menuIds = menuIds; } public Long[] getDeptIds() { return deptIds; } public void setDeptIds(Long[] deptIds) { this.deptIds = deptIds; } public Set<String> getPermissions() { return permissions; } public void setPermissions(Set<String> permissions) { this.permissions = permissions; } @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) .append("roleId", getRoleId()) .append("roleName", getRoleName()) .append("roleKey", getRoleKey()) .append("roleSort", getRoleSort()) .append("dataScope", getDataScope()) .append("menuCheckStrictly", isMenuCheckStrictly()) .append("deptCheckStrictly", isDeptCheckStrictly()) .append("status", getStatus()) .append("delFlag", getDelFlag()) .append("createBy", getCreateBy()) .append("createTime", getCreateTime()) .append("updateBy", getUpdateBy()) .append("updateTime", getUpdateTime()) .append("remark", getRemark()) .toString(); } } zhitan-common/src/main/java/com/zhitan/common/core/domain/entity/SysUser.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,327 @@ package com.zhitan.common.core.domain.entity; import java.util.Date; import java.util.List; import javax.validation.constraints.*; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.zhitan.common.annotation.Excel; import com.zhitan.common.annotation.Excels; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.zhitan.common.core.domain.BaseEntity; import com.zhitan.common.xss.Xss; /** * ç¨æ·å¯¹è±¡ sys_user * * @author zhitan */ @TableName("sys_user") public class SysUser extends BaseEntity { private static final long serialVersionUID = 1L; /** ç¨æ·ID */ @TableId @Excel(name = "ç¨æ·åºå·", cellType = Excel.ColumnType.NUMERIC, prompt = "ç¨æ·ç¼å·") private Long userId; /** é¨é¨ID */ @Excel(name = "é¨é¨ç¼å·", type = Excel.Type.IMPORT) private Long deptId; /** ç¨æ·è´¦å· */ @Excel(name = "ç»å½åç§°") private String userName; /** ç¨æ·æµç§° */ @Excel(name = "ç¨æ·åç§°") private String nickName; /** ç¨æ·é®ç®± */ @Excel(name = "ç¨æ·é®ç®±") private String email; /** ææºå·ç */ @Excel(name = "ææºå·ç ", cellType = Excel.ColumnType.TEXT) private String phoneNumber; /** ç¨æ·æ§å« */ @Excel(name = "ç¨æ·æ§å«", readConverterExp = "0=ç·,1=女,2=æªç¥") private String sex; /** ç¨æ·å¤´å */ private String avatar; /** å¯ç */ private String password; /** å¸å·ç¶æï¼0æ£å¸¸ 1åç¨ï¼ */ @Excel(name = "å¸å·ç¶æ", readConverterExp = "0=æ£å¸¸,1=åç¨") private String status; /** å 餿 å¿ï¼0代表åå¨ 2代表å é¤ï¼ */ private String delFlag; /** æåç»å½IP */ @Excel(name = "æåç»å½IP", type = Excel.Type.EXPORT) private String loginIp; /** æåç»å½æ¶é´ */ @Excel(name = "æåç»å½æ¶é´", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Excel.Type.EXPORT) private Date loginDate; /** é¨é¨å¯¹è±¡ */ @Excels({ @Excel(name = "é¨é¨åç§°", targetAttr = "deptName", type = Excel.Type.EXPORT), @Excel(name = "é¨é¨è´è´£äºº", targetAttr = "leader", type = Excel.Type.EXPORT) }) private SysDept dept; /** è§è²å¯¹è±¡ */ private List<SysRole> roles; /** è§è²ç» */ private Long[] roleIds; /** å²ä½ç» */ private Long[] postIds; /** è§è²ID */ private Long roleId; public SysUser() { } public SysUser(Long userId) { this.userId = userId; } public Long getUserId() { return userId; } public void setUserId(Long userId) { this.userId = userId; } public boolean isAdmin() { return isAdmin(this.userId); } public static boolean isAdmin(Long userId) { return userId != null && 1L == userId; } public Long getDeptId() { return deptId; } public void setDeptId(Long deptId) { this.deptId = deptId; } @Xss(message = "ç¨æ·æµç§°ä¸è½å å«èæ¬å符") @Size(min = 0, max = 30, message = "ç¨æ·æµç§°é¿åº¦ä¸è½è¶ è¿30个å符") public String getNickName() { return nickName; } public void setNickName(String nickName) { this.nickName = nickName; } @Xss(message = "ç¨æ·è´¦å·ä¸è½å å«èæ¬å符") @NotBlank(message = "ç¨æ·è´¦å·ä¸è½ä¸ºç©º") @Size(min = 0, max = 30, message = "ç¨æ·è´¦å·é¿åº¦ä¸è½è¶ è¿30个å符") public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } @Email(message = "é®ç®±æ ¼å¼ä¸æ£ç¡®") @Size(min = 0, max = 50, message = "é®ç®±é¿åº¦ä¸è½è¶ è¿50个å符") public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } @Size(min = 0, max = 11, message = "ææºå·ç é¿åº¦ä¸è½è¶ è¿11个å符") public String getPhoneNumber() { return phoneNumber; } public void setPhoneNumber(String phoneNumber) { this.phoneNumber = phoneNumber; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getAvatar() { return avatar; } public void setAvatar(String avatar) { this.avatar = avatar; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } public String getDelFlag() { return delFlag; } public void setDelFlag(String delFlag) { this.delFlag = delFlag; } public String getLoginIp() { return loginIp; } public void setLoginIp(String loginIp) { this.loginIp = loginIp; } public Date getLoginDate() { return loginDate; } public void setLoginDate(Date loginDate) { this.loginDate = loginDate; } public SysDept getDept() { return dept; } public void setDept(SysDept dept) { this.dept = dept; } public List<SysRole> getRoles() { return roles; } public void setRoles(List<SysRole> roles) { this.roles = roles; } public Long[] getRoleIds() { return roleIds; } public void setRoleIds(Long[] roleIds) { this.roleIds = roleIds; } public Long[] getPostIds() { return postIds; } public void setPostIds(Long[] postIds) { this.postIds = postIds; } public Long getRoleId() { return roleId; } public void setRoleId(Long roleId) { this.roleId = roleId; } @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) .append("userId", getUserId()) .append("deptId", getDeptId()) .append("userName", getUserName()) .append("nickName", getNickName()) .append("email", getEmail()) .append("phonenumber", getPhoneNumber()) .append("sex", getSex()) .append("avatar", getAvatar()) .append("password", getPassword()) .append("status", getStatus()) .append("delFlag", getDelFlag()) .append("loginIp", getLoginIp()) .append("loginDate", getLoginDate()) .append("createBy", getCreateBy()) .append("createTime", getCreateTime()) .append("updateBy", getUpdateBy()) .append("updateTime", getUpdateTime()) .append("remark", getRemark()) .append("dept", getDept()) .toString(); } } zhitan-common/src/main/java/com/zhitan/common/core/domain/model/LoginBody.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,69 @@ package com.zhitan.common.core.domain.model; /** * ç¨æ·ç»å½å¯¹è±¡ * * @author zhitan */ public class LoginBody { /** * ç¨æ·å */ private String username; /** * ç¨æ·å¯ç */ private String password; /** * éªè¯ç */ private String code; /** * å¯ä¸æ è¯ */ private String uuid; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public String getUuid() { return uuid; } public void setUuid(String uuid) { this.uuid = uuid; } } zhitan-common/src/main/java/com/zhitan/common/core/domain/model/LoginUser.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,266 @@ package com.zhitan.common.core.domain.model; import com.alibaba.fastjson2.annotation.JSONField; import com.zhitan.common.core.domain.entity.SysUser; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.userdetails.UserDetails; import java.util.Collection; import java.util.Set; /** * ç»å½ç¨æ·èº«ä»½æé * * @author zhitan */ public class LoginUser implements UserDetails { private static final long serialVersionUID = 1L; /** * ç¨æ·ID */ private Long userId; /** * é¨é¨ID */ private Long deptId; /** * ç¨æ·å¯ä¸æ è¯ */ private String token; /** * ç»å½æ¶é´ */ private Long loginTime; /** * è¿ææ¶é´ */ private Long expireTime; /** * ç»å½IPå°å */ private String ipaddr; /** * ç»å½å°ç¹ */ private String loginLocation; /** * æµè§å¨ç±»å */ private String browser; /** * æä½ç³»ç» */ private String os; /** * æéå表 */ private Set<String> permissions; /** * ç¨æ·ä¿¡æ¯ */ private SysUser user; public LoginUser() { } public LoginUser(SysUser user, Set<String> permissions) { this.user = user; this.permissions = permissions; } public LoginUser(Long userId, Long deptId, SysUser user, Set<String> permissions) { this.userId = userId; this.deptId = deptId; this.user = user; this.permissions = permissions; } public Long getUserId() { return userId; } public void setUserId(Long userId) { this.userId = userId; } public Long getDeptId() { return deptId; } public void setDeptId(Long deptId) { this.deptId = deptId; } public String getToken() { return token; } public void setToken(String token) { this.token = token; } @JSONField(serialize = false) @Override public String getPassword() { return user.getPassword(); } @Override public String getUsername() { return user.getUserName(); } /** * è´¦æ·æ¯å¦æªè¿æ,è¿ææ æ³éªè¯ */ @JSONField(serialize = false) @Override public boolean isAccountNonExpired() { return true; } /** * æå®ç¨æ·æ¯å¦è§£é,éå®çç¨æ·æ æ³è¿è¡èº«ä»½éªè¯ * * @return */ @JSONField(serialize = false) @Override public boolean isAccountNonLocked() { return true; } /** * æç¤ºæ¯å¦å·²è¿æçç¨æ·çåæ®(å¯ç ),è¿æç忮鲿¢è®¤è¯ * * @return */ @JSONField(serialize = false) @Override public boolean isCredentialsNonExpired() { return true; } /** * æ¯å¦å¯ç¨ ,ç¦ç¨çç¨æ·ä¸è½èº«ä»½éªè¯ * * @return */ @JSONField(serialize = false) @Override public boolean isEnabled() { return true; } public Long getLoginTime() { return loginTime; } public void setLoginTime(Long loginTime) { this.loginTime = loginTime; } public String getIpaddr() { return ipaddr; } public void setIpaddr(String ipaddr) { this.ipaddr = ipaddr; } public String getLoginLocation() { return loginLocation; } public void setLoginLocation(String loginLocation) { this.loginLocation = loginLocation; } public String getBrowser() { return browser; } public void setBrowser(String browser) { this.browser = browser; } public String getOs() { return os; } public void setOs(String os) { this.os = os; } public Long getExpireTime() { return expireTime; } public void setExpireTime(Long expireTime) { this.expireTime = expireTime; } public Set<String> getPermissions() { return permissions; } public void setPermissions(Set<String> permissions) { this.permissions = permissions; } public SysUser getUser() { return user; } public void setUser(SysUser user) { this.user = user; } @Override public Collection<? extends GrantedAuthority> getAuthorities() { return null; } } zhitan-common/src/main/java/com/zhitan/common/core/domain/model/RegisterBody.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,11 @@ package com.zhitan.common.core.domain.model; /** * ç¨æ·æ³¨å对象 * * @author zhitan */ public class RegisterBody extends LoginBody { } zhitan-common/src/main/java/com/zhitan/common/core/page/PageDomain.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,101 @@ package com.zhitan.common.core.page; import com.zhitan.common.utils.StringUtils; /** * åé¡µæ°æ® * * @author zhitan */ public class PageDomain { /** å½åè®°å½èµ·å§ç´¢å¼ */ private Integer pageNum; /** æ¯é¡µæ¾ç¤ºè®°å½æ° */ private Integer pageSize; /** æåºå */ private String orderByColumn; /** æåºçæ¹ådescæè asc */ private String isAsc = "asc"; /** å页忰åçå */ private Boolean reasonable = true; public String getOrderBy() { if (StringUtils.isEmpty(orderByColumn)) { return ""; } return StringUtils.toUnderScoreCase(orderByColumn) + " " + isAsc; } public Integer getPageNum() { return pageNum; } public void setPageNum(Integer pageNum) { this.pageNum = pageNum; } public Integer getPageSize() { return pageSize; } public void setPageSize(Integer pageSize) { this.pageSize = pageSize; } public String getOrderByColumn() { return orderByColumn; } public void setOrderByColumn(String orderByColumn) { this.orderByColumn = orderByColumn; } public String getIsAsc() { return isAsc; } public void setIsAsc(String isAsc) { if (StringUtils.isNotEmpty(isAsc)) { // å ¼å®¹å端æåºç±»å if ("ascending".equals(isAsc)) { isAsc = "asc"; } else if ("descending".equals(isAsc)) { isAsc = "desc"; } this.isAsc = isAsc; } } public Boolean getReasonable() { if (StringUtils.isNull(reasonable)) { return Boolean.TRUE; } return reasonable; } public void setReasonable(Boolean reasonable) { this.reasonable = reasonable; } } zhitan-common/src/main/java/com/zhitan/common/core/page/TableDataInfo.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,85 @@ package com.zhitan.common.core.page; import java.io.Serializable; import java.util.List; /** * è¡¨æ ¼åé¡µæ°æ®å¯¹è±¡ * * @author zhitan */ public class TableDataInfo implements Serializable { private static final long serialVersionUID = 1L; /** æ»è®°å½æ° */ private long total; /** åè¡¨æ°æ® */ private List<?> rows; /** æ¶æ¯ç¶æç */ private int code; /** æ¶æ¯å 容 */ private String msg; /** * è¡¨æ ¼æ°æ®å¯¹è±¡ */ public TableDataInfo() { } /** * å页 * * @param list åè¡¨æ°æ® * @param total æ»è®°å½æ° */ public TableDataInfo(List<?> list, int total) { this.rows = list; this.total = total; } public long getTotal() { return total; } public void setTotal(long total) { this.total = total; } public List<?> getRows() { return rows; } public void setRows(List<?> rows) { this.rows = rows; } public int getCode() { return code; } public void setCode(int code) { this.code = code; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } } zhitan-common/src/main/java/com/zhitan/common/core/page/TableSupport.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,56 @@ package com.zhitan.common.core.page; import com.zhitan.common.core.text.Convert; import com.zhitan.common.utils.ServletUtils; /** * è¡¨æ ¼æ°æ®å¤ç * * @author zhitan */ public class TableSupport { /** * å½åè®°å½èµ·å§ç´¢å¼ */ public static final String PAGE_NUM = "pageNum"; /** * æ¯é¡µæ¾ç¤ºè®°å½æ° */ public static final String PAGE_SIZE = "pageSize"; /** * æåºå */ public static final String ORDER_BY_COLUMN = "orderByColumn"; /** * æåºçæ¹å "desc" æè "asc". */ public static final String IS_ASC = "isAsc"; /** * å页忰åçå */ public static final String REASONABLE = "reasonable"; /** * å°è£ å页对象 */ public static PageDomain getPageDomain() { PageDomain pageDomain = new PageDomain(); pageDomain.setPageNum(Convert.toInt(ServletUtils.getParameter(PAGE_NUM), 1)); pageDomain.setPageSize(Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10)); pageDomain.setOrderByColumn(ServletUtils.getParameter(ORDER_BY_COLUMN)); pageDomain.setIsAsc(ServletUtils.getParameter(IS_ASC)); pageDomain.setReasonable(ServletUtils.getParameterToBool(REASONABLE)); return pageDomain; } public static PageDomain buildPageRequest() { return getPageDomain(); } } zhitan-common/src/main/java/com/zhitan/common/core/redis/RedisCache.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,268 @@ package com.zhitan.common.core.redis; import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.TimeUnit; import javax.annotation.Resource; import org.springframework.data.redis.core.BoundSetOperations; import org.springframework.data.redis.core.HashOperations; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.ValueOperations; import org.springframework.stereotype.Component; /** * spring redis å·¥å ·ç±» * * @author zhitan **/ @SuppressWarnings(value = { "unchecked", "rawtypes" }) @Component public class RedisCache { @Resource public RedisTemplate redisTemplate; /** * ç¼ååºæ¬ç对象ï¼IntegerãStringãå®ä½ç±»ç * * @param key ç¼åçé®å¼ * @param value ç¼åçå¼ */ public <T> void setCacheObject(final String key, final T value) { redisTemplate.opsForValue().set(key, value); } /** * ç¼ååºæ¬ç对象ï¼IntegerãStringãå®ä½ç±»ç * * @param key ç¼åçé®å¼ * @param value ç¼åçå¼ * @param timeout æ¶é´ * @param timeUnit æ¶é´é¢ç²åº¦ */ public <T> void setCacheObject(final String key, final T value, final Integer timeout, final TimeUnit timeUnit) { redisTemplate.opsForValue().set(key, value, timeout, timeUnit); } /** * è®¾ç½®æææ¶é´ * * @param key Redisé® * @param timeout è¶ æ¶æ¶é´ * @return true=设置æåï¼false=设置失败 */ public boolean expire(final String key, final long timeout) { return expire(key, timeout, TimeUnit.SECONDS); } /** * è®¾ç½®æææ¶é´ * * @param key Redisé® * @param timeout è¶ æ¶æ¶é´ * @param unit æ¶é´åä½ * @return true=设置æåï¼false=设置失败 */ public boolean expire(final String key, final long timeout, final TimeUnit unit) { return redisTemplate.expire(key, timeout, unit); } /** * è·åæææ¶é´ * * @param key Redisé® * @return æææ¶é´ */ public long getExpire(final String key) { return redisTemplate.getExpire(key); } /** * 夿 keyæ¯å¦åå¨ * * @param key é® * @return true åå¨ falseä¸åå¨ */ public Boolean hasKey(String key) { return redisTemplate.hasKey(key); } /** * è·å¾ç¼åçåºæ¬å¯¹è±¡ã * * @param key ç¼åé®å¼ * @return ç¼åé®å¼å¯¹åºçæ°æ® */ public <T> T getCacheObject(final String key) { ValueOperations<String, T> operation = redisTemplate.opsForValue(); return operation.get(key); } /** * å é¤å个对象 * * @param key */ public boolean deleteObject(final String key) { return redisTemplate.delete(key); } /** * å é¤éå对象 * * @param collection å¤ä¸ªå¯¹è±¡ * @return */ public boolean deleteObject(final Collection collection) { return redisTemplate.delete(collection) > 0; } /** * ç¼åListæ°æ® * * @param key ç¼åçé®å¼ * @param dataList å¾ ç¼åçListæ°æ® * @return ç¼åç对象 */ public <T> long setCacheList(final String key, final List<T> dataList) { Long count = redisTemplate.opsForList().rightPushAll(key, dataList); return count == null ? 0 : count; } /** * è·å¾ç¼åçlist对象 * * @param key ç¼åçé®å¼ * @return ç¼åé®å¼å¯¹åºçæ°æ® */ public <T> List<T> getCacheList(final String key) { return redisTemplate.opsForList().range(key, 0, -1); } /** * ç¼åSet * * @param key ç¼åé®å¼ * @param dataSet ç¼åçæ°æ® * @return ç¼åæ°æ®ç对象 */ public <T> BoundSetOperations<String, T> setCacheSet(final String key, final Set<T> dataSet) { BoundSetOperations<String, T> setOperation = redisTemplate.boundSetOps(key); Iterator<T> it = dataSet.iterator(); while (it.hasNext()) { setOperation.add(it.next()); } return setOperation; } /** * è·å¾ç¼åçset * * @param key * @return */ public <T> Set<T> getCacheSet(final String key) { return redisTemplate.opsForSet().members(key); } /** * ç¼åMap * * @param key * @param dataMap */ public <T> void setCacheMap(final String key, final Map<String, T> dataMap) { if (dataMap != null) { redisTemplate.opsForHash().putAll(key, dataMap); } } /** * è·å¾ç¼åçMap * * @param key * @return */ public <T> Map<String, T> getCacheMap(final String key) { return redisTemplate.opsForHash().entries(key); } /** * å¾Hashä¸åå ¥æ°æ® * * @param key Redisé® * @param hKey Hashé® * @param value å¼ */ public <T> void setCacheMapValue(final String key, final String hKey, final T value) { redisTemplate.opsForHash().put(key, hKey, value); } /** * è·åHashä¸çæ°æ® * * @param key Redisé® * @param hKey Hashé® * @return Hashä¸ç对象 */ public <T> T getCacheMapValue(final String key, final String hKey) { HashOperations<String, String, T> opsForHash = redisTemplate.opsForHash(); return opsForHash.get(key, hKey); } /** * è·åå¤ä¸ªHashä¸çæ°æ® * * @param key Redisé® * @param hKeys Hashé®éå * @return Hash对象éå */ public <T> List<T> getMultiCacheMapValue(final String key, final Collection<Object> hKeys) { return redisTemplate.opsForHash().multiGet(key, hKeys); } /** * å é¤Hashä¸çææ¡æ°æ® * * @param key Redisé® * @param hKey Hashé® * @return æ¯å¦æå */ public boolean deleteCacheMapValue(final String key, final String hKey) { return redisTemplate.opsForHash().delete(key, hKey) > 0; } /** * è·å¾ç¼åçåºæ¬å¯¹è±¡å表 * * @param pattern å符串åç¼ * @return 对象å表 */ public Collection<String> keys(final String pattern) { return redisTemplate.keys(pattern); } } zhitan-common/src/main/java/com/zhitan/common/core/text/CharsetKit.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,86 @@ package com.zhitan.common.core.text; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import com.zhitan.common.utils.StringUtils; /** * å符éå·¥å ·ç±» * * @author zhitan */ public class CharsetKit { /** ISO-8859-1 */ public static final String ISO_8859_1 = "ISO-8859-1"; /** UTF-8 */ public static final String UTF_8 = "UTF-8"; /** GBK */ public static final String GBK = "GBK"; /** ISO-8859-1 */ public static final Charset CHARSET_ISO_8859_1 = Charset.forName(ISO_8859_1); /** UTF-8 */ public static final Charset CHARSET_UTF_8 = Charset.forName(UTF_8); /** GBK */ public static final Charset CHARSET_GBK = Charset.forName(GBK); /** * 转æ¢ä¸ºCharset对象 * * @param charset å符éï¼ä¸ºç©ºåè¿åé»è®¤å符é * @return Charset */ public static Charset charset(String charset) { return StringUtils.isEmpty(charset) ? Charset.defaultCharset() : Charset.forName(charset); } /** * 转æ¢å符串çå符éç¼ç * * @param source å符串 * @param srcCharset æºå符éï¼é»è®¤ISO-8859-1 * @param destCharset ç®æ å符éï¼é»è®¤UTF-8 * @return 转æ¢åçå符é */ public static String convert(String source, String srcCharset, String destCharset) { return convert(source, Charset.forName(srcCharset), Charset.forName(destCharset)); } /** * 转æ¢å符串çå符éç¼ç * * @param source å符串 * @param srcCharset æºå符éï¼é»è®¤ISO-8859-1 * @param destCharset ç®æ å符éï¼é»è®¤UTF-8 * @return 转æ¢åçå符é */ public static String convert(String source, Charset srcCharset, Charset destCharset) { if (null == srcCharset) { srcCharset = StandardCharsets.ISO_8859_1; } if (null == destCharset) { destCharset = StandardCharsets.UTF_8; } if (StringUtils.isEmpty(source) || srcCharset.equals(destCharset)) { return source; } return new String(source.getBytes(srcCharset), destCharset); } /** * @return ç³»ç»å符éç¼ç */ public static String systemCharset() { return Charset.defaultCharset().name(); } } zhitan-common/src/main/java/com/zhitan/common/core/text/Convert.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,1006 @@ package com.zhitan.common.core.text; import java.math.BigDecimal; import java.math.BigInteger; import java.math.RoundingMode; import java.nio.ByteBuffer; import java.nio.charset.Charset; import java.text.NumberFormat; import java.util.Set; import com.zhitan.common.utils.StringUtils; import org.apache.commons.lang3.ArrayUtils; /** * ç±»å转æ¢å¨ * * @author zhitan */ public class Convert { /** * 转æ¢ä¸ºå符串<br> * 妿ç»å®çå¼ä¸ºnullï¼æè 转æ¢å¤±è´¥ï¼è¿åé»è®¤å¼<br> * 转æ¢å¤±è´¥ä¸ä¼æ¥é * * @param value 被转æ¢çå¼ * @param defaultValue 转æ¢é误æ¶çé»è®¤å¼ * @return ç»æ */ public static String toStr(Object value, String defaultValue) { if (null == value) { return defaultValue; } if (value instanceof String) { return (String) value; } return value.toString(); } /** * 转æ¢ä¸ºå符串<br> * 妿ç»å®çå¼ä¸º<code>null</code>ï¼æè 转æ¢å¤±è´¥ï¼è¿åé»è®¤å¼<code>null</code><br> * 转æ¢å¤±è´¥ä¸ä¼æ¥é * * @param value 被转æ¢çå¼ * @return ç»æ */ public static String toStr(Object value) { return toStr(value, null); } /** * 转æ¢ä¸ºå符<br> * 妿ç»å®çå¼ä¸ºnullï¼æè 转æ¢å¤±è´¥ï¼è¿åé»è®¤å¼<br> * 转æ¢å¤±è´¥ä¸ä¼æ¥é * * @param value 被转æ¢çå¼ * @param defaultValue 转æ¢é误æ¶çé»è®¤å¼ * @return ç»æ */ public static Character toChar(Object value, Character defaultValue) { if (null == value) { return defaultValue; } if (value instanceof Character) { return (Character) value; } final String valueStr = toStr(value, null); return StringUtils.isEmpty(valueStr) ? defaultValue : valueStr.charAt(0); } /** * 转æ¢ä¸ºå符<br> * 妿ç»å®çå¼ä¸º<code>null</code>ï¼æè 转æ¢å¤±è´¥ï¼è¿åé»è®¤å¼<code>null</code><br> * 转æ¢å¤±è´¥ä¸ä¼æ¥é * * @param value 被转æ¢çå¼ * @return ç»æ */ public static Character toChar(Object value) { return toChar(value, null); } /** * 转æ¢ä¸ºbyte<br> * 妿ç»å®çå¼ä¸º<code>null</code>ï¼æè 转æ¢å¤±è´¥ï¼è¿åé»è®¤å¼<br> * 转æ¢å¤±è´¥ä¸ä¼æ¥é * * @param value 被转æ¢çå¼ * @param defaultValue 转æ¢é误æ¶çé»è®¤å¼ * @return ç»æ */ public static Byte toByte(Object value, Byte defaultValue) { if (value == null) { return defaultValue; } if (value instanceof Byte) { return (Byte) value; } if (value instanceof Number) { return ((Number) value).byteValue(); } final String valueStr = toStr(value, null); if (StringUtils.isEmpty(valueStr)) { return defaultValue; } try { return Byte.parseByte(valueStr); } catch (Exception e) { return defaultValue; } } /** * 转æ¢ä¸ºbyte<br> * 妿ç»å®çå¼ä¸º<code>null</code>ï¼æè 转æ¢å¤±è´¥ï¼è¿åé»è®¤å¼<code>null</code><br> * 转æ¢å¤±è´¥ä¸ä¼æ¥é * * @param value 被转æ¢çå¼ * @return ç»æ */ public static Byte toByte(Object value) { return toByte(value, null); } /** * 转æ¢ä¸ºShort<br> * 妿ç»å®çå¼ä¸º<code>null</code>ï¼æè 转æ¢å¤±è´¥ï¼è¿åé»è®¤å¼<br> * 转æ¢å¤±è´¥ä¸ä¼æ¥é * * @param value 被转æ¢çå¼ * @param defaultValue 转æ¢é误æ¶çé»è®¤å¼ * @return ç»æ */ public static Short toShort(Object value, Short defaultValue) { if (value == null) { return defaultValue; } if (value instanceof Short) { return (Short) value; } if (value instanceof Number) { return ((Number) value).shortValue(); } final String valueStr = toStr(value, null); if (StringUtils.isEmpty(valueStr)) { return defaultValue; } try { return Short.parseShort(valueStr.trim()); } catch (Exception e) { return defaultValue; } } /** * 转æ¢ä¸ºShort<br> * 妿ç»å®çå¼ä¸º<code>null</code>ï¼æè 转æ¢å¤±è´¥ï¼è¿åé»è®¤å¼<code>null</code><br> * 转æ¢å¤±è´¥ä¸ä¼æ¥é * * @param value 被转æ¢çå¼ * @return ç»æ */ public static Short toShort(Object value) { return toShort(value, null); } /** * 转æ¢ä¸ºNumber<br> * 妿ç»å®çå¼ä¸ºç©ºï¼æè 转æ¢å¤±è´¥ï¼è¿åé»è®¤å¼<br> * 转æ¢å¤±è´¥ä¸ä¼æ¥é * * @param value 被转æ¢çå¼ * @param defaultValue 转æ¢é误æ¶çé»è®¤å¼ * @return ç»æ */ public static Number toNumber(Object value, Number defaultValue) { if (value == null) { return defaultValue; } if (value instanceof Number) { return (Number) value; } final String valueStr = toStr(value, null); if (StringUtils.isEmpty(valueStr)) { return defaultValue; } try { return NumberFormat.getInstance().parse(valueStr); } catch (Exception e) { return defaultValue; } } /** * 转æ¢ä¸ºNumber<br> * 妿ç»å®çå¼ä¸ºç©ºï¼æè 转æ¢å¤±è´¥ï¼è¿åé»è®¤å¼<code>null</code><br> * 转æ¢å¤±è´¥ä¸ä¼æ¥é * * @param value 被转æ¢çå¼ * @return ç»æ */ public static Number toNumber(Object value) { return toNumber(value, null); } /** * 转æ¢ä¸ºint<br> * 妿ç»å®çå¼ä¸ºç©ºï¼æè 转æ¢å¤±è´¥ï¼è¿åé»è®¤å¼<br> * 转æ¢å¤±è´¥ä¸ä¼æ¥é * * @param value 被转æ¢çå¼ * @param defaultValue 转æ¢é误æ¶çé»è®¤å¼ * @return ç»æ */ public static Integer toInt(Object value, Integer defaultValue) { if (value == null) { return defaultValue; } if (value instanceof Integer) { return (Integer) value; } if (value instanceof Number) { return ((Number) value).intValue(); } final String valueStr = toStr(value, null); if (StringUtils.isEmpty(valueStr)) { return defaultValue; } try { return Integer.parseInt(valueStr.trim()); } catch (Exception e) { return defaultValue; } } /** * 转æ¢ä¸ºint<br> * 妿ç»å®çå¼ä¸º<code>null</code>ï¼æè 转æ¢å¤±è´¥ï¼è¿åé»è®¤å¼<code>null</code><br> * 转æ¢å¤±è´¥ä¸ä¼æ¥é * * @param value 被转æ¢çå¼ * @return ç»æ */ public static Integer toInt(Object value) { return toInt(value, null); } /** * 转æ¢ä¸ºIntegeræ°ç»<br> * * @param str 被转æ¢çå¼ * @return ç»æ */ public static Integer[] toIntArray(String str) { return toIntArray(",", str); } /** * 转æ¢ä¸ºLongæ°ç»<br> * * @param str 被转æ¢çå¼ * @return ç»æ */ public static Long[] toLongArray(String str) { return toLongArray(",", str); } /** * 转æ¢ä¸ºIntegeræ°ç»<br> * * @param split åé符 * @param split 被转æ¢çå¼ * @return ç»æ */ public static Integer[] toIntArray(String split, String str) { if (StringUtils.isEmpty(str)) { return new Integer[] {}; } String[] arr = str.split(split); final Integer[] ints = new Integer[arr.length]; for (int i = 0; i < arr.length; i++) { final Integer v = toInt(arr[i], 0); ints[i] = v; } return ints; } /** * 转æ¢ä¸ºLongæ°ç»<br> * * @param split åé符 * @param str 被转æ¢çå¼ * @return ç»æ */ public static Long[] toLongArray(String split, String str) { if (StringUtils.isEmpty(str)) { return new Long[] {}; } String[] arr = str.split(split); final Long[] longs = new Long[arr.length]; for (int i = 0; i < arr.length; i++) { final Long v = toLong(arr[i], null); longs[i] = v; } return longs; } /** * 转æ¢ä¸ºStringæ°ç»<br> * * @param str 被转æ¢çå¼ * @return ç»æ */ public static String[] toStrArray(String str) { return toStrArray(",", str); } /** * 转æ¢ä¸ºStringæ°ç»<br> * * @param split åé符 * @param split 被转æ¢çå¼ * @return ç»æ */ public static String[] toStrArray(String split, String str) { return str.split(split); } /** * 转æ¢ä¸ºlong<br> * 妿ç»å®çå¼ä¸ºç©ºï¼æè 转æ¢å¤±è´¥ï¼è¿åé»è®¤å¼<br> * 转æ¢å¤±è´¥ä¸ä¼æ¥é * * @param value 被转æ¢çå¼ * @param defaultValue 转æ¢é误æ¶çé»è®¤å¼ * @return ç»æ */ public static Long toLong(Object value, Long defaultValue) { if (value == null) { return defaultValue; } if (value instanceof Long) { return (Long) value; } if (value instanceof Number) { return ((Number) value).longValue(); } final String valueStr = toStr(value, null); if (StringUtils.isEmpty(valueStr)) { return defaultValue; } try { // æ¯æç§å¦è®¡æ°æ³ return new BigDecimal(valueStr.trim()).longValue(); } catch (Exception e) { return defaultValue; } } /** * 转æ¢ä¸ºlong<br> * 妿ç»å®çå¼ä¸º<code>null</code>ï¼æè 转æ¢å¤±è´¥ï¼è¿åé»è®¤å¼<code>null</code><br> * 转æ¢å¤±è´¥ä¸ä¼æ¥é * * @param value 被转æ¢çå¼ * @return ç»æ */ public static Long toLong(Object value) { return toLong(value, null); } /** * 转æ¢ä¸ºdouble<br> * 妿ç»å®çå¼ä¸ºç©ºï¼æè 转æ¢å¤±è´¥ï¼è¿åé»è®¤å¼<br> * 转æ¢å¤±è´¥ä¸ä¼æ¥é * * @param value 被转æ¢çå¼ * @param defaultValue 转æ¢é误æ¶çé»è®¤å¼ * @return ç»æ */ public static Double toDouble(Object value, Double defaultValue) { if (value == null) { return defaultValue; } if (value instanceof Double) { return (Double) value; } if (value instanceof Number) { return ((Number) value).doubleValue(); } final String valueStr = toStr(value, null); if (StringUtils.isEmpty(valueStr)) { return defaultValue; } try { // æ¯æç§å¦è®¡æ°æ³ return new BigDecimal(valueStr.trim()).doubleValue(); } catch (Exception e) { return defaultValue; } } /** * 转æ¢ä¸ºdouble<br> * 妿ç»å®çå¼ä¸ºç©ºï¼æè 转æ¢å¤±è´¥ï¼è¿åé»è®¤å¼<code>null</code><br> * 转æ¢å¤±è´¥ä¸ä¼æ¥é * * @param value 被转æ¢çå¼ * @return ç»æ */ public static Double toDouble(Object value) { return toDouble(value, null); } /** * 转æ¢ä¸ºFloat<br> * 妿ç»å®çå¼ä¸ºç©ºï¼æè 转æ¢å¤±è´¥ï¼è¿åé»è®¤å¼<br> * 转æ¢å¤±è´¥ä¸ä¼æ¥é * * @param value 被转æ¢çå¼ * @param defaultValue 转æ¢é误æ¶çé»è®¤å¼ * @return ç»æ */ public static Float toFloat(Object value, Float defaultValue) { if (value == null) { return defaultValue; } if (value instanceof Float) { return (Float) value; } if (value instanceof Number) { return ((Number) value).floatValue(); } final String valueStr = toStr(value, null); if (StringUtils.isEmpty(valueStr)) { return defaultValue; } try { return Float.parseFloat(valueStr.trim()); } catch (Exception e) { return defaultValue; } } /** * 转æ¢ä¸ºFloat<br> * 妿ç»å®çå¼ä¸ºç©ºï¼æè 转æ¢å¤±è´¥ï¼è¿åé»è®¤å¼<code>null</code><br> * 转æ¢å¤±è´¥ä¸ä¼æ¥é * * @param value 被转æ¢çå¼ * @return ç»æ */ public static Float toFloat(Object value) { return toFloat(value, null); } /** * 转æ¢ä¸ºboolean<br> * Stringæ¯æçå¼ä¸ºï¼trueãfalseãyesãokãnoï¼1,0 妿ç»å®çå¼ä¸ºç©ºï¼æè 转æ¢å¤±è´¥ï¼è¿åé»è®¤å¼<br> * 转æ¢å¤±è´¥ä¸ä¼æ¥é * * @param value 被转æ¢çå¼ * @param defaultValue 转æ¢é误æ¶çé»è®¤å¼ * @return ç»æ */ public static Boolean toBool(Object value, Boolean defaultValue) { if (value == null) { return defaultValue; } if (value instanceof Boolean) { return (Boolean) value; } String valueStr = toStr(value, null); if (StringUtils.isEmpty(valueStr)) { return defaultValue; } valueStr = valueStr.trim().toLowerCase(); switch (valueStr) { case "true": case "yes": case "ok": case "1": return true; case "false": case "no": case "0": return false; default: return defaultValue; } } /** * 转æ¢ä¸ºboolean<br> * 妿ç»å®çå¼ä¸ºç©ºï¼æè 转æ¢å¤±è´¥ï¼è¿åé»è®¤å¼<code>null</code><br> * 转æ¢å¤±è´¥ä¸ä¼æ¥é * * @param value 被转æ¢çå¼ * @return ç»æ */ public static Boolean toBool(Object value) { return toBool(value, null); } /** * 转æ¢ä¸ºEnum对象<br> * 妿ç»å®çå¼ä¸ºç©ºï¼æè 转æ¢å¤±è´¥ï¼è¿åé»è®¤å¼<br> * * @param clazz EnumçClass * @param value å¼ * @param defaultValue é»è®¤å¼ * @return Enum */ public static <E extends Enum<E>> E toEnum(Class<E> clazz, Object value, E defaultValue) { if (value == null) { return defaultValue; } if (clazz.isAssignableFrom(value.getClass())) { @SuppressWarnings("unchecked") E myE = (E) value; return myE; } final String valueStr = toStr(value, null); if (StringUtils.isEmpty(valueStr)) { return defaultValue; } try { return Enum.valueOf(clazz, valueStr); } catch (Exception e) { return defaultValue; } } /** * 转æ¢ä¸ºEnum对象<br> * 妿ç»å®çå¼ä¸ºç©ºï¼æè 转æ¢å¤±è´¥ï¼è¿åé»è®¤å¼<code>null</code><br> * * @param clazz EnumçClass * @param value å¼ * @return Enum */ public static <E extends Enum<E>> E toEnum(Class<E> clazz, Object value) { return toEnum(clazz, value, null); } /** * 转æ¢ä¸ºBigInteger<br> * 妿ç»å®çå¼ä¸ºç©ºï¼æè 转æ¢å¤±è´¥ï¼è¿åé»è®¤å¼<br> * 转æ¢å¤±è´¥ä¸ä¼æ¥é * * @param value 被转æ¢çå¼ * @param defaultValue 转æ¢é误æ¶çé»è®¤å¼ * @return ç»æ */ public static BigInteger toBigInteger(Object value, BigInteger defaultValue) { if (value == null) { return defaultValue; } if (value instanceof BigInteger) { return (BigInteger) value; } if (value instanceof Long) { return BigInteger.valueOf((Long) value); } final String valueStr = toStr(value, null); if (StringUtils.isEmpty(valueStr)) { return defaultValue; } try { return new BigInteger(valueStr); } catch (Exception e) { return defaultValue; } } /** * 转æ¢ä¸ºBigInteger<br> * 妿ç»å®çå¼ä¸ºç©ºï¼æè 转æ¢å¤±è´¥ï¼è¿åé»è®¤å¼<code>null</code><br> * 转æ¢å¤±è´¥ä¸ä¼æ¥é * * @param value 被转æ¢çå¼ * @return ç»æ */ public static BigInteger toBigInteger(Object value) { return toBigInteger(value, null); } /** * 转æ¢ä¸ºBigDecimal<br> * 妿ç»å®çå¼ä¸ºç©ºï¼æè 转æ¢å¤±è´¥ï¼è¿åé»è®¤å¼<br> * 转æ¢å¤±è´¥ä¸ä¼æ¥é * * @param value 被转æ¢çå¼ * @param defaultValue 转æ¢é误æ¶çé»è®¤å¼ * @return ç»æ */ public static BigDecimal toBigDecimal(Object value, BigDecimal defaultValue) { if (value == null) { return defaultValue; } if (value instanceof BigDecimal) { return (BigDecimal) value; } if (value instanceof Long) { return new BigDecimal((Long) value); } if (value instanceof Double) { return BigDecimal.valueOf((Double) value); } if (value instanceof Integer) { return new BigDecimal((Integer) value); } final String valueStr = toStr(value, null); if (StringUtils.isEmpty(valueStr)) { return defaultValue; } try { return new BigDecimal(valueStr); } catch (Exception e) { return defaultValue; } } /** * 转æ¢ä¸ºBigDecimal<br> * 妿ç»å®çå¼ä¸ºç©ºï¼æè 转æ¢å¤±è´¥ï¼è¿åé»è®¤å¼<br> * 转æ¢å¤±è´¥ä¸ä¼æ¥é * * @param value 被转æ¢çå¼ * @return ç»æ */ public static BigDecimal toBigDecimal(Object value) { return toBigDecimal(value, null); } /** * å°å¯¹è±¡è½¬ä¸ºå符串<br> * 1ãByteæ°ç»åByteBufferä¼è¢«è½¬æ¢ä¸ºå¯¹åºåç¬¦ä¸²çæ°ç» 2ã对象æ°ç»ä¼è°ç¨Arrays.toStringæ¹æ³ * * @param obj 对象 * @return å符串 */ public static String utf8Str(Object obj) { return str(obj, CharsetKit.CHARSET_UTF_8); } /** * å°å¯¹è±¡è½¬ä¸ºå符串<br> * 1ãByteæ°ç»åByteBufferä¼è¢«è½¬æ¢ä¸ºå¯¹åºåç¬¦ä¸²çæ°ç» 2ã对象æ°ç»ä¼è°ç¨Arrays.toStringæ¹æ³ * * @param obj 对象 * @param charsetName å符é * @return å符串 */ public static String str(Object obj, String charsetName) { return str(obj, Charset.forName(charsetName)); } /** * å°å¯¹è±¡è½¬ä¸ºå符串<br> * 1ãByteæ°ç»åByteBufferä¼è¢«è½¬æ¢ä¸ºå¯¹åºåç¬¦ä¸²çæ°ç» 2ã对象æ°ç»ä¼è°ç¨Arrays.toStringæ¹æ³ * * @param obj 对象 * @param charset å符é * @return å符串 */ public static String str(Object obj, Charset charset) { if (null == obj) { return null; } if (obj instanceof String) { return (String) obj; } else if (obj instanceof byte[]) { return str((byte[]) obj, charset); } else if (obj instanceof Byte[]) { byte[] bytes = ArrayUtils.toPrimitive((Byte[]) obj); return str(bytes, charset); } else if (obj instanceof ByteBuffer) { return str((ByteBuffer) obj, charset); } return obj.toString(); } /** * å°byteæ°ç»è½¬ä¸ºå符串 * * @param bytes byteæ°ç» * @param charset å符é * @return å符串 */ public static String str(byte[] bytes, String charset) { return str(bytes, StringUtils.isEmpty(charset) ? Charset.defaultCharset() : Charset.forName(charset)); } /** * è§£ç åèç * * @param data å符串 * @param charset å符éï¼å¦ææ¤å段为空ï¼åè§£ç çç»æåå³äºå¹³å° * @return è§£ç åçå符串 */ public static String str(byte[] data, Charset charset) { if (data == null) { return null; } if (null == charset) { return new String(data); } return new String(data, charset); } /** * å°ç¼ç çbyteBufferæ°æ®è½¬æ¢ä¸ºå符串 * * @param data æ°æ® * @param charset å符éï¼å¦æä¸ºç©ºä½¿ç¨å½åç³»ç»å符é * @return å符串 */ public static String str(ByteBuffer data, String charset) { if (data == null) { return null; } return str(data, Charset.forName(charset)); } /** * å°ç¼ç çbyteBufferæ°æ®è½¬æ¢ä¸ºå符串 * * @param data æ°æ® * @param charset å符éï¼å¦æä¸ºç©ºä½¿ç¨å½åç³»ç»å符é * @return å符串 */ public static String str(ByteBuffer data, Charset charset) { if (null == charset) { charset = Charset.defaultCharset(); } return charset.decode(data).toString(); } // ----------------------------------------------------------------------- å ¨è§åè§è½¬æ¢ /** * åè§è½¬å ¨è§ * * @param input String. * @return å ¨è§å符串. */ public static String toSBC(String input) { return toSBC(input, null); } /** * åè§è½¬å ¨è§ * * @param input String * @param notConvertSet 䏿¿æ¢çå符éå * @return å ¨è§å符串. */ public static String toSBC(String input, Set<Character> notConvertSet) { char[] c = input.toCharArray(); for (int i = 0; i < c.length; i++) { if (null != notConvertSet && notConvertSet.contains(c[i])) { // è·³è¿ä¸æ¿æ¢çå符 continue; } if (c[i] == ' ') { c[i] = '\u3000'; } else if (c[i] < '\177') { c[i] = (char) (c[i] + 65248); } } return new String(c); } /** * å ¨è§è½¬åè§ * * @param input String. * @return åè§å符串 */ public static String toDBC(String input) { return toDBC(input, null); } /** * æ¿æ¢å ¨è§ä¸ºåè§ * * @param text ææ¬ * @param notConvertSet 䏿¿æ¢çå符éå * @return æ¿æ¢åçå符 */ public static String toDBC(String text, Set<Character> notConvertSet) { char[] c = text.toCharArray(); for (int i = 0; i < c.length; i++) { if (null != notConvertSet && notConvertSet.contains(c[i])) { // è·³è¿ä¸æ¿æ¢çå符 continue; } if (c[i] == '\u3000') { c[i] = ' '; } else if (c[i] > '\uFF00' && c[i] < '\uFF5F') { c[i] = (char) (c[i] - 65248); } } String returnString = new String(c); return returnString; } /** * æ°åéé¢å¤§åè½¬æ¢ å åä¸ªå®æ´çç¶åå°å¦é¶æ¾æ¿æ¢æé¶ * * @param n æ°å * @return 䏿大忰å */ public static String digitUppercase(double n) { String[] fraction = { "è§", "å" }; String[] digit = { "é¶", "壹", "è´°", "å", "è", "ä¼", "é", "æ", "æ", "ç" }; String[][] unit = { { "å ", "ä¸", "亿" }, { "", "æ¾", "ä½°", "ä»" } }; String head = n < 0 ? "è´" : ""; n = Math.abs(n); String s = ""; for (int i = 0; i < fraction.length; i++) { // ä¼ådouble计ç®ç²¾åº¦ä¸¢å¤±é®é¢ BigDecimal nNum = new BigDecimal(n); BigDecimal decimal = new BigDecimal(10); BigDecimal scale = nNum.multiply(decimal).setScale(2, RoundingMode.HALF_EVEN); double d = scale.doubleValue(); s += (digit[(int) (Math.floor(d * Math.pow(10, i)) % 10)] + fraction[i]).replaceAll("(é¶.)+", ""); } if (s.length() < 1) { s = "æ´"; } int integerPart = (int) Math.floor(n); for (int i = 0; i < unit[0].length && integerPart > 0; i++) { String p = ""; for (int j = 0; j < unit[1].length && n > 0; j++) { p = digit[integerPart % 10] + unit[1][j] + p; integerPart = integerPart / 10; } s = p.replaceAll("(é¶.)*é¶$", "").replaceAll("^$", "é¶") + unit[0][i] + s; } return head + s.replaceAll("(é¶.)*é¶å ", "å ").replaceFirst("(é¶.)+", "").replaceAll("(é¶.)+", "é¶").replaceAll("^æ´$", "é¶å æ´"); } } zhitan-common/src/main/java/com/zhitan/common/core/text/StrFormatter.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,92 @@ package com.zhitan.common.core.text; import com.zhitan.common.utils.StringUtils; /** * åç¬¦ä¸²æ ¼å¼å * * @author zhitan */ public class StrFormatter { public static final String EMPTY_JSON = "{}"; public static final char C_BACKSLASH = '\\'; public static final char C_DELIM_START = '{'; public static final char C_DELIM_END = '}'; /** * æ ¼å¼åå符串<br> * æ¤æ¹æ³åªæ¯ç®åå°å ä½ç¬¦ {} æç §é¡ºåºæ¿æ¢ä¸ºåæ°<br> * 妿æ³è¾åº {} ä½¿ç¨ \\è½¬ä¹ { å³å¯ï¼å¦ææ³è¾åº {} ä¹åç \ 使ç¨å转ä¹ç¬¦ \\\\ å³å¯<br> * ä¾ï¼<br> * é常使ç¨ï¼format("this is {} for {}", "a", "b") -> this is a for b<br> * 转ä¹{}ï¼ format("this is \\{} for {}", "a", "b") -> this is \{} for a<br> * 转ä¹\ï¼ format("this is \\\\{} for {}", "a", "b") -> this is \a for b<br> * * @param strPattern åç¬¦ä¸²æ¨¡æ¿ * @param argArray åæ°å表 * @return ç»æ */ public static String format(final String strPattern, final Object... argArray) { if (StringUtils.isEmpty(strPattern) || StringUtils.isEmpty(argArray)) { return strPattern; } final int strPatternLength = strPattern.length(); // åå§åå®ä¹å¥½çé¿åº¦ä»¥è·å¾æ´å¥½çæ§è½ StringBuilder sbuf = new StringBuilder(strPatternLength + 50); int handledPosition = 0; int delimIndex;// å ä½ç¬¦æå¨ä½ç½® for (int argIndex = 0; argIndex < argArray.length; argIndex++) { delimIndex = strPattern.indexOf(EMPTY_JSON, handledPosition); if (delimIndex == -1) { if (handledPosition == 0) { return strPattern; } else { // å符串模æ¿å©ä½é¨åä¸åå å«å ä½ç¬¦ï¼å å ¥å©ä½é¨ååè¿åç»æ sbuf.append(strPattern, handledPosition, strPatternLength); return sbuf.toString(); } } else { if (delimIndex > 0 && strPattern.charAt(delimIndex - 1) == C_BACKSLASH) { if (delimIndex > 1 && strPattern.charAt(delimIndex - 2) == C_BACKSLASH) { // 转ä¹ç¬¦ä¹åè¿æä¸ä¸ªè½¬ä¹ç¬¦ï¼å ä½ç¬¦ä¾æ§ææ sbuf.append(strPattern, handledPosition, delimIndex - 1); sbuf.append(Convert.utf8Str(argArray[argIndex])); handledPosition = delimIndex + 2; } else { // å ä½ç¬¦è¢«è½¬ä¹ argIndex--; sbuf.append(strPattern, handledPosition, delimIndex - 1); sbuf.append(C_DELIM_START); handledPosition = delimIndex + 1; } } else { // æ£å¸¸å ä½ç¬¦ sbuf.append(strPattern, handledPosition, delimIndex); sbuf.append(Convert.utf8Str(argArray[argIndex])); handledPosition = delimIndex + 2; } } } // å å ¥æåä¸ä¸ªå ä½ç¬¦åææçå符 sbuf.append(strPattern, handledPosition, strPattern.length()); return sbuf.toString(); } } zhitan-common/src/main/java/com/zhitan/common/enums/BusinessStatus.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,20 @@ package com.zhitan.common.enums; /** * æä½ç¶æ * * @author zhitan * */ public enum BusinessStatus { /** * æå */ SUCCESS, /** * 失败 */ FAIL, } zhitan-common/src/main/java/com/zhitan/common/enums/BusinessType.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,59 @@ package com.zhitan.common.enums; /** * ä¸å¡æä½ç±»å * * @author zhitan */ public enum BusinessType { /** * å ¶å® */ OTHER, /** * æ°å¢ */ INSERT, /** * ä¿®æ¹ */ UPDATE, /** * å é¤ */ DELETE, /** * ææ */ GRANT, /** * å¯¼åº */ EXPORT, /** * å¯¼å ¥ */ IMPORT, /** * 强é */ FORCE, /** * çæä»£ç */ GENCODE, /** * æ¸ ç©ºæ°æ® */ CLEAN, } zhitan-common/src/main/java/com/zhitan/common/enums/CalcType.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package com.zhitan.common.enums; public enum CalcType { /** * ä¸è®¡ç® */ NONE, /** * èªå¨è®¡ç® */ CALC, /** * æå·¥å½å ¥ */ INPUT } zhitan-common/src/main/java/com/zhitan/common/enums/CollectionModes.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,26 @@ package com.zhitan.common.enums; /** * @author èæ°å¯ * * 宿¶æ°æ®ç»è®¡ç±»å. */ public enum CollectionModes { last, /** * å¹³åå¼ */ mean, /** * æå° */ min, /** * æå¤§ */ max, /** * æ±å */ sum } zhitan-common/src/main/java/com/zhitan/common/enums/DataSourceType.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,19 @@ package com.zhitan.common.enums; /** * æ°æ®æº * * @author zhitan */ public enum DataSourceType { /** * ä¸»åº */ MASTER, /** * ä»åº */ SLAVE } zhitan-common/src/main/java/com/zhitan/common/enums/DesensitizedType.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,59 @@ package com.zhitan.common.enums; import java.util.function.Function; import com.zhitan.common.utils.DesensitizedUtil; /** * è±æç±»å * * @author zhitan */ public enum DesensitizedType { /** * å§åï¼ç¬¬2使巿¿æ¢ */ USERNAME(s -> s.replaceAll("(\\S)\\S(\\S*)", "$1*$2")), /** * å¯ç ï¼å ¨é¨å符é½ç¨*ä»£æ¿ */ PASSWORD(DesensitizedUtil::password), /** * 身份è¯ï¼ä¸é´10使巿¿æ¢ */ ID_CARD(s -> s.replaceAll("(\\d{4})\\d{10}(\\d{4})", "$1** **** ****$2")), /** * ææºå·ï¼ä¸é´4使巿¿æ¢ */ PHONE(s -> s.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2")), /** * çµåé®ç®±ï¼ä» æ¾ç¤ºç¬¬ä¸ä¸ªåæ¯å@åé¢çå°åæ¾ç¤ºï¼å ¶ä»æå·æ¿æ¢ */ EMAIL(s -> s.replaceAll("(^.)[^@]*(@.*$)", "$1****$2")), /** * é¶è¡å¡å·ï¼ä¿çæå4ä½ï¼å ¶ä»æå·æ¿æ¢ */ BANK_CARD(s -> s.replaceAll("\\d{15}(\\d{3})", "**** **** **** **** $1")), /** * 车çå·ç ï¼å 嫿®é车è¾ãæ°è½æºè½¦è¾ */ CAR_LICENSE(DesensitizedUtil::carLicense); private final Function<String, String> desensitizer; DesensitizedType(Function<String, String> desensitizer) { this.desensitizer = desensitizer; } public Function<String, String> desensitizer() { return desensitizer; } } zhitan-common/src/main/java/com/zhitan/common/enums/ElectricityTypeEnum.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,24 @@ package com.zhitan.common.enums; import lombok.AllArgsConstructor; import lombok.Getter; @Getter @AllArgsConstructor public enum ElectricityTypeEnum { SHARP("å°"), PEAK("å³°"), FLAT("å¹³"), VALLEY("è°·"); private final String desc; public static String getNameByType(String type) { for (ElectricityTypeEnum electricityType : ElectricityTypeEnum.values()) { if (electricityType.name().equalsIgnoreCase(type)) { return electricityType.name(); } } throw new IllegalArgumentException("Invalid electricity type: " + type); } } zhitan-common/src/main/java/com/zhitan/common/enums/GroupTimeType.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,22 @@ package com.zhitan.common.enums; /** * åç»æ¶é´ç±»å * * @Author: Zhujw * @Date: 2023/5/24 */ public enum GroupTimeType { /** * åé */ m, /** * å°æ¶ */ h, /** * 天 */ d } zhitan-common/src/main/java/com/zhitan/common/enums/HttpMethod.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,36 @@ package com.zhitan.common.enums; import java.util.HashMap; import java.util.Map; import org.springframework.lang.Nullable; /** * è¯·æ±æ¹å¼ * * @author zhitan */ public enum HttpMethod { GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS, TRACE; private static final Map<String, HttpMethod> mappings = new HashMap<>(16); static { for (HttpMethod httpMethod : values()) { mappings.put(httpMethod.name(), httpMethod); } } @Nullable public static HttpMethod resolve(@Nullable String method) { return (method != null ? mappings.get(method) : null); } public boolean matches(String method) { return (this == resolve(method)); } } zhitan-common/src/main/java/com/zhitan/common/enums/IndexType.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,12 @@ package com.zhitan.common.enums; public enum IndexType { /** * ééææ */ COLLECT, /** * ç»è®¡ææ */ STATISTIC } zhitan-common/src/main/java/com/zhitan/common/enums/LimitType.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,20 @@ package com.zhitan.common.enums; /** * éæµç±»å * * @author zhitan */ public enum LimitType { /** * é»è®¤çç¥å ¨å±éæµ */ DEFAULT, /** * æ ¹æ®è¯·æ±è IPè¿è¡éæµ */ IP } zhitan-common/src/main/java/com/zhitan/common/enums/OperatorType.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,24 @@ package com.zhitan.common.enums; /** * æä½äººç±»å« * * @author zhitan */ public enum OperatorType { /** * å ¶å® */ OTHER, /** * åå°ç¨æ· */ MANAGE, /** * ææºç«¯ç¨æ· */ MOBILE } zhitan-common/src/main/java/com/zhitan/common/enums/Quality.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,12 @@ package com.zhitan.common.enums; public enum Quality { /** * æ°æ®æ£å¸¸ */ GOOD, /** * æ°æ®é误 */ BAD } zhitan-common/src/main/java/com/zhitan/common/enums/RetrievalModes.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,10 @@ package com.zhitan.common.enums; /** * @author èæ°å¯ * * è·å宿¶æ°æ®æ¹å¼. */ public enum RetrievalModes { Full, BestFit } zhitan-common/src/main/java/com/zhitan/common/enums/StatisticType.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,5 @@ package com.zhitan.common.enums; public enum StatisticType { SUM, MAX, MIN, AVG } zhitan-common/src/main/java/com/zhitan/common/enums/TimeType.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,33 @@ package com.zhitan.common.enums; public enum TimeType { /** * 宿¶ */ LIVE, /** * å°æ¶ */ HOUR, /** * 天 */ DAY, /** * æ */ MONTH, /** * å¹´ */ YEAR, /** * å£åº¦ */ QUARTER, /** * æç */ SCHEDULING } zhitan-common/src/main/java/com/zhitan/common/enums/UserStatus.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,30 @@ package com.zhitan.common.enums; /** * ç¨æ·ç¶æ * * @author zhitan */ public enum UserStatus { OK("0", "æ£å¸¸"), DISABLE("1", "åç¨"), DELETED("2", "å é¤"); private final String code; private final String info; UserStatus(String code, String info) { this.code = code; this.info = info; } public String getCode() { return code; } public String getInfo() { return info; } } zhitan-common/src/main/java/com/zhitan/common/exception/CustomException.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,43 @@ package com.zhitan.common.exception; /** * èªå®ä¹å¼å¸¸ * * @author ruoyi */ public class CustomException extends RuntimeException { private static final long serialVersionUID = 1L; private Integer code; private String message; public CustomException(String message) { this.message = message; } public CustomException(String message, Integer code) { this.message = message; this.code = code; } public CustomException(String message, Throwable e) { super(message, e); this.message = message; } @Override public String getMessage() { return message; } public Integer getCode() { return code; } } zhitan-common/src/main/java/com/zhitan/common/exception/DemoModeException.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,15 @@ package com.zhitan.common.exception; /** * æ¼ç¤ºæ¨¡å¼å¼å¸¸ * * @author zhitan */ public class DemoModeException extends RuntimeException { private static final long serialVersionUID = 1L; public DemoModeException() { } } zhitan-common/src/main/java/com/zhitan/common/exception/GlobalException.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,58 @@ package com.zhitan.common.exception; /** * å ¨å±å¼å¸¸ * * @author zhitan */ public class GlobalException extends RuntimeException { private static final long serialVersionUID = 1L; /** * é误æç¤º */ private String message; /** * é误æç»ï¼å é¨è°è¯é误 * * å {@link CommonResult#getDetailMessage()} ä¸è´ç设计 */ private String detailMessage; /** * 空æé æ¹æ³ï¼é¿å ååºååé®é¢ */ public GlobalException() { } public GlobalException(String message) { this.message = message; } public String getDetailMessage() { return detailMessage; } public GlobalException setDetailMessage(String detailMessage) { this.detailMessage = detailMessage; return this; } @Override public String getMessage() { return message; } public GlobalException setMessage(String message) { this.message = message; return this; } } zhitan-common/src/main/java/com/zhitan/common/exception/ServiceException.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,65 @@ package com.zhitan.common.exception; /** * ä¸å¡å¼å¸¸ * * @author zhitan */ public final class ServiceException extends RuntimeException { private static final long serialVersionUID = 1L; /** * é误ç */ private Integer code; /** * é误æç¤º */ private String message; /** * é误æç»ï¼å é¨è°è¯é误 * <p> * å {@link CommonResult#getDetailMessage()} ä¸è´ç设计 */ private String detailMessage; /** * 空æé æ¹æ³ï¼é¿å ååºååé®é¢ */ public ServiceException() { } public ServiceException(String message) { this.message = message; } public ServiceException(String message, Integer code) { this.message = message; this.code = code; } public String getDetailMessage() { return detailMessage; } @Override public String getMessage() { return message; } public Integer getCode() { return code; } public ServiceException setMessage(String message) { this.message = message; return this; } public ServiceException setDetailMessage(String detailMessage) { this.detailMessage = detailMessage; return this; } } zhitan-common/src/main/java/com/zhitan/common/exception/UtilException.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,26 @@ package com.zhitan.common.exception; /** * å·¥å ·ç±»å¼å¸¸ * * @author zhitan */ public class UtilException extends RuntimeException { private static final long serialVersionUID = 8247610319171014183L; public UtilException(Throwable e) { super(e.getMessage(), e); } public UtilException(String message) { super(message); } public UtilException(String message, Throwable throwable) { super(message, throwable); } } zhitan-common/src/main/java/com/zhitan/common/exception/base/BaseException.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,97 @@ package com.zhitan.common.exception.base; import com.zhitan.common.utils.MessageUtils; import com.zhitan.common.utils.StringUtils; /** * åºç¡å¼å¸¸ * * @author zhitan */ public class BaseException extends RuntimeException { private static final long serialVersionUID = 1L; /** * æå±æ¨¡å */ private String module; /** * é误ç */ private String code; /** * é误ç 对åºçåæ° */ private Object[] args; /** * éè¯¯æ¶æ¯ */ private String defaultMessage; public BaseException(String module, String code, Object[] args, String defaultMessage) { this.module = module; this.code = code; this.args = args; this.defaultMessage = defaultMessage; } public BaseException(String module, String code, Object[] args) { this(module, code, args, null); } public BaseException(String module, String defaultMessage) { this(module, null, null, defaultMessage); } public BaseException(String code, Object[] args) { this(null, code, args, null); } public BaseException(String defaultMessage) { this(null, null, null, defaultMessage); } @Override public String getMessage() { String message = null; if (!StringUtils.isEmpty(code)) { message = MessageUtils.message(code, args); } if (message == null) { message = defaultMessage; } return message; } public String getModule() { return module; } public String getCode() { return code; } public Object[] getArgs() { return args; } public String getDefaultMessage() { return defaultMessage; } } zhitan-common/src/main/java/com/zhitan/common/exception/file/FileException.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,19 @@ package com.zhitan.common.exception.file; import com.zhitan.common.exception.base.BaseException; /** * æä»¶ä¿¡æ¯å¼å¸¸ç±» * * @author zhitan */ public class FileException extends BaseException { private static final long serialVersionUID = 1L; public FileException(String code, Object[] args) { super("file", code, args, null); } } zhitan-common/src/main/java/com/zhitan/common/exception/file/FileNameLengthLimitExceededException.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package com.zhitan.common.exception.file; /** * æä»¶åç§°è¶ é¿éå¶å¼å¸¸ç±» * * @author zhitan */ public class FileNameLengthLimitExceededException extends FileException { private static final long serialVersionUID = 1L; public FileNameLengthLimitExceededException(int defaultFileNameLength) { super("upload.filename.exceed.length", new Object[] { defaultFileNameLength }); } } zhitan-common/src/main/java/com/zhitan/common/exception/file/FileSizeLimitExceededException.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package com.zhitan.common.exception.file; /** * æä»¶å大å°éå¶å¼å¸¸ç±» * * @author zhitan */ public class FileSizeLimitExceededException extends FileException { private static final long serialVersionUID = 1L; public FileSizeLimitExceededException(long defaultMaxSize) { super("upload.exceed.maxSize", new Object[] { defaultMaxSize }); } } zhitan-common/src/main/java/com/zhitan/common/exception/file/FileUploadException.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,61 @@ package com.zhitan.common.exception.file; import java.io.PrintStream; import java.io.PrintWriter; /** * æä»¶ä¸ä¼ å¼å¸¸ç±» * * @author zhitan */ public class FileUploadException extends Exception { private static final long serialVersionUID = 1L; private final Throwable cause; public FileUploadException() { this(null, null); } public FileUploadException(final String msg) { this(msg, null); } public FileUploadException(String msg, Throwable cause) { super(msg); this.cause = cause; } @Override public void printStackTrace(PrintStream stream) { super.printStackTrace(stream); if (cause != null) { stream.println("Caused by:"); cause.printStackTrace(stream); } } @Override public void printStackTrace(PrintWriter writer) { super.printStackTrace(writer); if (cause != null) { writer.println("Caused by:"); cause.printStackTrace(writer); } } @Override public Throwable getCause() { return cause; } } zhitan-common/src/main/java/com/zhitan/common/exception/file/InvalidExtensionException.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,80 @@ package com.zhitan.common.exception.file; import java.util.Arrays; /** * æä»¶ä¸ä¼ 误å¼å¸¸ç±» * * @author zhitan */ public class InvalidExtensionException extends FileUploadException { private static final long serialVersionUID = 1L; private String[] allowedExtension; private String extension; private String filename; public InvalidExtensionException(String[] allowedExtension, String extension, String filename) { super("æä»¶[" + filename + "]åç¼[" + extension + "]䏿£ç¡®ï¼è¯·ä¸ä¼ " + Arrays.toString(allowedExtension) + "æ ¼å¼"); this.allowedExtension = allowedExtension; this.extension = extension; this.filename = filename; } public String[] getAllowedExtension() { return allowedExtension; } public String getExtension() { return extension; } public String getFilename() { return filename; } public static class InvalidImageExtensionException extends InvalidExtensionException { private static final long serialVersionUID = 1L; public InvalidImageExtensionException(String[] allowedExtension, String extension, String filename) { super(allowedExtension, extension, filename); } } public static class InvalidFlashExtensionException extends InvalidExtensionException { private static final long serialVersionUID = 1L; public InvalidFlashExtensionException(String[] allowedExtension, String extension, String filename) { super(allowedExtension, extension, filename); } } public static class InvalidMediaExtensionException extends InvalidExtensionException { private static final long serialVersionUID = 1L; public InvalidMediaExtensionException(String[] allowedExtension, String extension, String filename) { super(allowedExtension, extension, filename); } } public static class InvalidVideoExtensionException extends InvalidExtensionException { private static final long serialVersionUID = 1L; public InvalidVideoExtensionException(String[] allowedExtension, String extension, String filename) { super(allowedExtension, extension, filename); } } } zhitan-common/src/main/java/com/zhitan/common/exception/job/TaskException.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,34 @@ package com.zhitan.common.exception.job; /** * 计åçç¥å¼å¸¸ * * @author zhitan */ public class TaskException extends Exception { private static final long serialVersionUID = 1L; private Code code; public TaskException(String msg, Code code) { this(msg, code, null); } public TaskException(String msg, Code code, Exception nestedEx) { super(msg, nestedEx); this.code = code; } public Code getCode() { return code; } public enum Code { TASK_EXISTS, NO_TASK_EXISTS, TASK_ALREADY_STARTED, UNKNOWN, CONFIG_ERROR, TASK_NODE_NOT_AVAILABLE } } zhitan-common/src/main/java/com/zhitan/common/exception/user/BlackListException.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package com.zhitan.common.exception.user; /** * é»ååIPå¼å¸¸ç±» * * @author zhitan */ public class BlackListException extends UserException { private static final long serialVersionUID = 1L; public BlackListException() { super("login.blocked", null); } } zhitan-common/src/main/java/com/zhitan/common/exception/user/CaptchaException.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package com.zhitan.common.exception.user; /** * éªè¯ç é误å¼å¸¸ç±» * * @author zhitan */ public class CaptchaException extends UserException { private static final long serialVersionUID = 1L; public CaptchaException() { super("user.jcaptcha.error", null); } } zhitan-common/src/main/java/com/zhitan/common/exception/user/CaptchaExpireException.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package com.zhitan.common.exception.user; /** * éªè¯ç 失æå¼å¸¸ç±» * * @author zhitan */ public class CaptchaExpireException extends UserException { private static final long serialVersionUID = 1L; public CaptchaExpireException() { super("user.jcaptcha.expire", null); } } zhitan-common/src/main/java/com/zhitan/common/exception/user/UserException.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,18 @@ package com.zhitan.common.exception.user; import com.zhitan.common.exception.base.BaseException; /** * ç¨æ·ä¿¡æ¯å¼å¸¸ç±» * * @author zhitan */ public class UserException extends BaseException { private static final long serialVersionUID = 1L; public UserException(String code, Object[] args) { super("user", code, args, null); } } zhitan-common/src/main/java/com/zhitan/common/exception/user/UserNotExistsException.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package com.zhitan.common.exception.user; /** * ç¨æ·ä¸åå¨å¼å¸¸ç±» * * @author zhitan */ public class UserNotExistsException extends UserException { private static final long serialVersionUID = 1L; public UserNotExistsException() { super("user.not.exists", null); } } zhitan-common/src/main/java/com/zhitan/common/exception/user/UserPasswordNotMatchException.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package com.zhitan.common.exception.user; /** * ç¨æ·å¯ç 䏿£ç¡®æä¸ç¬¦åè§èå¼å¸¸ç±» * * @author zhitan */ public class UserPasswordNotMatchException extends UserException { private static final long serialVersionUID = 1L; public UserPasswordNotMatchException() { super("user.password.not.match", null); } } zhitan-common/src/main/java/com/zhitan/common/exception/user/UserPasswordRetryLimitExceedException.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package com.zhitan.common.exception.user; /** * ç¨æ·é误æå¤§æ¬¡æ°å¼å¸¸ç±» * * @author zhitan */ public class UserPasswordRetryLimitExceedException extends UserException { private static final long serialVersionUID = 1L; public UserPasswordRetryLimitExceedException(int retryLimitCount, int lockTime) { super("user.password.retry.limit.exceed", new Object[] { retryLimitCount, lockTime }); } } zhitan-common/src/main/java/com/zhitan/common/filter/PropertyPreExcludeFilter.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,24 @@ package com.zhitan.common.filter; import com.alibaba.fastjson2.filter.SimplePropertyPreFilter; /** * æé¤JSONææå±æ§ * * @author zhitan */ public class PropertyPreExcludeFilter extends SimplePropertyPreFilter { public PropertyPreExcludeFilter() { } public PropertyPreExcludeFilter addExcludes(String... filters) { for (int i = 0; i < filters.length; i++) { this.getExcludes().add(filters[i]); } return this; } } zhitan-common/src/main/java/com/zhitan/common/filter/RepeatableFilter.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,52 @@ package com.zhitan.common.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import org.springframework.http.MediaType; import com.zhitan.common.utils.StringUtils; /** * Repeatable è¿æ»¤å¨ * * @author zhitan */ public class RepeatableFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { ServletRequest requestWrapper = null; if (request instanceof HttpServletRequest && StringUtils.startsWithIgnoreCase(request.getContentType(), MediaType.APPLICATION_JSON_VALUE)) { requestWrapper = new RepeatedlyRequestWrapper((HttpServletRequest) request, response); } if (null == requestWrapper) { chain.doFilter(request, response); } else { chain.doFilter(requestWrapper, response); } } @Override public void destroy() { } } zhitan-common/src/main/java/com/zhitan/common/filter/RepeatedlyRequestWrapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,76 @@ package com.zhitan.common.filter; import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStreamReader; import javax.servlet.ReadListener; import javax.servlet.ServletInputStream; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper; import com.zhitan.common.utils.http.HttpHelper; import com.zhitan.common.constant.Constants; /** * æå»ºå¯éå¤è¯»åinputStreamçrequest * * @author zhitan */ public class RepeatedlyRequestWrapper extends HttpServletRequestWrapper { private final byte[] body; public RepeatedlyRequestWrapper(HttpServletRequest request, ServletResponse response) throws IOException { super(request); request.setCharacterEncoding(Constants.UTF8); response.setCharacterEncoding(Constants.UTF8); body = HttpHelper.getBodyString(request).getBytes(Constants.UTF8); } @Override public BufferedReader getReader() throws IOException { return new BufferedReader(new InputStreamReader(getInputStream())); } @Override public ServletInputStream getInputStream() throws IOException { final ByteArrayInputStream bais = new ByteArrayInputStream(body); return new ServletInputStream() { @Override public int read() throws IOException { return bais.read(); } @Override public int available() throws IOException { return body.length; } @Override public boolean isFinished() { return false; } @Override public boolean isReady() { return false; } @Override public void setReadListener(ReadListener readListener) { } }; } } zhitan-common/src/main/java/com/zhitan/common/filter/XssFilter.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,75 @@ package com.zhitan.common.filter; import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.zhitan.common.utils.StringUtils; import com.zhitan.common.enums.HttpMethod; /** * 鲿¢XSSæ»å»çè¿æ»¤å¨ * * @author zhitan */ public class XssFilter implements Filter { /** * æé¤é¾æ¥ */ public List<String> excludes = new ArrayList<>(); @Override public void init(FilterConfig filterConfig) throws ServletException { String tempExcludes = filterConfig.getInitParameter("excludes"); if (StringUtils.isNotEmpty(tempExcludes)) { String[] url = tempExcludes.split(","); for (int i = 0; url != null && i < url.length; i++) { excludes.add(url[i]); } } } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse resp = (HttpServletResponse) response; if (handleExcludeURL(req, resp)) { chain.doFilter(request, response); return; } XssHttpServletRequestWrapper xssRequest = new XssHttpServletRequestWrapper((HttpServletRequest) request); chain.doFilter(xssRequest, response); } private boolean handleExcludeURL(HttpServletRequest request, HttpServletResponse response) { String url = request.getServletPath(); String method = request.getMethod(); // GET DELETE ä¸è¿æ»¤ if (method == null || HttpMethod.GET.matches(method) || HttpMethod.DELETE.matches(method)) { return true; } return StringUtils.matches(url, excludes); } @Override public void destroy() { } } zhitan-common/src/main/java/com/zhitan/common/filter/XssHttpServletRequestWrapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,111 @@ package com.zhitan.common.filter; import java.io.ByteArrayInputStream; import java.io.IOException; import javax.servlet.ReadListener; import javax.servlet.ServletInputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper; import org.apache.commons.io.IOUtils; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import com.zhitan.common.utils.StringUtils; import com.zhitan.common.utils.html.EscapeUtil; /** * XSSè¿æ»¤å¤ç * * @author zhitan */ public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper { /** * @param request */ public XssHttpServletRequestWrapper(HttpServletRequest request) { super(request); } @Override public String[] getParameterValues(String name) { String[] values = super.getParameterValues(name); if (values != null) { int length = values.length; String[] escapesValues = new String[length]; for (int i = 0; i < length; i++) { // é²xssæ»å»åè¿æ»¤ååç©ºæ ¼ escapesValues[i] = EscapeUtil.clean(values[i]).trim(); } return escapesValues; } return super.getParameterValues(name); } @Override public ServletInputStream getInputStream() throws IOException { // éjsonç±»åï¼ç´æ¥è¿å if (!isJsonRequest()) { return super.getInputStream(); } // 为空ï¼ç´æ¥è¿å String json = IOUtils.toString(super.getInputStream(), "utf-8"); if (StringUtils.isEmpty(json)) { return super.getInputStream(); } // xssè¿æ»¤ json = EscapeUtil.clean(json).trim(); byte[] jsonBytes = json.getBytes("utf-8"); final ByteArrayInputStream bis = new ByteArrayInputStream(jsonBytes); return new ServletInputStream() { @Override public boolean isFinished() { return true; } @Override public boolean isReady() { return true; } @Override public int available() throws IOException { return jsonBytes.length; } @Override public void setReadListener(ReadListener readListener) { } @Override public int read() throws IOException { return bis.read(); } }; } /** * æ¯å¦æ¯Jsonè¯·æ± * * @param request */ public boolean isJsonRequest() { String header = super.getHeader(HttpHeaders.CONTENT_TYPE); return StringUtils.startsWithIgnoreCase(header, MediaType.APPLICATION_JSON_VALUE); } } zhitan-common/src/main/java/com/zhitan/common/utils/Arith.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,114 @@ package com.zhitan.common.utils; import java.math.BigDecimal; import java.math.RoundingMode; /** * ç²¾ç¡®çæµ®ç¹æ°è¿ç® * * @author zhitan */ public class Arith { /** é»è®¤é¤æ³è¿ç®ç²¾åº¦ */ private static final int DEF_DIV_SCALE = 10; /** è¿ä¸ªç±»ä¸è½å®ä¾å */ private Arith() { } /** * æä¾ç²¾ç¡®çå æ³è¿ç®ã * @param v1 è¢«å æ° * @param v2 å æ° * @return ä¸¤ä¸ªåæ°çå */ public static double add(double v1, double v2) { BigDecimal b1 = new BigDecimal(Double.toString(v1)); BigDecimal b2 = new BigDecimal(Double.toString(v2)); return b1.add(b2).doubleValue(); } /** * æä¾ç²¾ç¡®çåæ³è¿ç®ã * @param v1 è¢«åæ° * @param v2 åæ° * @return ä¸¤ä¸ªåæ°çå·® */ public static double sub(double v1, double v2) { BigDecimal b1 = new BigDecimal(Double.toString(v1)); BigDecimal b2 = new BigDecimal(Double.toString(v2)); return b1.subtract(b2).doubleValue(); } /** * æä¾ç²¾ç¡®ç乿³è¿ç®ã * @param v1 è¢«ä¹æ° * @param v2 乿° * @return ä¸¤ä¸ªåæ°ç积 */ public static double mul(double v1, double v2) { BigDecimal b1 = new BigDecimal(Double.toString(v1)); BigDecimal b2 = new BigDecimal(Double.toString(v2)); return b1.multiply(b2).doubleValue(); } /** * æä¾ï¼ç¸å¯¹ï¼ç²¾ç¡®ç餿³è¿ç®ï¼å½åçé¤ä¸å°½çæ 嵿¶ï¼ç²¾ç¡®å° * å°æ°ç¹ä»¥å10ä½ï¼ä»¥åçæ°ååèäºå ¥ã * @param v1 è¢«é¤æ° * @param v2 餿° * @return ä¸¤ä¸ªåæ°çå */ public static double div(double v1, double v2) { return div(v1, v2, DEF_DIV_SCALE); } /** * æä¾ï¼ç¸å¯¹ï¼ç²¾ç¡®ç餿³è¿ç®ãå½åçé¤ä¸å°½çæ 嵿¶ï¼ç±scaleåæ°æ * å®ç²¾åº¦ï¼ä»¥åçæ°ååèäºå ¥ã * @param v1 è¢«é¤æ° * @param v2 餿° * @param scale 表示表示éè¦ç²¾ç¡®å°å°æ°ç¹ä»¥åå ä½ã * @return ä¸¤ä¸ªåæ°çå */ public static double div(double v1, double v2, int scale) { if (scale < 0) { throw new IllegalArgumentException( "The scale must be a positive integer or zero"); } BigDecimal b1 = new BigDecimal(Double.toString(v1)); BigDecimal b2 = new BigDecimal(Double.toString(v2)); if (b1.compareTo(BigDecimal.ZERO) == 0) { return BigDecimal.ZERO.doubleValue(); } return b1.divide(b2, scale, RoundingMode.HALF_UP).doubleValue(); } /** * æä¾ç²¾ç¡®çå°æ°ä½åèäºå ¥å¤çã * @param v éè¦åèäºå ¥çæ°å * @param scale å°æ°ç¹åä¿çå ä½ * @return åèäºå ¥åçç»æ */ public static double round(double v, int scale) { if (scale < 0) { throw new IllegalArgumentException( "The scale must be a positive integer or zero"); } BigDecimal b = new BigDecimal(Double.toString(v)); BigDecimal one = BigDecimal.ONE; return b.divide(one, scale, RoundingMode.HALF_UP).doubleValue(); } } zhitan-common/src/main/java/com/zhitan/common/utils/DateUtils.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,196 @@ package com.zhitan.common.utils; import org.apache.commons.lang3.time.DateFormatUtils; import java.lang.management.ManagementFactory; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.*; import java.util.Date; /** * æ¶é´å·¥å ·ç±» * * @author zhitan */ public class DateUtils extends org.apache.commons.lang3.time.DateUtils { public static String YYYY = "yyyy"; public static String YYYY_MM = "yyyy-MM"; public static String YYYY_MM_DD = "yyyy-MM-dd"; public static String YYYYMMDDHHMMSS = "yyyyMMddHHmmss"; public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss"; private static String[] parsePatterns = { "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM", "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM", "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM"}; /** * è·åå½åDate忥æ * * @return Date() å½åæ¥æ */ public static Date getNowDate() { return new Date(); } /** * è·åå½åæ¥æ, é»è®¤æ ¼å¼ä¸ºyyyy-MM-dd * * @return String */ public static String getDate() { return dateTimeNow(YYYY_MM_DD); } public static final String getTime() { return dateTimeNow(YYYY_MM_DD_HH_MM_SS); } public static final String dateTimeNow() { return dateTimeNow(YYYYMMDDHHMMSS); } public static final String dateTimeNow(final String format) { return parseDateToStr(format, new Date()); } public static final String dateTime(final Date date) { return parseDateToStr(YYYY_MM_DD, date); } public static final String parseDateToStr(final String format, final Date date) { return new SimpleDateFormat(format).format(date); } public static final Date dateTime(final String format, final String ts) { try { return new SimpleDateFormat(format).parse(ts); } catch (ParseException e) { throw new RuntimeException(e); } } /** * æ¥æè·¯å¾ å³å¹´/æ/æ¥ å¦2018/08/08 */ public static final String datePath() { Date now = new Date(); return DateFormatUtils.format(now, "yyyy/MM/dd"); } /** * æ¥æè·¯å¾ å³å¹´/æ/æ¥ å¦20180808 */ public static final String dateTime() { Date now = new Date(); return DateFormatUtils.format(now, "yyyyMMdd"); } /** * è·åæ¶é´ HH:mm:ss */ public static final String getHhMmSs(Date date) { return DateFormatUtils.format(date, "HH:mm:ss"); } /** * æ¥æåå符串转åä¸ºæ¥æ æ ¼å¼ */ public static Date parseDate(Object str) { if (str == null) { return null; } try { return parseDate(str.toString(), parsePatterns); } catch (ParseException e) { return null; } } /** * è·åæå¡å¨å¯å¨æ¶é´ */ public static Date getServerStartDate() { long time = ManagementFactory.getRuntimeMXBean().getStartTime(); return new Date(time); } /** * 计ç®ç¸å·®å¤©æ° */ public static int differentDaysByMillisecond(Date date1, Date date2) { return Math.abs((int) ((date2.getTime() - date1.getTime()) / (1000 * 3600 * 24))); } /** * è®¡ç®æ¶é´å·® * * @param endDate æåæ¶é´ * @param startTime å¼å§æ¶é´ * @return æ¶é´å·®ï¼å¤©/å°æ¶/åéï¼ */ public static String timeDistance(Date endDate, Date startTime) { long nd = 1000 * 24 * 60 * 60; long nh = 1000 * 60 * 60; long nm = 1000 * 60; // long ns = 1000; // è·å¾ä¸¤ä¸ªæ¶é´çæ¯«ç§æ¶é´å·®å¼ long diff = endDate.getTime() - startTime.getTime(); // 计ç®å·®å¤å°å¤© long day = diff / nd; // 计ç®å·®å¤å°å°æ¶ long hour = diff % nd / nh; // 计ç®å·®å¤å°åé long min = diff % nd % nh / nm; // 计ç®å·®å¤å°ç§//è¾åºç»æ // long sec = diff % nd % nh % nm / ns; return day + "天" + hour + "å°æ¶" + min + "åé"; } /** * å¢å LocalDateTime ==> Date */ public static Date toDate(LocalDateTime temporalAccessor) { ZonedDateTime zdt = temporalAccessor.atZone(ZoneId.systemDefault()); return Date.from(zdt.toInstant()); } /** * å¢å LocalDate ==> Date */ public static Date toDate(LocalDate temporalAccessor) { LocalDateTime localDateTime = LocalDateTime.of(temporalAccessor, LocalTime.of(0, 0, 0)); ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault()); return Date.from(zdt.toInstant()); } } zhitan-common/src/main/java/com/zhitan/common/utils/DesensitizedUtil.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,49 @@ package com.zhitan.common.utils; /** * è±æå·¥å ·ç±» * * @author zhitan */ public class DesensitizedUtil { /** * å¯ç çå ¨é¨å符é½ç¨*代æ¿ï¼æ¯å¦ï¼****** * * @param password å¯ç * @return è±æåçå¯ç */ public static String password(String password) { if (StringUtils.isBlank(password)) { return StringUtils.EMPTY; } return StringUtils.repeat('*', password.length()); } /** * 车çä¸é´ç¨*代æ¿ï¼å¦ææ¯é误ç车çï¼ä¸å¤ç * * @param carLicense 宿´ç车çå· * @return è±æåç车ç */ public static String carLicense(String carLicense) { if (StringUtils.isBlank(carLicense)) { return StringUtils.EMPTY; } // æ®é车ç if (carLicense.length() == 7) { carLicense = StringUtils.hide(carLicense, 3, 6); } else if (carLicense.length() == 8) { // æ°è½æºè½¦ç carLicense = StringUtils.hide(carLicense, 3, 7); } return carLicense; } } zhitan-common/src/main/java/com/zhitan/common/utils/DictUtils.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,186 @@ package com.zhitan.common.utils; import java.util.Collection; import java.util.List; import com.alibaba.fastjson2.JSONArray; import com.zhitan.common.constant.CacheConstants; import com.zhitan.common.core.domain.entity.SysDictData; import com.zhitan.common.core.redis.RedisCache; import com.zhitan.common.utils.spring.SpringUtils; /** * åå ¸å·¥å ·ç±» * * @author zhitan */ public class DictUtils { /** * åé符 */ public static final String SEPARATOR = ","; /** * 设置åå ¸ç¼å * * @param key åæ°é® * @param dictDatas åå ¸æ°æ®å表 */ public static void setDictCache(String key, List<SysDictData> dictDatas) { SpringUtils.getBean(RedisCache.class).setCacheObject(getCacheKey(key), dictDatas); } /** * è·ååå ¸ç¼å * * @param key åæ°é® * @return dictDatas åå ¸æ°æ®å表 */ public static List<SysDictData> getDictCache(String key) { JSONArray arrayCache = SpringUtils.getBean(RedisCache.class).getCacheObject(getCacheKey(key)); if (StringUtils.isNotNull(arrayCache)) { return arrayCache.toList(SysDictData.class); } return null; } /** * æ ¹æ®åå ¸ç±»åååå ¸å¼è·ååå ¸æ ç¾ * * @param dictType åå ¸ç±»å * @param dictValue åå ¸å¼ * @return åå ¸æ ç¾ */ public static String getDictLabel(String dictType, String dictValue) { return getDictLabel(dictType, dictValue, SEPARATOR); } /** * æ ¹æ®åå ¸ç±»åååå ¸æ ç¾è·ååå ¸å¼ * * @param dictType åå ¸ç±»å * @param dictLabel åå ¸æ ç¾ * @return åå ¸å¼ */ public static String getDictValue(String dictType, String dictLabel) { return getDictValue(dictType, dictLabel, SEPARATOR); } /** * æ ¹æ®åå ¸ç±»åååå ¸å¼è·ååå ¸æ ç¾ * * @param dictType åå ¸ç±»å * @param dictValue åå ¸å¼ * @param separator åé符 * @return åå ¸æ ç¾ */ public static String getDictLabel(String dictType, String dictValue, String separator) { StringBuilder propertyString = new StringBuilder(); List<SysDictData> datas = getDictCache(dictType); if (StringUtils.isNotNull(datas)) { if (StringUtils.containsAny(separator, dictValue)) { for (SysDictData dict : datas) { for (String value : dictValue.split(separator)) { if (value.equals(dict.getDictValue())) { propertyString.append(dict.getDictLabel()).append(separator); break; } } } } else { for (SysDictData dict : datas) { if (dictValue.equals(dict.getDictValue())) { return dict.getDictLabel(); } } } } return StringUtils.stripEnd(propertyString.toString(), separator); } /** * æ ¹æ®åå ¸ç±»åååå ¸æ ç¾è·ååå ¸å¼ * * @param dictType åå ¸ç±»å * @param dictLabel åå ¸æ ç¾ * @param separator åé符 * @return åå ¸å¼ */ public static String getDictValue(String dictType, String dictLabel, String separator) { StringBuilder propertyString = new StringBuilder(); List<SysDictData> datas = getDictCache(dictType); if (StringUtils.containsAny(separator, dictLabel) && StringUtils.isNotEmpty(datas)) { for (SysDictData dict : datas) { for (String label : dictLabel.split(separator)) { if (label.equals(dict.getDictLabel())) { propertyString.append(dict.getDictValue()).append(separator); break; } } } } else { for (SysDictData dict : datas) { if (dictLabel.equals(dict.getDictLabel())) { return dict.getDictValue(); } } } return StringUtils.stripEnd(propertyString.toString(), separator); } /** * å 餿å®åå ¸ç¼å * * @param key åå ¸é® */ public static void removeDictCache(String key) { SpringUtils.getBean(RedisCache.class).deleteObject(getCacheKey(key)); } /** * æ¸ ç©ºåå ¸ç¼å */ public static void clearDictCache() { Collection<String> keys = SpringUtils.getBean(RedisCache.class).keys(CacheConstants.SYS_DICT_KEY + "*"); SpringUtils.getBean(RedisCache.class).deleteObject(keys); } /** * 设置cache key * * @param configKey åæ°é® * @return ç¼åé®key */ public static String getCacheKey(String configKey) { return CacheConstants.SYS_DICT_KEY + configKey; } } zhitan-common/src/main/java/com/zhitan/common/utils/ExceptionUtil.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,39 @@ package com.zhitan.common.utils; import java.io.PrintWriter; import java.io.StringWriter; import org.apache.commons.lang3.exception.ExceptionUtils; /** * é误信æ¯å¤çç±»ã * * @author zhitan */ public class ExceptionUtil { /** * è·åexceptionç详ç»é误信æ¯ã */ public static String getExceptionMessage(Throwable e) { StringWriter sw = new StringWriter(); e.printStackTrace(new PrintWriter(sw, true)); return sw.toString(); } public static String getRootErrorMessage(Exception e) { Throwable root = ExceptionUtils.getRootCause(e); root = (root == null ? e : root); if (root == null) { return ""; } String msg = root.getMessage(); if (msg == null) { return "null"; } return StringUtils.defaultString(msg); } } zhitan-common/src/main/java/com/zhitan/common/utils/LogUtils.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,18 @@ package com.zhitan.common.utils; /** * å¤çå¹¶è®°å½æ¥å¿æä»¶ * * @author zhitan */ public class LogUtils { public static String getBlock(Object msg) { if (msg == null) { msg = ""; } return "[" + msg.toString() + "]"; } } zhitan-common/src/main/java/com/zhitan/common/utils/MessageUtils.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,26 @@ package com.zhitan.common.utils; import com.zhitan.common.utils.spring.SpringUtils; import org.springframework.context.MessageSource; import org.springframework.context.i18n.LocaleContextHolder; /** * è·åi18nèµæºæä»¶ * * @author zhitan */ public class MessageUtils { /** * æ ¹æ®æ¶æ¯é®ååæ° è·åæ¶æ¯ å§æç»spring messageSource * * @param code æ¶æ¯é® * @param args åæ° * @return è·åå½é åç¿»è¯å¼ */ public static String message(String code, Object... args) { MessageSource messageSource = SpringUtils.getBean(MessageSource.class); return messageSource.getMessage(code, args, LocaleContextHolder.getLocale()); } } zhitan-common/src/main/java/com/zhitan/common/utils/PageUtils.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,44 @@ package com.zhitan.common.utils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.pagehelper.PageHelper; import com.zhitan.common.core.page.PageDomain; import com.zhitan.common.core.page.TableSupport; import com.zhitan.common.utils.sql.SqlUtil; /** * åé¡µå·¥å ·ç±» * * @author zhitan */ public class PageUtils extends PageHelper { /** * 设置请æ±åé¡µæ°æ® */ public static void startPage() { PageDomain pageDomain = TableSupport.buildPageRequest(); Integer pageNum = pageDomain.getPageNum(); Integer pageSize = pageDomain.getPageSize(); String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy()); Boolean reasonable = pageDomain.getReasonable(); PageHelper.startPage(pageNum, pageSize, orderBy).setReasonable(reasonable); } /** * æ¸ çå页ç线ç¨åé */ public static void clearPage() { PageHelper.clearPage(); } public static Page getPage(){ PageDomain pageDomain = TableSupport.buildPageRequest(); Integer pageNum = pageDomain.getPageNum(); Integer pageSize = pageDomain.getPageSize(); return new Page(pageNum,pageSize); } } zhitan-common/src/main/java/com/zhitan/common/utils/ReflectionUtils.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,29 @@ package com.zhitan.common.utils; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * åå°ç¸å ³å·¥å ·ç±» * * @author Silence * @version 1.0 */ public class ReflectionUtils { /** * è·åç±»ï¼å æ¬ç¶ç±»ï¼çææå±æ§ã * å æ¬public/private/protected/æ 修饰符 */ public static Field[] getAllFields(Object model) { Class<?> clazz = model.getClass(); List<Field> fields = new ArrayList<>(); while (null != clazz) { fields.addAll(Arrays.asList(clazz.getDeclaredFields())); clazz = clazz.getSuperclass(); } Field[] result = new Field[fields.size()]; return fields.toArray(result); } } zhitan-common/src/main/java/com/zhitan/common/utils/SecurityUtils.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,169 @@ package com.zhitan.common.utils; import java.util.Collection; import java.util.List; import java.util.Objects; import java.util.Optional; import java.util.stream.Collectors; import com.zhitan.common.constant.Constants; import com.zhitan.common.constant.HttpStatus; import com.zhitan.common.exception.ServiceException; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContext; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.util.PatternMatchUtils; import com.zhitan.common.core.domain.entity.SysRole; import com.zhitan.common.core.domain.model.LoginUser; /** * å®å ¨æå¡å·¥å ·ç±» * * @author zhitan */ public class SecurityUtils { /** * ç¨æ·ID **/ public static Long getUserId() { try { return Objects.requireNonNull(getLoginUser()).getUserId(); } catch (Exception e) { throw new ServiceException("è·åç¨æ·IDå¼å¸¸", HttpStatus.UNAUTHORIZED); } } /** * è·åé¨é¨ID **/ public static Long getDeptId() { try { return Objects.requireNonNull(getLoginUser()).getDeptId(); } catch (Exception e) { throw new ServiceException("è·åé¨é¨IDå¼å¸¸", HttpStatus.UNAUTHORIZED); } } /** * è·åç¨æ·è´¦æ· **/ public static String getUsername() { try { return Objects.requireNonNull(getLoginUser()).getUsername(); } catch (Exception e) { throw new ServiceException("è·åç¨æ·è´¦æ·å¼å¸¸", HttpStatus.UNAUTHORIZED); } } /** * è·åç¨æ· **/ public static LoginUser getLoginUser() { try { Authentication authentication = getAuthentication(); if (null != authentication) { Object principal = authentication.getPrincipal(); if (principal instanceof LoginUser) { return (LoginUser) principal; } } return null; } catch (Exception e) { throw new ServiceException("è·åç¨æ·ä¿¡æ¯å¼å¸¸", HttpStatus.UNAUTHORIZED); } } /** * è·åAuthentication */ public static Authentication getAuthentication() { SecurityContext context = SecurityContextHolder.getContext(); if (null == context) { return null; } return context.getAuthentication(); } /** * çæBCryptPasswordEncoderå¯ç * * @param password å¯ç * @return å å¯å符串 */ public static String encryptPassword(String password) { BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); return passwordEncoder.encode(password); } /** * 夿å¯ç æ¯å¦ç¸å * * @param rawPassword çå®å¯ç * @param encodedPassword å å¯åå符 * @return ç»æ */ public static boolean matchesPassword(String rawPassword, String encodedPassword) { BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); return passwordEncoder.matches(rawPassword, encodedPassword); } /** * æ¯å¦ä¸ºç®¡çå * * @param userId ç¨æ·ID * @return ç»æ */ public static boolean isAdmin(Long userId) { return userId != null && 1L == userId; } /** * éªè¯ç¨æ·æ¯å¦å ·å¤ææé * * @param permission æéå符串 * @return ç¨æ·æ¯å¦å ·å¤ææé */ public static boolean hasPermi(String permission) { return hasPermi(getLoginUser().getPermissions(), permission); } /** * 夿æ¯å¦å 嫿é * * @param authorities æéå表 * @param permission æéå符串 * @return ç¨æ·æ¯å¦å ·å¤ææé */ public static boolean hasPermi(Collection<String> authorities, String permission) { return authorities.stream().filter(StringUtils::hasText) .anyMatch(x -> Constants.ALL_PERMISSION.equals(x) || PatternMatchUtils.simpleMatch(x, permission)); } /** * éªè¯ç¨æ·æ¯å¦æ¥ææä¸ªè§è² * * @param role è§è²æ è¯ * @return ç¨æ·æ¯å¦å ·å¤æè§è² */ public static boolean hasRole(String role) { List<SysRole> roleList = getLoginUser().getUser().getRoles(); Collection<String> roles = roleList.stream().map(SysRole::getRoleKey).collect(Collectors.toSet()); return hasRole(roles, role); } /** * 夿æ¯å¦å å«è§è² * * @param roles è§è²å表 * @param role è§è² * @return ç¨æ·æ¯å¦å ·å¤æè§è²æé */ public static boolean hasRole(Collection<String> roles, String role) { return roles.stream().filter(StringUtils::hasText) .anyMatch(x -> Constants.SUPER_ADMIN.equals(x) || PatternMatchUtils.simpleMatch(x, role)); } } zhitan-common/src/main/java/com/zhitan/common/utils/ServletUtils.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,219 @@ package com.zhitan.common.utils; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.net.URLEncoder; import java.util.Collections; import java.util.HashMap; import java.util.Map; import javax.servlet.ServletRequest; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import com.zhitan.common.constant.Constants; import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import com.zhitan.common.core.text.Convert; /** * 客æ·ç«¯å·¥å ·ç±» * * @author zhitan */ public class ServletUtils { /** * è·åStringåæ° */ public static String getParameter(String name) { return getRequest().getParameter(name); } /** * è·åStringåæ° */ public static String getParameter(String name, String defaultValue) { return Convert.toStr(getRequest().getParameter(name), defaultValue); } /** * è·åIntegeråæ° */ public static Integer getParameterToInt(String name) { return Convert.toInt(getRequest().getParameter(name)); } /** * è·åIntegeråæ° */ public static Integer getParameterToInt(String name, Integer defaultValue) { return Convert.toInt(getRequest().getParameter(name), defaultValue); } /** * è·åBooleanåæ° */ public static Boolean getParameterToBool(String name) { return Convert.toBool(getRequest().getParameter(name)); } /** * è·åBooleanåæ° */ public static Boolean getParameterToBool(String name, Boolean defaultValue) { return Convert.toBool(getRequest().getParameter(name), defaultValue); } /** * è·å¾ææè¯·æ±åæ° * * @param request 请æ±å¯¹è±¡{@link ServletRequest} * @return Map */ public static Map<String, String[]> getParams(ServletRequest request) { final Map<String, String[]> map = request.getParameterMap(); return Collections.unmodifiableMap(map); } /** * è·å¾ææè¯·æ±åæ° * * @param request 请æ±å¯¹è±¡{@link ServletRequest} * @return Map */ public static Map<String, String> getParamMap(ServletRequest request) { Map<String, String> params = new HashMap<>(); for (Map.Entry<String, String[]> entry : getParams(request).entrySet()) { params.put(entry.getKey(), StringUtils.join(entry.getValue(), ",")); } return params; } /** * è·årequest */ public static HttpServletRequest getRequest() { return getRequestAttributes().getRequest(); } /** * è·åresponse */ public static HttpServletResponse getResponse() { return getRequestAttributes().getResponse(); } /** * è·åsession */ public static HttpSession getSession() { return getRequest().getSession(); } public static ServletRequestAttributes getRequestAttributes() { RequestAttributes attributes = RequestContextHolder.getRequestAttributes(); return (ServletRequestAttributes) attributes; } /** * å°å符串渲æå°å®¢æ·ç«¯ * * @param response 渲æå¯¹è±¡ * @param string å¾ æ¸²æçå符串 */ public static void renderString(HttpServletResponse response, String string) { try { response.setStatus(200); response.setContentType("application/json"); response.setCharacterEncoding("utf-8"); response.getWriter().print(string); } catch (IOException e) { e.printStackTrace(); } } /** * æ¯å¦æ¯Ajax弿¥è¯·æ± * * @param request */ public static boolean isAjaxRequest(HttpServletRequest request) { String accept = request.getHeader("accept"); if (accept != null && accept.contains("application/json")) { return true; } String xRequestedWith = request.getHeader("X-Requested-With"); if (xRequestedWith != null && xRequestedWith.contains("XMLHttpRequest")) { return true; } String uri = request.getRequestURI(); if (StringUtils.inStringIgnoreCase(uri, ".json", ".xml")) { return true; } String ajax = request.getParameter("__ajax"); return StringUtils.inStringIgnoreCase(ajax, "json", "xml"); } /** * å 容ç¼ç * * @param str å 容 * @return ç¼ç åçå 容 */ public static String urlEncode(String str) { try { return URLEncoder.encode(str, Constants.UTF8); } catch (UnsupportedEncodingException e) { return StringUtils.EMPTY; } } /** * å 容解ç * * @param str å 容 * @return è§£ç åçå 容 */ public static String urlDecode(String str) { try { return URLDecoder.decode(str, Constants.UTF8); } catch (UnsupportedEncodingException e) { return StringUtils.EMPTY; } } } zhitan-common/src/main/java/com/zhitan/common/utils/StringUtils.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,685 @@ package com.zhitan.common.utils; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import com.zhitan.common.constant.Constants; import org.springframework.util.AntPathMatcher; import com.zhitan.common.core.text.StrFormatter; /** * åç¬¦ä¸²å·¥å ·ç±» * * @author zhitan */ public class StringUtils extends org.apache.commons.lang3.StringUtils { /** 空å符串 */ private static final String NULLSTR = ""; /** ä¸å线 */ private static final char SEPARATOR = '_'; /** æå· */ private static final char ASTERISK = '*'; /** * è·ååæ°ä¸ä¸ºç©ºå¼ * * @param value defaultValue è¦å¤æçvalue * @return value è¿åå¼ */ public static <T> T nvl(T value, T defaultValue) { return value != null ? value : defaultValue; } /** * * 夿ä¸ä¸ªCollectionæ¯å¦ä¸ºç©ºï¼ å å«Listï¼Setï¼Queue * * @param coll è¦å¤æçCollection * @return trueï¼ä¸ºç©º falseï¼é空 */ public static boolean isEmpty(Collection<?> coll) { return isNull(coll) || coll.isEmpty(); } /** * * 夿ä¸ä¸ªCollectionæ¯å¦é空ï¼å å«Listï¼Setï¼Queue * * @param coll è¦å¤æçCollection * @return trueï¼é空 falseï¼ç©º */ public static boolean isNotEmpty(Collection<?> coll) { return !isEmpty(coll); } /** * * 夿ä¸ä¸ªå¯¹è±¡æ°ç»æ¯å¦ä¸ºç©º * * @param objects è¦å¤æç对象æ°ç» ** @return trueï¼ä¸ºç©º falseï¼é空 */ public static boolean isEmpty(Object[] objects) { return isNull(objects) || (objects.length == 0); } /** * * 夿ä¸ä¸ªå¯¹è±¡æ°ç»æ¯å¦é空 * * @param objects è¦å¤æç对象æ°ç» * @return trueï¼é空 falseï¼ç©º */ public static boolean isNotEmpty(Object[] objects) { return !isEmpty(objects); } /** * * 夿ä¸ä¸ªMapæ¯å¦ä¸ºç©º * * @param map è¦å¤æçMap * @return trueï¼ä¸ºç©º falseï¼é空 */ public static boolean isEmpty(Map<?, ?> map) { return isNull(map) || map.isEmpty(); } /** * * 夿ä¸ä¸ªMapæ¯å¦ä¸ºç©º * * @param map è¦å¤æçMap * @return trueï¼é空 falseï¼ç©º */ public static boolean isNotEmpty(Map<?, ?> map) { return !isEmpty(map); } /** * * 夿ä¸ä¸ªå符串æ¯å¦ä¸ºç©ºä¸² * * @param str String * @return trueï¼ä¸ºç©º falseï¼é空 */ public static boolean isEmpty(String str) { return isNull(str) || NULLSTR.equals(str.trim()); } /** * * 夿ä¸ä¸ªå符串æ¯å¦ä¸ºé空串 * * @param str String * @return trueï¼é空串 falseï¼ç©ºä¸² */ public static boolean isNotEmpty(String str) { return !isEmpty(str); } /** * * 夿ä¸ä¸ªå¯¹è±¡æ¯å¦ä¸ºç©º * * @param object Object * @return trueï¼ä¸ºç©º falseï¼é空 */ public static boolean isNull(Object object) { return object == null; } /** * * 夿ä¸ä¸ªå¯¹è±¡æ¯å¦é空 * * @param object Object * @return trueï¼é空 falseï¼ç©º */ public static boolean isNotNull(Object object) { return !isNull(object); } /** * * 夿ä¸ä¸ªå¯¹è±¡æ¯å¦æ¯æ°ç»ç±»åï¼Javaåºæ¬åå«çæ°ç»ï¼ * * @param object 对象 * @return trueï¼æ¯æ°ç» falseï¼ä¸æ¯æ°ç» */ public static boolean isArray(Object object) { return isNotNull(object) && object.getClass().isArray(); } /** * å»ç©ºæ ¼ */ public static String trim(String str) { return (str == null ? "" : str.trim()); } /** * æ¿æ¢æå®å符串çæå®åºé´å å符为"*" * * @param str å符串 * @param startInclude å¼å§ä½ç½®ï¼å å«ï¼ * @param endExclude ç»æä½ç½®ï¼ä¸å å«ï¼ * @return æ¿æ¢åçå符串 */ public static String hide(CharSequence str, int startInclude, int endExclude) { if (isEmpty(str)) { return NULLSTR; } final int strLength = str.length(); if (startInclude > strLength) { return NULLSTR; } if (endExclude > strLength) { endExclude = strLength; } if (startInclude > endExclude) { // å¦æèµ·å§ä½ç½®å¤§äºç»æä½ç½®ï¼ä¸æ¿æ¢ return NULLSTR; } final char[] chars = new char[strLength]; for (int i = 0; i < strLength; i++) { if (i >= startInclude && i < endExclude) { chars[i] = ASTERISK; } else { chars[i] = str.charAt(i); } } return new String(chars); } /** * æªåå符串 * * @param str å符串 * @param start å¼å§ * @return ç»æ */ public static String substring(final String str, int start) { if (str == null) { return NULLSTR; } if (start < 0) { start = str.length() + start; } if (start < 0) { start = 0; } if (start > str.length()) { return NULLSTR; } return str.substring(start); } /** * æªåå符串 * * @param str å符串 * @param start å¼å§ * @param end ç»æ * @return ç»æ */ public static String substring(final String str, int start, int end) { if (str == null) { return NULLSTR; } if (end < 0) { end = str.length() + end; } if (start < 0) { start = str.length() + start; } if (end > str.length()) { end = str.length(); } if (start > end) { return NULLSTR; } if (start < 0) { start = 0; } if (end < 0) { end = 0; } return str.substring(start, end); } /** * 夿æ¯å¦ä¸ºç©ºï¼å¹¶ä¸ä¸æ¯ç©ºç½å符 * * @param str è¦å¤æçvalue * @return ç»æ */ public static boolean hasText(String str) { return (str != null && !str.isEmpty() && containsText(str)); } private static boolean containsText(CharSequence str) { int strLen = str.length(); for (int i = 0; i < strLen; i++) { if (!Character.isWhitespace(str.charAt(i))) { return true; } } return false; } /** * æ ¼å¼åææ¬, {} 表示å ä½ç¬¦<br> * æ¤æ¹æ³åªæ¯ç®åå°å ä½ç¬¦ {} æç §é¡ºåºæ¿æ¢ä¸ºåæ°<br> * 妿æ³è¾åº {} ä½¿ç¨ \\è½¬ä¹ { å³å¯ï¼å¦ææ³è¾åº {} ä¹åç \ 使ç¨å转ä¹ç¬¦ \\\\ å³å¯<br> * ä¾ï¼<br> * é常使ç¨ï¼format("this is {} for {}", "a", "b") -> this is a for b<br> * 转ä¹{}ï¼ format("this is \\{} for {}", "a", "b") -> this is \{} for a<br> * 转ä¹\ï¼ format("this is \\\\{} for {}", "a", "b") -> this is \a for b<br> * * @param template ææ¬æ¨¡æ¿ï¼è¢«æ¿æ¢çé¨åç¨ {} 表示 * @param params åæ°å¼ * @return æ ¼å¼ååçææ¬ */ public static String format(String template, Object... params) { if (isEmpty(params) || isEmpty(template)) { return template; } return StrFormatter.format(template, params); } /** * æ¯å¦ä¸ºhttp(s)://å¼å¤´ * * @param link 龿¥ * @return ç»æ */ public static boolean ishttp(String link) { return StringUtils.startsWithAny(link, Constants.HTTP, Constants.HTTPS); } /** * å符串转set * * @param str å符串 * @param sep åé符 * @return setéå */ public static final Set<String> str2Set(String str, String sep) { return new HashSet<String>(str2List(str, sep, true, false)); } /** * å符串转list * * @param str å符串 * @param sep åé符 * @param filterBlank è¿æ»¤çº¯ç©ºç½ * @param trim 廿é¦å°¾ç©ºç½ * @return listéå */ public static final List<String> str2List(String str, String sep, boolean filterBlank, boolean trim) { List<String> list = new ArrayList<String>(); if (StringUtils.isEmpty(str)) { return list; } // è¿æ»¤ç©ºç½å符串 if (filterBlank && StringUtils.isBlank(str)) { return list; } String[] split = str.split(sep); for (String string : split) { if (filterBlank && StringUtils.isBlank(string)) { continue; } if (trim) { string = string.trim(); } list.add(string); } return list; } /** * 夿ç»å®çcollectionåè¡¨ä¸æ¯å¦å 嫿°ç»array 夿ç»å®çæ°ç»array䏿¯å¦å å«ç»å®çå ç´ value * * @param collection ç»å®çéå * @param array ç»å®çæ°ç» * @return boolean ç»æ */ public static boolean containsAny(Collection<String> collection, String... array) { if (isEmpty(collection) || isEmpty(array)) { return false; } else { for (String str : array) { if (collection.contains(str)) { return true; } } return false; } } /** * æ¥æ¾æå®å符串æ¯å¦å 嫿å®å符串å表ä¸çä»»æä¸ä¸ªåç¬¦ä¸²åæ¶ä¸²å¿½ç¥å¤§å°å * * @param cs æå®å符串 * @param searchCharSequences éè¦æ£æ¥çå符串æ°ç» * @return æ¯å¦å å«ä»»æä¸ä¸ªå符串 */ public static boolean containsAnyIgnoreCase(CharSequence cs, CharSequence... searchCharSequences) { if (isEmpty(cs) || isEmpty(searchCharSequences)) { return false; } for (CharSequence testStr : searchCharSequences) { if (containsIgnoreCase(cs, testStr)) { return true; } } return false; } /** * 驼峰转ä¸å线å½å */ public static String toUnderScoreCase(String str) { if (str == null) { return null; } StringBuilder sb = new StringBuilder(); // åç½®å符æ¯å¦å¤§å boolean preCharIsUpperCase = true; // å½åå符æ¯å¦å¤§å boolean curreCharIsUpperCase = true; // ä¸ä¸å符æ¯å¦å¤§å boolean nexteCharIsUpperCase = true; for (int i = 0; i < str.length(); i++) { char c = str.charAt(i); if (i > 0) { preCharIsUpperCase = Character.isUpperCase(str.charAt(i - 1)); } else { preCharIsUpperCase = false; } curreCharIsUpperCase = Character.isUpperCase(c); if (i < (str.length() - 1)) { nexteCharIsUpperCase = Character.isUpperCase(str.charAt(i + 1)); } if (preCharIsUpperCase && curreCharIsUpperCase && !nexteCharIsUpperCase) { sb.append(SEPARATOR); } else if ((i != 0 && !preCharIsUpperCase) && curreCharIsUpperCase) { sb.append(SEPARATOR); } sb.append(Character.toLowerCase(c)); } return sb.toString(); } /** * æ¯å¦å å«å符串 * * @param str éªè¯å符串 * @param strs åç¬¦ä¸²ç» * @return å å«è¿åtrue */ public static boolean inStringIgnoreCase(String str, String... strs) { if (str != null && strs != null) { for (String s : strs) { if (str.equalsIgnoreCase(trim(s))) { return true; } } } return false; } /** * å°ä¸åçº¿å¤§åæ¹å¼å½åçå符串转æ¢ä¸ºé©¼å³°å¼ãå¦æè½¬æ¢åçä¸åçº¿å¤§åæ¹å¼å½åçå符串为空ï¼åè¿å空å符串ã ä¾å¦ï¼HELLO_WORLD->HelloWorld * * @param name 转æ¢åçä¸åçº¿å¤§åæ¹å¼å½åçå符串 * @return 转æ¢åç驼峰å¼å½åçå符串 */ public static String convertToCamelCase(String name) { StringBuilder result = new StringBuilder(); // å¿«éæ£æ¥ if (name == null || name.isEmpty()) { // æ²¡å¿ è¦è½¬æ¢ return ""; } else if (!name.contains("_")) { // ä¸å«ä¸å线ï¼ä» å°é¦åæ¯å¤§å return name.substring(0, 1).toUpperCase() + name.substring(1); } // ç¨ä¸å线å°åå§å符串åå² String[] camels = name.split("_"); for (String camel : camels) { // è·³è¿åå§å符串ä¸å¼å¤´ãç»å°¾ç䏿¢çº¿æåéä¸å线 if (camel.isEmpty()) { continue; } // é¦åæ¯å¤§å result.append(camel.substring(0, 1).toUpperCase()); result.append(camel.substring(1).toLowerCase()); } return result.toString(); } /** * 驼峰å¼å½åæ³ * ä¾å¦ï¼user_name->userName */ public static String toCamelCase(String s) { if (s == null) { return null; } if (s.indexOf(SEPARATOR) == -1) { return s; } s = s.toLowerCase(); StringBuilder sb = new StringBuilder(s.length()); boolean upperCase = false; for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); if (c == SEPARATOR) { upperCase = true; } else if (upperCase) { sb.append(Character.toUpperCase(c)); upperCase = false; } else { sb.append(c); } } return sb.toString(); } /** * æ¥æ¾æå®å符串æ¯å¦å¹é æå®å符串å表ä¸çä»»æä¸ä¸ªå符串 * * @param str æå®å符串 * @param strs éè¦æ£æ¥çå符串æ°ç» * @return æ¯å¦å¹é */ public static boolean matches(String str, List<String> strs) { if (isEmpty(str) || isEmpty(strs)) { return false; } for (String pattern : strs) { if (isMatch(pattern, str)) { return true; } } return false; } /** * 夿urlæ¯å¦ä¸è§åé ç½®: * ? 表示å个å符; * * 表示ä¸å±è·¯å¾å çä»»æå符串ï¼ä¸å¯è·¨å±çº§; * ** 表示任æå±è·¯å¾; * * @param pattern å¹é è§å * @param url éè¦å¹é çurl * @return */ public static boolean isMatch(String pattern, String url) { AntPathMatcher matcher = new AntPathMatcher(); return matcher.match(pattern, url); } @SuppressWarnings("unchecked") public static <T> T cast(Object obj) { return (T) obj; } /** * æ°å左边补é½0ï¼ä½¿ä¹è¾¾å°æå®é¿åº¦ã注æï¼å¦ææ°å转æ¢ä¸ºå符串åï¼é¿åº¦å¤§äºsizeï¼ååªä¿ç æåsize个å符ã * * @param num æ°å对象 * @param size å符串æå®é¿åº¦ * @return è¿åæ°åçåç¬¦ä¸²æ ¼å¼ï¼è¯¥å符串为æå®é¿åº¦ã */ public static final String padl(final Number num, final int size) { return padl(num.toString(), size, '0'); } /** * å符串左补é½ã妿åå§å符串sé¿åº¦å¤§äºsizeï¼ååªä¿çæåsize个å符ã * * @param s åå§å符串 * @param size å符串æå®é¿åº¦ * @param c ç¨äºè¡¥é½çå符 * @return è¿åæå®é¿åº¦çå符串ï¼ç±ååç¬¦ä¸²å·¦è¡¥é½ææªåå¾å°ã */ public static final String padl(final String s, final int size, final char c) { final StringBuilder sb = new StringBuilder(size); if (s != null) { final int len = s.length(); if (s.length() <= size) { for (int i = size - len; i > 0; i--) { sb.append(c); } sb.append(s); } else { return s.substring(len - size, len); } } else { for (int i = size; i > 0; i--) { sb.append(c); } } return sb.toString(); } } zhitan-common/src/main/java/com/zhitan/common/utils/Threads.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,99 @@ package com.zhitan.common.utils; import java.util.concurrent.CancellationException; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * 线ç¨ç¸å ³å·¥å ·ç±». * * @author zhitan */ public class Threads { private static final Logger logger = LoggerFactory.getLogger(Threads.class); /** * sleepçå¾ ,åä½ä¸ºæ¯«ç§ */ public static void sleep(long milliseconds) { try { Thread.sleep(milliseconds); } catch (InterruptedException e) { return; } } /** * åæ¢çº¿ç¨æ± * å 使ç¨shutdown, åæ¢æ¥æ¶æ°ä»»å¡å¹¶å°è¯å®æææå·²åå¨ä»»å¡. * å¦æè¶ æ¶, åè°ç¨shutdownNow, åæ¶å¨workQueueä¸Pendingçä»»å¡,并䏿ææé»å¡å½æ°. * 妿ä»ç¶è¶ æï¼åå¼·å¶éåº. * å¦å¯¹å¨shutdownæ¶çº¿ç¨æ¬èº«è¢«è°ç¨ä¸æåäºå¤ç. */ public static void shutdownAndAwaitTermination(ExecutorService pool) { if (pool != null && !pool.isShutdown()) { pool.shutdown(); try { if (!pool.awaitTermination(120, TimeUnit.SECONDS)) { pool.shutdownNow(); if (!pool.awaitTermination(120, TimeUnit.SECONDS)) { logger.info("Pool did not terminate"); } } } catch (InterruptedException ie) { pool.shutdownNow(); Thread.currentThread().interrupt(); } } } /** * æå°çº¿ç¨å¼å¸¸ä¿¡æ¯ */ public static void printException(Runnable r, Throwable t) { if (t == null && r instanceof Future<?>) { try { Future<?> future = (Future<?>) r; if (future.isDone()) { future.get(); } } catch (CancellationException ce) { t = ce; } catch (ExecutionException ee) { t = ee.getCause(); } catch (InterruptedException ie) { Thread.currentThread().interrupt(); } } if (t != null) { logger.error(t.getMessage(), t); } } } zhitan-common/src/main/java/com/zhitan/common/utils/bean/BeanUtils.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,110 @@ package com.zhitan.common.utils.bean; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * Bean å·¥å ·ç±» * * @author zhitan */ public class BeanUtils extends org.springframework.beans.BeanUtils { /** Beanæ¹æ³åä¸å±æ§åå¼å§ç䏿 */ private static final int BEAN_METHOD_PROP_INDEX = 3; /** * å¹é getteræ¹æ³çæ£åè¡¨è¾¾å¼ */ private static final Pattern GET_PATTERN = Pattern.compile("get(\\p{javaUpperCase}\\w*)"); /** * å¹é setteræ¹æ³çæ£åè¡¨è¾¾å¼ */ private static final Pattern SET_PATTERN = Pattern.compile("set(\\p{javaUpperCase}\\w*)"); /** * Bean屿§å¤å¶å·¥å ·æ¹æ³ã * * @param dest ç®æ 对象 * @param src æºå¯¹è±¡ */ public static void copyBeanProp(Object dest, Object src) { try { copyProperties(src, dest); } catch (Exception e) { e.printStackTrace(); } } /** * è·å对象çsetteræ¹æ³ã * * @param obj 对象 * @return 对象çsetteræ¹æ³å表 */ public static List<Method> getSetterMethods(Object obj) { // setteræ¹æ³å表 List<Method> setterMethods = new ArrayList<Method>(); // è·åæææ¹æ³ Method[] methods = obj.getClass().getMethods(); // æ¥æ¾setteræ¹æ³ for (Method method : methods) { Matcher m = SET_PATTERN.matcher(method.getName()); if (m.matches() && (method.getParameterTypes().length == 1)) { setterMethods.add(method); } } // è¿åsetteræ¹æ³å表 return setterMethods; } /** * è·å对象çgetteræ¹æ³ã * * @param obj 对象 * @return 对象çgetteræ¹æ³å表 */ public static List<Method> getGetterMethods(Object obj) { // getteræ¹æ³å表 List<Method> getterMethods = new ArrayList<Method>(); // è·åæææ¹æ³ Method[] methods = obj.getClass().getMethods(); // æ¥æ¾getteræ¹æ³ for (Method method : methods) { Matcher m = GET_PATTERN.matcher(method.getName()); if (m.matches() && (method.getParameterTypes().length == 0)) { getterMethods.add(method); } } // è¿ågetteræ¹æ³å表 return getterMethods; } /** * æ£æ¥Beanæ¹æ³åä¸ç屿§åæ¯å¦ç¸çã<br> * å¦getName()åsetName()屿§å䏿 ·ï¼getName()åsetAge()屿§åä¸ä¸æ ·ã * * @param m1 æ¹æ³å1 * @param m2 æ¹æ³å2 * @return 屿§å䏿 ·è¿åtrueï¼å¦åè¿åfalse */ public static boolean isMethodPropEquals(String m1, String m2) { return m1.substring(BEAN_METHOD_PROP_INDEX).equals(m2.substring(BEAN_METHOD_PROP_INDEX)); } } zhitan-common/src/main/java/com/zhitan/common/utils/bean/BeanValidators.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,24 @@ package com.zhitan.common.utils.bean; import java.util.Set; import javax.validation.ConstraintViolation; import javax.validation.ConstraintViolationException; import javax.validation.Validator; /** * beanå¯¹è±¡å±æ§éªè¯ * * @author zhitan */ public class BeanValidators { public static void validateWithException(Validator validator, Object object, Class<?>... groups) throws ConstraintViolationException { Set<ConstraintViolation<Object>> constraintViolations = validator.validate(object, groups); if (!constraintViolations.isEmpty()) { throw new ConstraintViolationException(constraintViolations); } } } zhitan-common/src/main/java/com/zhitan/common/utils/file/FileTypeUtils.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,76 @@ package com.zhitan.common.utils.file; import java.io.File; import org.apache.commons.lang3.StringUtils; /** * æä»¶ç±»åå·¥å ·ç±» * * @author zhitan */ public class FileTypeUtils { /** * è·åæä»¶ç±»å * <p> * ä¾å¦: admin.txt, è¿å: txt * * @param file æä»¶å * @return åç¼ï¼ä¸å«".") */ public static String getFileType(File file) { if (null == file) { return StringUtils.EMPTY; } return getFileType(file.getName()); } /** * è·åæä»¶ç±»å * <p> * ä¾å¦: admin.txt, è¿å: txt * * @param fileName æä»¶å * @return åç¼ï¼ä¸å«".") */ public static String getFileType(String fileName) { int separatorIndex = fileName.lastIndexOf("."); if (separatorIndex < 0) { return ""; } return fileName.substring(separatorIndex + 1).toLowerCase(); } /** * è·åæä»¶ç±»å * * @param photoByte æä»¶åèç * @return åç¼ï¼ä¸å«".") */ public static String getFileExtendName(byte[] photoByte) { String strFileExtendName = "JPG"; if ((photoByte[0] == 71) && (photoByte[1] == 73) && (photoByte[2] == 70) && (photoByte[3] == 56) && ((photoByte[4] == 55) || (photoByte[4] == 57)) && (photoByte[5] == 97)) { strFileExtendName = "GIF"; } else if ((photoByte[6] == 74) && (photoByte[7] == 70) && (photoByte[8] == 73) && (photoByte[9] == 70)) { strFileExtendName = "JPG"; } else if ((photoByte[0] == 66) && (photoByte[1] == 77)) { strFileExtendName = "BMP"; } else if ((photoByte[1] == 80) && (photoByte[2] == 78) && (photoByte[3] == 71)) { strFileExtendName = "PNG"; } return strFileExtendName; } } zhitan-common/src/main/java/com/zhitan/common/utils/file/FileUploadUtils.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,310 @@ package com.zhitan.common.utils.file; import com.zhitan.common.config.BaseConfig; import com.zhitan.common.constant.Constants; import com.zhitan.common.exception.file.FileNameLengthLimitExceededException; import com.zhitan.common.exception.file.FileSizeLimitExceededException; import com.zhitan.common.exception.file.InvalidExtensionException; import com.zhitan.common.utils.DateUtils; import com.zhitan.common.utils.StringUtils; import com.zhitan.common.utils.uuid.Seq; import org.apache.commons.io.FilenameUtils; import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.io.IOException; import java.nio.file.Paths; import java.util.Objects; /** * æä»¶ä¸ä¼ å·¥å ·ç±» * * @author zhitan */ public class FileUploadUtils { /** * é»è®¤å¤§å° 50M */ public static final long DEFAULT_MAX_SIZE = 50 * 1024 * 1024; /** * é»è®¤çæä»¶åæå¤§é¿åº¦ 100 */ public static final int DEFAULT_FILE_NAME_LENGTH = 100; /** * é»è®¤ä¸ä¼ çå°å */ private static String defaultBaseDir = BaseConfig.getProfile(); public static void setDefaultBaseDir(String defaultBaseDir) { FileUploadUtils.defaultBaseDir = defaultBaseDir; } public static String getDefaultBaseDir() { return defaultBaseDir; } /** * 以é»è®¤é ç½®è¿è¡æä»¶ä¸ä¼ * * @param file ä¸ä¼ çæä»¶ * @return æä»¶åç§° * @throws Exception */ public static final String upload(MultipartFile file) throws IOException { try { return upload(getDefaultBaseDir(), file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION); } catch (Exception e) { throw new IOException(e.getMessage(), e); } } /** * æ ¹æ®æä»¶è·¯å¾ä¸ä¼ * * @param baseDir ç¸å¯¹åºç¨çåºç®å½ * @param file ä¸ä¼ çæä»¶ * @return æä»¶åç§° * @throws IOException */ public static final String upload(String baseDir, MultipartFile file) throws IOException { try { return upload(baseDir, file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION); } catch (Exception e) { throw new IOException(e.getMessage(), e); } } /** * æä»¶ä¸ä¼ * * @param baseDir ç¸å¯¹åºç¨çåºç®å½ * @param file ä¸ä¼ çæä»¶ * @param allowedExtension ä¸ä¼ æä»¶ç±»å * @return è¿åä¸ä¼ æåçæä»¶å * @throws FileSizeLimitExceededException å¦æè¶ åºæå¤§å¤§å° * @throws FileNameLengthLimitExceededException æä»¶åå¤ªé¿ * @throws IOException æ¯å¦è¯»åæä»¶åºéæ¶ * @throws InvalidExtensionException æä»¶æ ¡éªå¼å¸¸ */ public static final String upload(String baseDir, MultipartFile file, String[] allowedExtension) throws FileSizeLimitExceededException, IOException, FileNameLengthLimitExceededException, InvalidExtensionException { int fileNamelength = Objects.requireNonNull(file.getOriginalFilename()).length(); if (fileNamelength > FileUploadUtils.DEFAULT_FILE_NAME_LENGTH) { throw new FileNameLengthLimitExceededException(FileUploadUtils.DEFAULT_FILE_NAME_LENGTH); } assertAllowed(file, allowedExtension); String fileName = extractFilename(file); String absPath = getAbsoluteFile(baseDir, fileName).getAbsolutePath(); file.transferTo(Paths.get(absPath)); return getPathFileName(baseDir, fileName); } /** * ç¼ç æä»¶å */ public static final String extractFilename(MultipartFile file) { return StringUtils.format("{}/{}_{}.{}", DateUtils.datePath(), FilenameUtils.getBaseName(file.getOriginalFilename()), Seq.getId(Seq.uploadSeqType), getExtension(file)); } public static final File getAbsoluteFile(String uploadDir, String fileName) throws IOException { File desc = new File(uploadDir + File.separator + fileName); if (!desc.exists()) { if (!desc.getParentFile().exists()) { desc.getParentFile().mkdirs(); } } return desc; } public static final String getPathFileName(String uploadDir, String fileName) throws IOException { int dirLastIndex = BaseConfig.getProfile().length() + 1; String currentDir = StringUtils.substring(uploadDir, dirLastIndex); return Constants.RESOURCE_PREFIX + "/" + currentDir + "/" + fileName; } /** * æä»¶å¤§å°æ ¡éª * * @param file ä¸ä¼ çæä»¶ * @return * @throws FileSizeLimitExceededException å¦æè¶ åºæå¤§å¤§å° * @throws InvalidExtensionException */ public static final void assertAllowed(MultipartFile file, String[] allowedExtension) throws FileSizeLimitExceededException, InvalidExtensionException { long size = file.getSize(); if (size > DEFAULT_MAX_SIZE) { throw new FileSizeLimitExceededException(DEFAULT_MAX_SIZE / 1024 / 1024); } String fileName = file.getOriginalFilename(); String extension = getExtension(file); if (allowedExtension != null && !isAllowedExtension(extension, allowedExtension)) { if (allowedExtension == MimeTypeUtils.IMAGE_EXTENSION) { throw new InvalidExtensionException.InvalidImageExtensionException(allowedExtension, extension, fileName); } else if (allowedExtension == MimeTypeUtils.FLASH_EXTENSION) { throw new InvalidExtensionException.InvalidFlashExtensionException(allowedExtension, extension, fileName); } else if (allowedExtension == MimeTypeUtils.MEDIA_EXTENSION) { throw new InvalidExtensionException.InvalidMediaExtensionException(allowedExtension, extension, fileName); } else if (allowedExtension == MimeTypeUtils.VIDEO_EXTENSION) { throw new InvalidExtensionException.InvalidVideoExtensionException(allowedExtension, extension, fileName); } else { throw new InvalidExtensionException(allowedExtension, extension, fileName); } } } /** * 夿MIMEç±»åæ¯å¦æ¯å 许çMIMEç±»å * * @param extension * @param allowedExtension * @return */ public static final boolean isAllowedExtension(String extension, String[] allowedExtension) { for (String str : allowedExtension) { if (str.equalsIgnoreCase(extension)) { return true; } } return false; } /** * è·åæä»¶åçåç¼ * * @param file 表åæä»¶ * @return åç¼å */ public static final String getExtension(MultipartFile file) { String extension = FilenameUtils.getExtension(file.getOriginalFilename()); if (StringUtils.isEmpty(extension)) { extension = MimeTypeUtils.getExtension(Objects.requireNonNull(file.getContentType())); } return extension; } /** * æ ¹æ®æä»¶è·¯å¾ä¸ä¼ ä»»ææä»¶ 2020.02.15 * * @param baseDir ç¸å¯¹åºç¨çåºç®å½ * @param file ä¸ä¼ çæä»¶ * @return æä»¶åç§° * @throws IOException */ public static final String uploadAll(String baseDir, MultipartFile file) throws IOException { try { return uploadAllFile(baseDir, file); } catch (Exception e) { throw new IOException(e.getMessage(), e); } } /** * ä»»ææä»¶ä¸ä¼ 2020.02.15 * * @param baseDir ç¸å¯¹åºç¨çåºç®å½ * @param file ä¸ä¼ çæä»¶ * @return è¿åä¸ä¼ æåçæä»¶å * @throws FileSizeLimitExceededException å¦æè¶ åºæå¤§å¤§å° * @throws FileNameLengthLimitExceededException æä»¶åå¤ªé¿ * @throws IOException æ¯å¦è¯»åæä»¶åºéæ¶ * @throws InvalidExtensionException æä»¶æ ¡éªå¼å¸¸ */ public static final String uploadAllFile(String baseDir, MultipartFile file) throws FileSizeLimitExceededException, IOException, FileNameLengthLimitExceededException, InvalidExtensionException { int fileNamelength = file.getOriginalFilename().length(); if (fileNamelength > FileUploadUtils.DEFAULT_FILE_NAME_LENGTH) { throw new FileNameLengthLimitExceededException(FileUploadUtils.DEFAULT_FILE_NAME_LENGTH); } //æ£æµä»»ææä»¶ç±»å大å°ï¼ä¸æ£æµæä»¶ç±»å assertAllowedNoExtension(file); //çææ¥æè·¯å¾çæä»¶åæ°æä»¶å½åç¼ç ï¼é¿å è¦ç String fileName = extractFilename(file); //æ£æµæä»¶è·¯å¾åæä»¶å¹¶å¯¹ 没æçè·¯å¾åæä»¶è¿è¡å»ºç« getAbsoluteFilePath(baseDir + File.separator + fileName); String saveFilePath = baseDir + File.separator + fileName; File desc = new File(saveFilePath); //å°ä¸ä¼ æä»¶åå ¥æ°æä»¶ file.transferTo(desc); //è¿åå ¨è·¯å¾ return saveFilePath; } /** * æä»¶å¤§å°æ ¡éª 䏿£æµç±»å * * @param file ä¸ä¼ çæä»¶ * @return * @throws FileSizeLimitExceededException å¦æè¶ åºæå¤§å¤§å° */ public static final void assertAllowedNoExtension(MultipartFile file) throws FileSizeLimitExceededException { long size = file.getSize(); if (DEFAULT_MAX_SIZE != -1 && size > DEFAULT_MAX_SIZE) { throw new FileSizeLimitExceededException(DEFAULT_MAX_SIZE / 1024 / 1024); } } /** * å¤æè·¯å¾æ¯å¦åå¨,ä¸åå¨åæ°å»º * * @param uploadDir * @return * @throws IOException */ public static final void getAbsoluteFilePath(String uploadDir) throws IOException { File desc = new File(uploadDir); if (!desc.getParentFile().exists()) { desc.getParentFile().mkdirs(); } } } zhitan-common/src/main/java/com/zhitan/common/utils/file/FileUtils.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,292 @@ package com.zhitan.common.utils.file; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.zhitan.common.config.BaseConfig; import com.zhitan.common.utils.uuid.IdUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.ArrayUtils; import com.zhitan.common.utils.DateUtils; import com.zhitan.common.utils.StringUtils; import org.apache.commons.io.FilenameUtils; /** * æä»¶å¤çå·¥å ·ç±» * * @author zhitan */ public class FileUtils { public static String FILENAME_PATTERN = "[a-zA-Z0-9_\\-\\|\\.\\u4e00-\\u9fa5]+"; /** * è¾åºæå®æä»¶çbyteæ°ç» * * @param filePath æä»¶è·¯å¾ * @param os è¾åºæµ * @return */ public static void writeBytes(String filePath, OutputStream os) throws IOException { FileInputStream fis = null; try { File file = new File(filePath); if (!file.exists()) { throw new FileNotFoundException(filePath); } fis = new FileInputStream(file); byte[] b = new byte[1024]; int length; while ((length = fis.read(b)) > 0) { os.write(b, 0, length); } } catch (IOException e) { throw e; } finally { IOUtils.close(os); IOUtils.close(fis); } } /** * åæ°æ®å°æä»¶ä¸ * * @param data æ°æ® * @return ç®æ æä»¶ * @throws IOException IOå¼å¸¸ */ public static String writeImportBytes(byte[] data) throws IOException { return writeBytes(data, BaseConfig.getImportPath()); } /** * åæ°æ®å°æä»¶ä¸ * * @param data æ°æ® * @param uploadDir ç®æ æä»¶ * @return ç®æ æä»¶ * @throws IOException IOå¼å¸¸ */ public static String writeBytes(byte[] data, String uploadDir) throws IOException { FileOutputStream fos = null; String pathName = ""; try { String extension = getFileExtendName(data); pathName = DateUtils.datePath() + "/" + IdUtils.fastUUID() + "." + extension; File file = FileUploadUtils.getAbsoluteFile(uploadDir, pathName); fos = new FileOutputStream(file); fos.write(data); } finally { IOUtils.close(fos); } return FileUploadUtils.getPathFileName(uploadDir, pathName); } /** * å 餿件 * * @param filePath æä»¶ * @return */ public static boolean deleteFile(String filePath) { boolean flag = false; File file = new File(filePath); // è·¯å¾ä¸ºæä»¶ä¸ä¸ä¸ºç©ºåè¿è¡å é¤ if (file.isFile() && file.exists()) { flag = file.delete(); } return flag; } /** * æä»¶åç§°éªè¯ * * @param filename æä»¶åç§° * @return true æ£å¸¸ false éæ³ */ public static boolean isValidFilename(String filename) { return filename.matches(FILENAME_PATTERN); } /** * æ£æ¥æä»¶æ¯å¦å¯ä¸è½½ * * @param resource éè¦ä¸è½½çæä»¶ * @return true æ£å¸¸ false éæ³ */ public static boolean checkAllowDownload(String resource) { // ç¦æ¢ç®å½ä¸è·³çº§å« if (StringUtils.contains(resource, "..")) { return false; } // æ£æ¥å 许ä¸è½½çæä»¶è§å if (ArrayUtils.contains(MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION, FileTypeUtils.getFileType(resource))) { return true; } // ä¸å¨å 许ä¸è½½çæä»¶è§å return false; } /** * ä¸è½½æä»¶åéæ°ç¼ç * * @param request 请æ±å¯¹è±¡ * @param fileName æä»¶å * @return ç¼ç åçæä»¶å */ public static String setFileDownloadHeader(HttpServletRequest request, String fileName) throws UnsupportedEncodingException { final String agent = request.getHeader("USER-AGENT"); String filename = fileName; if (agent.contains("MSIE")) { // IEæµè§å¨ filename = URLEncoder.encode(filename, "utf-8"); filename = filename.replace("+", " "); } else if (agent.contains("Firefox")) { // ç«çæµè§å¨ filename = new String(fileName.getBytes(), "ISO8859-1"); } else if (agent.contains("Chrome")) { // googleæµè§å¨ filename = URLEncoder.encode(filename, "utf-8"); } else { // å ¶å®æµè§å¨ filename = URLEncoder.encode(filename, "utf-8"); } return filename; } /** * ä¸è½½æä»¶åéæ°ç¼ç * * @param response ååºå¯¹è±¡ * @param realFileName ç宿件å */ public static void setAttachmentResponseHeader(HttpServletResponse response, String realFileName) throws UnsupportedEncodingException { String percentEncodedFileName = percentEncode(realFileName); StringBuilder contentDispositionValue = new StringBuilder(); contentDispositionValue.append("attachment; filename=") .append(percentEncodedFileName) .append(";") .append("filename*=") .append("utf-8''") .append(percentEncodedFileName); response.addHeader("Access-Control-Expose-Headers", "Content-Disposition,download-filename"); response.setHeader("Content-disposition", contentDispositionValue.toString()); response.setHeader("download-filename", percentEncodedFileName); } /** * ç¾åå·ç¼ç å·¥å ·æ¹æ³ * * @param s éè¦ç¾åå·ç¼ç çå符串 * @return ç¾åå·ç¼ç åçå符串 */ public static String percentEncode(String s) throws UnsupportedEncodingException { String encode = URLEncoder.encode(s, StandardCharsets.UTF_8.toString()); return encode.replaceAll("\\+", "%20"); } /** * è·åå¾ååç¼ * * @param photoByte å¾åæ°æ® * @return åç¼å */ public static String getFileExtendName(byte[] photoByte) { String strFileExtendName = "jpg"; if ((photoByte[0] == 71) && (photoByte[1] == 73) && (photoByte[2] == 70) && (photoByte[3] == 56) && ((photoByte[4] == 55) || (photoByte[4] == 57)) && (photoByte[5] == 97)) { strFileExtendName = "gif"; } else if ((photoByte[6] == 74) && (photoByte[7] == 70) && (photoByte[8] == 73) && (photoByte[9] == 70)) { strFileExtendName = "jpg"; } else if ((photoByte[0] == 66) && (photoByte[1] == 77)) { strFileExtendName = "bmp"; } else if ((photoByte[1] == 80) && (photoByte[2] == 78) && (photoByte[3] == 71)) { strFileExtendName = "png"; } return strFileExtendName; } /** * è·åæä»¶åç§° /profile/upload/2022/04/16/admin.png -- admin.png * * @param fileName è·¯å¾åç§° * @return 没ææä»¶è·¯å¾çåç§° */ public static String getName(String fileName) { if (fileName == null) { return null; } int lastUnixPos = fileName.lastIndexOf('/'); int lastWindowsPos = fileName.lastIndexOf('\\'); int index = Math.max(lastUnixPos, lastWindowsPos); return fileName.substring(index + 1); } /** * è·åä¸å¸¦åç¼æä»¶åç§° /profile/upload/2022/04/16/admin.png -- admin * * @param fileName è·¯å¾åç§° * @return 没ææä»¶è·¯å¾ååç¼çåç§° */ public static String getNameNotSuffix(String fileName) { if (fileName == null) { return null; } String baseName = FilenameUtils.getBaseName(fileName); return baseName; } } zhitan-common/src/main/java/com/zhitan/common/utils/file/ImageUtils.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,99 @@ package com.zhitan.common.utils.file; import java.io.ByteArrayInputStream; import java.io.FileInputStream; import java.io.InputStream; import java.net.URL; import java.net.URLConnection; import java.util.Arrays; import com.zhitan.common.config.BaseConfig; import com.zhitan.common.constant.Constants; import org.apache.poi.util.IOUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.zhitan.common.utils.StringUtils; /** * å¾çå¤çå·¥å ·ç±» * * @author zhitan */ public class ImageUtils { private static final Logger log = LoggerFactory.getLogger(ImageUtils.class); public static byte[] getImage(String imagePath) { InputStream is = getFile(imagePath); try { return IOUtils.toByteArray(is); } catch (Exception e) { log.error("å¾çå è½½å¼å¸¸ {}", e); return null; } finally { IOUtils.closeQuietly(is); } } public static InputStream getFile(String imagePath) { try { byte[] result = readFile(imagePath); result = Arrays.copyOf(result, result.length); return new ByteArrayInputStream(result); } catch (Exception e) { log.error("è·åå¾çå¼å¸¸ {}", e); } return null; } /** * 读åæä»¶ä¸ºåèæ°æ® * * @param url å°å * @return åèæ°æ® */ public static byte[] readFile(String url) { InputStream in = null; try { if (url.startsWith("http")) { // ç½ç»å°å URL urlObj = new URL(url); URLConnection urlConnection = urlObj.openConnection(); urlConnection.setConnectTimeout(30 * 1000); urlConnection.setReadTimeout(60 * 1000); urlConnection.setDoInput(true); in = urlConnection.getInputStream(); } else { // æ¬æºå°å String localPath = BaseConfig.getProfile(); String downloadPath = localPath + StringUtils.substringAfter(url, Constants.RESOURCE_PREFIX); in = new FileInputStream(downloadPath); } return IOUtils.toByteArray(in); } catch (Exception e) { log.error("è·åæä»¶è·¯å¾å¼å¸¸ {}", e); return null; } finally { IOUtils.closeQuietly(in); } } } zhitan-common/src/main/java/com/zhitan/common/utils/file/MimeTypeUtils.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,59 @@ package com.zhitan.common.utils.file; /** * åªä½ç±»åå·¥å ·ç±» * * @author zhitan */ public class MimeTypeUtils { public static final String IMAGE_PNG = "image/png"; public static final String IMAGE_JPG = "image/jpg"; public static final String IMAGE_JPEG = "image/jpeg"; public static final String IMAGE_BMP = "image/bmp"; public static final String IMAGE_GIF = "image/gif"; public static final String[] IMAGE_EXTENSION = { "bmp", "gif", "jpg", "jpeg", "png" }; public static final String[] FLASH_EXTENSION = { "swf", "flv" }; public static final String[] MEDIA_EXTENSION = { "swf", "flv", "mp3", "wav", "wma", "wmv", "mid", "avi", "mpg", "asf", "rm", "rmvb" }; public static final String[] VIDEO_EXTENSION = { "mp4", "avi", "rmvb" }; public static final String[] DEFAULT_ALLOWED_EXTENSION = { // å¾ç "bmp", "gif", "jpg", "jpeg", "png","svg", // word excel powerpoint "doc", "docx", "xls", "xlsx", "ppt", "pptx", "html", "htm", "txt", // å缩æä»¶ "rar", "zip", "gz", "bz2", // è§é¢æ ¼å¼ "mp4", "avi", "rmvb", "pdf" }; public static String getExtension(String prefix) { switch (prefix) { case IMAGE_PNG: return "png"; case IMAGE_JPG: return "jpg"; case IMAGE_JPEG: return "jpeg"; case IMAGE_BMP: return "bmp"; case IMAGE_GIF: return "gif"; default: return ""; } } } zhitan-common/src/main/java/com/zhitan/common/utils/html/EscapeUtil.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,167 @@ package com.zhitan.common.utils.html; import com.zhitan.common.utils.StringUtils; /** * 转ä¹åå转ä¹å·¥å ·ç±» * * @author zhitan */ public class EscapeUtil { public static final String RE_HTML_MARK = "(<[^<]*?>)|(<[\\s]*?/[^<]*?>)|(<[^<]*?/[\\s]*?>)"; private static final char[][] TEXT = new char[64][]; static { for (int i = 0; i < 64; i++) { TEXT[i] = new char[] { (char) i }; } // special HTML characters TEXT['\''] = "'".toCharArray(); // åå¼å· TEXT['"'] = """.toCharArray(); // åå¼å· TEXT['&'] = "&".toCharArray(); // &符 TEXT['<'] = "<".toCharArray(); // å°äºå· TEXT['>'] = ">".toCharArray(); // 大äºå· } /** * è½¬ä¹ææ¬ä¸çHTMLå符为å®å ¨çå符 * * @param text 被转ä¹çææ¬ * @return 转ä¹åçææ¬ */ public static String escape(String text) { return encode(text); } /** * è¿å被转ä¹çHTMLç¹æ®å符 * * @param content å å«è½¬ä¹ç¬¦çHTMLå 容 * @return 转æ¢åçå符串 */ public static String unescape(String content) { return decode(content); } /** * æ¸ é¤ææHTMLæ ç¾ï¼ä½æ¯ä¸å 餿 ç¾å çå 容 * * @param content ææ¬ * @return æ¸ é¤æ ç¾åçææ¬ */ public static String clean(String content) { return new HTMLFilter().filter(content); } /** * Escapeç¼ç * * @param text 被ç¼ç çææ¬ * @return ç¼ç åçå符 */ private static String encode(String text) { if (StringUtils.isEmpty(text)) { return StringUtils.EMPTY; } final StringBuilder tmp = new StringBuilder(text.length() * 6); char c; for (int i = 0; i < text.length(); i++) { c = text.charAt(i); if (c < 256) { tmp.append("%"); if (c < 16) { tmp.append("0"); } tmp.append(Integer.toString(c, 16)); } else { tmp.append("%u"); if (c <= 0xfff) { // issue#I49JU8@Gitee tmp.append("0"); } tmp.append(Integer.toString(c, 16)); } } return tmp.toString(); } /** * Escapeè§£ç * * @param content 被转ä¹çå 容 * @return è§£ç åçå符串 */ public static String decode(String content) { if (StringUtils.isEmpty(content)) { return content; } StringBuilder tmp = new StringBuilder(content.length()); int lastPos = 0, pos = 0; char ch; while (lastPos < content.length()) { pos = content.indexOf("%", lastPos); if (pos == lastPos) { if (content.charAt(pos + 1) == 'u') { ch = (char) Integer.parseInt(content.substring(pos + 2, pos + 6), 16); tmp.append(ch); lastPos = pos + 6; } else { ch = (char) Integer.parseInt(content.substring(pos + 1, pos + 3), 16); tmp.append(ch); lastPos = pos + 3; } } else { if (pos == -1) { tmp.append(content.substring(lastPos)); lastPos = content.length(); } else { tmp.append(content.substring(lastPos, pos)); lastPos = pos; } } } return tmp.toString(); } public static void main(String[] args) { String html = "<script>alert(1);</script>"; String escape = EscapeUtil.escape(html); // String html = "<scr<script>ipt>alert(\"XSS\")</scr<script>ipt>"; // String html = "<123"; // String html = "123>"; System.out.println("clean: " + EscapeUtil.clean(html)); System.out.println("escape: " + escape); System.out.println("unescape: " + EscapeUtil.unescape(escape)); } } zhitan-common/src/main/java/com/zhitan/common/utils/html/HTMLFilter.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,570 @@ package com.zhitan.common.utils.html; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * HTMLè¿æ»¤å¨ï¼ç¨äºå»é¤XSSæ¼æ´éæ£ã * * @author zhitan */ public final class HTMLFilter { /** * regex flag union representing /si modifiers in php **/ private static final int REGEX_FLAGS_SI = Pattern.CASE_INSENSITIVE | Pattern.DOTALL; private static final Pattern P_COMMENTS = Pattern.compile("<!--(.*?)-->", Pattern.DOTALL); private static final Pattern P_COMMENT = Pattern.compile("^!--(.*)--$", REGEX_FLAGS_SI); private static final Pattern P_TAGS = Pattern.compile("<(.*?)>", Pattern.DOTALL); private static final Pattern P_END_TAG = Pattern.compile("^/([a-z0-9]+)", REGEX_FLAGS_SI); private static final Pattern P_START_TAG = Pattern.compile("^([a-z0-9]+)(.*?)(/?)$", REGEX_FLAGS_SI); private static final Pattern P_QUOTED_ATTRIBUTES = Pattern.compile("([a-z0-9]+)=([\"'])(.*?)\\2", REGEX_FLAGS_SI); private static final Pattern P_UNQUOTED_ATTRIBUTES = Pattern.compile("([a-z0-9]+)(=)([^\"\\s']+)", REGEX_FLAGS_SI); private static final Pattern P_PROTOCOL = Pattern.compile("^([^:]+):", REGEX_FLAGS_SI); private static final Pattern P_ENTITY = Pattern.compile("&#(\\d+);?"); private static final Pattern P_ENTITY_UNICODE = Pattern.compile("&#x([0-9a-f]+);?"); private static final Pattern P_ENCODE = Pattern.compile("%([0-9a-f]{2});?"); private static final Pattern P_VALID_ENTITIES = Pattern.compile("&([^&;]*)(?=(;|&|$))"); private static final Pattern P_VALID_QUOTES = Pattern.compile("(>|^)([^<]+?)(<|$)", Pattern.DOTALL); private static final Pattern P_END_ARROW = Pattern.compile("^>"); private static final Pattern P_BODY_TO_END = Pattern.compile("<([^>]*?)(?=<|$)"); private static final Pattern P_XML_CONTENT = Pattern.compile("(^|>)([^<]*?)(?=>)"); private static final Pattern P_STRAY_LEFT_ARROW = Pattern.compile("<([^>]*?)(?=<|$)"); private static final Pattern P_STRAY_RIGHT_ARROW = Pattern.compile("(^|>)([^<]*?)(?=>)"); private static final Pattern P_AMP = Pattern.compile("&"); private static final Pattern P_QUOTE = Pattern.compile("\""); private static final Pattern P_LEFT_ARROW = Pattern.compile("<"); private static final Pattern P_RIGHT_ARROW = Pattern.compile(">"); private static final Pattern P_BOTH_ARROWS = Pattern.compile("<>"); // @xxx could grow large... maybe use sesat's ReferenceMap private static final ConcurrentMap<String, Pattern> P_REMOVE_PAIR_BLANKS = new ConcurrentHashMap<>(); private static final ConcurrentMap<String, Pattern> P_REMOVE_SELF_BLANKS = new ConcurrentHashMap<>(); /** * set of allowed html elements, along with allowed attributes for each element **/ private final Map<String, List<String>> vAllowed; /** * counts of open tags for each (allowable) html element **/ private final Map<String, Integer> vTagCounts = new HashMap<>(); /** * html elements which must always be self-closing (e.g. "<img />") **/ private final String[] vSelfClosingTags; /** * html elements which must always have separate opening and closing tags (e.g. "<b></b>") **/ private final String[] vNeedClosingTags; /** * set of disallowed html elements **/ private final String[] vDisallowed; /** * attributes which should be checked for valid protocols **/ private final String[] vProtocolAtts; /** * allowed protocols **/ private final String[] vAllowedProtocols; /** * tags which should be removed if they contain no content (e.g. "<b></b>" or "<b />") **/ private final String[] vRemoveBlanks; /** * entities allowed within html markup **/ private final String[] vAllowedEntities; /** * flag determining whether comments are allowed in input String. */ private final boolean stripComment; private final boolean encodeQuotes; /** * flag determining whether to try to make tags when presented with "unbalanced" angle brackets (e.g. "<b text </b>" * becomes "<b> text </b>"). If set to false, unbalanced angle brackets will be html escaped. */ private final boolean alwaysMakeTags; /** * Default constructor. */ public HTMLFilter() { vAllowed = new HashMap<>(); final ArrayList<String> a_atts = new ArrayList<>(); a_atts.add("href"); a_atts.add("target"); vAllowed.put("a", a_atts); final ArrayList<String> img_atts = new ArrayList<>(); img_atts.add("src"); img_atts.add("width"); img_atts.add("height"); img_atts.add("alt"); vAllowed.put("img", img_atts); final ArrayList<String> no_atts = new ArrayList<>(); vAllowed.put("b", no_atts); vAllowed.put("strong", no_atts); vAllowed.put("i", no_atts); vAllowed.put("em", no_atts); vSelfClosingTags = new String[] { "img" }; vNeedClosingTags = new String[] { "a", "b", "strong", "i", "em" }; vDisallowed = new String[] {}; vAllowedProtocols = new String[] { "http", "mailto", "https" }; // no ftp. vProtocolAtts = new String[] { "src", "href" }; vRemoveBlanks = new String[] { "a", "b", "strong", "i", "em" }; vAllowedEntities = new String[] { "amp", "gt", "lt", "quot" }; stripComment = true; encodeQuotes = true; alwaysMakeTags = false; } /** * Map-parameter configurable constructor. * * @param conf map containing configuration. keys match field names. */ @SuppressWarnings("unchecked") public HTMLFilter(final Map<String, Object> conf) { assert conf.containsKey("vAllowed") : "configuration requires vAllowed"; assert conf.containsKey("vSelfClosingTags") : "configuration requires vSelfClosingTags"; assert conf.containsKey("vNeedClosingTags") : "configuration requires vNeedClosingTags"; assert conf.containsKey("vDisallowed") : "configuration requires vDisallowed"; assert conf.containsKey("vAllowedProtocols") : "configuration requires vAllowedProtocols"; assert conf.containsKey("vProtocolAtts") : "configuration requires vProtocolAtts"; assert conf.containsKey("vRemoveBlanks") : "configuration requires vRemoveBlanks"; assert conf.containsKey("vAllowedEntities") : "configuration requires vAllowedEntities"; vAllowed = Collections.unmodifiableMap((HashMap<String, List<String>>) conf.get("vAllowed")); vSelfClosingTags = (String[]) conf.get("vSelfClosingTags"); vNeedClosingTags = (String[]) conf.get("vNeedClosingTags"); vDisallowed = (String[]) conf.get("vDisallowed"); vAllowedProtocols = (String[]) conf.get("vAllowedProtocols"); vProtocolAtts = (String[]) conf.get("vProtocolAtts"); vRemoveBlanks = (String[]) conf.get("vRemoveBlanks"); vAllowedEntities = (String[]) conf.get("vAllowedEntities"); stripComment = conf.containsKey("stripComment") ? (Boolean) conf.get("stripComment") : true; encodeQuotes = conf.containsKey("encodeQuotes") ? (Boolean) conf.get("encodeQuotes") : true; alwaysMakeTags = conf.containsKey("alwaysMakeTags") ? (Boolean) conf.get("alwaysMakeTags") : true; } private void reset() { vTagCounts.clear(); } // --------------------------------------------------------------- // my versions of some PHP library functions public static String chr(final int decimal) { return String.valueOf((char) decimal); } public static String htmlSpecialChars(final String s) { String result = s; result = regexReplace(P_AMP, "&", result); result = regexReplace(P_QUOTE, """, result); result = regexReplace(P_LEFT_ARROW, "<", result); result = regexReplace(P_RIGHT_ARROW, ">", result); return result; } // --------------------------------------------------------------- /** * given a user submitted input String, filter out any invalid or restricted html. * * @param input text (i.e. submitted by a user) than may contain html * @return "clean" version of input, with only valid, whitelisted html elements allowed */ public String filter(final String input) { reset(); String s = input; s = escapeComments(s); s = balanceHTML(s); s = checkTags(s); s = processRemoveBlanks(s); // s = validateEntities(s); return s; } public boolean isAlwaysMakeTags() { return alwaysMakeTags; } public boolean isStripComments() { return stripComment; } private String escapeComments(final String s) { final Matcher m = P_COMMENTS.matcher(s); final StringBuffer buf = new StringBuffer(); if (m.find()) { final String match = m.group(1); // (.*?) m.appendReplacement(buf, Matcher.quoteReplacement("<!--" + htmlSpecialChars(match) + "-->")); } m.appendTail(buf); return buf.toString(); } private String balanceHTML(String s) { if (alwaysMakeTags) { // // try and form html // s = regexReplace(P_END_ARROW, "", s); // ä¸è¿½å ç»ææ ç¾ s = regexReplace(P_BODY_TO_END, "<$1>", s); s = regexReplace(P_XML_CONTENT, "$1<$2", s); } else { // // escape stray brackets // s = regexReplace(P_STRAY_LEFT_ARROW, "<$1", s); s = regexReplace(P_STRAY_RIGHT_ARROW, "$1$2><", s); // // the last regexp causes '<>' entities to appear // (we need to do a lookahead assertion so that the last bracket can // be used in the next pass of the regexp) // s = regexReplace(P_BOTH_ARROWS, "", s); } return s; } private String checkTags(String s) { Matcher m = P_TAGS.matcher(s); final StringBuffer buf = new StringBuffer(); while (m.find()) { String replaceStr = m.group(1); replaceStr = processTag(replaceStr); m.appendReplacement(buf, Matcher.quoteReplacement(replaceStr)); } m.appendTail(buf); // these get tallied in processTag // (remember to reset before subsequent calls to filter method) final StringBuilder sBuilder = new StringBuilder(buf.toString()); for (String key : vTagCounts.keySet()) { for (int ii = 0; ii < vTagCounts.get(key); ii++) { sBuilder.append("</").append(key).append(">"); } } s = sBuilder.toString(); return s; } private String processRemoveBlanks(final String s) { String result = s; for (String tag : vRemoveBlanks) { if (!P_REMOVE_PAIR_BLANKS.containsKey(tag)) { P_REMOVE_PAIR_BLANKS.putIfAbsent(tag, Pattern.compile("<" + tag + "(\\s[^>]*)?></" + tag + ">")); } result = regexReplace(P_REMOVE_PAIR_BLANKS.get(tag), "", result); if (!P_REMOVE_SELF_BLANKS.containsKey(tag)) { P_REMOVE_SELF_BLANKS.putIfAbsent(tag, Pattern.compile("<" + tag + "(\\s[^>]*)?/>")); } result = regexReplace(P_REMOVE_SELF_BLANKS.get(tag), "", result); } return result; } private static String regexReplace(final Pattern regex_pattern, final String replacement, final String s) { Matcher m = regex_pattern.matcher(s); return m.replaceAll(replacement); } private String processTag(final String s) { // ending tags Matcher m = P_END_TAG.matcher(s); if (m.find()) { final String name = m.group(1).toLowerCase(); if (allowed(name)) { if (!inArray(name, vSelfClosingTags)) { if (vTagCounts.containsKey(name)) { vTagCounts.put(name, vTagCounts.get(name) - 1); return "</" + name + ">"; } } } } // starting tags m = P_START_TAG.matcher(s); if (m.find()) { final String name = m.group(1).toLowerCase(); final String body = m.group(2); String ending = m.group(3); // debug( "in a starting tag, name='" + name + "'; body='" + body + "'; ending='" + ending + "'" ); if (allowed(name)) { final StringBuilder params = new StringBuilder(); final Matcher m2 = P_QUOTED_ATTRIBUTES.matcher(body); final Matcher m3 = P_UNQUOTED_ATTRIBUTES.matcher(body); final List<String> paramNames = new ArrayList<>(); final List<String> paramValues = new ArrayList<>(); while (m2.find()) { paramNames.add(m2.group(1)); // ([a-z0-9]+) paramValues.add(m2.group(3)); // (.*?) } while (m3.find()) { paramNames.add(m3.group(1)); // ([a-z0-9]+) paramValues.add(m3.group(3)); // ([^\"\\s']+) } String paramName, paramValue; for (int ii = 0; ii < paramNames.size(); ii++) { paramName = paramNames.get(ii).toLowerCase(); paramValue = paramValues.get(ii); // debug( "paramName='" + paramName + "'" ); // debug( "paramValue='" + paramValue + "'" ); // debug( "allowed? " + vAllowed.get( name ).contains( paramName ) ); if (allowedAttribute(name, paramName)) { if (inArray(paramName, vProtocolAtts)) { paramValue = processParamProtocol(paramValue); } params.append(' ').append(paramName).append("=\\\"").append(paramValue).append("\\\""); } } if (inArray(name, vSelfClosingTags)) { ending = " /"; } if (inArray(name, vNeedClosingTags)) { ending = ""; } if (ending == null || ending.length() < 1) { if (vTagCounts.containsKey(name)) { vTagCounts.put(name, vTagCounts.get(name) + 1); } else { vTagCounts.put(name, 1); } } else { ending = " /"; } return "<" + name + params + ending + ">"; } else { return ""; } } // comments m = P_COMMENT.matcher(s); if (!stripComment && m.find()) { return "<" + m.group() + ">"; } return ""; } private String processParamProtocol(String s) { s = decodeEntities(s); final Matcher m = P_PROTOCOL.matcher(s); if (m.find()) { final String protocol = m.group(1); if (!inArray(protocol, vAllowedProtocols)) { // bad protocol, turn into local anchor link instead s = "#" + s.substring(protocol.length() + 1); if (s.startsWith("#//")) { s = "#" + s.substring(3); } } } return s; } private String decodeEntities(String s) { StringBuffer buf = new StringBuffer(); Matcher m = P_ENTITY.matcher(s); while (m.find()) { final String match = m.group(1); final int decimal = Integer.decode(match).intValue(); m.appendReplacement(buf, Matcher.quoteReplacement(chr(decimal))); } m.appendTail(buf); s = buf.toString(); buf = new StringBuffer(); m = P_ENTITY_UNICODE.matcher(s); while (m.find()) { final String match = m.group(1); final int decimal = Integer.valueOf(match, 16).intValue(); m.appendReplacement(buf, Matcher.quoteReplacement(chr(decimal))); } m.appendTail(buf); s = buf.toString(); buf = new StringBuffer(); m = P_ENCODE.matcher(s); while (m.find()) { final String match = m.group(1); final int decimal = Integer.valueOf(match, 16).intValue(); m.appendReplacement(buf, Matcher.quoteReplacement(chr(decimal))); } m.appendTail(buf); s = buf.toString(); s = validateEntities(s); return s; } private String validateEntities(final String s) { StringBuffer buf = new StringBuffer(); // validate entities throughout the string Matcher m = P_VALID_ENTITIES.matcher(s); while (m.find()) { final String one = m.group(1); // ([^&;]*) final String two = m.group(2); // (?=(;|&|$)) m.appendReplacement(buf, Matcher.quoteReplacement(checkEntity(one, two))); } m.appendTail(buf); return encodeQuotes(buf.toString()); } private String encodeQuotes(final String s) { if (encodeQuotes) { StringBuffer buf = new StringBuffer(); Matcher m = P_VALID_QUOTES.matcher(s); while (m.find()) { final String one = m.group(1); // (>|^) final String two = m.group(2); // ([^<]+?) final String three = m.group(3); // (<|$) // 䏿¿æ¢åå¼å·ä¸º"ï¼é²æ¢jsonæ ¼å¼æ æ regexReplace(P_QUOTE, """, two) m.appendReplacement(buf, Matcher.quoteReplacement(one + two + three)); } m.appendTail(buf); return buf.toString(); } else { return s; } } private String checkEntity(final String preamble, final String term) { return ";".equals(term) && isValidEntity(preamble) ? '&' + preamble : "&" + preamble; } private boolean isValidEntity(final String entity) { return inArray(entity, vAllowedEntities); } private static boolean inArray(final String s, final String[] array) { for (String item : array) { if (item != null && item.equals(s)) { return true; } } return false; } private boolean allowed(final String name) { return (vAllowed.isEmpty() || vAllowed.containsKey(name)) && !inArray(name, vDisallowed); } private boolean allowedAttribute(final String name, final String paramName) { return allowed(name) && (vAllowed.isEmpty() || vAllowed.get(name).contains(paramName)); } } 在上述文件截断后对比
zhitan-common/src/main/java/com/zhitan/common/utils/http/HttpHelper.java zhitan-common/src/main/java/com/zhitan/common/utils/http/HttpUtils.java zhitan-common/src/main/java/com/zhitan/common/utils/ip/AddressUtils.java zhitan-common/src/main/java/com/zhitan/common/utils/ip/IpUtils.java zhitan-common/src/main/java/com/zhitan/common/utils/poi/ExcelHandlerAdapter.java zhitan-common/src/main/java/com/zhitan/common/utils/poi/ExcelUtil.java zhitan-common/src/main/java/com/zhitan/common/utils/reflect/ReflectUtils.java zhitan-common/src/main/java/com/zhitan/common/utils/sign/Base64.java zhitan-common/src/main/java/com/zhitan/common/utils/sign/Md5Utils.java zhitan-common/src/main/java/com/zhitan/common/utils/spring/SpringUtils.java zhitan-common/src/main/java/com/zhitan/common/utils/sql/SqlUtil.java zhitan-common/src/main/java/com/zhitan/common/utils/time/Time24HourUtil.java zhitan-common/src/main/java/com/zhitan/common/utils/time/TimeManager.java zhitan-common/src/main/java/com/zhitan/common/utils/uuid/IdUtils.java zhitan-common/src/main/java/com/zhitan/common/utils/uuid/Seq.java zhitan-common/src/main/java/com/zhitan/common/utils/uuid/UUID.java zhitan-common/src/main/java/com/zhitan/common/xss/Xss.java zhitan-common/src/main/java/com/zhitan/common/xss/XssValidator.java zhitan-framework/pom.xml zhitan-framework/src/main/java/com/zhitan/framework/aspectj/DataScopeAspect.java zhitan-framework/src/main/java/com/zhitan/framework/aspectj/DataSourceAspect.java zhitan-framework/src/main/java/com/zhitan/framework/aspectj/LogAspect.java zhitan-framework/src/main/java/com/zhitan/framework/aspectj/RateLimiterAspect.java zhitan-framework/src/main/java/com/zhitan/framework/config/ApplicationConfig.java zhitan-framework/src/main/java/com/zhitan/framework/config/CaptchaConfig.java zhitan-framework/src/main/java/com/zhitan/framework/config/DruidConfig.java zhitan-framework/src/main/java/com/zhitan/framework/config/FastJson2JsonRedisSerializer.java zhitan-framework/src/main/java/com/zhitan/framework/config/FilterConfig.java zhitan-framework/src/main/java/com/zhitan/framework/config/I18nConfig.java zhitan-framework/src/main/java/com/zhitan/framework/config/KaptchaTextCreator.java zhitan-framework/src/main/java/com/zhitan/framework/config/MyBatisInterceptor.java zhitan-framework/src/main/java/com/zhitan/framework/config/MyBatisPlusConfig.java zhitan-framework/src/main/java/com/zhitan/framework/config/RedisConfig.java zhitan-framework/src/main/java/com/zhitan/framework/config/ResourcesConfig.java zhitan-framework/src/main/java/com/zhitan/framework/config/SecurityConfig.java zhitan-framework/src/main/java/com/zhitan/framework/config/ServerConfig.java zhitan-framework/src/main/java/com/zhitan/framework/config/ThreadPoolConfig.java zhitan-framework/src/main/java/com/zhitan/framework/config/properties/DruidProperties.java zhitan-framework/src/main/java/com/zhitan/framework/config/properties/PermitAllUrlProperties.java zhitan-framework/src/main/java/com/zhitan/framework/constant/SQLFieldConst.java zhitan-framework/src/main/java/com/zhitan/framework/datasource/DynamicDataSource.java zhitan-framework/src/main/java/com/zhitan/framework/datasource/DynamicDataSourceContextHolder.java zhitan-framework/src/main/java/com/zhitan/framework/interceptor/RepeatSubmitInterceptor.java zhitan-framework/src/main/java/com/zhitan/framework/interceptor/impl/SameUrlDataInterceptor.java zhitan-framework/src/main/java/com/zhitan/framework/manager/AsyncManager.java zhitan-framework/src/main/java/com/zhitan/framework/manager/ShutdownManager.java zhitan-framework/src/main/java/com/zhitan/framework/manager/factory/AsyncFactory.java zhitan-framework/src/main/java/com/zhitan/framework/mqtt/MqttClientUtil.java zhitan-framework/src/main/java/com/zhitan/framework/mqtt/MqttMessageCallback.java zhitan-framework/src/main/java/com/zhitan/framework/mqtt/domain/EletricData.java zhitan-framework/src/main/java/com/zhitan/framework/security/context/AuthenticationContextHolder.java zhitan-framework/src/main/java/com/zhitan/framework/security/context/PermissionContextHolder.java zhitan-framework/src/main/java/com/zhitan/framework/security/filter/JwtAuthenticationTokenFilter.java zhitan-framework/src/main/java/com/zhitan/framework/security/handle/AuthenticationEntryPointImpl.java zhitan-framework/src/main/java/com/zhitan/framework/security/handle/LogoutSuccessHandlerImpl.java zhitan-framework/src/main/java/com/zhitan/framework/web/domain/Server.java zhitan-framework/src/main/java/com/zhitan/framework/web/domain/server/Cpu.java zhitan-framework/src/main/java/com/zhitan/framework/web/domain/server/Jvm.java zhitan-framework/src/main/java/com/zhitan/framework/web/domain/server/Mem.java zhitan-framework/src/main/java/com/zhitan/framework/web/domain/server/Sys.java zhitan-framework/src/main/java/com/zhitan/framework/web/domain/server/SysFile.java zhitan-framework/src/main/java/com/zhitan/framework/web/exception/GlobalExceptionHandler.java zhitan-framework/src/main/java/com/zhitan/framework/web/service/PermissionService.java zhitan-framework/src/main/java/com/zhitan/framework/web/service/SysLoginService.java zhitan-framework/src/main/java/com/zhitan/framework/web/service/SysPasswordService.java zhitan-framework/src/main/java/com/zhitan/framework/web/service/SysPermissionService.java zhitan-framework/src/main/java/com/zhitan/framework/web/service/SysRegisterService.java zhitan-framework/src/main/java/com/zhitan/framework/web/service/TokenService.java zhitan-framework/src/main/java/com/zhitan/framework/web/service/UserDetailsServiceImpl.java zhitan-generator/pom.xml zhitan-generator/src/main/java/com/zhitan/generator/config/GenConfig.java zhitan-generator/src/main/java/com/zhitan/generator/controller/GenController.java zhitan-generator/src/main/java/com/zhitan/generator/domain/GenTable.java zhitan-generator/src/main/java/com/zhitan/generator/domain/GenTableColumn.java zhitan-generator/src/main/java/com/zhitan/generator/mapper/GenTableColumnMapper.java zhitan-generator/src/main/java/com/zhitan/generator/mapper/GenTableMapper.java zhitan-generator/src/main/java/com/zhitan/generator/service/GenTableColumnServiceImpl.java zhitan-generator/src/main/java/com/zhitan/generator/service/GenTableServiceImpl.java zhitan-generator/src/main/java/com/zhitan/generator/service/IGenTableColumnService.java zhitan-generator/src/main/java/com/zhitan/generator/service/IGenTableService.java zhitan-generator/src/main/java/com/zhitan/generator/util/GenUtils.java zhitan-generator/src/main/java/com/zhitan/generator/util/VelocityInitializer.java zhitan-generator/src/main/java/com/zhitan/generator/util/VelocityUtils.java zhitan-generator/src/main/resources/generator.yml zhitan-generator/src/main/resources/mapper/generator/GenTableColumnMapper.xml zhitan-generator/src/main/resources/mapper/generator/GenTableMapper.xml zhitan-generator/src/main/resources/vm/java/controller.java.vm zhitan-generator/src/main/resources/vm/java/domain.java.vm zhitan-generator/src/main/resources/vm/java/mapper.java.vm zhitan-generator/src/main/resources/vm/java/service.java.vm zhitan-generator/src/main/resources/vm/java/serviceImpl.java.vm zhitan-generator/src/main/resources/vm/java/sub-domain.java.vm zhitan-generator/src/main/resources/vm/js/api.js.vm zhitan-generator/src/main/resources/vm/sql/sql.vm zhitan-generator/src/main/resources/vm/vue/index-tree.vue.vm zhitan-generator/src/main/resources/vm/vue/index.vue.vm zhitan-generator/src/main/resources/vm/vue/v3/index-tree.vue.vm zhitan-generator/src/main/resources/vm/vue/v3/index.vue.vm zhitan-generator/src/main/resources/vm/xml/mapper.xml.vm zhitan-generator/target/classes/generator.yml zhitan-generator/target/classes/mapper/generator/GenTableColumnMapper.xml zhitan-generator/target/classes/mapper/generator/GenTableMapper.xml zhitan-generator/target/classes/vm/java/controller.java.vm zhitan-generator/target/classes/vm/java/domain.java.vm zhitan-generator/target/classes/vm/java/mapper.java.vm zhitan-generator/target/classes/vm/java/service.java.vm zhitan-generator/target/classes/vm/java/serviceImpl.java.vm zhitan-generator/target/classes/vm/java/sub-domain.java.vm zhitan-generator/target/classes/vm/js/api.js.vm zhitan-generator/target/classes/vm/sql/sql.vm zhitan-generator/target/classes/vm/vue/index-tree.vue.vm zhitan-generator/target/classes/vm/vue/index.vue.vm zhitan-generator/target/classes/vm/vue/v3/index-tree.vue.vm zhitan-generator/target/classes/vm/vue/v3/index.vue.vm zhitan-generator/target/classes/vm/xml/mapper.xml.vm zhitan-quartz/pom.xml zhitan-quartz/src/main/java/com/zhitan/quartz/controller/SysJobController.java zhitan-quartz/src/main/java/com/zhitan/quartz/controller/SysJobLogController.java zhitan-quartz/src/main/java/com/zhitan/quartz/domain/SysJob.java zhitan-quartz/src/main/java/com/zhitan/quartz/domain/SysJobLog.java zhitan-quartz/src/main/java/com/zhitan/quartz/mapper/SysJobLogMapper.java zhitan-quartz/src/main/java/com/zhitan/quartz/mapper/SysJobMapper.java zhitan-quartz/src/main/java/com/zhitan/quartz/service/ISysJobLogService.java zhitan-quartz/src/main/java/com/zhitan/quartz/service/ISysJobService.java zhitan-quartz/src/main/java/com/zhitan/quartz/service/impl/SysJobLogServiceImpl.java zhitan-quartz/src/main/java/com/zhitan/quartz/service/impl/SysJobServiceImpl.java zhitan-quartz/src/main/java/com/zhitan/quartz/task/RyTask.java zhitan-quartz/src/main/java/com/zhitan/quartz/util/AbstractQuartzJob.java zhitan-quartz/src/main/java/com/zhitan/quartz/util/CronUtils.java zhitan-quartz/src/main/java/com/zhitan/quartz/util/JobInvokeUtil.java zhitan-quartz/src/main/java/com/zhitan/quartz/util/QuartzDisallowConcurrentExecution.java zhitan-quartz/src/main/java/com/zhitan/quartz/util/QuartzJobExecution.java zhitan-quartz/src/main/java/com/zhitan/quartz/util/ScheduleUtils.java zhitan-quartz/src/main/resources/mapper/quartz/SysJobLogMapper.xml zhitan-quartz/src/main/resources/mapper/quartz/SysJobMapper.xml zhitan-quartz/target/classes/mapper/quartz/SysJobLogMapper.xml zhitan-quartz/target/classes/mapper/quartz/SysJobMapper.xml zhitan-system/pom.xml zhitan-system/src/main/java/com/zhitan/alarm/domain/AlarmItem.java zhitan-system/src/main/java/com/zhitan/alarm/domain/HistoryAlarm.java zhitan-system/src/main/java/com/zhitan/alarm/domain/HistoryTable.java zhitan-system/src/main/java/com/zhitan/alarm/domain/JkHistoryAlarm.java zhitan-system/src/main/java/com/zhitan/alarm/domain/JkRealTimeAlarmList.java zhitan-system/src/main/java/com/zhitan/alarm/domain/LimitType.java zhitan-system/src/main/java/com/zhitan/alarm/domain/RealTimeAlarm.java zhitan-system/src/main/java/com/zhitan/alarm/domain/dto/AlarmAnalysisDTO.java zhitan-system/src/main/java/com/zhitan/alarm/domain/vo/AlarmAnalysisVO.java zhitan-system/src/main/java/com/zhitan/alarm/mapper/AlarmItemMapper.java zhitan-system/src/main/java/com/zhitan/alarm/mapper/AlarmLimitTypeMapper.java zhitan-system/src/main/java/com/zhitan/alarm/mapper/HistoryAlarmMapper.java zhitan-system/src/main/java/com/zhitan/alarm/mapper/RealtimeAlarmMapper.java zhitan-system/src/main/java/com/zhitan/alarm/services/IAlarmAnalyisisService.java zhitan-system/src/main/java/com/zhitan/alarm/services/IAlarmItemService.java zhitan-system/src/main/java/com/zhitan/alarm/services/IAlarmLimitTypeService.java zhitan-system/src/main/java/com/zhitan/alarm/services/IHistoryAlarmService.java zhitan-system/src/main/java/com/zhitan/alarm/services/IRealtimeAlarmService.java zhitan-system/src/main/java/com/zhitan/alarm/services/impl/AlarmAnalyisisServiceImpl.java zhitan-system/src/main/java/com/zhitan/alarm/services/impl/AlarmItemServiceImpl.java zhitan-system/src/main/java/com/zhitan/alarm/services/impl/AlarmLimitTypeServiceImpl.java zhitan-system/src/main/java/com/zhitan/alarm/services/impl/HistoryAlarmServiceImpl.java zhitan-system/src/main/java/com/zhitan/alarm/services/impl/RealtimeAlarmServiceImpl.java zhitan-system/src/main/java/com/zhitan/basicdata/domain/FacilityAnnex.java zhitan-system/src/main/java/com/zhitan/basicdata/domain/FacilityArchives.java zhitan-system/src/main/java/com/zhitan/basicdata/domain/MeterAnnex.java zhitan-system/src/main/java/com/zhitan/basicdata/domain/MeterImplement.java zhitan-system/src/main/java/com/zhitan/basicdata/domain/MeterImplementCount.java zhitan-system/src/main/java/com/zhitan/basicdata/domain/MeterImplementExcel.java zhitan-system/src/main/java/com/zhitan/basicdata/domain/SysEnerclass.java zhitan-system/src/main/java/com/zhitan/basicdata/domain/SysEnercoefficient.java zhitan-system/src/main/java/com/zhitan/basicdata/domain/SysEnergy.java zhitan-system/src/main/java/com/zhitan/basicdata/domain/SysPrice.java zhitan-system/src/main/java/com/zhitan/basicdata/domain/SysProduct.java zhitan-system/src/main/java/com/zhitan/basicdata/domain/vo/EnergyTypeModel.java zhitan-system/src/main/java/com/zhitan/basicdata/mapper/FacilityAnnexMapper.java zhitan-system/src/main/java/com/zhitan/basicdata/mapper/FacilityArchivesMapper.java zhitan-system/src/main/java/com/zhitan/basicdata/mapper/MeterAnnexMapper.java zhitan-system/src/main/java/com/zhitan/basicdata/mapper/MeterImplementCountMapper.java zhitan-system/src/main/java/com/zhitan/basicdata/mapper/MeterImplementMapper.java zhitan-system/src/main/java/com/zhitan/basicdata/mapper/SysEnerclassMapper.java zhitan-system/src/main/java/com/zhitan/basicdata/mapper/SysEnergyMapper.java zhitan-system/src/main/java/com/zhitan/basicdata/services/IFacilityAnnexService.java zhitan-system/src/main/java/com/zhitan/basicdata/services/IFacilityArchivesService.java zhitan-system/src/main/java/com/zhitan/basicdata/services/IMeterAnnexService.java zhitan-system/src/main/java/com/zhitan/basicdata/services/IMeterImplementCountService.java zhitan-system/src/main/java/com/zhitan/basicdata/services/IMeterImplementService.java zhitan-system/src/main/java/com/zhitan/basicdata/services/ISysEnerclassService.java zhitan-system/src/main/java/com/zhitan/basicdata/services/ISysEnergyService.java zhitan-system/src/main/java/com/zhitan/basicdata/services/impl/FacilityAnnexServiceImpl.java zhitan-system/src/main/java/com/zhitan/basicdata/services/impl/FacilityArchivesServiceImpl.java zhitan-system/src/main/java/com/zhitan/basicdata/services/impl/MeterAnnexServiceImpl.java zhitan-system/src/main/java/com/zhitan/basicdata/services/impl/MeterImplementCountServiceImpl.java zhitan-system/src/main/java/com/zhitan/basicdata/services/impl/MeterImplementServiceImpl.java zhitan-system/src/main/java/com/zhitan/basicdata/services/impl/SysEnerclassServiceImpl.java zhitan-system/src/main/java/com/zhitan/basicdata/services/impl/SysEnergyServiceImpl.java zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/domain/Comprehensive.java zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/domain/ComprehensiveStatistics.java zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/domain/DailyComprehensive.java zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/mapper/ComprehensiveStatisticsMapper.java zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/mapper/DailyComprehensiveMapper.java zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/service/IComprehensiveStatisticsService.java zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/service/IDailyComprehensiveService.java zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/service/impl/ComprehensiveStatisticsImpl.java zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/service/impl/DailyComprehensiveServiceImpl.java zhitan-system/src/main/java/com/zhitan/consumptionanalysis/domain/dto/ConsumptionAnalysisDTO.java zhitan-system/src/main/java/com/zhitan/consumptionanalysis/domain/vo/ChartData.java zhitan-system/src/main/java/com/zhitan/consumptionanalysis/domain/vo/ConsumptionAnalysisData.java zhitan-system/src/main/java/com/zhitan/consumptionanalysis/domain/vo/ConsumptionAnalysisVO.java zhitan-system/src/main/java/com/zhitan/consumptionanalysis/domain/vo/EnergyProportion.java zhitan-system/src/main/java/com/zhitan/consumptionanalysis/domain/vo/ProductEnergyAnalysisData.java zhitan-system/src/main/java/com/zhitan/consumptionanalysis/domain/vo/ProductEnergyAnalysisVO.java zhitan-system/src/main/java/com/zhitan/consumptionanalysis/domain/vo/RankingChartData.java zhitan-system/src/main/java/com/zhitan/consumptionanalysis/domain/vo/RankingDataVO.java zhitan-system/src/main/java/com/zhitan/consumptionanalysis/domain/vo/RankingEnergyData.java zhitan-system/src/main/java/com/zhitan/consumptionanalysis/service/IConsumptionAnalysisService.java zhitan-system/src/main/java/com/zhitan/consumptionanalysis/service/impl/ConsumptionAnalysisServiceImpl.java zhitan-system/src/main/java/com/zhitan/dataitem/domain/DataEntry.java zhitan-system/src/main/java/com/zhitan/dataitem/domain/StagseDataEntry.java zhitan-system/src/main/java/com/zhitan/dataitem/mapper/DataItemMapper.java zhitan-system/src/main/java/com/zhitan/dataitem/service/IDataItemService.java zhitan-system/src/main/java/com/zhitan/dataitem/service/impl/DataItemServiceImpl.java zhitan-system/src/main/java/com/zhitan/energyIndicators/domain/EnergyIndicators.java zhitan-system/src/main/java/com/zhitan/energyIndicators/mapper/EnergyIndicatorsMapper.java zhitan-system/src/main/java/com/zhitan/energyIndicators/service/IEnergyIndicatorsService.java zhitan-system/src/main/java/com/zhitan/energyIndicators/service/impl/EnergyIndicatorsServiceImpl.java zhitan-system/src/main/java/com/zhitan/gatewaysetting/domain/GatewaySetting.java zhitan-system/src/main/java/com/zhitan/gatewaysetting/mapper/GatewaySettingMapper.java zhitan-system/src/main/java/com/zhitan/gatewaysetting/service/IGatewaySettingService.java zhitan-system/src/main/java/com/zhitan/gatewaysetting/service/impl/GatewaySettingServiceImpl.java zhitan-system/src/main/java/com/zhitan/home/domain/vo/HomeEnergyConsumptionTrendVO.java zhitan-system/src/main/java/com/zhitan/home/domain/vo/HomeEnergyStatisticsVO.java zhitan-system/src/main/java/com/zhitan/home/domain/vo/HomePeakValleyVO.java zhitan-system/src/main/java/com/zhitan/home/service/HomePageServiceImpl.java zhitan-system/src/main/java/com/zhitan/home/service/impl/IHomePageService.java zhitan-system/src/main/java/com/zhitan/keyequipment/domain/DailyKeyEquipment.java zhitan-system/src/main/java/com/zhitan/keyequipment/domain/MonthlyKeyEquipment.java zhitan-system/src/main/java/com/zhitan/keyequipment/domain/YearKeyEquipment.java zhitan-system/src/main/java/com/zhitan/keyequipment/mapper/DailyKeyEquipmentMapper.java zhitan-system/src/main/java/com/zhitan/keyequipment/mapper/MonthlyKeyEquipmentMapper.java zhitan-system/src/main/java/com/zhitan/keyequipment/mapper/YearKeyEquipmentMapper.java zhitan-system/src/main/java/com/zhitan/keyequipment/service/IDailyKeyEquipmentService.java zhitan-system/src/main/java/com/zhitan/keyequipment/service/IMonthlyKeyEquipmentService.java zhitan-system/src/main/java/com/zhitan/keyequipment/service/IYearKeyEquipmentService.java zhitan-system/src/main/java/com/zhitan/keyequipment/service/impl/DailyKeyEquipmentServiceImpl.java zhitan-system/src/main/java/com/zhitan/keyequipment/service/impl/MonthlyKeyEquipmentServiceImpl.java zhitan-system/src/main/java/com/zhitan/keyequipment/service/impl/YearKeyEquipmentServiceImpl.java zhitan-system/src/main/java/com/zhitan/meter/domain/MeterConfig.java zhitan-system/src/main/java/com/zhitan/meter/domain/MeterImplements.java zhitan-system/src/main/java/com/zhitan/meter/domain/MeterParam.java zhitan-system/src/main/java/com/zhitan/meter/mapper/MetersMapper.java zhitan-system/src/main/java/com/zhitan/meter/services/IMetersService.java zhitan-system/src/main/java/com/zhitan/meter/services/impl/MetersServiceImpl.java zhitan-system/src/main/java/com/zhitan/model/domain/CalcFunction.java zhitan-system/src/main/java/com/zhitan/model/domain/DaqTemplate.java zhitan-system/src/main/java/com/zhitan/model/domain/EnergyIndex.java zhitan-system/src/main/java/com/zhitan/model/domain/EnergyIndexQuery.java zhitan-system/src/main/java/com/zhitan/model/domain/IndexFormula.java zhitan-system/src/main/java/com/zhitan/model/domain/IndexFormulaParam.java zhitan-system/src/main/java/com/zhitan/model/domain/IndexStorage.java zhitan-system/src/main/java/com/zhitan/model/domain/IndexStorageParam.java zhitan-system/src/main/java/com/zhitan/model/domain/ModelInfo.java zhitan-system/src/main/java/com/zhitan/model/domain/ModelNode.java zhitan-system/src/main/java/com/zhitan/model/domain/TreeObject.java zhitan-system/src/main/java/com/zhitan/model/domain/vo/ModelNodeIndexInfor.java zhitan-system/src/main/java/com/zhitan/model/domain/vo/PointDataVO.java zhitan-system/src/main/java/com/zhitan/model/mapper/CalcFunctionMapper.java zhitan-system/src/main/java/com/zhitan/model/mapper/DaqTemplateMapper.java zhitan-system/src/main/java/com/zhitan/model/mapper/EnergyIndexMapper.java zhitan-system/src/main/java/com/zhitan/model/mapper/IndexFormulaMapper.java zhitan-system/src/main/java/com/zhitan/model/mapper/IndexStorageMapper.java zhitan-system/src/main/java/com/zhitan/model/mapper/ModelInfoMapper.java zhitan-system/src/main/java/com/zhitan/model/mapper/ModelNodeMapper.java zhitan-system/src/main/java/com/zhitan/model/service/ICalcFunctionService.java zhitan-system/src/main/java/com/zhitan/model/service/IDaqTemplateService.java zhitan-system/src/main/java/com/zhitan/model/service/IEnergyIndexService.java zhitan-system/src/main/java/com/zhitan/model/service/IIndexStorageService.java zhitan-system/src/main/java/com/zhitan/model/service/IModelInfoService.java zhitan-system/src/main/java/com/zhitan/model/service/IModelNodeService.java zhitan-system/src/main/java/com/zhitan/model/service/IndexFormulaService.java zhitan-system/src/main/java/com/zhitan/model/service/impl/CalcFunctionServiceImpl.java zhitan-system/src/main/java/com/zhitan/model/service/impl/DaqTemplateServiceImpl.java zhitan-system/src/main/java/com/zhitan/model/service/impl/EnergyIndexServiceImpl.java zhitan-system/src/main/java/com/zhitan/model/service/impl/IndexFormulaServiceImpl.java zhitan-system/src/main/java/com/zhitan/model/service/impl/IndexStorageServiceImpl.java zhitan-system/src/main/java/com/zhitan/model/service/impl/ModelInfoServiceImpl.java zhitan-system/src/main/java/com/zhitan/model/service/impl/ModelNodeServiceImpl.java zhitan-system/src/main/java/com/zhitan/peakvalley/domain/ElectricityDataItem.java zhitan-system/src/main/java/com/zhitan/peakvalley/domain/ElectricityPrice.java zhitan-system/src/main/java/com/zhitan/peakvalley/domain/ElectricityPriceDate.java zhitan-system/src/main/java/com/zhitan/peakvalley/domain/dto/ElectricityDataItemListDTO.java zhitan-system/src/main/java/com/zhitan/peakvalley/domain/dto/ElectricityTypeSettingAddDTO.java zhitan-system/src/main/java/com/zhitan/peakvalley/domain/dto/ElectricityTypeSettingItemAddDTO.java zhitan-system/src/main/java/com/zhitan/peakvalley/domain/dto/ElectricityTypeSettingItemUpdateDTO.java zhitan-system/src/main/java/com/zhitan/peakvalley/domain/dto/ElectricityTypeSettingUpdateDTO.java zhitan-system/src/main/java/com/zhitan/peakvalley/domain/dto/PeakValleyDTO.java zhitan-system/src/main/java/com/zhitan/peakvalley/domain/vo/ElectricityPeriodFeeDetailVO.java zhitan-system/src/main/java/com/zhitan/peakvalley/domain/vo/ElectricityTypeSettingItemQueryVO.java zhitan-system/src/main/java/com/zhitan/peakvalley/domain/vo/ElectricityTypeSettingItemVO.java zhitan-system/src/main/java/com/zhitan/peakvalley/domain/vo/ElectricityTypeSettingPageListVO.java zhitan-system/src/main/java/com/zhitan/peakvalley/domain/vo/peakvalley/PeakValleyDayDataVO.java zhitan-system/src/main/java/com/zhitan/peakvalley/domain/vo/peakvalley/PeakValleyDayTotalVO.java zhitan-system/src/main/java/com/zhitan/peakvalley/domain/vo/peakvalley/PeakValleyDayVO.java zhitan-system/src/main/java/com/zhitan/peakvalley/domain/vo/peakvalley/PeakValleyHourDataVO.java zhitan-system/src/main/java/com/zhitan/peakvalley/domain/vo/peakvalley/PeakValleyHourVO.java zhitan-system/src/main/java/com/zhitan/peakvalley/domain/vo/peakvalley/PeakValleyLineChatVO.java zhitan-system/src/main/java/com/zhitan/peakvalley/domain/vo/peakvalley/PeakValleyPieChatVO.java zhitan-system/src/main/java/com/zhitan/peakvalley/mapper/ElectricityPriceDateMapper.java zhitan-system/src/main/java/com/zhitan/peakvalley/mapper/ElectricityPriceMapper.java zhitan-system/src/main/java/com/zhitan/peakvalley/mapper/PeakValleyMapper.java zhitan-system/src/main/java/com/zhitan/peakvalley/service/IElectricityPriceDateService.java zhitan-system/src/main/java/com/zhitan/peakvalley/service/IElectricityPriceService.java zhitan-system/src/main/java/com/zhitan/peakvalley/service/IPeakValleyService.java zhitan-system/src/main/java/com/zhitan/peakvalley/service/impl/ElectricityPriceDateServiceImpl.java zhitan-system/src/main/java/com/zhitan/peakvalley/service/impl/ElectricityPriceServiceImpl.java zhitan-system/src/main/java/com/zhitan/peakvalley/service/impl/PeakValleyServiceImpl.java zhitan-system/src/main/java/com/zhitan/productoutput/domain/ProductOutput.java zhitan-system/src/main/java/com/zhitan/productoutput/mapper/ProductOutputMapper.java zhitan-system/src/main/java/com/zhitan/productoutput/services/IProductOutputService.java zhitan-system/src/main/java/com/zhitan/productoutput/services/impl/ProductOutputServiceImpl.java zhitan-system/src/main/java/com/zhitan/realtimedata/config/RtdbConfig.java zhitan-system/src/main/java/com/zhitan/realtimedata/data/VirtualRtdb.java zhitan-system/src/main/java/com/zhitan/realtimedata/data/influxdb/InfluxDBRepository.java zhitan-system/src/main/java/com/zhitan/realtimedata/data/influxdb/QueryType.java zhitan-system/src/main/java/com/zhitan/realtimedata/domain/DataItem.java zhitan-system/src/main/java/com/zhitan/realtimedata/domain/ElectricityDataDetail.java zhitan-system/src/main/java/com/zhitan/realtimedata/domain/StatisticResult.java zhitan-system/src/main/java/com/zhitan/realtimedata/domain/SysEquipmentFile.java zhitan-system/src/main/java/com/zhitan/realtimedata/domain/SysSvgInfo.java zhitan-system/src/main/java/com/zhitan/realtimedata/domain/TagValue.java zhitan-system/src/main/java/com/zhitan/realtimedata/domain/TagValueResult.java zhitan-system/src/main/java/com/zhitan/realtimedata/domain/WritePoint.java zhitan-system/src/main/java/com/zhitan/realtimedata/domain/dto/EnergyIndexMonitorDTO.java zhitan-system/src/main/java/com/zhitan/realtimedata/domain/vo/EquipmentPointParametersExcel.java zhitan-system/src/main/java/com/zhitan/realtimedata/domain/vo/EquipmentPointParametersVO.java zhitan-system/src/main/java/com/zhitan/realtimedata/domain/vo/ExportrealtimeTrendVO.java zhitan-system/src/main/java/com/zhitan/realtimedata/domain/vo/RealTimeDataVO.java zhitan-system/src/main/java/com/zhitan/realtimedata/domain/vo/RealTimeHistoryDataVO.java zhitan-system/src/main/java/com/zhitan/realtimedata/domain/vo/RealTimeIndexModel.java zhitan-system/src/main/java/com/zhitan/realtimedata/domain/vo/SensorParamModel.java zhitan-system/src/main/java/com/zhitan/realtimedata/mapper/PeriodDataMapper.java zhitan-system/src/main/java/com/zhitan/realtimedata/mapper/SysEquipmentFileMapper.java zhitan-system/src/main/java/com/zhitan/realtimedata/service/IPeriodDataService.java zhitan-system/src/main/java/com/zhitan/realtimedata/service/ISysEquipmentFileService.java zhitan-system/src/main/java/com/zhitan/realtimedata/service/RealtimeDatabase.java zhitan-system/src/main/java/com/zhitan/realtimedata/service/RealtimeDatabaseService.java zhitan-system/src/main/java/com/zhitan/realtimedata/service/RealtimeTrendService.java zhitan-system/src/main/java/com/zhitan/realtimedata/service/impl/PeriodDataServiceImpl.java zhitan-system/src/main/java/com/zhitan/realtimedata/service/impl/RealtimeDatabaseServiceImpl.java zhitan-system/src/main/java/com/zhitan/realtimedata/service/impl/RealtimeTrendServiceImpl.java zhitan-system/src/main/java/com/zhitan/realtimedata/service/impl/SysEquipmentFileServiceImpl.java zhitan-system/src/main/java/com/zhitan/system/domain/SysCache.java zhitan-system/src/main/java/com/zhitan/system/domain/SysConfig.java zhitan-system/src/main/java/com/zhitan/system/domain/SysLoginInfo.java zhitan-system/src/main/java/com/zhitan/system/domain/SysNameConfig.java zhitan-system/src/main/java/com/zhitan/system/domain/SysNotice.java zhitan-system/src/main/java/com/zhitan/system/domain/SysOperLog.java zhitan-system/src/main/java/com/zhitan/system/domain/SysPost.java zhitan-system/src/main/java/com/zhitan/system/domain/SysRoleDept.java zhitan-system/src/main/java/com/zhitan/system/domain/SysRoleMenu.java zhitan-system/src/main/java/com/zhitan/system/domain/SysUserOnline.java zhitan-system/src/main/java/com/zhitan/system/domain/SysUserPost.java zhitan-system/src/main/java/com/zhitan/system/domain/SysUserRole.java zhitan-system/src/main/java/com/zhitan/system/domain/vo/MetaVo.java zhitan-system/src/main/java/com/zhitan/system/domain/vo/RouterVo.java zhitan-system/src/main/java/com/zhitan/system/mapper/SysConfigMapper.java zhitan-system/src/main/java/com/zhitan/system/mapper/SysDeptMapper.java zhitan-system/src/main/java/com/zhitan/system/mapper/SysDictDataMapper.java zhitan-system/src/main/java/com/zhitan/system/mapper/SysDictTypeMapper.java zhitan-system/src/main/java/com/zhitan/system/mapper/SysLoginInfoMapper.java zhitan-system/src/main/java/com/zhitan/system/mapper/SysMenuMapper.java zhitan-system/src/main/java/com/zhitan/system/mapper/SysNameConfigMapper.java zhitan-system/src/main/java/com/zhitan/system/mapper/SysNoticeMapper.java zhitan-system/src/main/java/com/zhitan/system/mapper/SysOperLogMapper.java zhitan-system/src/main/java/com/zhitan/system/mapper/SysPostMapper.java zhitan-system/src/main/java/com/zhitan/system/mapper/SysRoleDeptMapper.java zhitan-system/src/main/java/com/zhitan/system/mapper/SysRoleMapper.java zhitan-system/src/main/java/com/zhitan/system/mapper/SysRoleMenuMapper.java zhitan-system/src/main/java/com/zhitan/system/mapper/SysUserMapper.java zhitan-system/src/main/java/com/zhitan/system/mapper/SysUserPostMapper.java zhitan-system/src/main/java/com/zhitan/system/mapper/SysUserRoleMapper.java zhitan-system/src/main/java/com/zhitan/system/service/ISysConfigService.java zhitan-system/src/main/java/com/zhitan/system/service/ISysDeptService.java zhitan-system/src/main/java/com/zhitan/system/service/ISysDictDataService.java zhitan-system/src/main/java/com/zhitan/system/service/ISysDictTypeService.java zhitan-system/src/main/java/com/zhitan/system/service/ISysLoginInfoService.java zhitan-system/src/main/java/com/zhitan/system/service/ISysMenuService.java zhitan-system/src/main/java/com/zhitan/system/service/ISysNameConfigService.java zhitan-system/src/main/java/com/zhitan/system/service/ISysNoticeService.java zhitan-system/src/main/java/com/zhitan/system/service/ISysOperLogService.java zhitan-system/src/main/java/com/zhitan/system/service/ISysPostService.java zhitan-system/src/main/java/com/zhitan/system/service/ISysRoleService.java zhitan-system/src/main/java/com/zhitan/system/service/ISysUserOnlineService.java zhitan-system/src/main/java/com/zhitan/system/service/ISysUserService.java zhitan-system/src/main/java/com/zhitan/system/service/impl/SysConfigServiceImpl.java zhitan-system/src/main/java/com/zhitan/system/service/impl/SysDeptServiceImpl.java zhitan-system/src/main/java/com/zhitan/system/service/impl/SysDictDataServiceImpl.java zhitan-system/src/main/java/com/zhitan/system/service/impl/SysDictTypeServiceImpl.java zhitan-system/src/main/java/com/zhitan/system/service/impl/SysLoginInfoServiceImpl.java zhitan-system/src/main/java/com/zhitan/system/service/impl/SysMenuServiceImpl.java zhitan-system/src/main/java/com/zhitan/system/service/impl/SysNameConfigServiceImpl.java zhitan-system/src/main/java/com/zhitan/system/service/impl/SysNoticeServiceImpl.java zhitan-system/src/main/java/com/zhitan/system/service/impl/SysOperLogServiceImpl.java zhitan-system/src/main/java/com/zhitan/system/service/impl/SysPostServiceImpl.java zhitan-system/src/main/java/com/zhitan/system/service/impl/SysRoleServiceImpl.java zhitan-system/src/main/java/com/zhitan/system/service/impl/SysUserOnlineServiceImpl.java zhitan-system/src/main/java/com/zhitan/system/service/impl/SysUserServiceImpl.java zhitan-system/src/main/resources/mapper/alarm/AlarmItemMapper.xml zhitan-system/src/main/resources/mapper/alarm/AlarmLimitTypeMapper.xml zhitan-system/src/main/resources/mapper/alarm/HistoryAlarmMapper.xml zhitan-system/src/main/resources/mapper/alarm/RealtimeAlarmMapper.xml zhitan-system/src/main/resources/mapper/auxiliaryinput/ProductOutputMapper.xml zhitan-system/src/main/resources/mapper/basicdata/FacilityAnnexMapper.xml zhitan-system/src/main/resources/mapper/basicdata/FacilityArchivesMapper.xml zhitan-system/src/main/resources/mapper/basicdata/MeterAnnexMapper.xml zhitan-system/src/main/resources/mapper/basicdata/MeterImplementCountMapper.xml zhitan-system/src/main/resources/mapper/basicdata/MeterImplementMapper.xml zhitan-system/src/main/resources/mapper/basicdata/SysEnerclassMapper.xml zhitan-system/src/main/resources/mapper/basicdata/SysEnergyMapper.xml zhitan-system/src/main/resources/mapper/comprehensivestatistics/ComprehensiveStatisticsMapper.xml zhitan-system/src/main/resources/mapper/comprehensivestatistics/DailyComprehensiveMapper.xml zhitan-system/src/main/resources/mapper/dataitem/DataItemMapper.xml zhitan-system/src/main/resources/mapper/energyIndicators/EnergyIndicatorsMapper.xml zhitan-system/src/main/resources/mapper/gatewaysetting/GatewaySettingMapper.xml zhitan-system/src/main/resources/mapper/keyequipment/DailyKeyEquipmentMapper.xml zhitan-system/src/main/resources/mapper/keyequipment/MonthlyKeyEquipmentMapper.xml zhitan-system/src/main/resources/mapper/keyequipment/YearKeyEquipmentMapper.xml zhitan-system/src/main/resources/mapper/meter/MeterImplementMapper.xml zhitan-system/src/main/resources/mapper/model/CalcFunctionMapper.xml zhitan-system/src/main/resources/mapper/model/DaqTemplateMapper.xml zhitan-system/src/main/resources/mapper/model/EnergyIndexMapper.xml zhitan-system/src/main/resources/mapper/model/IndexFormulaMapper.xml zhitan-system/src/main/resources/mapper/model/IndexStorageMapper.xml zhitan-system/src/main/resources/mapper/model/ModelInfoMapper.xml zhitan-system/src/main/resources/mapper/model/ModelNodeMapper.xml zhitan-system/src/main/resources/mapper/peakvalley/ElectricityDataItemMapper.xml zhitan-system/src/main/resources/mapper/peakvalley/ElectricityPriceDateMapper.xml zhitan-system/src/main/resources/mapper/peakvalley/EletricityPriceMapper.xml zhitan-system/src/main/resources/mapper/realtimedata/PeriodDataMapper.xml zhitan-system/src/main/resources/mapper/realtimedata/SysEquipmentFileMapper.xml zhitan-system/src/main/resources/mapper/system/SysConfigMapper.xml zhitan-system/src/main/resources/mapper/system/SysDeptMapper.xml zhitan-system/src/main/resources/mapper/system/SysDictDataMapper.xml zhitan-system/src/main/resources/mapper/system/SysDictTypeMapper.xml zhitan-system/src/main/resources/mapper/system/SysLoginInfoMapper.xml zhitan-system/src/main/resources/mapper/system/SysMenuMapper.xml zhitan-system/src/main/resources/mapper/system/SysNameConfigMapper.xml zhitan-system/src/main/resources/mapper/system/SysNoticeMapper.xml zhitan-system/src/main/resources/mapper/system/SysOperLogMapper.xml zhitan-system/src/main/resources/mapper/system/SysPostMapper.xml zhitan-system/src/main/resources/mapper/system/SysRoleDeptMapper.xml zhitan-system/src/main/resources/mapper/system/SysRoleMapper.xml zhitan-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml zhitan-system/src/main/resources/mapper/system/SysUserMapper.xml zhitan-system/src/main/resources/mapper/system/SysUserPostMapper.xml zhitan-system/src/main/resources/mapper/system/SysUserRoleMapper.xml zhitan-system/target/classes/mapper/alarm/AlarmItemMapper.xml zhitan-system/target/classes/mapper/alarm/AlarmLimitTypeMapper.xml zhitan-system/target/classes/mapper/alarm/HistoryAlarmMapper.xml zhitan-system/target/classes/mapper/alarm/RealtimeAlarmMapper.xml zhitan-system/target/classes/mapper/auxiliaryinput/ProductOutputMapper.xml zhitan-system/target/classes/mapper/basicdata/FacilityAnnexMapper.xml zhitan-system/target/classes/mapper/basicdata/FacilityArchivesMapper.xml zhitan-system/target/classes/mapper/basicdata/MeterAnnexMapper.xml zhitan-system/target/classes/mapper/basicdata/MeterImplementCountMapper.xml zhitan-system/target/classes/mapper/basicdata/MeterImplementMapper.xml zhitan-system/target/classes/mapper/basicdata/SysEnerclassMapper.xml zhitan-system/target/classes/mapper/basicdata/SysEnergyMapper.xml zhitan-system/target/classes/mapper/comprehensivestatistics/ComprehensiveStatisticsMapper.xml zhitan-system/target/classes/mapper/comprehensivestatistics/DailyComprehensiveMapper.xml zhitan-system/target/classes/mapper/dataitem/DataItemMapper.xml zhitan-system/target/classes/mapper/energyIndicators/EnergyIndicatorsMapper.xml zhitan-system/target/classes/mapper/gatewaysetting/GatewaySettingMapper.xml zhitan-system/target/classes/mapper/keyequipment/DailyKeyEquipmentMapper.xml zhitan-system/target/classes/mapper/keyequipment/MonthlyKeyEquipmentMapper.xml zhitan-system/target/classes/mapper/keyequipment/YearKeyEquipmentMapper.xml zhitan-system/target/classes/mapper/meter/MeterImplementMapper.xml zhitan-system/target/classes/mapper/model/CalcFunctionMapper.xml zhitan-system/target/classes/mapper/model/DaqTemplateMapper.xml zhitan-system/target/classes/mapper/model/EnergyIndexMapper.xml zhitan-system/target/classes/mapper/model/IndexFormulaMapper.xml zhitan-system/target/classes/mapper/model/IndexStorageMapper.xml zhitan-system/target/classes/mapper/model/ModelInfoMapper.xml zhitan-system/target/classes/mapper/model/ModelNodeMapper.xml zhitan-system/target/classes/mapper/peakvalley/ElectricityDataItemMapper.xml zhitan-system/target/classes/mapper/peakvalley/ElectricityPriceDateMapper.xml zhitan-system/target/classes/mapper/peakvalley/EletricityPriceMapper.xml zhitan-system/target/classes/mapper/realtimedata/PeriodDataMapper.xml zhitan-system/target/classes/mapper/realtimedata/SysEquipmentFileMapper.xml zhitan-system/target/classes/mapper/system/SysConfigMapper.xml zhitan-system/target/classes/mapper/system/SysDeptMapper.xml zhitan-system/target/classes/mapper/system/SysDictDataMapper.xml zhitan-system/target/classes/mapper/system/SysDictTypeMapper.xml zhitan-system/target/classes/mapper/system/SysLoginInfoMapper.xml zhitan-system/target/classes/mapper/system/SysMenuMapper.xml zhitan-system/target/classes/mapper/system/SysNameConfigMapper.xml zhitan-system/target/classes/mapper/system/SysNoticeMapper.xml zhitan-system/target/classes/mapper/system/SysOperLogMapper.xml zhitan-system/target/classes/mapper/system/SysPostMapper.xml zhitan-system/target/classes/mapper/system/SysRoleDeptMapper.xml zhitan-system/target/classes/mapper/system/SysRoleMapper.xml zhitan-system/target/classes/mapper/system/SysRoleMenuMapper.xml zhitan-system/target/classes/mapper/system/SysUserMapper.xml zhitan-system/target/classes/mapper/system/SysUserPostMapper.xml zhitan-system/target/classes/mapper/system/SysUserRoleMapper.xml