ustcyc
2025-01-07 de5d55508afd27fb2b47e6d4d6fd9984525c222c
升级架构
已添加694个文件
已删除1,555个文件
已修改2个文件
261803 ■■■■■ 文件已修改
.idea/.gitignore 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/compiler.xml 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/encodings.xml 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/jarRepositories.xml 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/misc.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/vcs.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LICENSE 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
META-INF/MANIFEST.MF 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/pom.xml 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/controller/SysEnerclassController.java 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/controller/SysEnercoefficientController.java 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/controller/SysEnergyController.java 218 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/controller/SysPriceController.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/controller/SysProductController.java 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/domain/SysEnerclass.java 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/domain/SysEnercoefficient.java 171 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/domain/SysEnergy.java 298 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/domain/SysPrice.java 173 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/domain/SysProduct.java 238 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/mapper/SysEnerclassMapper.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/mapper/SysEnercoefficientMapper.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/mapper/SysEnergyMapper.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/mapper/SysPriceMapper.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/mapper/SysProductMapper.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/service/ISysEnerclassService.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/service/ISysEnercoefficientService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/service/ISysEnergyService.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/service/ISysPriceService.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/service/ISysProductService.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/service/impl/SysEnerclassServiceImpl.java 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/service/impl/SysEnercoefficientServiceImpl.java 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/service/impl/SysEnergyServiceImpl.java 183 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/service/impl/SysPriceServiceImpl.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/enerInfoManage/service/impl/SysProductServiceImpl.java 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/controller/EnergyProjectAnnexController.java 180 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/controller/EnergyProjectController.java 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/controller/EnergyReportAnnexController.java 148 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/controller/EnergyReportController.java 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/domain/EnergyProject.java 179 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/domain/EnergyProjectAnnex.java 137 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/domain/EnergyReport.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/domain/EnergyReportAnnex.java 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/mapper/EnergyProjectAnnexMapper.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/mapper/EnergyProjectMapper.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/mapper/EnergyReportAnnexMapper.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/mapper/EnergyReportMapper.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/service/IEnergyProjectAnnexService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/service/IEnergyProjectService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/service/IEnergyReportAnnexService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/service/IEnergyReportService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/service/impl/EnergyProjectAnnexServiceImpl.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/service/impl/EnergyProjectServiceImpl.java 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/service/impl/EnergyReportAnnexServiceImpl.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/energy/service/impl/EnergyReportServiceImpl.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/energyExamine/controller/AssessmentIndexController.java 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/energyExamine/domain/AssessmentIndex.java 210 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/energyExamine/mapper/AssessmentIndexMapper.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/energyExamine/service/IAssessmentIndexService.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/energyExamine/service/impl/AssessmentIndexServiceImpl.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/facility/controller/FacilityAnnexController.java 189 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/facility/controller/FacilityArchivesController.java 177 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/facility/domain/FacilityAnnex.java 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/facility/domain/FacilityArchives.java 301 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/facility/mapper/FacilityAnnexMapper.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/facility/mapper/FacilityArchivesMapper.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/facility/service/IFacilityAnnexService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/facility/service/IFacilityArchivesService.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/facility/service/impl/FacilityAnnexServiceImpl.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/facility/service/impl/FacilityArchivesServiceImpl.java 285 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/meter/controller/MeterAnnexController.java 190 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/meter/controller/MeterImplementController.java 172 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/meter/controller/MeterImplementCountController.java 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/meter/domain/MeterAnnex.java 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/meter/domain/MeterImplement.java 266 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/meter/domain/MeterImplementCount.java 244 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/meter/domain/MeterImplementExcel.java 223 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/meter/mapper/MeterAnnexMapper.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/meter/mapper/MeterImplementCountMapper.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/meter/mapper/MeterImplementExcel.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/meter/mapper/MeterImplementMapper.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/meter/service/IMeterAnnexService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/meter/service/IMeterImplementCountService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/meter/service/IMeterImplementService.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/meter/service/impl/MeterAnnexServiceImpl.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/meter/service/impl/MeterImplementCountServiceImpl.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/meter/service/impl/MeterImplementServiceImpl.java 250 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/policy/controller/PolicyAnnexController.java 178 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/policy/controller/PolicyRegulationsController.java 117 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/policy/controller/PolicyRegulationsTranslateController.java 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/policy/domain/PolicyAnnex.java 131 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/policy/domain/PolicyRegulations.java 117 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/policy/domain/PolicyRegulationsTranslate.java 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/policy/mapper/PolicyAnnexMapper.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/policy/mapper/PolicyRegulationsMapper.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/policy/mapper/PolicyRegulationsTranslateMapper.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/policy/service/IPolicyAnnexService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/policy/service/IPolicyRegulationsService.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/policy/service/IPolicyRegulationsTranslateService.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/policy/service/impl/PolicyAnnexServiceImpl.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/policy/service/impl/PolicyRegulationsServiceImpl.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/policy/service/impl/PolicyRegulationsTranslateServiceImpl.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/controller/RosteringController.java 204 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/controller/RosteringDutyController.java 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/controller/RosteringSchemeController.java 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/controller/RosteringSchemeitemController.java 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/controller/RosteringShiftController.java 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/domain/Rostering.java 202 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/domain/RosteringCopy.java 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/domain/RosteringDuty.java 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/domain/RosteringScheme.java 143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/domain/RosteringSchemeitem.java 168 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/domain/RosteringShift.java 165 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/domain/workForceTreeObject.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/mapper/RosteringDutyMapper.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/mapper/RosteringMapper.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/mapper/RosteringSchemeMapper.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/mapper/RosteringSchemeitemMapper.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/mapper/RosteringShiftMapper.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/service/IRosteringDutyService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/service/IRosteringSchemeService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/service/IRosteringSchemeitemService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/service/IRosteringService.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/service/IRosteringShiftService.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/service/impl/RosteringDutyServiceImpl.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/service/impl/RosteringSchemeServiceImpl.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/service/impl/RosteringSchemeitemServiceImpl.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/service/impl/RosteringServiceImpl.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/java/com/dingzhuo/energy/basic/data/workforce/service/impl/RosteringShiftServiceImpl.java 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/resources/mybatis/enerInfoManage/SysEnerclassMapper.xml 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/resources/mybatis/enerInfoManage/SysEnercoefficientMapper.xml 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/resources/mybatis/enerInfoManage/SysEnergyMapper.xml 209 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/resources/mybatis/enerInfoManage/SysPriceMapper.xml 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/resources/mybatis/enerInfoManage/SysProductMapper.xml 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/resources/mybatis/energy/EnergyProjectAnnexMapper.xml 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/resources/mybatis/energy/EnergyProjectMapper.xml 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/resources/mybatis/energy/EnergyReportAnnexMapper.xml 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/resources/mybatis/energy/EnergyReportMapper.xml 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/resources/mybatis/energyExamine/AssessmentIndexMapper.xml 150 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/resources/mybatis/facility/FacilityAnnexMapper.xml 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/resources/mybatis/facility/FacilityArchivesMapper.xml 183 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/resources/mybatis/meter/MeterAnnexMapper.xml 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/resources/mybatis/meter/MeterImplementCountMapper.xml 143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/resources/mybatis/meter/MeterImplementMapper.xml 201 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/resources/mybatis/policy/PolicyAnnexMapper.xml 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/resources/mybatis/policy/PolicyRegulationsMapper.xml 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/resources/mybatis/policy/PolicyRegulationsTranslateMapper.xml 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/resources/mybatis/workforce/RosteringDutyMapper.xml 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/resources/mybatis/workforce/RosteringMapper.xml 175 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/resources/mybatis/workforce/RosteringSchemeMapper.xml 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/resources/mybatis/workforce/RosteringSchemeitemMapper.xml 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-data/src/main/resources/mybatis/workforce/RosteringShiftMapper.xml 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/pom.xml 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/constant/Constants.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/constant/GenConstants.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/constant/HttpStatus.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/constant/UserConstants.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/core/lang/UUID.java 483 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/core/text/CharsetKit.java 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/core/text/Convert.java 1001 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/core/text/StrFormatter.java 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/enums/HttpMethod.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/enums/UserStatus.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/exception/BaseException.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/exception/CustomException.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/exception/DemoModeException.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/exception/UtilException.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/exception/file/FileException.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/exception/file/FileNameLengthLimitExceededException.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/exception/file/FileSizeLimitExceededException.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/exception/file/InvalidExtensionException.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/exception/user/CaptchaException.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/exception/user/CaptchaExpireException.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/exception/user/UserException.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/exception/user/UserPasswordNotMatchException.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/utils/Arith.java 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/utils/DateUtils.java 155 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/utils/IdUtils.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/utils/LogUtils.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/utils/MessageUtils.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/utils/SecurityUtils.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/utils/ServletUtils.java 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/utils/StringUtils.java 453 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/utils/Threads.java 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/utils/VerifyCodeUtils.java 226 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/utils/file/FileUploadUtils.java 296 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/utils/file/FileUtils.java 175 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/utils/file/MimeTypeUtils.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/utils/html/EscapeUtil.java 152 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/utils/html/HTMLFilter.java 569 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/utils/http/HttpUtils.java 249 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/utils/ip/AddressUtils.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/utils/ip/IpUtils.java 189 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/utils/poi/Comprehensive.java 387 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/utils/poi/ExcelUtil.java 934 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/utils/reflect/ReflectUtils.java 328 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/utils/security/Md5Utils.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/utils/sign/Base64.java 291 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/utils/spring/SpringUtils.java 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/utils/sql/SqlUtil.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/utils/text/CharsetKit.java 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/utils/text/Convert.java 999 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/utils/text/StrFormatter.java 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/utils/time/TimeManager.java 148 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/utils/time/TimeType.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/xss/XssFilter.java 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/common/xss/XssHttpServletRequestWrapper.java 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/aspectj/DataScopeAspect.java 164 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/aspectj/DataSourceAspect.java 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/aspectj/LogAspect.java 224 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/aspectj/lang/annotation/DataScope.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/aspectj/lang/annotation/DataSource.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/aspectj/lang/annotation/Excel.java 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/aspectj/lang/annotation/Excels.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/aspectj/lang/annotation/Log.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/aspectj/lang/enums/BusinessStatus.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/aspectj/lang/enums/BusinessType.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/aspectj/lang/enums/DataSourceType.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/aspectj/lang/enums/OperatorType.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/config/ApplicationConfig.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/config/DruidConfig.java 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/config/FastJson2JsonRedisSerializer.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/config/FilterConfig.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/config/GenConfig.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/config/MyBatisConfig.java 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/config/RedisConfig.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/config/ResourcesConfig.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/config/RtdbConfig.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/config/RuoYiConfig.java 117 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/config/SecurityConfig.java 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/config/ServerConfig.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/config/SwaggerConfig.java 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/config/SystemConfig.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/config/ThreadPoolConfig.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/config/properties/DruidProperties.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/datasource/DynamicDataSource.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/datasource/DynamicDataSourceContextHolder.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/interceptor/RepeatSubmitInterceptor.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/interceptor/annotation/RepeatSubmit.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/interceptor/impl/SameUrlDataInterceptor.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/manager/AsyncManager.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/manager/ShutdownManager.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/manager/factory/AsyncFactory.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/redis/RedisCache.java 207 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/security/LoginUser.java 228 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/security/filter/JwtAuthenticationTokenFilter.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/security/handle/AuthenticationEntryPointImpl.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/security/handle/LogoutSuccessHandlerImpl.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/security/service/PermissionService.java 170 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/security/service/SysLoginService.java 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/security/service/SysPermissionService.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/security/service/TokenService.java 220 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/security/service/UserDetailsServiceImpl.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/web/controller/BaseController.java 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/web/domain/AjaxResult.java 148 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/web/domain/BaseEntity.java 168 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/web/domain/Server.java 245 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/web/domain/TreeSelect.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/web/domain/server/Cpu.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/web/domain/server/Jvm.java 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/web/domain/server/Mem.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/web/domain/server/Sys.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/web/domain/server/SysFile.java 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/web/exception/GlobalExceptionHandler.java 117 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/web/page/PageDomain.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/web/page/TableDataInfo.java 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/framework/web/page/TableSupport.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/common/CaptchaController.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/common/CommonController.java 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/monitor/controller/ServerController.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/monitor/controller/SysLogininforController.java 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/monitor/controller/SysOperlogController.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/monitor/controller/SysUserOnlineController.java 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/monitor/domain/SysLogininfor.java 145 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/monitor/domain/SysOperLog.java 256 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/monitor/domain/SysUserOnline.java 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/monitor/mapper/SysLogininforMapper.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/monitor/mapper/SysOperLogMapper.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/monitor/service/ISysLogininforService.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/monitor/service/ISysOperLogService.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/monitor/service/impl/SysLogininforServiceImpl.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/monitor/service/impl/SysOperLogServiceImpl.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/controller/SysConfigController.java 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/controller/SysDeptController.java 135 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/controller/SysDictDataController.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/controller/SysDictTypeController.java 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/controller/SysLoginController.java 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/controller/SysMenuController.java 131 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/controller/SysNoticeController.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/controller/SysPostController.java 136 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/controller/SysProfileController.java 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/controller/SysRoleController.java 160 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/controller/SysUserController.java 206 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/domain/SysConfig.java 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/domain/SysDept.java 205 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/domain/SysDictData.java 179 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/domain/SysDictType.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/domain/SysMenu.java 231 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/domain/SysNotice.java 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/domain/SysPost.java 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/domain/SysRole.java 201 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/domain/SysRoleDept.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/domain/SysRoleMenu.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/domain/SysUser.java 328 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/domain/SysUserPost.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/domain/SysUserRole.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/domain/vo/MetaVo.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/domain/vo/RouterVo.java 145 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/mapper/SysConfigMapper.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/mapper/SysDeptMapper.java 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/mapper/SysDictDataMapper.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/mapper/SysDictTypeMapper.java 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/mapper/SysMenuMapper.java 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/mapper/SysNoticeMapper.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/mapper/SysPostMapper.java 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/mapper/SysRoleDeptMapper.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/mapper/SysRoleMapper.java 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/mapper/SysRoleMenuMapper.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/mapper/SysUserMapper.java 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/mapper/SysUserPostMapper.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/mapper/SysUserRoleMapper.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/service/ISysConfigService.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/service/ISysDeptService.java 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/service/ISysDictDataService.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/service/ISysDictTypeService.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/service/ISysMenuService.java 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/service/ISysNoticeService.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/service/ISysPostService.java 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/service/ISysRoleService.java 131 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/service/ISysUserOnlineService.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/service/ISysUserService.java 167 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/service/impl/SysConfigServiceImpl.java 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/service/impl/SysDeptServiceImpl.java 297 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/service/impl/SysDictDataServiceImpl.java 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/service/impl/SysDictTypeServiceImpl.java 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/service/impl/SysMenuServiceImpl.java 361 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/service/impl/SysNoticeServiceImpl.java 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/service/impl/SysPostServiceImpl.java 177 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/service/impl/SysRoleServiceImpl.java 313 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/service/impl/SysUserOnlineServiceImpl.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/system/service/impl/SysUserServiceImpl.java 457 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/tool/gen/controller/GenController.java 192 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/tool/gen/domain/GenTable.java 271 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/tool/gen/domain/GenTableColumn.java 370 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/tool/gen/mapper/GenTableColumnMapper.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/tool/gen/mapper/GenTableMapper.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/tool/gen/service/GenTableColumnServiceImpl.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/tool/gen/service/GenTableServiceImpl.java 341 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/tool/gen/service/IGenTableColumnService.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/tool/gen/service/IGenTableService.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/tool/gen/util/GenUtils.java 241 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/tool/gen/util/VelocityInitializer.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/tool/gen/util/VelocityUtils.java 283 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/java/com/dingzhuo/energy/project/tool/swagger/TestController.java 178 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/resources/mybatis/monitor/SysLogininforMapper.xml 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/resources/mybatis/monitor/SysOperLogMapper.xml 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/resources/mybatis/system/SysConfigMapper.xml 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/resources/mybatis/system/SysDeptMapper.xml 173 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/resources/mybatis/system/SysDictDataMapper.xml 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/resources/mybatis/system/SysDictTypeMapper.xml 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/resources/mybatis/system/SysMenuMapper.xml 162 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/resources/mybatis/system/SysNoticeMapper.xml 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/resources/mybatis/system/SysPostMapper.xml 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/resources/mybatis/system/SysRoleDeptMapper.xml 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/resources/mybatis/system/SysRoleMapper.xml 146 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/resources/mybatis/system/SysRoleMenuMapper.xml 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/resources/mybatis/system/SysUserMapper.xml 226 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/resources/mybatis/system/SysUserPostMapper.xml 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/resources/mybatis/system/SysUserRoleMapper.xml 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/resources/mybatis/tool/GenTableColumnMapper.xml 154 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic/src/main/resources/mybatis/tool/GenTableMapper.xml 172 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
bin/clean.bat 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
bin/package.bat 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
bin/run.bat 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/.gitignore 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/.mvn/wrapper/MavenWrapperDownloader.java 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/.mvn/wrapper/maven-wrapper.jar 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/.mvn/wrapper/maven-wrapper.properties 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/mvnw 310 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/mvnw.cmd 182 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/pom.xml 155 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/ApplicationConfiguration.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/ComputeEngineApplication.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/ComputeEngineRunner.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/actor/alarm/AlarmTimerActor.java 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/actor/alarm/BaseAlarmActor.java 158 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/actor/alarm/LoadAlarmActor.java 161 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/actor/alarm/PeriodAlarmActor.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/actor/alarm/RealtimeAlarmActor.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/actor/alarm/SaveAlarmActor.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/actor/device/DeviceStatusActor.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/actor/device/DeviceStatusTimerActor.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/actor/device/LoadDeviceStatusActor.java 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/actor/indexcalc/CalculationIndexActor.java 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/actor/indexcalc/LoadIndexActor.java 135 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/actor/indexcalc/SavePeriodActor.java 145 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/actor/indexcalc/TimerActor.java 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/actor/monitor/RecastDataActor.java 172 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/config/CalcMessageExtractor.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/config/CalculationConfig.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/config/EngineArgOption.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/config/ExecutePrioMailBox.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/controller/CalculationController.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/controller/Recalc.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/function/CustomFunction.java 201 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/function/FunctionEngine.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/message/BaseActorMessage.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/message/ExecuteType.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/message/alarm/AlarmJudgeMessage.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/message/alarm/AlarmRegisterMessage.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/message/alarm/AlarmSaveMessage.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/message/alarm/AlarmStatus.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/message/alarm/AlarmType.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/message/alarm/LoadAlarmMessage.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/message/alarm/UnloadAlarmMessage.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/message/calculation/CalculateMessage.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/message/calculation/LinkMessage.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/message/calculation/LoadCalcIndexMessage.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/message/calculation/UnlinkMessage.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/message/calculation/UnloadCalcIndexMessage.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/message/device/DeviceStatus.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/message/device/DeviceStatusJudgeMessage.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/message/device/LoadDeviceStatusMessage.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/message/device/UnloadDeviceStatusMessage.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/message/save/SaveMessage.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/message/timer/RegisterTimeMessage.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/message/timer/RegisterType.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/utils/ActorUtil.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/utils/CacheService.java 182 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/utils/ServiceProvicer.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/utils/SpringActorProducer.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/java/com/dingzhuo/compute/engine/utils/SpringAkkaExtension.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/resources/akka.conf 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/resources/application-prod.yml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/resources/application.yml 182 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
compute-engine/src/main/resources/logback.xml 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/pom.xml 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/controller/CalcFunctionController.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/controller/DaqTemplateController.java 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/controller/DataAuthController.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/controller/EnergyIndexController.java 203 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/controller/IndexStorageController.java 156 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/controller/LimitTypeController.java 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/controller/ModelInfoController.java 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/controller/ModelNodeController.java 370 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/controller/StateTypeController.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/domain/AuthType.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/domain/CalcFunction.java 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/domain/CalcPeriod.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/domain/CalcType.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/domain/DaqTemplate.java 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/domain/EnergyIndex.java 213 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/domain/EnergyIndexQuery.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/domain/IndexFormula.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/domain/IndexFormulaParam.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/domain/IndexStorage.java 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/domain/IndexStorageParam.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/domain/IndexType.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/domain/LimitType.java 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/domain/ModelInfo.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/domain/ModelNode.java 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/domain/StateType.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/domain/TreeObject.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/domain/dto/EnergyIndexMonitorDTO.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/domain/vo/ModelNodeIndexInfor.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/domain/vo/PointDataVO.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/mapper/CalcFunctionMapper.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/mapper/DaqTemplateMapper.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/mapper/DataAuthMapper.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/mapper/EnergyIndexMapper.java 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/mapper/IndexFormulaMapper.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/mapper/IndexStorageMapper.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/mapper/LimitTypeMapper.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/mapper/ModelInfoMapper.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/mapper/ModelNodeMapper.java 158 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/mapper/StateTypeMapper.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/service/DataAuthService.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/service/ICalcFunctionService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/service/IDaqTemplateService.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/service/IEnergyIndexService.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/service/IIndexStorageService.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/service/ILimitTypeService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/service/IModelInfoService.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/service/IModelNodeService.java 151 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/service/IStateTypeService.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/service/IndexFormulaService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/service/impl/CalcFunctionServiceImpl.java 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/service/impl/DaqTemplateServiceImpl.java 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/service/impl/DataAuthServiceImpl.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/service/impl/EnergyIndexServiceImpl.java 271 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/service/impl/IndexFormulaServiceImpl.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/service/impl/IndexStorageServiceImpl.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/service/impl/LimitTypeServiceImpl.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/service/impl/ModelInfoServiceImpl.java 158 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/service/impl/ModelNodeServiceImpl.java 331 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/java/com/dingzhuo/energy/data/model/service/impl/StateTypeServiceImpl.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/resources/mybatis/basicsetting/CalcFunctionMapper.xml 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/resources/mybatis/basicsetting/DaqTemplateMapper.xml 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/resources/mybatis/basicsetting/IndexFormulaMapper.xml 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/resources/mybatis/basicsetting/IndexStorageMapper.xml 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/resources/mybatis/basicsetting/LimitTypeMapper.xml 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/resources/mybatis/basicsetting/ModelInfoMapper.xml 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/resources/mybatis/basicsetting/ModelNodeMapper.xml 342 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/resources/mybatis/basicsetting/StateTypeMapper.xml 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/resources/mybatis/dataAuth/DataAuthMapper.xml 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-model/src/main/resources/mybatis/energyindex/EnergyIndexMapper.xml 332 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/pom.xml 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/alarm/controller/AlarmItemController.java 139 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/alarm/controller/HistoryAlarmController.java 178 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/alarm/controller/RealTimeAlarmController.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/alarm/domain/AlarmItem.java 182 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/alarm/domain/AlarmJudgeDirection.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/alarm/domain/HistoryAlarm.java 171 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/alarm/domain/HistoryTable.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/alarm/domain/JkHistoryAlarm.java 248 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/alarm/domain/JkRealTimeAlarmList.java 208 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/alarm/domain/RealTimeAlarm.java 177 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/alarm/mapper/AlarmItemMapper.java 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/alarm/mapper/HistoryAlarmMapper.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/alarm/mapper/RealtimeAlarmMapper.java 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/alarm/service/IAlarmItemService.java 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/alarm/service/IHistoryAlarmService.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/alarm/service/IRealtimeAlarmService.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/alarm/service/impl/AlarmItemServiceImpl.java 198 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/alarm/service/impl/HistoryAlarmServiceImpl.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/alarm/service/impl/RealtimeAlarmServiceImpl.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/controller/DeviceStatusHistoryController.java 143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/controller/DeviceStatusLiveController.java 166 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/controller/DeviceStorageController.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/domain/DeviceFormula.java 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/domain/DeviceFormulaParam.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/domain/DeviceStatusHistory.java 177 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/domain/DeviceStatusLive.java 133 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/domain/EquipmentMeasuringPointParameters.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/domain/HistoryDeviceStatus.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/domain/RealtimeDeviceStatus.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/domain/vo/EquipmentPointParametersExcel.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/domain/vo/EquipmentPointParametersVO.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/mapper/DeviceFormulaMapper.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/mapper/DeviceFormulaParamMapper.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/mapper/DeviceStatusHistoryMapper.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/mapper/DeviceStatusLiveMapper.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/service/IDeviceFormulaParamService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/service/IDeviceFormulaService.java 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/service/IDeviceStatusHistoryService.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/service/IDeviceStatusLiveService.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/service/IHistoryDeviceStatus.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/service/IRealtimeDeviceStatus.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/service/impl/DeviceFormulaParamServiceImpl.java 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/service/impl/DeviceFormulaServiceImpl.java 171 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/service/impl/DeviceStatusHistoryServiceImpl.java 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/service/impl/DeviceStatusLiveServiceImpl.java 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/service/impl/HistoryDeviceStatusImpl.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/device/service/impl/RealtimeDeviceStatusImpl.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/historical/controller/HistoryDataController.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/historical/service/IHistoryDataService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/historical/service/impl/HistoryDataServiceImpl.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/trend/history/controller/HistoryDataTrend.java 225 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/trend/history/domain/dto/HistoricalDataDTO.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/trend/history/domain/vo/HistoricalDataExcel.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/trend/history/domain/vo/HistoricalDataVO.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/trend/realtime/controller/RealTimeTrend.java 335 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/trend/realtime/domain/CollectHistory.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/trend/realtime/domain/RealTimeTrend.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/trend/svg/controller/SvgTrendView.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/trend/svg/mapper/SvgTrendMapper.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/trend/svg/service/ISvgTrendService.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/java/com/dingzhuo/energy/data/monitoring/trend/svg/service/impl/SvgTrendServicelmpl.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/resources/mybatis/alarm/AlarmItemMapper.xml 217 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/resources/mybatis/alarm/HistoryAlarmMapper.xml 274 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/resources/mybatis/alarm/RealtimeAlarmMapper.xml 198 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/resources/mybatis/device/DeviceFormulaMapper.xml 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/resources/mybatis/device/DeviceFormulaParamMapper.xml 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/resources/mybatis/device/DeviceStatusHistoryMapper.xml 177 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/resources/mybatis/device/DeviceStatusLiveMapper.xml 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-monitoring/src/main/resources/mybatis/trend/SvgTrendMapper.xml 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-service/pom.xml 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-service/src/main/java/com/dingzhuo/energy/dataservice/controller/PeriodDataController.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-service/src/main/java/com/dingzhuo/energy/dataservice/controller/RealtimeDataController.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-service/src/main/java/com/dingzhuo/energy/dataservice/data/InfluxDb.java 201 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-service/src/main/java/com/dingzhuo/energy/dataservice/data/RealtimeDatabaseManager.java 153 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-service/src/main/java/com/dingzhuo/energy/dataservice/data/VirtualRtdb.java 166 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-service/src/main/java/com/dingzhuo/energy/dataservice/data/influxdb/DecodeInstant.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-service/src/main/java/com/dingzhuo/energy/dataservice/data/influxdb/FastDB.java 340 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-service/src/main/java/com/dingzhuo/energy/dataservice/data/influxdb/QueryType.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-service/src/main/java/com/dingzhuo/energy/dataservice/data/influxdb/RtdbResult.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-service/src/main/java/com/dingzhuo/energy/dataservice/domain/CollectionModes.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-service/src/main/java/com/dingzhuo/energy/dataservice/domain/DataItem.java 169 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-service/src/main/java/com/dingzhuo/energy/dataservice/domain/Quality.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-service/src/main/java/com/dingzhuo/energy/dataservice/domain/RetrievalModes.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-service/src/main/java/com/dingzhuo/energy/dataservice/domain/StatisticResult.java 190 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-service/src/main/java/com/dingzhuo/energy/dataservice/domain/StatisticType.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-service/src/main/java/com/dingzhuo/energy/dataservice/domain/TagValue.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-service/src/main/java/com/dingzhuo/energy/dataservice/domain/TagValueResult.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-service/src/main/java/com/dingzhuo/energy/dataservice/mapper/PeriodDataMapper.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-service/src/main/java/com/dingzhuo/energy/dataservice/service/PeriodDataService.java 305 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-service/src/main/java/com/dingzhuo/energy/dataservice/service/RealtimeDatabase.java 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-service/src/main/java/com/dingzhuo/energy/dataservice/service/RealtimeDatabaseService.java 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-service/src/main/java/com/dingzhuo/energy/dataservice/service/impl/PeriodDataServiceImpl.java 614 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-service/src/main/java/com/dingzhuo/energy/dataservice/service/impl/RealtimeDatabaseServiceImpl.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data-service/src/main/resources/mybatis/dataService/PeriodDataMapper.xml 444 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
db/2022-03-17.sql 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
db/2022-04-15.sql 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/.gitignore 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/pom.xml 149 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/ry.sh 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/EnergyManagementApplication.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/EnergyManagementServletInitializer.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/EnergyBenchmarking/controller/EnergyBenchmarkingController.java 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/EnergyBenchmarking/domain/EnergyBenchmarking.java 146 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/EnergyBenchmarking/mapper/EnergyBenchmarkingMapper.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/EnergyBenchmarking/service/IEnergyBenchmarkingService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/EnergyBenchmarking/service/impl/EnergyBenchmarkingServiceImpl.java 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/basicSetup/controller/HomePageIndexController.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/basicSetup/controller/SysEquipmentfileController.java 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/basicSetup/controller/SysStandardCategoryController.java 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/basicSetup/controller/SysStandardParametersController.java 174 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/basicSetup/domain/SysEquipmentfile.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/basicSetup/domain/SysStandardCategory.java 153 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/basicSetup/domain/SysStandardParameters.java 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/basicSetup/domain/SysSvgInfo.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/basicSetup/mapper/SysEquipmentfileMapper.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/basicSetup/mapper/SysStandardCategoryMapper.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/basicSetup/mapper/SysStandardParametersMapper.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/basicSetup/service/ISysEquipmentfileService.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/basicSetup/service/ISysStandardCategoryService.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/basicSetup/service/ISysStandardParametersService.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/basicSetup/service/impl/SysEquipmentfileServiceImpl.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/basicSetup/service/impl/SysStandardCategoryServiceImpl.java 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/basicSetup/service/impl/SysStandardParametersServiceImpl.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/benchmarking/controller/BenchmarkingManagementController.java 149 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/benchmarking/controller/PhaseBenchmarkingController.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/benchmarking/domain/BenchmarkingManagement.java 200 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/benchmarking/domain/PhaseBenchmarking.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/benchmarking/mapper/BenchmarkingManagementMapper.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/benchmarking/mapper/PhaseBenchmarkingMapper.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/benchmarking/service/IBenchmarkingManagementService.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/benchmarking/service/IPhaseBenchmarkingService.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/benchmarking/service/impl/BenchmarkingManagementServiceImpl.java 151 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/benchmarking/service/impl/PhaseBenchmarkingServiceImpl.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/common/CommonConst.java 145 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/common/DateTimeUtil.java 399 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/common/DoubleUtil.java 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/common/HttpClientUtil.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/common/HttpGetWithEntity.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/common/IntegerUtil.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/common/StringUtil.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/common/TimeTypeConst.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/controller/comprehensiveStatisticsController.java 172 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/controller/dailycomprehensiveController.java 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/controller/monthlycomprehensiveController.java 207 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/controller/processEnergyConsumptionController.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/controller/yearComprehensiveController.java 154 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/domain/comprehensive.java 385 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/domain/comprehensiveStatistics.java 185 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/domain/dailyComprehensive.java 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/domain/monthlyComprehensive.java 415 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/domain/yearComperhensive.java 215 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/mapper/comprehensiveStatisticsMapper.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/mapper/dailyComprehensiveMapper.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/mapper/monthlyComprehensiveMapper.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/mapper/processEnergyConsumptionMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/mapper/yearComprehensiveMapper.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/service/IComprehensiveStatisticsService.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/service/IdailyComprehensive.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/service/ImonthlyComprehensive.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/service/IyearComprehensive.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/service/impl/comprehensiveStatisticsImp.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/service/impl/dailyComprehensiveServiceImpl.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/service/impl/monthlyComprehensiveServiceImpl.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/service/impl/processEnergyConsumptionImp.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/service/impl/yearComprehensiveServiceImpl.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/comprehensiveStatistics/service/processEnergyConsumptionService.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/conglomeratepush/ConglomeratePushTask.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/conglomeratepush/HttpUtil.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/conglomeratepush/domain/ConglomeratePushLog.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/conglomeratepush/mapper/ConglomeratePushLogMapper.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/conglomeratepush/mqtt/InitCallback.java 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/conglomeratepush/mqtt/MQTTConnect.java 136 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/conglomeratepush/mqtt/MQTTListener.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/conglomeratepush/service/IConglomeratePushLogService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/conglomeratepush/service/impl/ConglomeratePushLogServiceImpl.java 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/dataEntry/controller/DataItemController.java 144 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/dataEntry/domain/dataEntry.java 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/dataEntry/domain/stagseDataEntry.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/dataEntry/mapper/DataItemMapper.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/dataEntry/service/IDataItemService.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/dataEntry/service/impl/DataItemServiceImpl.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricity/controller/ElectricityPriceController.java 137 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricity/controller/TimePeriodPriceController.java 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricity/controller/statisticsController.java 137 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricity/domain/ElectricityPrice.java 139 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricity/domain/TimePeriodPrice.java 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricity/domain/electricitTable.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricity/domain/electricity.java 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricity/domain/electricityDataItem.java 161 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricity/domain/statistics.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricity/mapper/ElectricityPriceMapper.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricity/mapper/TimePeriodPriceMapper.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricity/mapper/statisticsMapper.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricity/service/IElectricityPriceService.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricity/service/ITimePeriodPriceService.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricity/service/IstatisticsService.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricity/service/impl/ElectricityPriceServiceImpl.java 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricity/service/impl/TimePeriodPriceServiceImpl.java 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricity/service/impl/statisticsServiceImpl.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/controller/ElectricityDataItemController.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/controller/ElectricityTypeSettingController.java 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/domain/dto/ElectricityDataItemListDTO.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/domain/dto/ElectricityTypeSettingAddVO.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/domain/dto/ElectricityTypeSettingItemAddVO.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/domain/dto/ElectricityTypeSettingItemUpdateVO.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/domain/dto/ElectricityTypeSettingUpdateVO.java 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/domain/entity/ElectricityDataItem.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/domain/entity/ElectricityTypeSetting.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/domain/entity/ElectricityTypeSettingItem.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/domain/enums/ElectricityTypeEnum.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/domain/vo/ElectricityPeriodFeeDetailVO.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/domain/vo/ElectricityTypeSettingItemQueryVO.java 151 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/domain/vo/ElectricityTypeSettingItemVO.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/domain/vo/ElectricityTypeSettingPageListVO.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/domain/vo/PeakAndValleyReportVO.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/mapper/ElectricityDataItemMapper.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/mapper/ElectricityTypeSettingItemMapper.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/mapper/ElectricityTypeSettingMapper.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/service/IElectricityDataItemService.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/service/IElectricityTypeSettingService.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/service/impl/ElectricityDataItemServiceImpl.java 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/electricityTypeSetting/service/impl/ElectricityTypeSettingServiceImpl.java 186 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/energyBalance/controller/energyBalanceController.java 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/energyBalance/domain/EnergyPic.java 453 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/energyBalance/mapper/EnergyPicMapper.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/energyBalance/mapper/energybalanceMapper.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/energyBalance/service/IEnergyBalanceService.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/energyBalance/service/IEnergyPicService.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/energyBalance/service/impl/EnergyPicServiceImpl.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/energyBalance/service/impl/energyBalanceServiceImpl.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/energyConsumeInput/controller/EnergyMonthConsumeInputController.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/energyConsumeInput/controller/energyDayConsumeInputController.java 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/energyConsumeInput/controller/energyYearConsumeInputController.java 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/energyConsumeInput/domain/EnergyConsumeInput.java 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/energyConsumeInput/domain/ReCalcParamsModel.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/energyConsumeInput/domain/ReCalcRespModel.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/energyConsumeInput/domain/SaveEnergyConsumeInputEntity.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/energyConsumeInput/domain/SaveEnergyConsumeInputModel.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/energyConsumeInput/mapper/EnergyConsumeInputMapper.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/energyConsumeInput/service/IEnergyConsumeInputService.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/energyConsumeInput/service/impl/EnergyConsumeInputServiceImpl.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/energyShareAnalysis/controller/EnergyShareAnalysisController.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/energyShareAnalysis/domain/dto/EnergyAnalysisDTO.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/energyShareAnalysis/domain/vo/EnergyAnalysisVO.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/energyShareAnalysis/service/IEnergyShareAnalysisService.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/energyShareAnalysis/service/impl/EnergyShareAnalysisServiceImpl.java 136 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/energyStatistics/controller/energyAnalysisController.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/energyStatistics/controller/energyStatisticsController.java 280 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/energyStatistics/controller/energyStatisticsCurveController.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/energyStatistics/domain/EnergyConsumption.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/energyStatistics/domain/dataTimeSVG.java 169 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/energyStatistics/domain/energyAnalysis.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/energyStatistics/domain/energyTable.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/energyStatistics/mapper/energyStatisticsMapper.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/energyStatistics/service/IEnergyStatisticsService.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/energyStatistics/service/impl/energyStatisticsServiceImpl.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/gateway/controller/GatewayHbtLogController.java 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/gateway/controller/GatewaySettingController.java 135 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/gateway/domain/GatewayHbtLog.java 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/gateway/domain/GatewaySetting.java 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/gateway/mapper/GatewayHbtLogMapper.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/gateway/mapper/GatewaySettingMapper.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/gateway/service/IGatewayHbtLogService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/gateway/service/IGatewaySettingService.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/gateway/service/impl/GatewayHbtLogServiceImpl.java 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/gateway/service/impl/GatewaySettingServiceImpl.java 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/govReports/GovReportsTask.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/govReports/controller/DataItemPubController.java 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/govReports/domain/DataItemPub.java 151 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/govReports/domain/DataItemPubVo.java 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/govReports/mapper/DataItemPubMapper.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/govReports/service/IDataItemPubService.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/govReports/service/impl/DataItemPubServiceImpl.java 117 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/home/controller/HomeController.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/home/domain/vo/HomeEnergyConsumptionRatioVO.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/home/domain/vo/HomeEnergyCostRatioVO.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/home/domain/vo/HomeEnergyDetectionChart.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/home/domain/vo/HomeEnergyMonitoringHistogramVO.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/home/domain/vo/HomeEnergyStatisticsVO.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/home/domain/vo/HomeEnergyTypeVO.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/home/domain/vo/HomeEnergyUnitConsumptionChartVO.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/home/domain/vo/HomeOutdoorTemperatureVO.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/home/service/IHomeService.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/home/service/impl/HomeServiceImpl.java 369 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/keyEquipment/controller/dailyKeyEquipmenteController.java 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/keyEquipment/controller/monthlyKeyEquipmentController.java 133 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/keyEquipment/controller/yearKeyEquipmentController.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/keyEquipment/domain/dailyKeyEquipment.java 323 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/keyEquipment/domain/monthlyKeyEquipment.java 427 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/keyEquipment/domain/yearKeyEquipment.java 201 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/keyEquipment/mapper/dailyKeyEquipmentMapper.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/keyEquipment/mapper/monthlyKeyEquipmentMapper.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/keyEquipment/mapper/yearKeyEquipmentMapper.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/keyEquipment/service/IdailyKeyEquipmentService.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/keyEquipment/service/ImonthlyKeyEquipmentService.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/keyEquipment/service/IyearKeyEquipmentService.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/keyEquipment/service/impl/dailyKeyEquipmentServiceImpl.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/keyEquipment/service/impl/monthlyKeyEquipmentServiceImpl.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/keyEquipment/service/impl/yearKeyEquipmentServiceImpl.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/plannedOutput/controller/PlanEnergyController.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/plannedOutput/controller/PlannedOutputController.java 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/plannedOutput/controller/energyMonitoringController.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/plannedOutput/domain/PlanEnergy.java 246 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/plannedOutput/domain/PlannedOutput.java 181 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/plannedOutput/domain/energyMonitoring.java 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/plannedOutput/mapper/PlanEnergyMapper.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/plannedOutput/mapper/PlannedOutputMapper.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/plannedOutput/mapper/energyMonitoringMapper.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/plannedOutput/service/IPlanEnergyService.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/plannedOutput/service/IPlannedOutputService.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/plannedOutput/service/energyMonitoringService.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/plannedOutput/service/impl/PlanEnergyServiceImpl.java 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/plannedOutput/service/impl/PlannedOutputServiceImpl.java 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/plannedOutput/service/impl/energyMonitoringServiceImpl.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/controller/ComprehensiveReportsController.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/controller/ReportSetController.java 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/controller/annualReportController.java 180 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/controller/consolidatedStatementsController.java 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/controller/dailyReportController.java 216 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/controller/monthlyReportController.java 201 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/controller/reportFormController.java 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/domain/JtZhnhExcel.java 207 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/domain/annualReport.java 206 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/domain/consolidatedStatements.java 554 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/domain/dailyReport.java 326 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/domain/dto/ComprehensiveReportsDTO.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/domain/monthlyReport.java 406 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/domain/reportForm.java 276 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/domain/reportSet.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/domain/reportSetDataModel.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/domain/reportSetRequestModel.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/domain/vo/ComprehensiveConsumptionRatioVO.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/domain/vo/ComprehensiveReportsItem.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/domain/vo/ComprehensiveReportsVO.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/domain/vo/ComprehensiveUnitConsumptionChartVO.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/mapper/annualReportMapper.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/mapper/consolidatedStatementsMapper.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/mapper/dailyReportMapper.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/mapper/monthlyReportMapper.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/mapper/reportFormMapper.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/mapper/reportSetMapper.java 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/service/IComprehensiveReportsService.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/service/IannualReportService.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/service/IconsolidatedStatementsService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/service/IdailyReportService.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/service/ImonthlyReportService.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/service/IreportFormService.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/service/IreportSetService.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/service/impl/AnnualReportFormServiceImpl.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/service/impl/ComprehensiveReportsServiceImpl.java 347 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/service/impl/consolidatedStatementsServiceImpl.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/service/impl/dailyReportServiceImpl.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/service/impl/monthlyReportServiceImpl.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/service/impl/reportFormServiceImpl.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/reportForm/service/impl/reportSetServiceImpl.java 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/statisticalAnalysis/controller/StatisticalAnalysisController.java 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/statisticalAnalysis/domain/dto/DataAnalysisMoMDTO.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/statisticalAnalysis/domain/vo/DataAnalysisMoMExcel.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/statisticalAnalysis/domain/vo/DataAnalysisMoMVO.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/statisticalAnalysis/domain/vo/DataAnalysisYoYExcel.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/statisticalAnalysis/domain/vo/DataAnalysisYoYVO.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/statisticalAnalysis/service/IStatisticalAnalysisService.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/statisticalAnalysis/service/impl/StatisticalAnalysisServiceImpl.java 315 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/statisticalData/controller/GxdhCountController.java 117 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/statisticalData/domain/GxdhCount.java 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/statisticalData/domain/GxdhCountIndex.java 425 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/statisticalData/mapper/GxdhCountMapper.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/statisticalData/service/IGxdhCountService.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/statisticalData/service/impl/GxdhCountServiceImpl.java 279 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/workingProcedure/controller/dailyWorkingProcedureController.java 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/workingProcedure/controller/monthlyWorkingProcedureController.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/workingProcedure/controller/yearWorkingProcedureController.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/workingProcedure/domain/dailyWorkingProcedure.java 322 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/workingProcedure/domain/monthlyWorkingProcedure.java 415 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/workingProcedure/domain/yearWorkingProcedure.java 200 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/workingProcedure/mapper/dailyWorkingProcedureMapper.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/workingProcedure/mapper/monthlyWorkingProcedureMapper.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/workingProcedure/mapper/yearWorkingProcedureMapper.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/workingProcedure/service/IdailyWorkingProcedure.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/workingProcedure/service/ImonthlyWorkingProcedure.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/workingProcedure/service/IyearWorkingProcedure.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/workingProcedure/service/impl/dailyWorkingProcedureServiceImpl.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/workingProcedure/service/impl/monthlyWorkingProcedureServiceImpl.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/java/com/dingzhuo/energy/project/workingProcedure/service/impl/yearWorkingProcedureServiceImpl.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/application-prod.yml 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/application.yml 187 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/banner.txt 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/i18n/messages.properties 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/logback.xml 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/EnergyConsumeInput/EnergyConsumeInputMapper.xml 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/basicSetup/SysEquipmentfileMapper.xml 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/basicSetup/SysStandardCategoryMapper.xml 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/basicSetup/SysStandardParametersMapper.xml 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/benchmarking/BenchmarkingManagementMapper.xml 160 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/benchmarking/PhaseBenchmarkingMapper.xml 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/comprehensiveStatistics/comprehensiveStatisticsMapper.xml 172 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/comprehensiveStatistics/dailyComprehensiveMapper.xml 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/comprehensiveStatistics/monthlyComprehensiveMapper.xml 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/comprehensiveStatistics/yearComprehensiveMapper.xml 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/conglomeratepush/ConglomeratePushLogMapper.xml 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/dataEntry/DataItemMapper.xml 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/electricityPrice/ElectricityPriceMapper.xml 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/electricityPrice/TimePeriodPriceMapper.xml 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/electricityPrice/statisticsMapper.xml 139 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/electricityTypeSetting/ElectricityDataItemMapper.xml 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/electricityTypeSetting/ElectricityTypeSettingItemMapper.xml 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/electricityTypeSetting/ElectricityTypeSettingMapper.xml 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/energyBalance/EnergyPicMapper.xml 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/energyBalance/energyBalanceMapper.xml 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/energyEenchmarking/EnergyBenchmarkingMapper.xml 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/energyStatistics/energyStatisticsMapper.xml 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/gateway/GatewayHbtLogMapper.xml 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/gateway/GatewaySettingMapper.xml 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/govReports/DataItemPubMapper.xml 276 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/keyEquipment/dailyKeyEquipmentMapper.xml 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/keyEquipment/monthlyKeyEquipmentMapper.xml 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/keyEquipment/yearKeyEquipmentMapper.xml 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/mybatis-config.xml 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/plannedOutput/PlanEnergyMapper.xml 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/plannedOutput/PlannedOutputMapper.xml 146 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/plannedOutput/energyMonitoringMapper.xml 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/processEnergyConsumption/processEnergyConsumptionMapper.xml 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/reportForm/annualReportMapper.xml 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/reportForm/consolidatedStatementsMapper.xml 221 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/reportForm/dailyReportMapper.xml 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/reportForm/monthlyReportMapper.xml 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/reportForm/reportFromMapper.xml 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/reportForm/reportSetMapper.xml 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/statisticalData/GxdhCountMapper.xml 236 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/workingProcedure/dailyWorkingProcedureMapper.xml 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/workingProcedure/monthlyWorkingProcedureMapper.xml 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/mybatis/workingProcedure/yearWorkingProcedureMapper.xml 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/vm/java/controller.java.vm 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/vm/java/domain.java.vm 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/vm/java/mapper.java.vm 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/vm/java/service.java.vm 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/vm/java/serviceImpl.java.vm 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/vm/js/api.js.vm 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/vm/sql/sql.vm 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/vm/vue/index.vue.vm 439 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_server/src/main/resources/vm/xml/mapper.xml.vm 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/.editorconfig 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/.env.development 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/.env.production 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/.env.staging 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/.eslintignore 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/.eslintrc.js 199 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/.gitignore 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/README.md 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/babel.config.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/build/index.js 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/package.json 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/public/favicon.ico 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/public/index.html 209 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/public/logo.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/App.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/alarmItem/alarmItem.js 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/basicSetup/category.js 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/basicSetup/equipmentfile.js 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/basicSetup/parameters.js 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/basicsetting/alarm.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/basicsetting/deviceStorage.js 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/basicsetting/energyindex.js 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/basicsetting/function.js 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/basicsetting/historyAlarm.js 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/basicsetting/indexStorage.js 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/basicsetting/limitType.js 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/basicsetting/model.js 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/basicsetting/modelNode.js 185 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/basicsetting/state.js 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/basicsetting/statetype.js 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/basicsetting/template.js 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/benchmarking/BenchmarkingManagement.js 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/benchmarking/phaseBenchmarking.js 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/comprehensiveStatistics/comprehensive.js 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/comprehensiveStatistics/dailyComprehensive/dailyComprehensive.js 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/comprehensiveStatistics/monthlyComprehensive/monthlyComprehensive.js 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/comprehensiveStatistics/processEnergyConsumption.js 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/comprehensiveStatistics/yearComprehensive/yearComprehensive.js 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/dataAuth/authSetting.js 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/dataEntry/stagseDataEntry.js 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/dataMonitoring/energyPercent/index.js 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/dataMonitoring/historyDataTrend/historyDataTrend.js 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/dataMonitoring/realTimeTrend/realTimeTrend.js 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/dataMonitoring/svgTrend/svgTrendView.js 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/demo/demo.js 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/electricityPrice/electricity.js 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/electricityPrice/price.js 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/electricityPrice/statistics.js 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/enerInfoManage/enerclass.js 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/enerInfoManage/enercoefficient.js 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/enerInfoManage/energy.js 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/enerInfoManage/price.js 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/enerInfoManage/product.js 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/energy/energyAnnex.js 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/energy/energyProject.js 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/energy/report.js 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/energy/reportAnnex.js 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/energyAlarm/realTimeAlarm/liveHistoryAssembly.js 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/energyAlarm/realTimeAlarm/realTimeAlarm.js 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/energyAssistInput/energyDayConsumeInput.js 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/energyAssistInput/energyMonthConsumeInput.js 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/energyAssistInput/energyYearConsumeInput.js 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/energyBalance/energyBalance.js 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/energyBalance/energyPic.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/energyEenchmarking/energyEenchmarking.js 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/energyExamine/addIndex.js 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/energyExamine/assessmentIndex.js 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/energyPrice/price.js 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/energyStatistics/statistics.js 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/equipmentMonitor/historyMonitoring/historyMonitoring.js 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/equipmentMonitor/realTimeMonitoring/realTimeMonitoring.js 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/facility/annex.js 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/facility/archives.js 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/home/home.js 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/index.js 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/keyEquipment/dailykeyEquipment/dailykeyEquipment.js 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/keyEquipment/monthlykeyEquipment/monthlykeyEquipment.js 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/keyEquipment/yearkeyEquipment/yearkeyEquipment.js 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/login.js 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/menu.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/meter/annex.js 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/meter/implement.js 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/meter/implementCount.js 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/meter/index.js 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/monitor/logininfor.js 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/monitor/online.js 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/monitor/operlog.js 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/monitor/server.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/onlineMonitoring/index.js 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/plannedOutput/energyMonitoring.js 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/plannedOutput/planEnergy.js 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/plannedOutput/plannedOutput.js 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/policy/annex.js 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/policy/policyInsert.js 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/policy/policySelete.js 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/powerAnalyse/index.js 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/reportForm/annualReport/annualReport.js 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/reportForm/consolidatedStatements.js 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/reportForm/dailyReport/dailyReport.js 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/reportForm/monthlyReport/monthlyReport.js 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/reportForm/reportForm.js 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/reportInfo/index.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/reportSet/index.js 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/statement/index.js 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/statisticalData/gxdhcount.js 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/system/config.js 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/system/dept.js 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/system/dict/data.js 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/system/dict/type.js 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/system/menu.js 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/system/notice.js 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/system/post.js 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/system/role.js 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/system/user.js 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/tool/gen.js 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/workforce/duty_management.js 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/workforce/management.js 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/workforce/rosteringManagement.js 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/workforce/scheme.js 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/workforce/schemeItem.js 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/workingProcedure/dailyComprehensive/dailyComprehensive.js 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/workingProcedure/monthlyComprehensive/monthlyComprehensive.js 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/api/workingProcedure/yearComprehensive/yearComprehensive.js 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/401_images/401.gif 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/404_images/404.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/404_images/404_cloud.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/home/cost.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/home/count.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/home/electric01.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/home/electric02.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/home/electric03.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/home/electric04.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/home/electric05.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/home/electric06.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/home/haodian.svg 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/home/haoqi.svg 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/home/haoshui.svg 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/home/haozhengqi.svg 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/home/homeiconD.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/home/homeiconDQ.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/home/homeiconJ.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/home/homeiconT.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/home/homeiconW.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/home/homeiconY.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/home/homeicontitle.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/home/shi.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/home/statistic.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/home/tan.svg 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/home/wen.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/home/zonghe.svg 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/checkbox.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/checked.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/index.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/2020-03-23-a204691ac2cdafde1a9a405f9b5cf8ca.svg 1204 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/404.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/bug.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/build.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/chart.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/clipboard.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/code.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/component.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/dashboard.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/date.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/dian.svg 1204 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/dict.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/documentation.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/download.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/drag.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/druid.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/edit.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/education.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/email.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/example.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/excel.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/exit-fullscreen.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/eye-open.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/eye.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/form.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/fullscreen.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/guide.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/icon.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/international.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/job.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/language.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/link.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/list.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/lock.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/log.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/logininfor.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/message.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/money.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/monitor.svg 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/nested.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/online.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/password.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/pdf.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/people.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/peoples.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/phone.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/post.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/qq.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/search.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/server.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/shopping.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/size.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/skill.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/star.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/swagger.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/system.svg 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/tab.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/table.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/theme.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/tool.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/tree-table.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/tree.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/user.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/validCode.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/wechat.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svg/zip.svg 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/icons/svgo.yml 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/image/bg.jpg 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/image/breadcrumbBg.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/image/configureChart.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/image/image.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/image/index.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/image/index2.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/image/index3.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/image/index4.jpeg 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/image/isbreadcrumbBg.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/image/login-background.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/image/login-background1.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/image/navbar/Group.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/image/navbar/exit.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/image/navbar/xiala.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/image/rectangle.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/image/touxiang.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/image/treeBg.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/logo/logo-page-left.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/logo/logo.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/logo/toray_group_icon.png 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/styles/btn.scss 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/styles/common-table-form.scss 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/styles/element-ui.scss 177 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/styles/element-variables.scss 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/styles/index.scss 250 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/styles/left-right-layout.scss 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/styles/mixin.scss 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/styles/ruoyi.scss 373 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/styles/sidebar.scss 240 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/styles/transition.scss 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/assets/styles/variables.scss 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/components/Breadcrumb/index.vue 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/components/Editor/index.vue 226 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/components/Hamburger/index.vue 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/components/HeaderSearch/index.vue 180 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/components/IconSelect/index.vue 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/components/IconSelect/requireIcons.js 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/components/Pagination/index.vue 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/components/PanThumb/index.vue 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/components/RightPanel/index.vue 149 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/components/RuoYi/index.vue 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/components/Screenfull/index.vue 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/components/SizeSelect/index.vue 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/components/SvgIcon/index.vue 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/components/ThemePicker/index.vue 198 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/components/common/basic-container.vue 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/components/shrink/index.vue 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/directive/permission/hasPermi.js 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/directive/permission/hasRole.js 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/directive/permission/index.js 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/layout/RouteView.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/layout/components/AppMain.vue 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/layout/components/Navbar.vue 187 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/layout/components/Sidebar/FixiOSBug.js 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/layout/components/Sidebar/Item.vue 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/layout/components/Sidebar/Link.vue 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/layout/components/Sidebar/Logo.vue 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/layout/components/Sidebar/SidebarItem.vue 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/layout/components/Sidebar/index.vue 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/layout/components/index.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/layout/index.vue 271 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/layout/mixin/ResizeHandler.js 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/layout/mixin/getHeight.js 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/main.js 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/permission.js 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/router/index.js 197 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/settings.js 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/store/getters.js 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/store/index.js 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/store/modules/app.js 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/store/modules/permission.js 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/store/modules/settings.js 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/store/modules/tagsView.js 165 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/store/modules/user.js 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/utils/auth.js 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/utils/index.js 344 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/utils/jsencrypt.js 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/utils/permission.js 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/utils/request.js 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/utils/ruoyi.js 133 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/utils/scroll-to.js 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/utils/validate.js 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/utils/vueToPdf/htmlToPdf.js 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/utils/zipdownload.js 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/alarm/LiChart.vue 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/alarm/collectionIndex.vue 345 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/alarm/index.vue 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/alarm/indexCollectionSetting.vue 324 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/alarmItem/cjdIndex.vue 685 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/alarmItem/index.vue 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/alarmItem/modelWarnSetting.vue 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/alarmItem/zbIndex.vue 598 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicSetup/equipmentfile/configure.vue 205 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicSetup/equipmentfile/configureChart.vue 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicSetup/equipmentfile/dataList.vue 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicSetup/equipmentfile/index.vue 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicSetup/equipmentfile/tableDialog.vue 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicSetup/equipmentfile/trendLineChart.vue 447 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicSetup/equipmentfile/view.vue 117 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicSetup/parameters/basicIndex.vue 344 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicSetup/parameters/index.vue 298 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicSetup/parameters/index1.vue 555 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicSetup/parameters/standard.vue 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicSetup/parameters/standard_statistic.vue 156 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicsetting/dataAuthSetting/dataAuthModelNode.vue 214 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicsetting/dataAuthSetting/index.vue 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicsetting/dataAuthSetting/roleSelect.vue 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicsetting/dataAuthSetting/userSelect.vue 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicsetting/device/deviceStorage.vue 194 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicsetting/device/deviceTabSetting.vue 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicsetting/device/devicestartstop.vue 191 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicsetting/device/index.vue 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicsetting/energyIndex/energyIndex.vue 630 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicsetting/energyIndex/index.vue 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicsetting/energyIndex/indexNodeSetting.vue 290 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicsetting/energyIndex/indexStorage.vue 209 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicsetting/function/index.vue 252 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicsetting/limitType/index.vue 441 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicsetting/model/index.vue 216 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicsetting/modelNode/index.vue 139 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicsetting/modelNode/modelNode.vue 435 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicsetting/modelNode/modelNodeSetting.vue 397 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicsetting/nodeSetting/collectIndexSetting.vue 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicsetting/nodeSetting/deviceSetting.vue 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicsetting/nodeSetting/energySetting.vue 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicsetting/nodeSetting/productSetting.vue 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicsetting/nodeSetting/statisticIndexSetting.vue 169 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicsetting/stateIndex/index.vue 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicsetting/stateIndex/indexStateSetting.vue 247 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicsetting/stateIndex/stateIndex.vue 193 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicsetting/statetype/index.vue 308 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/basicsetting/template/index.vue 437 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/benchmarking/BenchmarkingManagement/benchmarking.vue 204 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/benchmarking/BenchmarkingManagement/index.vue 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/benchmarking/phaseBenchmarking/LineChart.vue 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/benchmarking/phaseBenchmarking/index.vue 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/benchmarking/phaseBenchmarking/phaseBenchmarking.vue 209 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/benchmarking/realTimeBenchmarking/LineChart.vue 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/benchmarking/realTimeBenchmarking/index.vue 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/benchmarking/realTimeBenchmarking/realTimeBenchmarking.vue 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/components/icons/element-icons.js 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/components/icons/index.vue 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/components/icons/svg-icons.js 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/comprehensiveStatistics/comprehensiveStatistics/BarChart.vue 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/comprehensiveStatistics/comprehensiveStatistics/LineChart.vue 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/comprehensiveStatistics/comprehensiveStatistics/comprehensive.vue 558 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/comprehensiveStatistics/comprehensiveStatistics/index.vue 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/comprehensiveStatistics/comprehensiveStatistics/workshop.vue 133 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/comprehensiveStatistics/dailyComprehensive/BarChart.vue 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/comprehensiveStatistics/dailyComprehensive/LineChart.vue 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/comprehensiveStatistics/dailyComprehensive/index.vue 449 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/comprehensiveStatistics/monthlyComprehensive/BarChart.vue 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/comprehensiveStatistics/monthlyComprehensive/LineChart.vue 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/comprehensiveStatistics/monthlyComprehensive/index.vue 441 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/comprehensiveStatistics/processEnergy/index.vue 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/comprehensiveStatistics/processEnergy/processEnergy.vue 164 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/comprehensiveStatistics/yearComprehensive/BarChart.vue 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/comprehensiveStatistics/yearComprehensive/LineChart.vue 138 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/comprehensiveStatistics/yearComprehensive/index.vue 485 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/comreport/frreport/reportiframe.vue 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/costaccounting/frreport/reportiframe.vue 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/dashboard/BarChart.vue 167 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/dashboard/LineChart.vue 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/dashboard/PanelGroup.vue 200 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/dashboard/PieChart.vue 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/dashboard/RaddarChart.vue 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/dashboard/mixins/resize.js 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/dataEntry/stagseDataEntry/index.vue 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/dataEntry/stagseDataEntry/stagseDataEdit.vue 192 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/dataEntry/stagseDataEntry/stagseDataEntry.vue 230 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/dataEntry/stagseDataEntryEdit/index.vue 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/dataEntry/stagseDataEntryEdit/stagseDataEntryEdit.vue 203 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/dataMonitoring/energyPercent/energyPercent.vue 381 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/dataMonitoring/energyPercent/waterPercent.vue 429 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/dataMonitoring/historyDataTrend/historyMonitoringSetting.vue 355 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/dataMonitoring/historyDataTrend/index.vue 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/dataMonitoring/realTimeTrend/LineChart copy.vue 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/dataMonitoring/realTimeTrend/LineChart.vue 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/dataMonitoring/realTimeTrend/index.vue 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/dataMonitoring/realTimeTrend/trendSetting.vue 281 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/demo/index.vue 297 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/electricityPrice/electricity/history.vue 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/electricityPrice/electricity/index.vue 546 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/electricityPrice/statistics/electricityIndex.vue 234 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/electricityPrice/statistics/electricityIndexNew.vue 181 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/electricityPrice/statistics/index.vue 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/electricityPrice/statistics/mixins/resize.js 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/electricityPrice/statistics/pieChart.vue 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/enerInfoManage/enerclass/index.vue 359 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/enerInfoManage/enercoefficient/index.vue 330 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/enerInfoManage/energy/index.vue 629 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/enerInfoManage/price/index.vue 320 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/enerInfoManage/product/index.vue 470 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyAlarm/historicalAlarm/LChart.vue 210 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyAlarm/historicalAlarm/historyAlarmNote.vue 386 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyAlarm/historicalAlarm/index.vue 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyAlarm/historicalAlarm/realIndex.vue 460 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyAlarm/realTimeAlarm/LineChart.vue 148 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyAlarm/realTimeAlarm/historyAlarmTable.vue 198 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyAlarm/realTimeAlarm/historyAlarmView.vue 162 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyAlarm/realTimeAlarm/index.vue 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyAlarm/realTimeAlarm/liveAlarmView.vue 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyAlarm/realTimeAlarm/modelRealTimeAlarmSetting.vue 399 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyAssistInput/energyDayConsumeInput/energyDayConsumeInput.vue 204 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyAssistInput/energyDayConsumeInput/index.vue 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyAssistInput/energyMonthConsumeInput/energyMonthConsumeInput.vue 204 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyAssistInput/energyMonthConsumeInput/index.vue 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyAssistInput/energyYearConsumeInput/energyYearConsumeInput.vue 208 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyAssistInput/energyYearConsumeInput/index.vue 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyBalance/energyBalance/LineChart.vue 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyBalance/energyBalance/PieChart.vue 140 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyBalance/energyBalance/energyBalance.vue 247 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyBalance/energyBalance/index.vue 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyBalance/energyBalance/pie_chart.vue 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyBalance/energyLoss/PieChart.vue 151 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyBalance/energyLoss/energyLoss.vue 253 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyBalance/energyLoss/index.vue 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyBalance/energyPic/energyPic.vue 221 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyBalance/energyPic/index.vue 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyConsumptionAlarm/monitorAlarm/index.vue 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyConsumptionAlarm/monitorAlarm/monitorAlarmSetting.vue 296 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyEenchmarking/benchmarkingMonitoring/benchmarkingMonitoring.vue 136 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyEenchmarking/benchmarkingMonitoring/index.vue 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyEenchmarking/energyEenchmarking/enchmarking.vue 441 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyEenchmarking/energyEenchmarking/index.vue 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyExamine/assessmentIndex/addIndexTable.vue 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyExamine/assessmentIndex/assessmentIndex.vue 171 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyExamine/assessmentIndex/create_index.vue 393 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyExamine/assessmentIndex/index.vue 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyExamine/assessmentResults/assessmentResults.vue 238 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyExamine/assessmentResults/index.vue 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyMonitoring/e-gasMonitoring/index.vue 207 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyMonitoring/eMonitoring/svgView/index.vue 185 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyMonitoring/waterMonitoring/svgView/index.vue 192 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyPlan/actualOutput/EnergyActual.vue 152 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyPlan/actualOutput/index.vue 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyPlan/energyEstablishment/energyEstablishment.vue 213 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyPlan/energyEstablishment/index.vue 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyPlan/energyForecast/LineChart.vue 162 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyPlan/energyForecast/energyForecast.vue 291 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyPlan/energyForecast/index.vue 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyPlan/energyMonitoring/LineChart.vue 139 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyPlan/energyMonitoring/energyMonitoring.vue 213 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyPlan/energyMonitoring/index.vue 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyPlan/plannedOutput/EnergyPlan.vue 186 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyPlan/plannedOutput/index.vue 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyPrice/index copy.vue 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyPrice/index.vue 559 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energySaving/emissionReduction/emissionReduction.vue 131 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energySaving/emissionReduction/index.vue 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energySaving/energyAnnex/energyAnnex.vue 443 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energySaving/energyProject/energyAnnex.vue 293 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energySaving/energyProject/index.vue 435 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energySaving/policiesRegulations/index.vue 179 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energySaving/projectManagement/index.vue 186 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energySaving/report/importReportFile.vue 205 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energySaving/report/index.vue 330 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyStatistics/energyAnalysis/energyAnalysis.vue 161 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyStatistics/energyAnalysis/index.vue 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyStatistics/energyConsumption/BarChart.vue 152 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyStatistics/energyConsumption/BarCharts.vue 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyStatistics/energyConsumption/PieChart.vue 153 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyStatistics/energyConsumption/consumption.vue 527 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyStatistics/energyConsumption/consumptionCost.vue 156 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyStatistics/energyConsumption/index.vue 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyStatistics/energyConsumption/pieChartCost.vue 164 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyStatistics/energyStatisticsTrend/EnergyIndex.vue 380 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyStatistics/energyStatisticsTrend/index.vue 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyStatistics/energyStatisticsTrend/lineChart.vue 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyStatistics/energyStatisticsTrend/mixins/resize.js 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyStatistics/energyStatisticsTrend/realTimeIndex.vue 135 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyStatistics/energyStatisticsTrend/reportForm.vue 212 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyStatistics/energyStructure/EnergyIndex.vue 345 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyStatistics/energyStructure/index.vue 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyStatistics/energyStructure/lineChart.vue 158 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/energyStatistics/mixins/resize.js 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/equipmentMonitor/energyConsumption/curve.vue 291 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/equipmentMonitor/energyConsumption/index.vue 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/equipmentMonitor/energyConsumption/lineChart.vue 134 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/equipmentMonitor/history/historyIndex.vue 245 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/equipmentMonitor/history/index.vue 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/equipmentMonitor/keyEquipment/LineChart.vue 156 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/equipmentMonitor/keyEquipment/equipmentView.vue 358 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/equipmentMonitor/keyEquipment/index.vue 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/equipmentMonitor/keyEquipment/pieChart.vue 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/equipmentMonitor/parameters/index.vue 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/equipmentMonitor/parameters/modelMonitorSetting.vue 182 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/equipmentMonitor/realTimeMonitoring/index.vue 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/equipmentMonitor/realTimeMonitoring/parametersTable.vue 173 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/equipmentMonitor/realTimeMonitoring/stateTable.vue 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/error/401.vue 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/error/404.vue 233 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/facility/archives/importAnnexTable.vue 205 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/facility/archives/index.vue 805 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/facility/querycount/importAnnexTable.vue 205 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/facility/querycount/index.vue 668 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/history/query/historyIndex.vue 361 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/history/query/index.vue 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/index.vue 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/indexInfo.vue 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/index_bak.vue 767 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/keyEquipment/dailykeyEquipment/BarChart.vue 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/keyEquipment/dailykeyEquipment/LineChart.vue 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/keyEquipment/dailykeyEquipment/index.vue 439 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/keyEquipment/monthlykeyEquipment/BarChart.vue 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/keyEquipment/monthlykeyEquipment/LineChart.vue 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/keyEquipment/monthlykeyEquipment/index.vue 394 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/keyEquipment/yearkeyEquipment/BarChart.vue 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/keyEquipment/yearkeyEquipment/LineChart.vue 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/keyEquipment/yearkeyEquipment/index.vue 376 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/login.vue 263 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/login/auth-redirect.vue 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/login/components/SocialSignin.vue 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/meter/implement/importFileTable.vue 205 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/meter/implement/importIndexTable.vue 210 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/meter/implement/index.vue 876 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/meter/implementCount/importFileTable.vue 195 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/meter/implementCount/importIndexTable.vue 203 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/meter/implementCount/index.vue 808 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/monitor/druid/index.vue 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/monitor/job/index.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/monitor/logininfor/index.vue 260 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/monitor/online/index.vue 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/monitor/operlog/index.vue 356 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/monitor/server/index.vue 210 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/onlineMonitoring/gatewayAdministration/importAnnexTable.vue 138 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/onlineMonitoring/gatewayAdministration/index.vue 651 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/onlineMonitoring/gatewayMonitoring/importAnnexTable.vue 138 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/onlineMonitoring/gatewayMonitoring/index.vue 484 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/policy/policyInsert/importFileTable.vue 236 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/policy/policyInsert/index.vue 396 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/policy/policySelete/importFileTable.vue 227 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/policy/policySelete/index.vue 368 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/power-statistics-analyse/func/columns.js 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/power-statistics-analyse/func/merge-object.js 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/power-statistics-analyse/pari-passu/BarChart.vue 226 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/power-statistics-analyse/pari-passu/LineChart.vue 155 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/power-statistics-analyse/pari-passu/index.vue 421 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/power-statistics-analyse/per-passu/index.vue 421 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/redirect.vue 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/reportForm/annualReport/index.vue 241 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/reportForm/consolidatedStatements/index.vue 324 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/reportForm/dailyReport/index.vue 298 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/reportForm/index.vue 281 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/reportForm/monthlyReport/index.vue 193 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/reportForm/statements/BarChart.vue 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/reportForm/statements/index.vue 323 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/reportInfo/index.vue 384 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/reportSet/cjdIndex.vue 271 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/reportSet/index.vue 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/reportSet/modelWarnSetting.vue 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/reportSet/zbIndex.vue 443 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/stage/alarm/LinChart.vue 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/stage/alarm/alarmIndex.vue 652 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/stage/alarm/index.vue 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/statisticalData/gxdhcount/gxdhcountindex.vue 185 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/statisticalData/gxdhcount/index.vue 329 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/system/config/index.vue 381 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/system/dept/index.vue 341 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/system/dict/data.vue 375 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/system/dict/index.vue 376 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/system/log/index.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/system/menu/index.vue 494 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/system/notice/index.vue 376 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/system/post/index.vue 360 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/system/role/index.vue 597 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/system/user/index.vue 742 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/system/user/profile/index.vue 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/system/user/profile/resetPwd.vue 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/system/user/profile/userAvatar.vue 138 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/system/user/profile/userInfo.vue 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/tool/build/index.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/tool/gen/basicInfoForm.vue 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/tool/gen/editTable.vue 204 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/tool/gen/genInfoForm.vue 154 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/tool/gen/importTable.vue 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/tool/gen/index.vue 287 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/tool/swagger/index.vue 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/workforce/dutyManagement/rostering_duty.vue 303 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/workforce/management/scheme.vue 374 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/workforce/management/schemeItem.vue 361 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/workforce/rosteringManagement/index.vue 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/workforce/rosteringManagement/scheduling_basis.vue 361 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/workforce/shiftManagement/index.vue 144 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/workforce/shiftManagement/rostering_shift.vue 342 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/workingProcedure/dailyWorkingProcedure/BarChart.vue 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/workingProcedure/dailyWorkingProcedure/LineChart.vue 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/workingProcedure/dailyWorkingProcedure/index.vue 325 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/workingProcedure/monthlyWorkingProcedure/BarChart.vue 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/workingProcedure/monthlyWorkingProcedure/LineChart.vue 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/workingProcedure/monthlyWorkingProcedure/index.vue 324 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/workingProcedure/yearWorkingProcedure/BarChart.vue 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/workingProcedure/yearWorkingProcedure/LineChart.vue 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/src/views/workingProcedure/yearWorkingProcedure/index.vue 330 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/upload/政策法规行政附件.doc 补丁 | 查看 | 原始文档 | blame | 历史
energy_management_ui/vue.config.js 140 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package-lock.json 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
parent/pom.xml 285 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pom.xml 445 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
start.bat 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
start.sh 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/pom.xml 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/AdminApplication.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/AdminServletInitializer.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/alarm/AlarmAnalyisisController.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/alarm/AlarmItemController.java 139 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/alarm/AlarmLimitTypeController.java 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/alarm/HistoryAlarmController.java 171 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/alarm/RealTimeAlarmController.java 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/auxiliaryinput/EnergyIndicatorsController.java 117 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/auxiliaryinput/ProductOutputController.java 528 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/basicdata/FacilityAnnexController.java 181 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/basicdata/FacilityArchivesController.java 166 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/basicdata/MeterImplementController.java 162 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/basicdata/SysEnerclassController.java 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/basicdata/SysEnergyController.java 211 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/common/CaptchaController.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/common/CommonController.java 163 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/comprehensivestatistics/ComprehensiveStatisticsController.java 175 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/comprehensivestatistics/DailyComprehensiveController.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/consumptionanalysis/ConsumptionAnalysisController.java 184 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/gatewaysetting/GatewaySettingController.java 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/homepage/HomePageController.java 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/keyequipment/DailyKeyEquipmenteController.java 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/keyequipment/MonthlyKeyEquipmentController.java 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/keyequipment/YearKeyEquipmentController.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/meter/MeterAnnexController.java 179 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/meter/MeterController.java 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/model/CalcFunctionController.java 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/model/DaqTemplateController.java 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/model/EnergyIndexController.java 207 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/model/IndexStorageController.java 151 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/model/ModelInfoController.java 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/model/ModelNodeController.java 383 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/monitor/CacheController.java 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/monitor/ServerController.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/monitor/SysLogininforController.java 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/monitor/SysOperlogController.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/monitor/SysUserOnlineController.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/peakvalley/ElectricityPriceController.java 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/peakvalley/ElectricityPriceDateController.java 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/peakvalley/PeakValleyController.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/realtimedata/RealtimeDataController.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/realtimedata/RealtimeTrendController.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/realtimedata/SysEquipmentFileController.java 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/system/SysConfigController.java 133 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/system/SysDeptController.java 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/system/SysDictDataController.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/system/SysDictTypeController.java 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/system/SysIndexController.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/system/SysLoginController.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/system/SysMenuController.java 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/system/SysNameConfigController.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/system/SysNoticeController.java 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/system/SysPostController.java 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/system/SysProfileController.java 138 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/system/SysRegisterController.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/system/SysRoleController.java 262 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/system/SysUserController.java 251 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/controller/tool/TestController.java 183 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/java/com/zhitan/web/core/config/SwaggerConfig.java 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/resources/META-INF/spring-devtools.properties 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/resources/application-dev.yml 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/resources/application-prod.yml 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/resources/application.yml 172 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/resources/banner.txt 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/resources/i18n/messages.properties 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/resources/logback.xml 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/src/main/resources/mybatis/mybatis-config.xml 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/target/classes/META-INF/spring-devtools.properties 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/target/classes/application-dev.yml 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/target/classes/application-prod.yml 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/target/classes/application.yml 172 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/target/classes/banner.txt 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/target/classes/i18n/messages.properties 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/target/classes/logback.xml 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-admin/target/classes/mybatis/mybatis-config.xml 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/pom.xml 139 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/annotation/Anonymous.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/annotation/DataScope.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/annotation/DataSource.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/annotation/Excel.java 187 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/annotation/Excels.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/annotation/Log.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/annotation/RateLimiter.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/annotation/RepeatSubmit.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/annotation/Sensitive.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/config/BaseConfig.java 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/config/serializer/SensitiveJsonSerializer.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/constant/CacheConstants.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/constant/CommonConst.java 145 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/constant/Constants.java 178 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/constant/GenConstants.java 117 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/constant/HttpStatus.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/constant/ScheduleConstants.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/constant/UserConstants.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/core/controller/BaseController.java 218 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/core/domain/AjaxResult.java 216 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/core/domain/BaseEntity.java 170 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/core/domain/R.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/core/domain/TreeEntity.java 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/core/domain/TreeSelect.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/core/domain/entity/SysDept.java 208 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/core/domain/entity/SysDictData.java 180 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/core/domain/entity/SysDictType.java 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/core/domain/entity/SysMenu.java 276 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/core/domain/entity/SysRole.java 245 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/core/domain/entity/SysUser.java 327 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/core/domain/model/LoginBody.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/core/domain/model/LoginUser.java 266 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/core/domain/model/RegisterBody.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/core/page/PageDomain.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/core/page/TableDataInfo.java 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/core/page/TableSupport.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/core/redis/RedisCache.java 268 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/core/text/CharsetKit.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/core/text/Convert.java 1006 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/core/text/StrFormatter.java 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/enums/BusinessStatus.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/enums/BusinessType.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/enums/CalcType.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/enums/CollectionModes.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/enums/DataSourceType.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/enums/DesensitizedType.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/enums/ElectricityTypeEnum.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/enums/GroupTimeType.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/enums/HttpMethod.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/enums/IndexType.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/enums/LimitType.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/enums/OperatorType.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/enums/Quality.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/enums/RetrievalModes.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/enums/StatisticType.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/enums/TimeType.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/enums/UserStatus.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/exception/CustomException.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/exception/DemoModeException.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/exception/GlobalException.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/exception/ServiceException.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/exception/UtilException.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/exception/base/BaseException.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/exception/file/FileException.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/exception/file/FileNameLengthLimitExceededException.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/exception/file/FileSizeLimitExceededException.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/exception/file/FileUploadException.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/exception/file/InvalidExtensionException.java 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/exception/job/TaskException.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/exception/user/BlackListException.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/exception/user/CaptchaException.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/exception/user/CaptchaExpireException.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/exception/user/UserException.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/exception/user/UserNotExistsException.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/exception/user/UserPasswordNotMatchException.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/exception/user/UserPasswordRetryLimitExceedException.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/filter/PropertyPreExcludeFilter.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/filter/RepeatableFilter.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/filter/RepeatedlyRequestWrapper.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/filter/XssFilter.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/filter/XssHttpServletRequestWrapper.java 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/utils/Arith.java 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/utils/DateUtils.java 196 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/utils/DesensitizedUtil.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/utils/DictUtils.java 186 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/utils/ExceptionUtil.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/utils/LogUtils.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/utils/MessageUtils.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/utils/PageUtils.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/utils/ReflectionUtils.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/utils/SecurityUtils.java 169 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/utils/ServletUtils.java 219 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/utils/StringUtils.java 685 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/utils/Threads.java 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/utils/bean/BeanUtils.java 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/utils/bean/BeanValidators.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/utils/file/FileTypeUtils.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/utils/file/FileUploadUtils.java 310 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/utils/file/FileUtils.java 292 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/utils/file/ImageUtils.java 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/utils/file/MimeTypeUtils.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/utils/html/EscapeUtil.java 167 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/utils/html/HTMLFilter.java 570 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/utils/http/HttpHelper.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/utils/http/HttpUtils.java 275 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/utils/ip/AddressUtils.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/utils/ip/IpUtils.java 382 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/utils/poi/ExcelHandlerAdapter.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/utils/poi/ExcelUtil.java 1795 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/utils/reflect/ReflectUtils.java 410 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/utils/sign/Base64.java 291 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/utils/sign/Md5Utils.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/utils/spring/SpringUtils.java 158 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/utils/sql/SqlUtil.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/utils/time/Time24HourUtil.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/utils/time/TimeManager.java 149 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/utils/uuid/IdUtils.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/utils/uuid/Seq.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/utils/uuid/UUID.java 484 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/xss/Xss.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-common/src/main/java/com/zhitan/common/xss/XssValidator.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/pom.xml 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/aspectj/DataScopeAspect.java 175 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/aspectj/DataSourceAspect.java 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/aspectj/LogAspect.java 256 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/aspectj/RateLimiterAspect.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/config/ApplicationConfig.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/config/CaptchaConfig.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/config/DruidConfig.java 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/config/FastJson2JsonRedisSerializer.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/config/FilterConfig.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/config/I18nConfig.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/config/KaptchaTextCreator.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/config/MyBatisInterceptor.java 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/config/MyBatisPlusConfig.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/config/RedisConfig.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/config/ResourcesConfig.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/config/SecurityConfig.java 147 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/config/ServerConfig.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/config/ThreadPoolConfig.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/config/properties/DruidProperties.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/config/properties/PermitAllUrlProperties.java 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/constant/SQLFieldConst.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/datasource/DynamicDataSource.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/datasource/DynamicDataSourceContextHolder.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/interceptor/RepeatSubmitInterceptor.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/interceptor/impl/SameUrlDataInterceptor.java 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/manager/AsyncManager.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/manager/ShutdownManager.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/manager/factory/AsyncFactory.java 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/mqtt/MqttClientUtil.java 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/mqtt/MqttMessageCallback.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/mqtt/domain/EletricData.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/security/context/AuthenticationContextHolder.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/security/context/PermissionContextHolder.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/security/filter/JwtAuthenticationTokenFilter.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/security/handle/AuthenticationEntryPointImpl.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/security/handle/LogoutSuccessHandlerImpl.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/web/domain/Server.java 240 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/web/domain/server/Cpu.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/web/domain/server/Jvm.java 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/web/domain/server/Mem.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/web/domain/server/Sys.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/web/domain/server/SysFile.java 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/web/exception/GlobalExceptionHandler.java 138 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/web/service/PermissionService.java 161 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/web/service/SysLoginService.java 181 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/web/service/SysPasswordService.java 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/web/service/SysPermissionService.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/web/service/SysRegisterService.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/web/service/TokenService.java 230 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-framework/src/main/java/com/zhitan/framework/web/service/UserDetailsServiceImpl.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/pom.xml 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/src/main/java/com/zhitan/generator/config/GenConfig.java 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/src/main/java/com/zhitan/generator/controller/GenController.java 258 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/src/main/java/com/zhitan/generator/domain/GenTable.java 385 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/src/main/java/com/zhitan/generator/domain/GenTableColumn.java 373 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/src/main/java/com/zhitan/generator/mapper/GenTableColumnMapper.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/src/main/java/com/zhitan/generator/mapper/GenTableMapper.java 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/src/main/java/com/zhitan/generator/service/GenTableColumnServiceImpl.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/src/main/java/com/zhitan/generator/service/GenTableServiceImpl.java 534 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/src/main/java/com/zhitan/generator/service/IGenTableColumnService.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/src/main/java/com/zhitan/generator/service/IGenTableService.java 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/src/main/java/com/zhitan/generator/util/GenUtils.java 258 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/src/main/java/com/zhitan/generator/util/VelocityInitializer.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/src/main/java/com/zhitan/generator/util/VelocityUtils.java 409 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/src/main/resources/generator.yml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/src/main/resources/mapper/generator/GenTableColumnMapper.xml 154 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/src/main/resources/mapper/generator/GenTableMapper.xml 172 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/src/main/resources/vm/java/controller.java.vm 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/src/main/resources/vm/java/domain.java.vm 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/src/main/resources/vm/java/mapper.java.vm 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/src/main/resources/vm/java/service.java.vm 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/src/main/resources/vm/java/serviceImpl.java.vm 162 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/src/main/resources/vm/java/sub-domain.java.vm 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/src/main/resources/vm/js/api.js.vm 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/src/main/resources/vm/sql/sql.vm 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/src/main/resources/vm/vue/index-tree.vue.vm 505 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/src/main/resources/vm/vue/index.vue.vm 602 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/src/main/resources/vm/vue/v3/index-tree.vue.vm 474 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/src/main/resources/vm/vue/v3/index.vue.vm 590 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/src/main/resources/vm/xml/mapper.xml.vm 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/target/classes/generator.yml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/target/classes/mapper/generator/GenTableColumnMapper.xml 154 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/target/classes/mapper/generator/GenTableMapper.xml 172 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/target/classes/vm/java/controller.java.vm 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/target/classes/vm/java/domain.java.vm 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/target/classes/vm/java/mapper.java.vm 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/target/classes/vm/java/service.java.vm 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/target/classes/vm/java/serviceImpl.java.vm 162 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/target/classes/vm/java/sub-domain.java.vm 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/target/classes/vm/js/api.js.vm 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/target/classes/vm/sql/sql.vm 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/target/classes/vm/vue/index-tree.vue.vm 505 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/target/classes/vm/vue/index.vue.vm 602 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/target/classes/vm/vue/v3/index-tree.vue.vm 474 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/target/classes/vm/vue/v3/index.vue.vm 590 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-generator/target/classes/vm/xml/mapper.xml.vm 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-quartz/pom.xml 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-quartz/src/main/java/com/zhitan/quartz/controller/SysJobController.java 186 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-quartz/src/main/java/com/zhitan/quartz/controller/SysJobLogController.java 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-quartz/src/main/java/com/zhitan/quartz/domain/SysJob.java 172 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-quartz/src/main/java/com/zhitan/quartz/domain/SysJobLog.java 155 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-quartz/src/main/java/com/zhitan/quartz/mapper/SysJobLogMapper.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-quartz/src/main/java/com/zhitan/quartz/mapper/SysJobMapper.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-quartz/src/main/java/com/zhitan/quartz/service/ISysJobLogService.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-quartz/src/main/java/com/zhitan/quartz/service/ISysJobService.java 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-quartz/src/main/java/com/zhitan/quartz/service/impl/SysJobLogServiceImpl.java 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-quartz/src/main/java/com/zhitan/quartz/service/impl/SysJobServiceImpl.java 262 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-quartz/src/main/java/com/zhitan/quartz/task/RyTask.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-quartz/src/main/java/com/zhitan/quartz/util/AbstractQuartzJob.java 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-quartz/src/main/java/com/zhitan/quartz/util/CronUtils.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-quartz/src/main/java/com/zhitan/quartz/util/JobInvokeUtil.java 182 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-quartz/src/main/java/com/zhitan/quartz/util/QuartzDisallowConcurrentExecution.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-quartz/src/main/java/com/zhitan/quartz/util/QuartzJobExecution.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-quartz/src/main/java/com/zhitan/quartz/util/ScheduleUtils.java 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-quartz/src/main/resources/mapper/quartz/SysJobLogMapper.xml 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-quartz/src/main/resources/mapper/quartz/SysJobMapper.xml 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-quartz/target/classes/mapper/quartz/SysJobLogMapper.xml 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-quartz/target/classes/mapper/quartz/SysJobMapper.xml 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/pom.xml 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/alarm/domain/AlarmItem.java 184 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/alarm/domain/HistoryAlarm.java 173 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/alarm/domain/HistoryTable.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/alarm/domain/JkHistoryAlarm.java 271 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/alarm/domain/JkRealTimeAlarmList.java 208 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/alarm/domain/LimitType.java 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/alarm/domain/RealTimeAlarm.java 177 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/alarm/domain/dto/AlarmAnalysisDTO.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/alarm/domain/vo/AlarmAnalysisVO.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/alarm/mapper/AlarmItemMapper.java 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/alarm/mapper/AlarmLimitTypeMapper.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/alarm/mapper/HistoryAlarmMapper.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/alarm/mapper/RealtimeAlarmMapper.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/alarm/services/IAlarmAnalyisisService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/alarm/services/IAlarmItemService.java 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/alarm/services/IAlarmLimitTypeService.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/alarm/services/IHistoryAlarmService.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/alarm/services/IRealtimeAlarmService.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/alarm/services/impl/AlarmAnalyisisServiceImpl.java 207 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/alarm/services/impl/AlarmItemServiceImpl.java 204 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/alarm/services/impl/AlarmLimitTypeServiceImpl.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/alarm/services/impl/HistoryAlarmServiceImpl.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/alarm/services/impl/RealtimeAlarmServiceImpl.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/basicdata/domain/FacilityAnnex.java 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/basicdata/domain/FacilityArchives.java 300 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/basicdata/domain/MeterAnnex.java 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/basicdata/domain/MeterImplement.java 328 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/basicdata/domain/MeterImplementCount.java 245 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/basicdata/domain/MeterImplementExcel.java 245 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/basicdata/domain/SysEnerclass.java 131 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/basicdata/domain/SysEnercoefficient.java 172 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/basicdata/domain/SysEnergy.java 322 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/basicdata/domain/SysPrice.java 174 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/basicdata/domain/SysProduct.java 240 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/basicdata/domain/vo/EnergyTypeModel.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/basicdata/mapper/FacilityAnnexMapper.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/basicdata/mapper/FacilityArchivesMapper.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/basicdata/mapper/MeterAnnexMapper.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/basicdata/mapper/MeterImplementCountMapper.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/basicdata/mapper/MeterImplementMapper.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/basicdata/mapper/SysEnerclassMapper.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/basicdata/mapper/SysEnergyMapper.java 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/basicdata/services/IFacilityAnnexService.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/basicdata/services/IFacilityArchivesService.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/basicdata/services/IMeterAnnexService.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/basicdata/services/IMeterImplementCountService.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/basicdata/services/IMeterImplementService.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/basicdata/services/ISysEnerclassService.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/basicdata/services/ISysEnergyService.java 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/basicdata/services/impl/FacilityAnnexServiceImpl.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/basicdata/services/impl/FacilityArchivesServiceImpl.java 285 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/basicdata/services/impl/MeterAnnexServiceImpl.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/basicdata/services/impl/MeterImplementCountServiceImpl.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/basicdata/services/impl/MeterImplementServiceImpl.java 354 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/basicdata/services/impl/SysEnerclassServiceImpl.java 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/basicdata/services/impl/SysEnergyServiceImpl.java 235 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/domain/Comprehensive.java 386 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/domain/ComprehensiveStatistics.java 186 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/domain/DailyComprehensive.java 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/mapper/ComprehensiveStatisticsMapper.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/mapper/DailyComprehensiveMapper.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/service/IComprehensiveStatisticsService.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/service/IDailyComprehensiveService.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/service/impl/ComprehensiveStatisticsImpl.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/comprehensivestatistics/service/impl/DailyComprehensiveServiceImpl.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/consumptionanalysis/domain/dto/ConsumptionAnalysisDTO.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/consumptionanalysis/domain/vo/ChartData.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/consumptionanalysis/domain/vo/ConsumptionAnalysisData.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/consumptionanalysis/domain/vo/ConsumptionAnalysisVO.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/consumptionanalysis/domain/vo/EnergyProportion.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/consumptionanalysis/domain/vo/ProductEnergyAnalysisData.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/consumptionanalysis/domain/vo/ProductEnergyAnalysisVO.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/consumptionanalysis/domain/vo/RankingChartData.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/consumptionanalysis/domain/vo/RankingDataVO.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/consumptionanalysis/domain/vo/RankingEnergyData.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/consumptionanalysis/service/IConsumptionAnalysisService.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/consumptionanalysis/service/impl/ConsumptionAnalysisServiceImpl.java 1168 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/dataitem/domain/DataEntry.java 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/dataitem/domain/StagseDataEntry.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/dataitem/mapper/DataItemMapper.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/dataitem/service/IDataItemService.java 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/dataitem/service/impl/DataItemServiceImpl.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/energyIndicators/domain/EnergyIndicators.java 196 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/energyIndicators/mapper/EnergyIndicatorsMapper.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/energyIndicators/service/IEnergyIndicatorsService.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/energyIndicators/service/impl/EnergyIndicatorsServiceImpl.java 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/gatewaysetting/domain/GatewaySetting.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/gatewaysetting/mapper/GatewaySettingMapper.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/gatewaysetting/service/IGatewaySettingService.java 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/gatewaysetting/service/impl/GatewaySettingServiceImpl.java 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/home/domain/vo/HomeEnergyConsumptionTrendVO.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/home/domain/vo/HomeEnergyStatisticsVO.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/home/domain/vo/HomePeakValleyVO.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/home/service/HomePageServiceImpl.java 456 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/home/service/impl/IHomePageService.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/keyequipment/domain/DailyKeyEquipment.java 320 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/keyequipment/domain/MonthlyKeyEquipment.java 428 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/keyequipment/domain/YearKeyEquipment.java 198 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/keyequipment/mapper/DailyKeyEquipmentMapper.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/keyequipment/mapper/MonthlyKeyEquipmentMapper.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/keyequipment/mapper/YearKeyEquipmentMapper.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/keyequipment/service/IDailyKeyEquipmentService.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/keyequipment/service/IMonthlyKeyEquipmentService.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/keyequipment/service/IYearKeyEquipmentService.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/keyequipment/service/impl/DailyKeyEquipmentServiceImpl.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/keyequipment/service/impl/MonthlyKeyEquipmentServiceImpl.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/keyequipment/service/impl/YearKeyEquipmentServiceImpl.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/meter/domain/MeterConfig.java 182 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/meter/domain/MeterImplements.java 267 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/meter/domain/MeterParam.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/meter/mapper/MetersMapper.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/meter/services/IMetersService.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/meter/services/impl/MetersServiceImpl.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/model/domain/CalcFunction.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/model/domain/DaqTemplate.java 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/model/domain/EnergyIndex.java 218 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/model/domain/EnergyIndexQuery.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/model/domain/IndexFormula.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/model/domain/IndexFormulaParam.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/model/domain/IndexStorage.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/model/domain/IndexStorageParam.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/model/domain/ModelInfo.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/model/domain/ModelNode.java 145 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/model/domain/TreeObject.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/model/domain/vo/ModelNodeIndexInfor.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/model/domain/vo/PointDataVO.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/model/mapper/CalcFunctionMapper.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/model/mapper/DaqTemplateMapper.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/model/mapper/EnergyIndexMapper.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/model/mapper/IndexFormulaMapper.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/model/mapper/IndexStorageMapper.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/model/mapper/ModelInfoMapper.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/model/mapper/ModelNodeMapper.java 199 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/model/service/ICalcFunctionService.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/model/service/IDaqTemplateService.java 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/model/service/IEnergyIndexService.java 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/model/service/IIndexStorageService.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/model/service/IModelInfoService.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/model/service/IModelNodeService.java 159 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/model/service/IndexFormulaService.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/model/service/impl/CalcFunctionServiceImpl.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/model/service/impl/DaqTemplateServiceImpl.java 165 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/model/service/impl/EnergyIndexServiceImpl.java 327 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/model/service/impl/IndexFormulaServiceImpl.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/model/service/impl/IndexStorageServiceImpl.java 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/model/service/impl/ModelInfoServiceImpl.java 158 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/model/service/impl/ModelNodeServiceImpl.java 359 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/peakvalley/domain/ElectricityDataItem.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/peakvalley/domain/ElectricityPrice.java 131 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/peakvalley/domain/ElectricityPriceDate.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/peakvalley/domain/dto/ElectricityDataItemListDTO.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/peakvalley/domain/dto/ElectricityTypeSettingAddDTO.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/peakvalley/domain/dto/ElectricityTypeSettingItemAddDTO.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/peakvalley/domain/dto/ElectricityTypeSettingItemUpdateDTO.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/peakvalley/domain/dto/ElectricityTypeSettingUpdateDTO.java 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/peakvalley/domain/dto/PeakValleyDTO.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/peakvalley/domain/vo/ElectricityPeriodFeeDetailVO.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/peakvalley/domain/vo/ElectricityTypeSettingItemQueryVO.java 151 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/peakvalley/domain/vo/ElectricityTypeSettingItemVO.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/peakvalley/domain/vo/ElectricityTypeSettingPageListVO.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/peakvalley/domain/vo/peakvalley/PeakValleyDayDataVO.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/peakvalley/domain/vo/peakvalley/PeakValleyDayTotalVO.java 250 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/peakvalley/domain/vo/peakvalley/PeakValleyDayVO.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/peakvalley/domain/vo/peakvalley/PeakValleyHourDataVO.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/peakvalley/domain/vo/peakvalley/PeakValleyHourVO.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/peakvalley/domain/vo/peakvalley/PeakValleyLineChatVO.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/peakvalley/domain/vo/peakvalley/PeakValleyPieChatVO.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/peakvalley/mapper/ElectricityPriceDateMapper.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/peakvalley/mapper/ElectricityPriceMapper.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/peakvalley/mapper/PeakValleyMapper.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/peakvalley/service/IElectricityPriceDateService.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/peakvalley/service/IElectricityPriceService.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/peakvalley/service/IPeakValleyService.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/peakvalley/service/impl/ElectricityPriceDateServiceImpl.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/peakvalley/service/impl/ElectricityPriceServiceImpl.java 150 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/peakvalley/service/impl/PeakValleyServiceImpl.java 475 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/productoutput/domain/ProductOutput.java 165 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/productoutput/mapper/ProductOutputMapper.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/productoutput/services/IProductOutputService.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/productoutput/services/impl/ProductOutputServiceImpl.java 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/realtimedata/config/RtdbConfig.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/realtimedata/data/VirtualRtdb.java 167 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/realtimedata/data/influxdb/InfluxDBRepository.java 231 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/realtimedata/data/influxdb/QueryType.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/realtimedata/domain/DataItem.java 168 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/realtimedata/domain/ElectricityDataDetail.java 157 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/realtimedata/domain/StatisticResult.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/realtimedata/domain/SysEquipmentFile.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/realtimedata/domain/SysSvgInfo.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/realtimedata/domain/TagValue.java 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/realtimedata/domain/TagValueResult.java 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/realtimedata/domain/WritePoint.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/realtimedata/domain/dto/EnergyIndexMonitorDTO.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/realtimedata/domain/vo/EquipmentPointParametersExcel.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/realtimedata/domain/vo/EquipmentPointParametersVO.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/realtimedata/domain/vo/ExportrealtimeTrendVO.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/realtimedata/domain/vo/RealTimeDataVO.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/realtimedata/domain/vo/RealTimeHistoryDataVO.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/realtimedata/domain/vo/RealTimeIndexModel.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/realtimedata/domain/vo/SensorParamModel.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/realtimedata/mapper/PeriodDataMapper.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/realtimedata/mapper/SysEquipmentFileMapper.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/realtimedata/service/IPeriodDataService.java 314 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/realtimedata/service/ISysEquipmentFileService.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/realtimedata/service/RealtimeDatabase.java 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/realtimedata/service/RealtimeDatabaseService.java 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/realtimedata/service/RealtimeTrendService.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/realtimedata/service/impl/PeriodDataServiceImpl.java 635 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/realtimedata/service/impl/RealtimeDatabaseServiceImpl.java 149 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/realtimedata/service/impl/RealtimeTrendServiceImpl.java 169 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/realtimedata/service/impl/SysEquipmentFileServiceImpl.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/domain/SysCache.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/domain/SysConfig.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/domain/SysLoginInfo.java 149 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/domain/SysNameConfig.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/domain/SysNotice.java 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/domain/SysOperLog.java 272 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/domain/SysPost.java 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/domain/SysRoleDept.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/domain/SysRoleMenu.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/domain/SysUserOnline.java 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/domain/SysUserPost.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/domain/SysUserRole.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/domain/vo/MetaVo.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/domain/vo/RouterVo.java 148 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/mapper/SysConfigMapper.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/mapper/SysDeptMapper.java 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/mapper/SysDictDataMapper.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/mapper/SysDictTypeMapper.java 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/mapper/SysLoginInfoMapper.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/mapper/SysMenuMapper.java 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/mapper/SysNameConfigMapper.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/mapper/SysNoticeMapper.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/mapper/SysOperLogMapper.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/mapper/SysPostMapper.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/mapper/SysRoleDeptMapper.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/mapper/SysRoleMapper.java 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/mapper/SysRoleMenuMapper.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/mapper/SysUserMapper.java 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/mapper/SysUserPostMapper.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/mapper/SysUserRoleMapper.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/service/ISysConfigService.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/service/ISysDeptService.java 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/service/ISysDictDataService.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/service/ISysDictTypeService.java 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/service/ISysLoginInfoService.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/service/ISysMenuService.java 144 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/service/ISysNameConfigService.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/service/ISysNoticeService.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/service/ISysOperLogService.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/service/ISysPostService.java 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/service/ISysRoleService.java 173 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/service/ISysUserOnlineService.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/service/ISysUserService.java 206 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/service/impl/SysConfigServiceImpl.java 234 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/service/impl/SysDeptServiceImpl.java 340 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/service/impl/SysDictDataServiceImpl.java 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/service/impl/SysDictTypeServiceImpl.java 239 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/service/impl/SysLoginInfoServiceImpl.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/service/impl/SysMenuServiceImpl.java 531 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/service/impl/SysNameConfigServiceImpl.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/service/impl/SysNoticeServiceImpl.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/service/impl/SysOperLogServiceImpl.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/service/impl/SysPostServiceImpl.java 180 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/service/impl/SysRoleServiceImpl.java 426 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/service/impl/SysUserOnlineServiceImpl.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/system/service/impl/SysUserServiceImpl.java 494 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/alarm/AlarmItemMapper.xml 226 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/alarm/AlarmLimitTypeMapper.xml 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/alarm/HistoryAlarmMapper.xml 339 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/alarm/RealtimeAlarmMapper.xml 238 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/auxiliaryinput/ProductOutputMapper.xml 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/basicdata/FacilityAnnexMapper.xml 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/basicdata/FacilityArchivesMapper.xml 183 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/basicdata/MeterAnnexMapper.xml 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/basicdata/MeterImplementCountMapper.xml 143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/basicdata/MeterImplementMapper.xml 233 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/basicdata/SysEnerclassMapper.xml 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/basicdata/SysEnergyMapper.xml 263 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/comprehensivestatistics/ComprehensiveStatisticsMapper.xml 172 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/comprehensivestatistics/DailyComprehensiveMapper.xml 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/dataitem/DataItemMapper.xml 139 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/energyIndicators/EnergyIndicatorsMapper.xml 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/gatewaysetting/GatewaySettingMapper.xml 160 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/keyequipment/DailyKeyEquipmentMapper.xml 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/keyequipment/MonthlyKeyEquipmentMapper.xml 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/keyequipment/YearKeyEquipmentMapper.xml 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/meter/MeterImplementMapper.xml 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/model/CalcFunctionMapper.xml 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/model/DaqTemplateMapper.xml 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/model/EnergyIndexMapper.xml 380 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/model/IndexFormulaMapper.xml 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/model/IndexStorageMapper.xml 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/model/ModelInfoMapper.xml 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/model/ModelNodeMapper.xml 423 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/peakvalley/ElectricityDataItemMapper.xml 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/peakvalley/ElectricityPriceDateMapper.xml 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/peakvalley/EletricityPriceMapper.xml 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/realtimedata/PeriodDataMapper.xml 501 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/realtimedata/SysEquipmentFileMapper.xml 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/system/SysConfigMapper.xml 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/system/SysDeptMapper.xml 182 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/system/SysDictDataMapper.xml 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/system/SysDictTypeMapper.xml 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/system/SysLoginInfoMapper.xml 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/system/SysMenuMapper.xml 206 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/system/SysNameConfigMapper.xml 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/system/SysNoticeMapper.xml 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/system/SysOperLogMapper.xml 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/system/SysPostMapper.xml 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/system/SysRoleDeptMapper.xml 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/system/SysRoleMapper.xml 157 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/system/SysUserMapper.xml 222 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/system/SysUserPostMapper.xml 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/resources/mapper/system/SysUserRoleMapper.xml 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/alarm/AlarmItemMapper.xml 226 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/alarm/AlarmLimitTypeMapper.xml 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/alarm/HistoryAlarmMapper.xml 339 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/alarm/RealtimeAlarmMapper.xml 238 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/auxiliaryinput/ProductOutputMapper.xml 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/basicdata/FacilityAnnexMapper.xml 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/basicdata/FacilityArchivesMapper.xml 183 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/basicdata/MeterAnnexMapper.xml 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/basicdata/MeterImplementCountMapper.xml 143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/basicdata/MeterImplementMapper.xml 233 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/basicdata/SysEnerclassMapper.xml 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/basicdata/SysEnergyMapper.xml 263 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/comprehensivestatistics/ComprehensiveStatisticsMapper.xml 172 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/comprehensivestatistics/DailyComprehensiveMapper.xml 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/dataitem/DataItemMapper.xml 139 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/energyIndicators/EnergyIndicatorsMapper.xml 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/gatewaysetting/GatewaySettingMapper.xml 160 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/keyequipment/DailyKeyEquipmentMapper.xml 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/keyequipment/MonthlyKeyEquipmentMapper.xml 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/keyequipment/YearKeyEquipmentMapper.xml 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/meter/MeterImplementMapper.xml 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/model/CalcFunctionMapper.xml 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/model/DaqTemplateMapper.xml 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/model/EnergyIndexMapper.xml 380 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/model/IndexFormulaMapper.xml 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/model/IndexStorageMapper.xml 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/model/ModelInfoMapper.xml 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/model/ModelNodeMapper.xml 423 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/peakvalley/ElectricityDataItemMapper.xml 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/peakvalley/ElectricityPriceDateMapper.xml 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/peakvalley/EletricityPriceMapper.xml 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/realtimedata/PeriodDataMapper.xml 501 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/realtimedata/SysEquipmentFileMapper.xml 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/system/SysConfigMapper.xml 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/system/SysDeptMapper.xml 182 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/system/SysDictDataMapper.xml 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/system/SysDictTypeMapper.xml 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/system/SysLoginInfoMapper.xml 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/system/SysMenuMapper.xml 206 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/system/SysNameConfigMapper.xml 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/system/SysNoticeMapper.xml 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/system/SysOperLogMapper.xml 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/system/SysPostMapper.xml 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/system/SysRoleDeptMapper.xml 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/system/SysRoleMapper.xml 157 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/system/SysRoleMenuMapper.xml 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/system/SysUserMapper.xml 222 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/system/SysUserPostMapper.xml 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/target/classes/mapper/system/SysUserRoleMapper.xml 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.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.jar
Binary 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.ico
Binary files differ
energy_management_ui/public/index.html
ÎļþÒÑɾ³ý
energy_management_ui/public/logo.png
Binary 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.gif
Binary files differ
energy_management_ui/src/assets/404_images/404.png
Binary files differ
energy_management_ui/src/assets/404_images/404_cloud.png
Binary files differ
energy_management_ui/src/assets/home/cost.png
Binary files differ
energy_management_ui/src/assets/home/count.png
Binary files differ
energy_management_ui/src/assets/home/electric01.png
Binary files differ
energy_management_ui/src/assets/home/electric02.png
Binary files differ
energy_management_ui/src/assets/home/electric03.png
Binary files differ
energy_management_ui/src/assets/home/electric04.png
Binary files differ
energy_management_ui/src/assets/home/electric05.png
Binary files differ
energy_management_ui/src/assets/home/electric06.png
Binary 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.png
Binary files differ
energy_management_ui/src/assets/home/homeiconDQ.png
Binary files differ
energy_management_ui/src/assets/home/homeiconJ.png
Binary files differ
energy_management_ui/src/assets/home/homeiconT.png
Binary files differ
energy_management_ui/src/assets/home/homeiconW.png
Binary files differ
energy_management_ui/src/assets/home/homeiconY.png
Binary files differ
energy_management_ui/src/assets/home/homeicontitle.png
Binary files differ
energy_management_ui/src/assets/home/shi.png
Binary files differ
energy_management_ui/src/assets/home/statistic.png
Binary files differ
energy_management_ui/src/assets/home/tan.svg
ÎļþÒÑɾ³ý
energy_management_ui/src/assets/home/wen.png
Binary files differ
energy_management_ui/src/assets/home/zonghe.svg
ÎļþÒÑɾ³ý
energy_management_ui/src/assets/icons/checkbox.png
Binary files differ
energy_management_ui/src/assets/icons/checked.png
Binary 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.jpg
Binary files differ
energy_management_ui/src/assets/image/breadcrumbBg.png
Binary files differ
energy_management_ui/src/assets/image/configureChart.png
Binary files differ
energy_management_ui/src/assets/image/image.png
Binary files differ
energy_management_ui/src/assets/image/index.png
Binary files differ
energy_management_ui/src/assets/image/index2.png
Binary files differ
energy_management_ui/src/assets/image/index3.png
Binary files differ
energy_management_ui/src/assets/image/index4.jpeg
Binary files differ
energy_management_ui/src/assets/image/isbreadcrumbBg.png
Binary files differ
energy_management_ui/src/assets/image/login-background.png
Binary files differ
energy_management_ui/src/assets/image/login-background1.png
Binary files differ
energy_management_ui/src/assets/image/navbar/Group.png
Binary files differ
energy_management_ui/src/assets/image/navbar/exit.png
Binary files differ
energy_management_ui/src/assets/image/navbar/xiala.png
Binary files differ
energy_management_ui/src/assets/image/rectangle.png
Binary files differ
energy_management_ui/src/assets/image/touxiang.png
Binary files differ
energy_management_ui/src/assets/image/treeBg.png
Binary files differ
energy_management_ui/src/assets/logo/logo-page-left.png
Binary files differ
energy_management_ui/src/assets/logo/logo.png
Binary files differ
energy_management_ui/src/assets/logo/toray_group_icon.png
Binary 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/Õþ²ß·¨¹æÐÐÕþ¸½¼þ.doc
Binary 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
            "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['\''] = "&#039;".toCharArray(); // å•引号
        TEXT['"'] = "&#34;".toCharArray(); // åŒå¼•号
        TEXT['&'] = "&#38;".toCharArray(); // &符
        TEXT['<'] = "&#60;".toCharArray(); // å°äºŽå·
        TEXT['>'] = "&#62;".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, "&amp;", result);
        result = regexReplace(P_QUOTE, "&quot;", result);
        result = regexReplace(P_LEFT_ARROW, "&lt;", result);
        result = regexReplace(P_RIGHT_ARROW, "&gt;", 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, "&lt;$1", s);
            s = regexReplace(P_STRAY_RIGHT_ARROW, "$1$2&gt;<", 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); // (<|$)
                // ä¸æ›¿æ¢åŒå¼•号为&quot;,防止json格式无效 regexReplace(P_QUOTE, "&quot;", 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 : "&amp;" + 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