elkers
2025-04-07 2dba8dbb14af4616eec876fd9af744651e8beeda
初始化项目
已修改4个文件
已添加206个文件
19379 ■■■■■ 文件已修改
pom.xml 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/common/config/MqttConfig.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/dto/UploadResultVo.java 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/enums/EMenuType.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/enums/EOperation.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/adminmenu/ReqCreateAdminMenu.java 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/adminmenu/ReqModifyAdminMenu.java 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/adminpermission/ReqCreateAdminPermission.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/adminpermission/ReqModifyAdminPermission.java 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/adminrole/ReqCreateAdminRole.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/adminrole/ReqModifyAdminRole.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/adminrolemenurelation/ReqCreateAdminRoleMenuRelation.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/adminrolemenurelation/ReqModifyAdminRoleMenuRelation.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/adminrolemenurelation/ReqSetListMenu4Role.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/adminrolemenurelation/ReqSetListRole4Admin.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/adminrolepermissionrelation/ReqCreateAdminRolePermissionRelation.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/adminrolepermissionrelation/ReqModifyAdminRolePermissionRelation.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/adminrolerelation/ReqCreateAdminRoleRelation.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/adminrolerelation/ReqModifyAdminRoleRelation.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/adminuser/ReqAdminLogin.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/adminuser/ReqCreateAdminUser.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/adminuser/ReqModifyAdminUser.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/adminuser/ReqSetListRole4Admin.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/alarmhistory/ReqCreateAlarmHistory.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/alarmhistory/ReqModifyAlarmHistory.java 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/alarmscheme/ReqCreateAlarmScheme.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/alarmscheme/ReqModifyAlarmScheme.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/commonparameters/ReqCreateCommonParameters.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/commonparameters/ReqModifyCommonParameters.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/sysdictdata/ReqCreateSysDictData.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/sysdictdata/ReqModifySysDictData.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/sysdicttype/ReqCreateSysDictType.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/sysdicttype/ReqModifySysDictType.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/sysregion/ReqCreateSysRegion.java 175 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/sysregion/ReqModifySysRegion.java 186 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/waterfacility/ReqCreateWaterFacility.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/waterfacility/ReqEditWaterFacility.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/waterfacility/ReqModifyWaterFacility.java 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/waterfacilityparameter/ReqAddParameter.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/waterfacilityparameter/ReqCreateWaterFacilityParameter.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/waterfacilityparameter/ReqModifyWaterFacilityParameter.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/waterfacilityparameter/ReqPointAndParameter.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/waterfacilitytype/ReqCreateWaterFacilityType.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/waterfacilitytype/ReqModifyWaterFacilityType.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/watermonitorypoint/ReqCreateWaterMonitoryPoint.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/watermonitorypoint/ReqModifyWaterMonitoryPoint.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/response/admin/ResAdminLogin.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/response/admin/ResAdminMenuTree.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/response/admin/ResAdminMenuTreeAndPermission.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/response/admin/ResAdminPermission.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/response/admin/ResAdminPower.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/response/point/ResMonitoryPointData.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/response/point/ResMonitoryPointDataFacility.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/response/point/ResMonitoryPointDataFacilityParameter.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/response/region/ResBasicRegionTree.java 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/response/region/ResRegionTree.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/response/statistics/ResGetTodayStatistics.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/response/statistics/ResStatistics4DateAndType.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/response/statistics/ResStatisticsItem.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/search/SearchAdminMenu.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/search/SearchAdminMenus.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/search/SearchAdminPermission.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/search/SearchAdminRole.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/search/SearchAdminRoleMenuRelation.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/search/SearchAdminRolePermissionRelation.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/search/SearchAdminRoleRelation.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/search/SearchAdminUser.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/search/SearchAlarmHistory.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/search/SearchAlarmScheme.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/search/SearchCommonParameters.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/search/SearchSysDictData.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/search/SearchSysDictType.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/search/SearchSysRegion.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/search/SearchWaterFacility.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/search/SearchWaterFacilityParameter.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/search/SearchWaterFacilityType.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/search/SearchWaterMonitoryPoint.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/host/controller/WaterFacilityController.java 163 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/host/controller/WaterFacilityParameterController.java 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/host/controller/WaterFacilityTypeController.java 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/host/controller/WaterMonitoryPointController.java 131 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/host/controller/admin/AdminMenuController.java 273 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/host/controller/admin/AdminPermissionController.java 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/host/controller/admin/AdminRoleController.java 321 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/host/controller/admin/AdminUserController.java 294 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/host/controller/base/FileController.java 188 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/host/controller/base/SysDictDataController.java 145 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/host/controller/base/SysDictTypeController.java 143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/host/controller/base/SysRegionController.java 160 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/host/mqtt/MQTTConnect.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/host/mqtt/MQTTServer.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/host/mqtt/MQTTStart.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/host/mqtt/MQTTSubsribe.java 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/host/mqtt/PushCallback.java 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/host/mqtt/WebSocket.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/impl/AdminMenuMapperImpl.java 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/impl/AdminMenusMapperImpl.java 137 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/impl/AdminPermissionMapperImpl.java 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/impl/AdminRoleMapperImpl.java 117 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/impl/AdminRoleMenuRelationMapperImpl.java 144 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/impl/AdminRolePermissionRelationMapperImpl.java 144 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/impl/AdminRoleRelationMapperImpl.java 144 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/impl/AdminUserMapperImpl.java 134 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/impl/AlarmHistoryMapperImpl.java 152 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/impl/AlarmSchemeMapperImpl.java 144 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/impl/CommonParametersMapperImpl.java 156 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/impl/SysDictDataMapperImpl.java 187 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/impl/SysDictTypeMapperImpl.java 150 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/impl/SysRegionMapperImpl.java 162 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/impl/WaterFacilityMapperImpl.java 156 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/impl/WaterFacilityParameterMapperImpl.java 151 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/impl/WaterFacilityTypeMapperImpl.java 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/impl/WaterMonitoryPointMapperImpl.java 152 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/mapper/AdminMenuMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/mapper/AdminMenusMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/mapper/AdminPermissionMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/mapper/AdminRoleMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/mapper/AdminRoleMenuRelationMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/mapper/AdminRolePermissionRelationMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/mapper/AdminRoleRelationMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/mapper/AdminUserMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/mapper/AlarmHistoryMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/mapper/AlarmSchemeMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/mapper/CommonParametersMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/mapper/SysDictDataMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/mapper/SysDictTypeMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/mapper/SysRegionMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/mapper/WaterFacilityMapper.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/mapper/WaterFacilityParameterMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/mapper/WaterFacilityTypeMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/mapper/WaterMonitoryPointMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/po/AdminMenuPO.java 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/po/AdminMenusPO.java 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/po/AdminPermissionPO.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/po/AdminRoleMenuRelationPO.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/po/AdminRolePO.java 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/po/AdminRolePermissionRelationPO.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/po/AdminRoleRelationPO.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/po/AdminUserPO.java 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/po/AlarmHistoryPO.java 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/po/AlarmSchemePO.java 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/po/CommonParametersPO.java 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/po/SysDictDataPO.java 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/po/SysDictTypePO.java 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/po/SysRegionPO.java 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/po/WaterFacilityPO.java 143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/po/WaterFacilityParameterPO.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/po/WaterFacilityTypePO.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/po/WaterMonitoryPointPO.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/vo/AdminMenuVO.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/vo/AdminPermissionVO.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/vo/AdminRoleMenuRelationVO.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/vo/AdminRolePermissionRelationVO.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/vo/AdminRoleRelationVO.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/vo/AdminRoleVO.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/vo/AdminUserVO.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/vo/AlarmHistoryVO.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/vo/AlarmSchemeVO.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/vo/CommonParametersVO.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/vo/SysDictDataVO.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/vo/SysDictTypeVO.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/vo/SysRegionVO.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/vo/WaterFacilityParameterVO.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/vo/WaterFacilityTypeVO.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/vo/WaterFacilityVO.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/vo/WaterMonitoryPointVO.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/AdminPowerService.java 869 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/AdminRoleMenuRelationService.java 246 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/AdminRolePermissionRelationService.java 246 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/AdminRoleRelationService.java 246 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/AdminRoleService.java 246 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/AdminService.java 544 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/AdminUserService.java 246 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/AlarmHistoryService.java 275 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/AlarmSchemeService.java 275 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/CommonParametersService.java 290 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/QuartzTaskErrorService.java 246 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/QuartzTaskInfoService.java 246 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/QuartzTaskRecordService.java 246 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/SysDictDataService.java 390 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/SysDictTypeService.java 323 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/SysRegionService.java 258 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/WaterFacilityParameterService.java 284 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/WaterFacilityService.java 238 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/WaterFacilityTypeService.java 274 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/WaterMonitoryPointService.java 261 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/cache/AdminMenuService.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/cache/AdminPermissionService.java 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/convert/AdminMenuConvert.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/convert/AdminPermissionConvert.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/convert/AdminRoleConvert.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/convert/AdminRoleMenuRelationConvert.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/convert/AdminRolePermissionRelationConvert.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/convert/AdminRoleRelationConvert.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/convert/AdminUserConvert.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/convert/AlarmHistoryConvert.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/convert/AlarmSchemeConvert.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/convert/CommonParametersConvert.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/convert/SysDictDataConvert.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/convert/SysDictTypeConvert.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/convert/SysRegionConvert.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/convert/WaterFacilityConvert.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/convert/WaterFacilityParameterConvert.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/convert/WaterFacilityTypeConvert.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/convert/WaterMonitoryPointConvert.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/dto/ResAdminDetail.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/dto/StatisticsTodayDto.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test/java/com/nanjing/water/GenCodeGauss.java 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test/java/com/nanjing/water/GenCodeMysql.java 62 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pom.xml
@@ -10,9 +10,9 @@
    </parent>
    <groupId>com.nanjing.water</groupId>
    <artifactId>xxx-yyy</artifactId>
    <artifactId>nanjing-station</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>xxx-yyy-service</name>
    <name>nanjing-station-service</name>
    <description>The service which yyy of xxx project</description>
    <properties>
@@ -236,7 +236,18 @@
            <artifactId>spring-boot-starter-quartz</artifactId>
            <version>2.0.3.RELEASE</version>
        </dependency>
        <!-- mqtt 依赖 -->
        <dependency>
            <groupId>org.eclipse.paho</groupId>
            <artifactId>org.eclipse.paho.client.mqttv3</artifactId>
            <version>1.2.5</version>
        </dependency>
        <!--生成验证码工具-->
        <dependency>
            <groupId>com.github.whvcse</groupId>
            <artifactId>easy-captcha</artifactId>
            <version>1.6.2</version>
        </dependency>
        <!--************************************************** 单元测试相关 **************************************************-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
src/main/java/com/nanjing/water/common/config/MqttConfig.java
对比新文件
@@ -0,0 +1,61 @@
package com.nanjing.water.common.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
@Data
@Component
@ConfigurationProperties(prefix = "mqtt")
@Order(10)
public class MqttConfig {
    /**
     * 是否启用
     */
    private Boolean enable;
    /**
     * 主机
     */
    private String host;
    /**
     * 端口
     */
    private Integer port;
    /**
     * 用户名
     */
    private String user;
    /**
     * 密码
     */
    private String password;
    /**
     * 订阅主题
     */
    private String topic;
    /**
     * 订阅消息的客户端id
     */
    private String clientId;
    /**
     * 连接超时时间
     */
    private Integer connectionTimeout;
    /**
     * 心跳
     */
    private Integer keepAliveInterval;
    /**
     * 发送消息的客户端id
     */
    private String serverClientId;
}
src/main/java/com/nanjing/water/entity/dto/UploadResultVo.java
对比新文件
@@ -0,0 +1,88 @@
package com.nanjing.water.entity.dto;
public class UploadResultVo {
    /**
     * 文件id,传参后原样输出,前端比对文件用,无实际意义。
     */
    private String fileId;
    /**
     * 原始文件名称 传参后原样输出
     */
    private String name;
    /**
     * 新文件名称(需要保存数据库的虚拟路径)
     */
    private String newFileName;
    /**
     * 文件预览地址
     */
    private String newFileView;
    /**
     * 文件类型
     */
    private String fileType;
    /**
     * 文件媒体类型
     */
    private String contentType;
    /**
     * 文件大小(kb)
     */
    private Long size;
    public String getFileId() {
        return fileId;
    }
    public void setFileId(String fileId) {
        this.fileId = fileId;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getNewFileName() {
        return newFileName;
    }
    public void setNewFileName(String newFileName) {
        this.newFileName = newFileName;
    }
    public String getNewFileView() {
        return newFileView;
    }
    public void setNewFileView(String newFileView) {
        this.newFileView = newFileView;
    }
    public String getFileType() {
        return fileType;
    }
    public void setFileType(String fileType) {
        this.fileType = fileType;
    }
    public String getContentType() {
        return contentType;
    }
    public void setContentType(String contentType) {
        this.contentType = contentType;
    }
    public Long getSize() {
        return size;
    }
    public void setSize(Long size) {
        this.size = size;
    }
}
src/main/java/com/nanjing/water/entity/enums/EMenuType.java
对比新文件
@@ -0,0 +1,66 @@
package com.nanjing.water.entity.enums;
import java.util.Arrays;
import java.util.Objects;
/**
 * 菜单类型
 */
public enum EMenuType {
    /**
     * 目录=1,
     */
    FOLDER("目录", 1),
    /**
     * 页面=2,
     */
    PAGE("页面", 2),
    ;
    /**
     * 枚举描述
     */
    private String desc;
    /**
     * 枚举值
     */
    private Integer value;
    public Integer getValue() {
        return value;
    }
    public String getDesc() {
        return desc;
    }
    /**
     * 构造方法
     * @param desc 枚举描述
     * @param value 枚举值
     */
    EMenuType(String desc, Integer value) {
        this.desc = desc;
        this.value = value;
    }
    /**
     * 根据值获取枚举
     *
     * @param value 枚举值
     * @return
     */
    public static EMenuType getByValue(Integer value) {
        return Arrays.stream(EMenuType.values())
                .filter(e -> Objects.equals(e.getValue(), value))
                .findAny()
                .orElse(null);
    }
    @Override
    public String toString() {
        return "EMenuType{" +
                "desc='" + desc + '\'' +
                ", value=" + value +
                '}';
    }
}
src/main/java/com/nanjing/water/entity/enums/EOperation.java
对比新文件
@@ -0,0 +1,98 @@
package com.nanjing.water.entity.enums;
import java.util.Arrays;
import java.util.Objects;
/**
 * 操作类型
 * @author linliu
 * @date 2019-01-02
 */
public enum EOperation {
    /**
     * 搜索
     */
    LIST("搜索", "list"),
    /**
     * 保存(新增+编辑)
     */
    SAVE("保存(新增+编辑)", "save"),
    /**
     * 新增
     */
    ADD("新增", "add"),
    /**
     * 详情
     */
    DETAIL("详情", "detail"),
    /**
     * 修改
     */
    UPDATE("修改", "update"),
    /**
     * 停用
     */
    DISABLED("停用", "disable"),
    /**
     * 启用
     */
    ENABLED("启用", "enable"),
    /**
     * 删除
     */
    DELETED("删除", "delete"),
    /**
     * 导入
     */
    IMPORT("导入", "import"),
    /**
     * 导出
     */
    EXPORT("导出", "export"),
    /**
     * 打印
     */
    PRINT("打印", "print"),
    ;
    private String desc;//枚举描述
    private String value;//枚举值
    public String getValue() {
        return value;
    }
    public String getDesc() {
        return desc;
    }
    /**
     * 构造方法
     * @param desc 枚举描述
     * @param value 枚举值
     */
    EOperation(String desc, String value) {
        this.desc = desc;
        this.value = value;
    }
    /**
     * 根据值获取枚举
     *
     * @param value 枚举值
     * @return
     */
    public static EOperation getByValue(String value) {
        return Arrays.stream(EOperation.values())
                .filter(e -> Objects.equals(e.getValue(), value))
                .findAny()
                .orElse(null);
    }
    @Override
    public String toString() {
        return "EOperation{" +
                "desc='" + desc + '\'' +
                ", value=" + value +
                '}';
    }
}
src/main/java/com/nanjing/water/entity/request/adminmenu/ReqCreateAdminMenu.java
对比新文件
@@ -0,0 +1,119 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.entity.request.adminmenu;
/**
 * 后台菜单
 * @author lin.liu
 */
public class ReqCreateAdminMenu {
    /**
     * 父级ID
     */
    private Long parentId;
    /**
     * 菜单名称
     */
    private String name;
    /**
     * 菜单标题
     */
    private String title;
    /**
     * 前端资源路径
     */
    private String url;
    /**
     * 菜单层级
     */
    private Integer level;
    /**
     * 排序值
     */
    private Integer sort;
    /**
     * 图标
     */
    private String icon;
    /**
     * 类型 EMenuType
     */
    private Integer type;
    public Long getParentId() {
        return this.parentId;
    }
    public void setParentId(Long parentId) {
        this.parentId = parentId;
    }
    public String getName() {
        return this.name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getTitle() {
        return this.title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getUrl() {
        return this.url;
    }
    public void setUrl(String url) {
        this.url = url;
    }
    public Integer getLevel() {
        return this.level;
    }
    public void setLevel(Integer level) {
        this.level = level;
    }
    public Integer getSort() {
        return this.sort;
    }
    public void setSort(Integer sort) {
        this.sort = sort;
    }
    public String getIcon() {
        return this.icon;
    }
    public void setIcon(String icon) {
        this.icon = icon;
    }
    public Integer getType() {
        return this.type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
}
src/main/java/com/nanjing/water/entity/request/adminmenu/ReqModifyAdminMenu.java
对比新文件
@@ -0,0 +1,141 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.entity.request.adminmenu;
/**
 * 后台菜单
 * @author lin.liu
 */
public class ReqModifyAdminMenu {
    /**
     * 主键
     */
    private Long id;
    /**
     * 父级ID
     */
    private Long parentId;
    /**
     * 菜单名称
     */
    private String name;
    /**
     * 菜单标题
     */
    private String title;
    /**
     * 前端资源路径
     */
    private String url;
    /**
     * 菜单层级
     */
    private Integer level;
    /**
     * 排序值
     */
    private Integer sort;
    /**
     * 图标
     */
    private String icon;
    /**
     * 状态 EState
     */
    private Integer status;
    /**
     * 类型 EMenuType
     */
    private Integer type;
    public Long getId() {
        return this.id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public Long getParentId() {
        return this.parentId;
    }
    public void setParentId(Long parentId) {
        this.parentId = parentId;
    }
    public String getName() {
        return this.name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getTitle() {
        return this.title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getUrl() {
        return this.url;
    }
    public void setUrl(String url) {
        this.url = url;
    }
    public Integer getLevel() {
        return this.level;
    }
    public void setLevel(Integer level) {
        this.level = level;
    }
    public Integer getSort() {
        return this.sort;
    }
    public void setSort(Integer sort) {
        this.sort = sort;
    }
    public String getIcon() {
        return this.icon;
    }
    public void setIcon(String icon) {
        this.icon = icon;
    }
    public Integer getStatus() {
        return this.status;
    }
    public void setStatus(Integer status) {
        this.status = status;
    }
    public Integer getType() {
        return this.type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
}
src/main/java/com/nanjing/water/entity/request/adminpermission/ReqCreateAdminPermission.java
对比新文件
@@ -0,0 +1,97 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.entity.request.adminpermission;
/**
 * 后台用户权限表
 * @author lin.liu
 */
public class ReqCreateAdminPermission {
    /**
     * 权限值
     */
    private String sn;
    /**
     * 菜单id
     */
    private Long menuId;
    /**
     * 前端资源url
     */
    private String menuUrl;
    /**
     * 名称
     */
    private String name;
    /**
     * 图标
     */
    private String icon;
    /**
     * 权限类型 EOperation
     */
    private String type;
    public String getSn() {
        return this.sn;
    }
    public void setSn(String sn) {
        this.sn = sn;
    }
    public Long getMenuId() {
        return this.menuId;
    }
    public void setMenuId(Long menuId) {
        this.menuId = menuId;
    }
    public String getMenuUrl() {
        return this.menuUrl;
    }
    public void setMenuUrl(String menuUrl) {
        this.menuUrl = menuUrl;
    }
    public String getName() {
        return this.name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getIcon() {
        return this.icon;
    }
    public void setIcon(String icon) {
        this.icon = icon;
    }
    public String getType() {
        return this.type;
    }
    public void setType(String type) {
        this.type = type;
    }
}
src/main/java/com/nanjing/water/entity/request/adminpermission/ReqModifyAdminPermission.java
对比新文件
@@ -0,0 +1,119 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.entity.request.adminpermission;
/**
 * 后台用户权限表
 * @author lin.liu
 */
public class ReqModifyAdminPermission {
    /**
     * 主键
     */
    private Long id;
    /**
     * 权限值
     */
    private String sn;
    /**
     * 菜单id
     */
    private Long menuId;
    /**
     * 前端资源url
     */
    private String menuUrl;
    /**
     * 名称
     */
    private String name;
    /**
     * 图标
     */
    private String icon;
    /**
     * 权限类型 EOperation
     */
    private String type;
    /**
     * 状态 EStatus
     */
    private Integer status;
    public Long getId() {
        return this.id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getSn() {
        return this.sn;
    }
    public void setSn(String sn) {
        this.sn = sn;
    }
    public Long getMenuId() {
        return this.menuId;
    }
    public void setMenuId(Long menuId) {
        this.menuId = menuId;
    }
    public String getMenuUrl() {
        return this.menuUrl;
    }
    public void setMenuUrl(String menuUrl) {
        this.menuUrl = menuUrl;
    }
    public String getName() {
        return this.name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getIcon() {
        return this.icon;
    }
    public void setIcon(String icon) {
        this.icon = icon;
    }
    public String getType() {
        return this.type;
    }
    public void setType(String type) {
        this.type = type;
    }
    public Integer getStatus() {
        return this.status;
    }
    public void setStatus(Integer status) {
        this.status = status;
    }
}
src/main/java/com/nanjing/water/entity/request/adminrole/ReqCreateAdminRole.java
对比新文件
@@ -0,0 +1,64 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.entity.request.adminrole;
/**
 * 后台用户角色表
 * @author lin.liu
 */
public class ReqCreateAdminRole {
    /**
     * 角色名称
     */
    private String name;
    /**
     * 描述
     */
    private String description;
    /**
     * 排序值
     */
    private Integer sort;
    public String getName() {
        return this.name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getDescription() {
        return this.description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
    public Integer getSort() {
        return this.sort;
    }
    public void setSort(Integer sort) {
        this.sort = sort;
    }
}
src/main/java/com/nanjing/water/entity/request/adminrole/ReqModifyAdminRole.java
对比新文件
@@ -0,0 +1,86 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.entity.request.adminrole;
/**
 * 后台用户角色表
 * @author lin.liu
 */
public class ReqModifyAdminRole {
    /**
     * 主键
     */
    private Long id;
    /**
     * 角色名称
     */
    private String name;
    /**
     * 描述
     */
    private String description;
    /**
     * 状态 EState
     */
    private Integer status;
    /**
     * 排序值
     */
    private Integer sort;
    public Long getId() {
        return this.id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getName() {
        return this.name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getDescription() {
        return this.description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
    public Integer getStatus() {
        return this.status;
    }
    public void setStatus(Integer status) {
        this.status = status;
    }
    public Integer getSort() {
        return this.sort;
    }
    public void setSort(Integer sort) {
        this.sort = sort;
    }
}
src/main/java/com/nanjing/water/entity/request/adminrolemenurelation/ReqCreateAdminRoleMenuRelation.java
对比新文件
@@ -0,0 +1,42 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.entity.request.adminrolemenurelation;
import lombok.Data;
/**
 * 后台角色菜单关系表
 * @author lin.liu
 * @description 后台角色菜单关系表
 */
@Data
public class ReqCreateAdminRoleMenuRelation {
    /**
     * 角色id
     */
    private Long roleId;
    /**
     * 菜单id
     */
    private Long menuId;
}
src/main/java/com/nanjing/water/entity/request/adminrolemenurelation/ReqModifyAdminRoleMenuRelation.java
对比新文件
@@ -0,0 +1,46 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.entity.request.adminrolemenurelation;
import lombok.Data;
/**
 * 后台角色菜单关系表
 * @author lin.liu
 * @description 后台角色菜单关系表
 */
@Data
public class ReqModifyAdminRoleMenuRelation {
    /**
     * 主键
     */
    private Long id;
    /**
     * 角色id
     */
    private Long roleId;
    /**
     * 菜单id
     */
    private Long menuId;
}
src/main/java/com/nanjing/water/entity/request/adminrolemenurelation/ReqSetListMenu4Role.java
对比新文件
@@ -0,0 +1,24 @@
package com.nanjing.water.entity.request.adminrolemenurelation;
import lombok.Data;
import java.util.List;
@Data
public class ReqSetListMenu4Role {
    /**
     * 角色id
     * @required
     */
    private Long id;
    /**
     * 菜单列表
     * @required
     **/
    private List<Long> listMenu;
    /**
     * 权限列表
     * @required
     **/
    private List<Long> listPermission;
}
src/main/java/com/nanjing/water/entity/request/adminrolemenurelation/ReqSetListRole4Admin.java
对比新文件
@@ -0,0 +1,19 @@
package com.nanjing.water.entity.request.adminrolemenurelation;
import lombok.Data;
import java.util.List;
@Data
public class ReqSetListRole4Admin {
    /**
     * 管理员id
     * @required
     */
    private Long id;
    /**
     * 角色列表
     * @required
     **/
    private List<Long> listRole;
}
src/main/java/com/nanjing/water/entity/request/adminrolepermissionrelation/ReqCreateAdminRolePermissionRelation.java
对比新文件
@@ -0,0 +1,53 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.entity.request.adminrolepermissionrelation;
/**
 * 后台角色权限关系表
 * @author lin.liu
 */
public class ReqCreateAdminRolePermissionRelation {
    /**
     * 角色id
     */
    private Long roleId;
    /**
     * 权限id
     */
    private Long permissionId;
    public Long getRoleId() {
        return this.roleId;
    }
    public void setRoleId(Long roleId) {
        this.roleId = roleId;
    }
    public Long getPermissionId() {
        return this.permissionId;
    }
    public void setPermissionId(Long permissionId) {
        this.permissionId = permissionId;
    }
}
src/main/java/com/nanjing/water/entity/request/adminrolepermissionrelation/ReqModifyAdminRolePermissionRelation.java
对比新文件
@@ -0,0 +1,64 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.entity.request.adminrolepermissionrelation;
/**
 * 后台角色权限关系表
 * @author lin.liu
 */
public class ReqModifyAdminRolePermissionRelation {
    /**
     * 主键
     */
    private Long id;
    /**
     * 角色id
     */
    private Long roleId;
    /**
     * 权限id
     */
    private Long permissionId;
    public Long getId() {
        return this.id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public Long getRoleId() {
        return this.roleId;
    }
    public void setRoleId(Long roleId) {
        this.roleId = roleId;
    }
    public Long getPermissionId() {
        return this.permissionId;
    }
    public void setPermissionId(Long permissionId) {
        this.permissionId = permissionId;
    }
}
src/main/java/com/nanjing/water/entity/request/adminrolerelation/ReqCreateAdminRoleRelation.java
对比新文件
@@ -0,0 +1,53 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.entity.request.adminrolerelation;
/**
 * 后台用户和角色关系表
 * @author lin.liu
 */
public class ReqCreateAdminRoleRelation {
    /**
     * 管理员id
     */
    private Long adminId;
    /**
     * 角色id
     */
    private Long roleId;
    public Long getAdminId() {
        return this.adminId;
    }
    public void setAdminId(Long adminId) {
        this.adminId = adminId;
    }
    public Long getRoleId() {
        return this.roleId;
    }
    public void setRoleId(Long roleId) {
        this.roleId = roleId;
    }
}
src/main/java/com/nanjing/water/entity/request/adminrolerelation/ReqModifyAdminRoleRelation.java
对比新文件
@@ -0,0 +1,64 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.entity.request.adminrolerelation;
/**
 * 后台用户和角色关系表
 * @author lin.liu
 */
public class ReqModifyAdminRoleRelation {
    /**
     * 主键
     */
    private Long id;
    /**
     * 管理员id
     */
    private Long adminId;
    /**
     * 角色id
     */
    private Long roleId;
    public Long getId() {
        return this.id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public Long getAdminId() {
        return this.adminId;
    }
    public void setAdminId(Long adminId) {
        this.adminId = adminId;
    }
    public Long getRoleId() {
        return this.roleId;
    }
    public void setRoleId(Long roleId) {
        this.roleId = roleId;
    }
}
src/main/java/com/nanjing/water/entity/request/adminuser/ReqAdminLogin.java
对比新文件
@@ -0,0 +1,30 @@
package com.nanjing.water.entity.request.adminuser;
import lombok.Data;
@Data
public class ReqAdminLogin {
    /**
     * uuid:随机字符串
     */
    private String uuid;
    /**
     * 验证码
     */
    private String code;
    /**
     * 登录账户
     * @required
     */
    private String userName;
    /**
     * 密码
     * @required
     */
    private String password;
    /**
     * 登录设备码
     */
    private String machineCode;
}
src/main/java/com/nanjing/water/entity/request/adminuser/ReqCreateAdminUser.java
对比新文件
@@ -0,0 +1,62 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.entity.request.adminuser;
import lombok.Data;
/**
 * 管理员帐号
 * @author lin.liu
 * @description 管理员帐号
 */
@Data
public class ReqCreateAdminUser {
    /**
     * 用户类型 EUserType
     */
    private Integer userType;
    /**
     * 用户名
     */
    private String userName;
    /**
     * 密码
     */
    private String password;
    /**
     * 昵称
     */
    private String nickName;
    /**
     * 头像
     */
    private String headImg;
    /**
     * 联系方式
     */
    private String contact;
    /**
     * 联系邮箱
     */
    private String email;
}
src/main/java/com/nanjing/water/entity/request/adminuser/ReqModifyAdminUser.java
对比新文件
@@ -0,0 +1,62 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.entity.request.adminuser;
import lombok.Data;
/**
 * 管理员帐号
 * @author lin.liu
 * @description 管理员帐号
 */
@Data
public class ReqModifyAdminUser {
    /**
     * 主键
     */
    private Long id;
    /**
     * 用户类型 EUserType
     */
    private Integer userType;
    /**
     * 昵称
     */
    private String nickName;
    /**
     * 头像
     */
    private String headImg;
    /**
     * 联系方式
     */
    private String contact;
    /**
     * 联系邮箱
     */
    private String email;
    /**
     * 状态 EState
     */
    private Integer status;
}
src/main/java/com/nanjing/water/entity/request/adminuser/ReqSetListRole4Admin.java
对比新文件
@@ -0,0 +1,19 @@
package com.nanjing.water.entity.request.adminuser;
import lombok.Data;
import java.util.List;
@Data
public class ReqSetListRole4Admin {
    /**
     * 管理员id
     * @required
     */
    private Long id;
    /**
     * 角色列表
     * @required
     **/
    private List<Long> listRole;
}
src/main/java/com/nanjing/water/entity/request/alarmhistory/ReqCreateAlarmHistory.java
对比新文件
@@ -0,0 +1,69 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.entity.request.alarmhistory;
import lombok.Data;
/**
 * 报警信息
 * @author lin.liu
 */
@Data
public class ReqCreateAlarmHistory {
    /**
     * 设备id
     */
    private Long facilityId;
    /**
     * 设备名称
     */
    private String facilityName;
    /**
     * 报警参数
     */
    private Integer code;
    /**
     * 报警描述
     */
    private String description;
    /**
     * 备注
     */
    private String comment;
    /**
     * 是否处理
     */
    private Integer isSolve;
    /**
     * 是否确认(10误报 20已证实,200已处理)
     */
    private Integer isConfirm;
    /**
     * 最后报警时间
     */
    private String lastTime;
    /**
     * 报警次数
     */
    private Integer totalCount;
}
src/main/java/com/nanjing/water/entity/request/alarmhistory/ReqModifyAlarmHistory.java
对比新文件
@@ -0,0 +1,73 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.entity.request.alarmhistory;
import lombok.Data;
/**
 * 报警信息
 * @author lin.liu
 */
@Data
public class ReqModifyAlarmHistory {
    /**
     * 主键id
     */
    private Long id;
    /**
     * 设备id
     */
    private Long facilityId;
    /**
     * 设备名称
     */
    private String facilityName;
    /**
     * 报警参数
     */
    private Integer code;
    /**
     * 报警描述
     */
    private String description;
    /**
     * 备注
     */
    private String comment;
    /**
     * 是否处理
     */
    private Integer isSolve;
    /**
     * 是否确认(10误报 20已证实,200已处理)
     */
    private Integer isConfirm;
    /**
     * 最后报警时间
     */
    private String lastTime;
    /**
     * 报警次数
     */
    private Integer totalCount;
}
src/main/java/com/nanjing/water/entity/request/alarmscheme/ReqCreateAlarmScheme.java
对比新文件
@@ -0,0 +1,59 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.entity.request.alarmscheme;
import lombok.Data;
import java.math.BigDecimal;
/**
 * 报警方案设置
 * @author lin.liu
 */
@Data
public class ReqCreateAlarmScheme {
    /**
     * 设备id
     */
    private Long facilityId;
    /**
     * 设备参数
     */
    private String columnsCode;
    /**
     * 方案名称
     */
    private String schemeName;
    /**
     * 低报警值
     */
    private BigDecimal lowAlarm;
    /**
     * 高报警值
     */
    private BigDecimal tallAlarm;
    /**
     * 备注
     */
    private String remark;
}
src/main/java/com/nanjing/water/entity/request/alarmscheme/ReqModifyAlarmScheme.java
对比新文件
@@ -0,0 +1,63 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.entity.request.alarmscheme;
import lombok.Data;
import java.math.BigDecimal;
/**
 * 报警方案设置
 * @author lin.liu
 */
@Data
public class ReqModifyAlarmScheme {
    /**
     * 主键id
     */
    private Long id;
    /**
     * 设备id
     */
    private Long facilityId;
    /**
     * 设备参数
     */
    private String columnsCode;
    /**
     * 方案名称
     */
    private String schemeName;
    /**
     * 低报警值
     */
    private BigDecimal lowAlarm;
    /**
     * 高报警值
     */
    private BigDecimal tallAlarm;
    /**
     * 备注
     */
    private String remark;
}
src/main/java/com/nanjing/water/entity/request/commonparameters/ReqCreateCommonParameters.java
对比新文件
@@ -0,0 +1,75 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.entity.request.commonparameters;
/**
 * 公共参数
 * @author lin.liu
 */
public class ReqCreateCommonParameters {
    /**
     * 参数名称,与前端对接的名称
     */
    private String name;
    /**
     * 参数标识,与硬件对接的名称
     */
    private String mark;
    /**
     * 单位
     */
    private String unit;
    /**
     * 排序值
     */
    private Integer sort;
    public String getName() {
        return this.name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getMark() {
        return this.mark;
    }
    public void setMark(String mark) {
        this.mark = mark;
    }
    public String getUnit() {
        return this.unit;
    }
    public void setUnit(String unit) {
        this.unit = unit;
    }
    public Integer getSort() {
        return this.sort;
    }
    public void setSort(Integer sort) {
        this.sort = sort;
    }
}
src/main/java/com/nanjing/water/entity/request/commonparameters/ReqModifyCommonParameters.java
对比新文件
@@ -0,0 +1,86 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.entity.request.commonparameters;
/**
 * 公共参数
 * @author lin.liu
 */
public class ReqModifyCommonParameters {
    /**
     * 参数管理id,主键自增
     */
    private Long id;
    /**
     * 参数名称,与前端对接的名称
     */
    private String name;
    /**
     * 参数标识,与硬件对接的名称
     */
    private String mark;
    /**
     * 单位
     */
    private String unit;
    /**
     * 排序值
     */
    private Integer sort;
    public Long getId() {
        return this.id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getName() {
        return this.name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getMark() {
        return this.mark;
    }
    public void setMark(String mark) {
        this.mark = mark;
    }
    public String getUnit() {
        return this.unit;
    }
    public void setUnit(String unit) {
        this.unit = unit;
    }
    public Integer getSort() {
        return this.sort;
    }
    public void setSort(Integer sort) {
        this.sort = sort;
    }
}
src/main/java/com/nanjing/water/entity/request/sysdictdata/ReqCreateSysDictData.java
对比新文件
@@ -0,0 +1,75 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.entity.request.sysdictdata;
/**
 * 字典数据表
 * @author lin.liu
 */
public class ReqCreateSysDictData {
    /**
     * 字典标题
     */
    private String dictLabel;
    /**
     * 字典键值
     */
    private String dictValue;
    /**
     * 字典类型
     */
    private String dictType;
    /**
     * 备注
     */
    private String remark;
    public String getDictLabel() {
        return this.dictLabel;
    }
    public void setDictLabel(String dictLabel) {
        this.dictLabel = dictLabel;
    }
    public String getDictValue() {
        return this.dictValue;
    }
    public void setDictValue(String dictValue) {
        this.dictValue = dictValue;
    }
    public String getDictType() {
        return this.dictType;
    }
    public void setDictType(String dictType) {
        this.dictType = dictType;
    }
    public String getRemark() {
        return this.remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
}
src/main/java/com/nanjing/water/entity/request/sysdictdata/ReqModifySysDictData.java
对比新文件
@@ -0,0 +1,97 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.entity.request.sysdictdata;
/**
 * 字典数据表
 * @author lin.liu
 */
public class ReqModifySysDictData {
    /**
     * 主键
     */
    private Long id;
    /**
     * 字典标题
     */
    private String dictLabel;
    /**
     * 字典键值
     */
    private String dictValue;
    /**
     * 字典类型
     */
    private String dictType;
    /**
     * 状态
     */
    private Integer status;
    /**
     * 备注
     */
    private String remark;
    public Long getId() {
        return this.id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getDictLabel() {
        return this.dictLabel;
    }
    public void setDictLabel(String dictLabel) {
        this.dictLabel = dictLabel;
    }
    public String getDictValue() {
        return this.dictValue;
    }
    public void setDictValue(String dictValue) {
        this.dictValue = dictValue;
    }
    public String getDictType() {
        return this.dictType;
    }
    public void setDictType(String dictType) {
        this.dictType = dictType;
    }
    public Integer getStatus() {
        return this.status;
    }
    public void setStatus(Integer status) {
        this.status = status;
    }
    public String getRemark() {
        return this.remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
}
src/main/java/com/nanjing/water/entity/request/sysdicttype/ReqCreateSysDictType.java
对比新文件
@@ -0,0 +1,64 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.entity.request.sysdicttype;
/**
 * 字典类型表
 * @author lin.liu
 */
public class ReqCreateSysDictType {
    /**
     * 字典名称
     */
    private String dictName;
    /**
     * 字典类型
     */
    private String dictType;
    /**
     * 备注
     */
    private String remark;
    public String getDictName() {
        return this.dictName;
    }
    public void setDictName(String dictName) {
        this.dictName = dictName;
    }
    public String getDictType() {
        return this.dictType;
    }
    public void setDictType(String dictType) {
        this.dictType = dictType;
    }
    public String getRemark() {
        return this.remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
}
src/main/java/com/nanjing/water/entity/request/sysdicttype/ReqModifySysDictType.java
对比新文件
@@ -0,0 +1,86 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.entity.request.sysdicttype;
/**
 * 字典类型表
 * @author lin.liu
 */
public class ReqModifySysDictType {
    /**
     * 主键
     */
    private Long id;
    /**
     * 字典名称
     */
    private String dictName;
    /**
     * 字典类型
     */
    private String dictType;
    /**
     * 状态
     */
    private Integer status;
    /**
     * 备注
     */
    private String remark;
    public Long getId() {
        return this.id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getDictName() {
        return this.dictName;
    }
    public void setDictName(String dictName) {
        this.dictName = dictName;
    }
    public String getDictType() {
        return this.dictType;
    }
    public void setDictType(String dictType) {
        this.dictType = dictType;
    }
    public Integer getStatus() {
        return this.status;
    }
    public void setStatus(Integer status) {
        this.status = status;
    }
    public String getRemark() {
        return this.remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
}
src/main/java/com/nanjing/water/entity/request/sysregion/ReqCreateSysRegion.java
对比新文件
@@ -0,0 +1,175 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.entity.request.sysregion;
import java.math.BigDecimal;
/**
 * 系统行政地区
 * @author lin.liu
 */
public class ReqCreateSysRegion {
    /**
     * 行政代码
     */
    private String code;
    /**
     * 上级行政代码
     */
    private String parentCode;
    /**
     * 名称
     */
    private String name;
    /**
     * 简称
     */
    private String shortName;
    /**
     * 邮政编码
     */
    private String zipCode;
    /**
     * 区号
     */
    private String cityCode;
    /**
     * 层级
     */
    private Integer level;
    /**
     * 拼音
     */
    private String pinYin;
    /**
     * 拼音简写
     */
    private String pinYinShort;
    /**
     * 经度
     */
    private BigDecimal lng;
    /**
     * 维度
     */
    private BigDecimal lat;
    /**
     * 排序
     */
    private Integer sort;
    /**
     * 备注
     */
    private String remark;
    public String getCode() {
        return this.code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getParentCode() {
        return this.parentCode;
    }
    public void setParentCode(String parentCode) {
        this.parentCode = parentCode;
    }
    public String getName() {
        return this.name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getShortName() {
        return this.shortName;
    }
    public void setShortName(String shortName) {
        this.shortName = shortName;
    }
    public String getZipCode() {
        return this.zipCode;
    }
    public void setZipCode(String zipCode) {
        this.zipCode = zipCode;
    }
    public String getCityCode() {
        return this.cityCode;
    }
    public void setCityCode(String cityCode) {
        this.cityCode = cityCode;
    }
    public Integer getLevel() {
        return this.level;
    }
    public void setLevel(Integer level) {
        this.level = level;
    }
    public String getPinYin() {
        return this.pinYin;
    }
    public void setPinYin(String pinYin) {
        this.pinYin = pinYin;
    }
    public String getPinYinShort() {
        return this.pinYinShort;
    }
    public void setPinYinShort(String pinYinShort) {
        this.pinYinShort = pinYinShort;
    }
    public BigDecimal getLng() {
        return this.lng;
    }
    public void setLng(BigDecimal lng) {
        this.lng = lng;
    }
    public BigDecimal getLat() {
        return this.lat;
    }
    public void setLat(BigDecimal lat) {
        this.lat = lat;
    }
    public Integer getSort() {
        return this.sort;
    }
    public void setSort(Integer sort) {
        this.sort = sort;
    }
    public String getRemark() {
        return this.remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
}
src/main/java/com/nanjing/water/entity/request/sysregion/ReqModifySysRegion.java
对比新文件
@@ -0,0 +1,186 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.entity.request.sysregion;
import java.math.BigDecimal;
/**
 * 系统行政地区
 * @author lin.liu
 */
public class ReqModifySysRegion {
    /**
     * 主键
     */
    private Long id;
    /**
     * 行政代码
     */
    private String code;
    /**
     * 上级行政代码
     */
    private String parentCode;
    /**
     * 名称
     */
    private String name;
    /**
     * 简称
     */
    private String shortName;
    /**
     * 邮政编码
     */
    private String zipCode;
    /**
     * 区号
     */
    private String cityCode;
    /**
     * 层级
     */
    private Integer level;
    /**
     * 拼音
     */
    private String pinYin;
    /**
     * 拼音简写
     */
    private String pinYinShort;
    /**
     * 经度
     */
    private BigDecimal lng;
    /**
     * 维度
     */
    private BigDecimal lat;
    /**
     * 排序
     */
    private Integer sort;
    /**
     * 备注
     */
    private String remark;
    public Long getId() {
        return this.id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getCode() {
        return this.code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getParentCode() {
        return this.parentCode;
    }
    public void setParentCode(String parentCode) {
        this.parentCode = parentCode;
    }
    public String getName() {
        return this.name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getShortName() {
        return this.shortName;
    }
    public void setShortName(String shortName) {
        this.shortName = shortName;
    }
    public String getZipCode() {
        return this.zipCode;
    }
    public void setZipCode(String zipCode) {
        this.zipCode = zipCode;
    }
    public String getCityCode() {
        return this.cityCode;
    }
    public void setCityCode(String cityCode) {
        this.cityCode = cityCode;
    }
    public Integer getLevel() {
        return this.level;
    }
    public void setLevel(Integer level) {
        this.level = level;
    }
    public String getPinYin() {
        return this.pinYin;
    }
    public void setPinYin(String pinYin) {
        this.pinYin = pinYin;
    }
    public String getPinYinShort() {
        return this.pinYinShort;
    }
    public void setPinYinShort(String pinYinShort) {
        this.pinYinShort = pinYinShort;
    }
    public BigDecimal getLng() {
        return this.lng;
    }
    public void setLng(BigDecimal lng) {
        this.lng = lng;
    }
    public BigDecimal getLat() {
        return this.lat;
    }
    public void setLat(BigDecimal lat) {
        this.lat = lat;
    }
    public Integer getSort() {
        return this.sort;
    }
    public void setSort(Integer sort) {
        this.sort = sort;
    }
    public String getRemark() {
        return this.remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
}
src/main/java/com/nanjing/water/entity/request/waterfacility/ReqCreateWaterFacility.java
对比新文件
@@ -0,0 +1,84 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.entity.request.waterfacility;
import lombok.Data;
/**
 * 设备信息
 * @author lin.liu
 */
@Data
public class ReqCreateWaterFacility {
    /**
     * 设备名称
     */
    private String facilityName;
    /**
     * 设备编号
     */
    private String facilityCode;
    /**
     * 设备类型
     */
    private Long facilityType;
    /**
     * 监控点id
     */
    private Long pointId;
    /**
     * 安装日期
     */
    private String installDate;
    /**
     * 是否在线
     */
    private Integer isOnline;
    /**
     * 安装地址
     */
    private String address;
    /**
     * 备注
     */
    private String remark;
    /**
     * 设备图片
     */
    private String facilityUrl;
    /**
     * 最新数据上报时间间隔(单位分钟)
     */
    private Integer newIntervalTime;
    /**
     * 历史数据上报时间间隔(单位分钟)
     */
    private Integer historyIntervalTime;
    /**
     * 水位采集时间间隔(单位分钟)
     */
    private Integer gatherIntervalTime;
}
src/main/java/com/nanjing/water/entity/request/waterfacility/ReqEditWaterFacility.java
对比新文件
@@ -0,0 +1,45 @@
package com.nanjing.water.entity.request.waterfacility;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class ReqEditWaterFacility {
    /**
     * 设备id
     */
    private Long id;
    /**
     * 最新数据上报时间间隔(单位分钟)
     */
    private Integer newIntervalTime;
    /**
     * 历史数据上报时间间隔(单位分钟)
     */
    private Integer historyIntervalTime;
    /**
     * 水位采集时间间隔(单位分钟)
     */
    private Integer gatherIntervalTime;
    /**
     * 量程设置
     */
    private BigDecimal range;
    /**
     * 高程设置
     */
    private BigDecimal elevation;
    /**
     * 投放角度
     */
    private BigDecimal putAngle;
    /**
     * 低水位下限
     */
    private BigDecimal lowWaterLevel;
    /**
     * 温度下限设置
     */
    private BigDecimal lowTemperature;
}
src/main/java/com/nanjing/water/entity/request/waterfacility/ReqModifyWaterFacility.java
对比新文件
@@ -0,0 +1,85 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.entity.request.waterfacility;
import lombok.Data;
/**
 * 设备信息
 * @author lin.liu
 */
@Data
public class ReqModifyWaterFacility {
    /**
     * null
     */
    private Long id;
    /**
     * 设备名称
     */
    private String facilityName;
    /**
     * 设备编号
     */
    private String facilityCode;
    /**
     * 设备类型
     */
    private Long facilityType;
    /**
     * 监控点id
     */
    private Long pointId;
    /**
     * 安装日期
     */
    private String installationDate;
    /**
     * 是否在线
     */
    private Integer isOnline;
    /**
     * 地址
     */
    private String address;
    /**
     * 备注
     */
    private String remark;
    /**
     * 设备图片
     */
    private String facilityUrl;
    /**
     * 最新数据上报时间间隔(单位分钟)
     */
    private Integer newIntervalTime;
    /**
     * 历史数据上报时间间隔(单位分钟)
     */
    private Integer historyIntervalTime;
    /**
     * 水位采集时间间隔(单位分钟)
     */
    private Integer gatherIntervalTime;
}
src/main/java/com/nanjing/water/entity/request/waterfacilityparameter/ReqAddParameter.java
对比新文件
@@ -0,0 +1,18 @@
package com.nanjing.water.entity.request.waterfacilityparameter;
import lombok.Data;
import java.util.List;
@Data
public class ReqAddParameter {
    /**
     * 设备id
     */
    private Long facilityId;
    /**
     * 参数列表
     */
    private List<ReqCreateWaterFacilityParameter> parameterList;
}
src/main/java/com/nanjing/water/entity/request/waterfacilityparameter/ReqCreateWaterFacilityParameter.java
对比新文件
@@ -0,0 +1,53 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.entity.request.waterfacilityparameter;
import lombok.Data;
/**
 * 设备设定参数
 * @author lin.liu
 */
@Data
public class ReqCreateWaterFacilityParameter {
    /**
     * 设备id
     */
    private Long facilityId;
    /**
     * 设备code
     */
    private String facilityCode;
    /**
     * 参数编码
     */
    private String columnsCode;
    /**
     * 参数名称
     */
    private String columnsShow;
    /**
     * 锟斤拷位
     */
    private String columnsUnits;
}
src/main/java/com/nanjing/water/entity/request/waterfacilityparameter/ReqModifyWaterFacilityParameter.java
对比新文件
@@ -0,0 +1,59 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.entity.request.waterfacilityparameter;
import lombok.Data;
import java.math.BigDecimal;
/**
 * 设备设定参数
 * @author lin.liu
 */
@Data
public class ReqModifyWaterFacilityParameter {
    /**
     * 主键id
     */
    private Long id;
    /**
     * 设备id
     */
    private Long facilityId;
    /**
     * 参数编码
     */
    private String columnsCode;
    /**
     * 参数名称
     */
    private BigDecimal columnsShow;
    /**
     * 锟斤拷位
     */
    private String columnsUnits;
    /**
     * 设备code
     */
    private String facilityCode;
}
src/main/java/com/nanjing/water/entity/request/waterfacilityparameter/ReqPointAndParameter.java
对比新文件
@@ -0,0 +1,17 @@
package com.nanjing.water.entity.request.waterfacilityparameter;
import lombok.Data;
import java.util.List;
@Data
public class ReqPointAndParameter {
    /**
     * 监控点id
     */
    private Long pointId;
    /**
     * 参数列表
     */
    private List<String> columnsCode;
}
src/main/java/com/nanjing/water/entity/request/waterfacilitytype/ReqCreateWaterFacilityType.java
对比新文件
@@ -0,0 +1,53 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.entity.request.waterfacilitytype;
/**
 * 设备类型
 * @author lin.liu
 */
public class ReqCreateWaterFacilityType {
    /**
     * 编码
     */
    private String code;
    /**
     * 名称
     */
    private String name;
    public String getCode() {
        return this.code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getName() {
        return this.name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
src/main/java/com/nanjing/water/entity/request/waterfacilitytype/ReqModifyWaterFacilityType.java
对比新文件
@@ -0,0 +1,64 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.entity.request.waterfacilitytype;
/**
 * 设备类型
 * @author lin.liu
 */
public class ReqModifyWaterFacilityType {
    /**
     * 主键
     */
    private Long id;
    /**
     * 编码
     */
    private String code;
    /**
     * 名称
     */
    private String name;
    public Long getId() {
        return this.id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getCode() {
        return this.code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getName() {
        return this.name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
src/main/java/com/nanjing/water/entity/request/watermonitorypoint/ReqCreateWaterMonitoryPoint.java
对比新文件
@@ -0,0 +1,64 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.entity.request.watermonitorypoint;
import lombok.Data;
/**
 * 监控点
 * @author lin.liu
 */
@Data
public class ReqCreateWaterMonitoryPoint {
    /**
     * 监控点类型
     */
    private Integer pointType;
    /**
     * 父级id
     */
    private Long parentId;
    /**
     * 监控点编号
     * @required
     */
    private String pointCode;
    /**
     * 监控点名称
     * @required
     */
    private String pointName;
    /**
     * 详细地址
     */
    private String address;
    /**
     * 监控点图片
     */
    private String imageUrl;
    /**
     * 备注
     */
    private String remark;
}
src/main/java/com/nanjing/water/entity/request/watermonitorypoint/ReqModifyWaterMonitoryPoint.java
对比新文件
@@ -0,0 +1,68 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.entity.request.watermonitorypoint;
import lombok.Data;
/**
 * 监控点
 * @author lin.liu
 */
@Data
public class ReqModifyWaterMonitoryPoint {
    /**
     * 主键id
     */
    private Long id;
    /**
     * 监控点类型
     */
    private Integer pointType;
    /**
     * 父级id
     */
    private Long parentId;
    /**
     * 监控点编号
     * @required
     */
    private String pointCode;
    /**
     * 监控点名称
     * @required
     */
    private String pointName;
    /**
     * 监控点图片
     */
    private String imageUrl;
    /**
     * 详细地址
     */
    private String address;
    /**
     * 备注
     */
    private String remark;
}
src/main/java/com/nanjing/water/entity/response/admin/ResAdminLogin.java
对比新文件
@@ -0,0 +1,35 @@
package com.nanjing.water.entity.response.admin;
import lombok.Data;
import java.util.List;
@Data
public class ResAdminLogin {
    /**
     * 管理员id
     */
    private Long id;
    /**
     * 用户类型 EUserType
     */
    private Integer userType;
    /**
     * 管理员名称
     */
    private String name;
    /**
     * 请求令牌
     */
    private String token;
    /**
     * 菜单列表
     */
    private List<ResAdminMenuTree> menus;
    /**
     * 权限列表
     */
    private List<String> listPermission;
}
src/main/java/com/nanjing/water/entity/response/admin/ResAdminMenuTree.java
对比新文件
@@ -0,0 +1,50 @@
package com.nanjing.water.entity.response.admin;
import lombok.Data;
import java.util.List;
@Data
public class ResAdminMenuTree {
    /**
     * 菜单id
     */
    private Long id;
    /**
     * 类型 EMenuType
     * @required
     */
    private Integer type;
    /**
     * 父级ID
     */
    private Long parentId;
    /**
     * 菜单名称
     */
    private String name;
    /**
     * 菜单标题
     */
    private String title;
    /**
     * 前端资源路径
     */
    private String url;
    /**
     * 菜单层级
     */
    private Integer level;
    /**
     * 排序 越大越靠前
     */
    private Integer sort;
    /**
     * 图标
     */
    private String icon;
    /**
     * 子级菜单列表
     */
    private List<ResAdminMenuTreeAndPermission> children;
}
src/main/java/com/nanjing/water/entity/response/admin/ResAdminMenuTreeAndPermission.java
对比新文件
@@ -0,0 +1,13 @@
package com.nanjing.water.entity.response.admin;
import lombok.Data;
import java.util.List;
@Data
public class ResAdminMenuTreeAndPermission extends ResAdminMenuTree {
    /**
     * 权限列表
     */
    private List<ResAdminPermission> permissions;
}
src/main/java/com/nanjing/water/entity/response/admin/ResAdminPermission.java
对比新文件
@@ -0,0 +1,28 @@
package com.nanjing.water.entity.response.admin;
import lombok.Data;
@Data
public class ResAdminPermission {
    /**
     * 权限id
     */
    private Long id;
    /**
     * 权限值
     */
    private String sn;
    /**
     * 菜单id
     */
    private Long menuId;
    /**
     * 名称
     */
    private String name;
    /**
     * 状态 EState
     */
    private Integer status;
}
src/main/java/com/nanjing/water/entity/response/admin/ResAdminPower.java
对比新文件
@@ -0,0 +1,18 @@
package com.nanjing.water.entity.response.admin;
import com.nanjing.water.repository.vo.AdminMenuVO;
import lombok.Data;
import java.util.List;
@Data
public class ResAdminPower {
    /**
     * 菜单列表
     */
    private List<AdminMenuVO> menus;
    /**
     * 权限列表
     */
    private List<ResAdminPermission> permissions;
}
src/main/java/com/nanjing/water/entity/response/point/ResMonitoryPointData.java
对比新文件
@@ -0,0 +1,12 @@
package com.nanjing.water.entity.response.point;
import lombok.Data;
import java.util.List;
@Data
public class ResMonitoryPointData {
    private String pointCode;
    private String pointName;
    private List<ResMonitoryPointDataFacility> data;
}
src/main/java/com/nanjing/water/entity/response/point/ResMonitoryPointDataFacility.java
对比新文件
@@ -0,0 +1,12 @@
package com.nanjing.water.entity.response.point;
import lombok.Data;
import java.util.List;
@Data
public class ResMonitoryPointDataFacility {
    private String facilityCode;
    private String facilityName;
    private List<ResMonitoryPointDataFacilityParameter> data;
}
src/main/java/com/nanjing/water/entity/response/point/ResMonitoryPointDataFacilityParameter.java
对比新文件
@@ -0,0 +1,12 @@
package com.nanjing.water.entity.response.point;
import lombok.Data;
@Data
public class ResMonitoryPointDataFacilityParameter {
    private String mark;
    private String name;
    private String value;
    private String unit;
    private String lastTime;
}
src/main/java/com/nanjing/water/entity/response/region/ResBasicRegionTree.java
对比新文件
@@ -0,0 +1,127 @@
package com.nanjing.water.entity.response.region;
import java.util.List;
public class ResBasicRegionTree {
    /**
     * 主键id
     */
    private Long id;
    /**
     * 区域编码
     */
    private String code;
    /**
     * 父级编码
     */
    private String parentCode;
    /**
     * 名称
     */
    private String name;
    /**
     * 简称
     */
    private String shortName;
    /**
     * 层级
     */
    private Integer level;
    /**
     * 拼音
     */
    private String pinYin;
    /**
     * 拼音简写
     */
    private String pinYinShort;
    /**
     * 父级ID
     */
    private String parentId;
    /**
     * 子级列表
     */
    private List<ResBasicRegionTree> children;
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getParentCode() {
        return parentCode;
    }
    public void setParentCode(String parentCode) {
        this.parentCode = parentCode;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getShortName() {
        return shortName;
    }
    public void setShortName(String shortName) {
        this.shortName = shortName;
    }
    public Integer getLevel() {
        return level;
    }
    public void setLevel(Integer level) {
        this.level = level;
    }
    public String getPinYin() {
        return pinYin;
    }
    public void setPinYin(String pinYin) {
        this.pinYin = pinYin;
    }
    public String getPinYinShort() {
        return pinYinShort;
    }
    public void setPinYinShort(String pinYinShort) {
        this.pinYinShort = pinYinShort;
    }
    public String getParentId() {
        return parentId;
    }
    public void setParentId(String parentId) {
        this.parentId = parentId;
    }
    public List<ResBasicRegionTree> getChildren() {
        return children;
    }
    public void setChildren(List<ResBasicRegionTree> children) {
        this.children = children;
    }
}
src/main/java/com/nanjing/water/entity/response/region/ResRegionTree.java
对比新文件
@@ -0,0 +1,45 @@
package com.nanjing.water.entity.response.region;
import lombok.Data;
import java.util.List;
@Data
public class ResRegionTree {
    /**
     * id
     */
    private Long id;
    /**
     * 编码
     */
    private String code;
    /**
     * 名称
     */
    private String name;
    /**
     * 简称
     */
    private String shortName;
    /**
     * 层级
     */
    private Integer level;
    /**
     * 拼音
     */
    private String pinYin;
    /**
     * 拼音简写
     */
    private String pinYinShort;
    /**
     * 父级编码
     */
    private String parentCode;
    /**
     * 子级列表
     */
    private List<ResRegionTree> children;
}
src/main/java/com/nanjing/water/entity/response/statistics/ResGetTodayStatistics.java
对比新文件
@@ -0,0 +1,18 @@
package com.nanjing.water.entity.response.statistics;
import lombok.Data;
import java.util.List;
@Data
public class ResGetTodayStatistics {
    /**
     * 统计时间点列表
     */
    private List<String> listTime;
    /**
     * 统计数据
     */
    private List<ResStatisticsItem> list;
}
src/main/java/com/nanjing/water/entity/response/statistics/ResStatistics4DateAndType.java
对比新文件
@@ -0,0 +1,18 @@
package com.nanjing.water.entity.response.statistics;
import lombok.Data;
import java.util.List;
@Data
public class ResStatistics4DateAndType {
    /**
     * 统计日期列表
     */
    private List<String> listDate;
    /**
     * 统计数据
     */
    private List<ResStatisticsItem> list;
}
src/main/java/com/nanjing/water/entity/response/statistics/ResStatisticsItem.java
对比新文件
@@ -0,0 +1,29 @@
package com.nanjing.water.entity.response.statistics;
import lombok.Data;
import java.util.List;
@Data
public class ResStatisticsItem {
    /**
     * 参数标识
     */
    private String mark;
    /**
     * 参数名称
     */
    private String markName;
    /**
     * 最大值列表
     */
    private List<String> maxValList;
    /**
     * 最小值列表
     */
    private List<String> minValList;
    /**
     * 平均值列表
     */
    private List<String> aveValList;
}
src/main/java/com/nanjing/water/entity/search/SearchAdminMenu.java
对比新文件
@@ -0,0 +1,13 @@
package com.nanjing.water.entity.search;
import com.nanjing.water.entity.dto.SearchBasicDTO;
import lombok.Data;
/**
 * 后台菜单
 * @author lin.liu
 */
@Data
public class SearchAdminMenu extends SearchBasicDTO {
}
src/main/java/com/nanjing/water/entity/search/SearchAdminMenus.java
对比新文件
@@ -0,0 +1,13 @@
package com.nanjing.water.entity.search;
import com.nanjing.water.entity.dto.SearchBasicDTO;
import lombok.Data;
/**
 * 菜单信息
 * @author lin.liu
 */
@Data
public class SearchAdminMenus extends SearchBasicDTO {
}
src/main/java/com/nanjing/water/entity/search/SearchAdminPermission.java
对比新文件
@@ -0,0 +1,13 @@
package com.nanjing.water.entity.search;
import com.nanjing.water.entity.dto.SearchBasicDTO;
import lombok.Data;
/**
 * 后台用户权限表
 * @author lin.liu
 */
@Data
public class SearchAdminPermission extends SearchBasicDTO {
}
src/main/java/com/nanjing/water/entity/search/SearchAdminRole.java
对比新文件
@@ -0,0 +1,13 @@
package com.nanjing.water.entity.search;
import com.nanjing.water.entity.dto.SearchBasicDTO;
import lombok.Data;
/**
 * 后台用户角色表
 * @author lin.liu
 */
@Data
public class SearchAdminRole extends SearchBasicDTO {
}
src/main/java/com/nanjing/water/entity/search/SearchAdminRoleMenuRelation.java
对比新文件
@@ -0,0 +1,13 @@
package com.nanjing.water.entity.search;
import com.nanjing.water.entity.dto.SearchBasicDTO;
import lombok.Data;
/**
 * 后台角色菜单关系表
 * @author lin.liu
 */
@Data
public class SearchAdminRoleMenuRelation extends SearchBasicDTO {
}
src/main/java/com/nanjing/water/entity/search/SearchAdminRolePermissionRelation.java
对比新文件
@@ -0,0 +1,13 @@
package com.nanjing.water.entity.search;
import com.nanjing.water.entity.dto.SearchBasicDTO;
import lombok.Data;
/**
 * 后台角色权限关系表
 * @author lin.liu
 */
@Data
public class SearchAdminRolePermissionRelation extends SearchBasicDTO {
}
src/main/java/com/nanjing/water/entity/search/SearchAdminRoleRelation.java
对比新文件
@@ -0,0 +1,13 @@
package com.nanjing.water.entity.search;
import com.nanjing.water.entity.dto.SearchBasicDTO;
import lombok.Data;
/**
 * 后台用户和角色关系表
 * @author lin.liu
 */
@Data
public class SearchAdminRoleRelation extends SearchBasicDTO {
}
src/main/java/com/nanjing/water/entity/search/SearchAdminUser.java
对比新文件
@@ -0,0 +1,26 @@
package com.nanjing.water.entity.search;
import com.nanjing.water.entity.dto.SearchBasicDTO;
import lombok.Data;
/**
 * 管理员帐号
 * @author lin.liu
 */
@Data
public class SearchAdminUser extends SearchBasicDTO {
    @Override
    public String toString() {
        return "SearchAdminUser{" + "'" +
                "keywords='" + getKeywords() +
                ", listId =" + getListId() +
                ", status =" + getStatus() +
                ", listStatus =" + getListStatus() +
                ", createTimeRange='" + getCreateTimeRange() + "'" +
                ", createTimeStart =" + getCreateTimeEnd() +
                ", createTimeEnd =" + getCreateTimeEnd() +
                ", lastId =" + getListId() +
                ", orderBy='" + getOrderBy() + "'" +
                '}';
    }
}
src/main/java/com/nanjing/water/entity/search/SearchAlarmHistory.java
对比新文件
@@ -0,0 +1,13 @@
package com.nanjing.water.entity.search;
import com.nanjing.water.entity.dto.SearchBasicDTO;
import lombok.Data;
/**
 * 报警信息
 * @author lin.liu
 */
@Data
public class SearchAlarmHistory extends SearchBasicDTO {
}
src/main/java/com/nanjing/water/entity/search/SearchAlarmScheme.java
对比新文件
@@ -0,0 +1,13 @@
package com.nanjing.water.entity.search;
import com.nanjing.water.entity.dto.SearchBasicDTO;
import lombok.Data;
/**
 * 报警方案设置
 * @author lin.liu
 */
@Data
public class SearchAlarmScheme extends SearchBasicDTO {
}
src/main/java/com/nanjing/water/entity/search/SearchCommonParameters.java
对比新文件
@@ -0,0 +1,13 @@
package com.nanjing.water.entity.search;
import com.nanjing.water.entity.dto.SearchBasicDTO;
import lombok.Data;
/**
 * 公共参数
 * @author lin.liu
 */
@Data
public class SearchCommonParameters extends SearchBasicDTO {
}
src/main/java/com/nanjing/water/entity/search/SearchSysDictData.java
对比新文件
@@ -0,0 +1,13 @@
package com.nanjing.water.entity.search;
import com.nanjing.water.entity.dto.SearchBasicDTO;
import lombok.Data;
/**
 * 字典数据表
 * @author lin.liu
 */
@Data
public class SearchSysDictData extends SearchBasicDTO {
}
src/main/java/com/nanjing/water/entity/search/SearchSysDictType.java
对比新文件
@@ -0,0 +1,13 @@
package com.nanjing.water.entity.search;
import com.nanjing.water.entity.dto.SearchBasicDTO;
import lombok.Data;
/**
 * 字典类型表
 * @author lin.liu
 */
@Data
public class SearchSysDictType extends SearchBasicDTO {
}
src/main/java/com/nanjing/water/entity/search/SearchSysRegion.java
对比新文件
@@ -0,0 +1,13 @@
package com.nanjing.water.entity.search;
import com.nanjing.water.entity.dto.SearchBasicDTO;
import lombok.Data;
/**
 * 系统行政地区
 * @author lin.liu
 */
@Data
public class SearchSysRegion extends SearchBasicDTO {
}
src/main/java/com/nanjing/water/entity/search/SearchWaterFacility.java
对比新文件
@@ -0,0 +1,13 @@
package com.nanjing.water.entity.search;
import com.nanjing.water.entity.dto.SearchBasicDTO;
import lombok.Data;
/**
 * 设备信息
 * @author lin.liu
 */
@Data
public class SearchWaterFacility extends SearchBasicDTO {
}
src/main/java/com/nanjing/water/entity/search/SearchWaterFacilityParameter.java
对比新文件
@@ -0,0 +1,13 @@
package com.nanjing.water.entity.search;
import com.nanjing.water.entity.dto.SearchBasicDTO;
import lombok.Data;
/**
 * 设备设定参数
 * @author lin.liu
 */
@Data
public class SearchWaterFacilityParameter extends SearchBasicDTO {
}
src/main/java/com/nanjing/water/entity/search/SearchWaterFacilityType.java
对比新文件
@@ -0,0 +1,13 @@
package com.nanjing.water.entity.search;
import com.nanjing.water.entity.dto.SearchBasicDTO;
import lombok.Data;
/**
 * 设备类型
 * @author lin.liu
 */
@Data
public class SearchWaterFacilityType extends SearchBasicDTO {
}
src/main/java/com/nanjing/water/entity/search/SearchWaterMonitoryPoint.java
对比新文件
@@ -0,0 +1,13 @@
package com.nanjing.water.entity.search;
import com.nanjing.water.entity.dto.SearchBasicDTO;
import lombok.Data;
/**
 * 监控点
 * @author lin.liu
 */
@Data
public class SearchWaterMonitoryPoint extends SearchBasicDTO {
}
src/main/java/com/nanjing/water/host/controller/WaterFacilityController.java
对比新文件
@@ -0,0 +1,163 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.host.controller;
import com.nanjing.water.common.ConstantFactory;
import com.nanjing.water.common.ExecutedResult;
import com.nanjing.water.common.PagerResult;
import com.nanjing.water.common.util.IPUtils;
import com.nanjing.water.common.util.ParameterUtil;
import com.nanjing.water.common.validator.ParameterValidateResult;
import com.nanjing.water.common.validator.ParameterValidator;
import com.nanjing.water.entity.request.waterfacility.ReqCreateWaterFacility;
import com.nanjing.water.entity.request.waterfacility.ReqModifyWaterFacility;
import com.nanjing.water.entity.response.point.ResMonitoryPointDataFacility;
import com.nanjing.water.entity.search.SearchWaterFacility;
import com.nanjing.water.host.BasicController;
import com.nanjing.water.repository.vo.WaterFacilityVO;
import com.nanjing.water.service.WaterFacilityService;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
 * 150.设备信息
 * @author lin.liu
 * @order 150
 */
@RestController
@RequestMapping(value = "waterFacility")
public class WaterFacilityController extends BasicController {
    @Autowired
    private WaterFacilityService service;
    /**
     * 创建[设备表]
     * @author lin.liu
     * @description 创建[设备表]
     */
    @PostMapping(value = "create")
    public ExecutedResult<Long> create(@RequestBody ReqCreateWaterFacility request) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                // 非空
                .addNotNullOrEmpty(ParameterUtil.named("设备编号"), request.getFacilityCode())
                // 限制最大长度
                .addLengthMax(ParameterUtil.named("设备编号"), request.getFacilityCode(), ConstantFactory.LENGTH_MAX50)
                // 非空
                .addNotNullOrEmpty(ParameterUtil.named("设备名称"), request.getFacilityName())
                // 限制最大长度
                .addLengthMax(ParameterUtil.named("设备名称"), request.getFacilityName(), ConstantFactory.LENGTH_MAX200)
                // 大于0
                .addGreater(ParameterUtil.named("设备类型"), request.getFacilityType(), 0L)
                // 限制最大长度
                .addLengthMax(ParameterUtil.named("备注"), request.getRemark(), ConstantFactory.LENGTH_MAX1000)
                // 限制最大长度
                .addLengthMax(ParameterUtil.named("设备图片"), request.getFacilityUrl(), ConstantFactory.LENGTH_MAX200)
                ;
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return failed(result.getErrorMsg());
        }
        //#endregion
        return this.service.create(request);
    }
    /**
     * 编辑[设备表]
     * @author lin.liu
     * @description 编辑[设备表]
     */
    @PostMapping(value = "modify")
    public ExecutedResult<String> modify(@RequestBody ReqModifyWaterFacility request) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                // 必须大于0
                .addGreater(ParameterUtil.named("设备id"), request.getId(), 0L)
                // 非空
                .addNotNullOrEmpty(ParameterUtil.named("设备编号"), request.getFacilityCode())
                // 限制最大长度
                .addLengthMax(ParameterUtil.named("设备编号"), request.getFacilityCode(), ConstantFactory.LENGTH_MAX50)
                // 非空
                .addNotNullOrEmpty(ParameterUtil.named("设备名称"), request.getFacilityName())
                // 限制最大长度
                .addLengthMax(ParameterUtil.named("设备名称"), request.getFacilityName(), ConstantFactory.LENGTH_MAX200)
                // 大于0
                .addGreater(ParameterUtil.named("设备类型"), request.getFacilityType(), 0L)
                // 限制最大长度
                .addLengthMax(ParameterUtil.named("备注"), request.getRemark(), ConstantFactory.LENGTH_MAX1000)
                // 限制最大长度
                .addLengthMax(ParameterUtil.named("设备图片"), request.getFacilityUrl(), ConstantFactory.LENGTH_MAX200)
                ;
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return failed(result.getErrorMsg());
        }
        //#endregion
        return this.service.modify(request);
    }
    /**
     * 获取[设备表]
     * @author lin.liu
     * @description 获取[设备表]
     */
    @GetMapping(value = "get")
    public ExecutedResult<WaterFacilityVO> get(@RequestParam Long id) {
        return this.service.get(id);
    }
    /**
     * 查询[设备表]
     * @author lin.liu
     * @description 查询[设备表]
     */
    @PostMapping(value = "search")
    public ExecutedResult<PagerResult<WaterFacilityVO>> search(@RequestBody SearchWaterFacility request) {
        return this.service.search(request);
    }
//    /**
//     * 设备开关阀
//     * @author lin.liu
//     * @description 设备开阀
//     */
//    @PostMapping(value = "openOrClose")
//    public ExecutedResult<String> open(@RequestBody ReqOpenAdnClose po, HttpServletRequest request) throws MqttException {
//        return this.service.openOrClose(po,this.getTokenUser(), IPUtils.getIpAddress(request));
//    }
    /**
     * 获取指定监控点最新数据
     * @author lin.liu
     */
    @GetMapping(value = "listData/{pointId}")
    public ExecutedResult<List<ResMonitoryPointDataFacility>> listData(@PathVariable Long pointId) {
        return this.service.listData(pointId);
    }
}
src/main/java/com/nanjing/water/host/controller/WaterFacilityParameterController.java
对比新文件
@@ -0,0 +1,129 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.host.controller;
import com.nanjing.water.common.ExecutedResult;
import com.nanjing.water.common.PagerResult;
import com.nanjing.water.common.util.ParameterUtil;
import com.nanjing.water.common.validator.ParameterValidateResult;
import com.nanjing.water.common.validator.ParameterValidator;
import com.nanjing.water.entity.request.waterfacilityparameter.ReqAddParameter;
import com.nanjing.water.entity.request.waterfacilityparameter.ReqModifyWaterFacilityParameter;
import com.nanjing.water.entity.search.SearchWaterFacilityParameter;
import com.nanjing.water.host.BasicController;
import com.nanjing.water.repository.po.WaterFacilityParameterPO;
import com.nanjing.water.repository.vo.WaterFacilityParameterVO;
import com.nanjing.water.service.WaterFacilityParameterService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
 * 151.设备设定参数
 * @author lin.liu
 * @order 151
 */
@RestController
@RequestMapping(value = "waterFacilityParameter")
public class WaterFacilityParameterController extends BasicController {
    @Autowired
    private WaterFacilityParameterService service;
    /**
     * 创建[设备设定参数]
     * @author lin.liu
     * @description 创建[设备设定参数]
     */
    @PostMapping(value = "create")
    public ExecutedResult<String> create(@RequestBody ReqAddParameter request) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                // 非空
                .addNotNullOrEmpty(ParameterUtil.named("设备id"), request.getFacilityId())
                .addNotNullOrEmpty(ParameterUtil.named("参数列表"), request.getParameterList())
                // 限制最大长度
                //.addLengthMax(ParameterUtil.named("名称"), request.getName(), ConstantFactory.LENGTH_MAX50)
                ;
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return failed(result.getErrorMsg());
        }
        //#endregion
        return this.service.create(request);
    }
    /**
     * 编辑[设备设定参数]
     * @author lin.liu
     * @description 编辑[设备设定参数]
     */
    @PostMapping(value = "modify")
    public ExecutedResult<String> modify(@RequestBody ReqModifyWaterFacilityParameter request) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                // 必须大于0
                .addGreater(ParameterUtil.named("[设备设定参数]id"), request.getId(), 0L)
                // 非空
                //.addNotNullOrEmpty(ParameterUtil.named("名称"), request.getName())
                // 限制最大长度
                //.addLengthMax(ParameterUtil.named("名称"), request.getName(), ConstantFactory.LENGTH_MAX50)
                ;
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return failed(result.getErrorMsg());
        }
        //#endregion
        return this.service.modify(request);
    }
    /**
     * 获取[设备设定参数]
     * @author lin.liu
     * @description 获取[设备设定参数]
     */
    @GetMapping(value = "get")
    public ExecutedResult<WaterFacilityParameterVO> get(@RequestParam Long id) {
        return this.service.get(id);
    }
    /**
     * 根据设备id获取设备绑定参数列表
     * @author lin.liu
     * @description 根据设备id获取设备绑定参数列表
     */
    @GetMapping(value = "getListByFacilityId")
    public ExecutedResult<List<WaterFacilityParameterPO>> getListByFacilityId(@RequestParam Long facilityId) {
        return this.service.getListByFacilityId(facilityId);
    }
    /**
     * 查询[设备设定参数]
     * @author lin.liu
     * @description 查询[设备设定参数]
     */
    @PostMapping(value = "search")
    public ExecutedResult<PagerResult<WaterFacilityParameterVO>> search(@RequestBody SearchWaterFacilityParameter request) {
        return this.service.search(request);
    }
}
src/main/java/com/nanjing/water/host/controller/WaterFacilityTypeController.java
对比新文件
@@ -0,0 +1,125 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.host.controller;
import com.nanjing.water.common.ExecutedResult;
import com.nanjing.water.common.PagerResult;
import com.nanjing.water.common.util.ParameterUtil;
import com.nanjing.water.common.validator.ParameterValidateResult;
import com.nanjing.water.common.validator.ParameterValidator;
import com.nanjing.water.entity.request.waterfacilitytype.ReqCreateWaterFacilityType;
import com.nanjing.water.entity.request.waterfacilitytype.ReqModifyWaterFacilityType;
import com.nanjing.water.entity.search.SearchWaterFacilityType;
import com.nanjing.water.host.BasicController;
import com.nanjing.water.repository.vo.WaterFacilityTypeVO;
import com.nanjing.water.service.WaterFacilityTypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
 * 130.设备类型
 * @author lin.liu
 * @order 130
 */
@RestController
@RequestMapping(value = "waterFacilityType")
public class WaterFacilityTypeController extends BasicController {
    @Autowired
    private WaterFacilityTypeService service;
    /**
     * 创建[设备类型表]
     * @author lin.liu
     * @description 创建[设备类型表]
     */
    @PostMapping(value = "create")
    public ExecutedResult<Long> create(@RequestBody ReqCreateWaterFacilityType request) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                // 非空
                //.addNotNullOrEmpty(ParameterUtil.named("名称"), request.getName())
                // 限制最大长度
                //.addLengthMax(ParameterUtil.named("名称"), request.getName(), ConstantFactory.LENGTH_MAX50)
                ;
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return failed(result.getErrorMsg());
        }
        //#endregion
        return this.service.create(request);
    }
    /**
     * 编辑[设备类型表]
     * @author lin.liu
     * @description 编辑[设备类型表]
     */
    @PostMapping(value = "modify")
    public ExecutedResult<String> modify(@RequestBody ReqModifyWaterFacilityType request) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                // 必须大于0
                .addGreater(ParameterUtil.named("[设备类型表]id"), request.getId(), 0L)
                // 非空
                //.addNotNullOrEmpty(ParameterUtil.named("名称"), request.getName())
                // 限制最大长度
                //.addLengthMax(ParameterUtil.named("名称"), request.getName(), ConstantFactory.LENGTH_MAX50)
                ;
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return failed(result.getErrorMsg());
        }
        //#endregion
        return this.service.modify(request);
    }
    /**
     * 删除设备类型表
     *
     * @param id 删除设备类型表
     * @author li。ling。yu
     * @date 2023/07/17
     */
    @PostMapping(value = "remove")
    public ExecutedResult<String> remove(@RequestParam Long id) {
        return this.service.remove(id);
    }
    /**
     * 获取[设备类型表]
     * @author lin.liu
     * @description 获取[设备类型表]
     */
    @GetMapping(value = "get")
    public ExecutedResult<WaterFacilityTypeVO> get(@RequestParam Long id) {
        return this.service.get(id);
    }
    /**
     * 查询[设备类型表]
     * @author lin.liu
     * @description 查询[设备类型表]
     */
    @PostMapping(value = "search")
    public ExecutedResult<PagerResult<WaterFacilityTypeVO>> search(@RequestBody SearchWaterFacilityType request) {
        return this.service.search(request);
    }
}
src/main/java/com/nanjing/water/host/controller/WaterMonitoryPointController.java
对比新文件
@@ -0,0 +1,131 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.host.controller;
import com.nanjing.water.common.ConstantFactory;
import com.nanjing.water.common.ExecutedResult;
import com.nanjing.water.common.PagerResult;
import com.nanjing.water.common.util.ListUtil;
import com.nanjing.water.common.util.ParameterUtil;
import com.nanjing.water.common.util.StringUtil;
import com.nanjing.water.common.validator.ParameterValidateResult;
import com.nanjing.water.common.validator.ParameterValidator;
import com.nanjing.water.entity.request.watermonitorypoint.ReqCreateWaterMonitoryPoint;
import com.nanjing.water.entity.request.watermonitorypoint.ReqModifyWaterMonitoryPoint;
import com.nanjing.water.entity.response.point.ResMonitoryPointData;
import com.nanjing.water.entity.search.SearchWaterMonitoryPoint;
import com.nanjing.water.host.BasicController;
import com.nanjing.water.repository.vo.WaterMonitoryPointVO;
import com.nanjing.water.service.WaterMonitoryPointService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
 * 140.监控点
 * @author lin.liu
 * @order 140
 */
@RestController
@RequestMapping(value = "waterMonitoryPoint")
public class WaterMonitoryPointController extends BasicController {
    @Autowired
    private WaterMonitoryPointService service;
    /**
     * 创建[监控点]
     * @author lin.liu
     * @description 创建[监控点]
     */
    @PostMapping(value = "create")
    public ExecutedResult<Long> create(@RequestBody ReqCreateWaterMonitoryPoint request) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                // 非空
                .addNotNullOrEmpty(ParameterUtil.named("监控点名称"), request.getPointName())
                // 限制最大长度
                .addLengthMax(ParameterUtil.named("监控点名称"), request.getPointName(), ConstantFactory.LENGTH_MAX200);
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return failed(result.getErrorMsg());
        }
        //#endregion
        return this.service.create(request);
    }
    /**
     * 编辑[监控点]
     * @author lin.liu
     * @description 编辑[监控点]
     */
    @PostMapping(value = "modify")
    public ExecutedResult<String> modify(@RequestBody ReqModifyWaterMonitoryPoint request) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                // 必须大于0
                .addGreater(ParameterUtil.named("监控id"), request.getId(), 0L)
                // 非空
                .addNotNullOrEmpty(ParameterUtil.named("监控点名称"), request.getPointName())
                // 限制最大长度
                .addLengthMax(ParameterUtil.named("监控点名称"), request.getPointName(), ConstantFactory.LENGTH_MAX200);
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return failed(result.getErrorMsg());
        }
        //#endregion
        return this.service.modify(request);
    }
    /**
     * 删除监控点
     *
     * @param id 删除监控点
     * @author li。ling。yu
     * @date 2023/07/17
     */
    @PostMapping(value = "remove")
    public ExecutedResult<String> remove(@RequestParam Long id) {
        return this.service.remove(id);
    }
    /**
     * 查询监控点
     * @author lin.liu
     * @description 查询监控点
     */
    @PostMapping(value = "search")
    public ExecutedResult<PagerResult<WaterMonitoryPointVO>> search(@RequestBody SearchWaterMonitoryPoint request) {
        return this.service.search(request);
    }
    /**
     * 所有监控点最新数据
     * @author lin.liu
     */
    @GetMapping(value = "listData")
    public ExecutedResult<List<ResMonitoryPointData>> listData() {
        return this.service.listData();
    }
}
src/main/java/com/nanjing/water/host/controller/admin/AdminMenuController.java
对比新文件
@@ -0,0 +1,273 @@
package com.nanjing.water.host.controller.admin;
import com.nanjing.water.common.ConstantFactory;
import com.nanjing.water.common.ExecutedResult;
import com.nanjing.water.common.PagerResult;
import com.nanjing.water.common.util.ParameterUtil;
import com.nanjing.water.common.validator.ParameterValidateResult;
import com.nanjing.water.common.validator.ParameterValidator;
import com.nanjing.water.entity.enums.EMenuType;
import com.nanjing.water.entity.enums.EState;
import com.nanjing.water.entity.request.ReqListId;
import com.nanjing.water.entity.request.ReqListSetSort;
import com.nanjing.water.entity.request.ReqSetSort;
import com.nanjing.water.entity.request.adminmenu.ReqCreateAdminMenu;
import com.nanjing.water.entity.request.adminmenu.ReqModifyAdminMenu;
import com.nanjing.water.entity.response.admin.ResAdminMenuTreeAndPermission;
import com.nanjing.water.entity.search.SearchAdminMenu;
import com.nanjing.water.host.BasicController;
import com.nanjing.water.host.api.MustAdmin;
import com.nanjing.water.repository.vo.AdminMenuVO;
import com.nanjing.water.service.AdminPowerService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
 * 10.菜单相关接口
 *
 * @author lin.liu
 * @date 2023/02/17
 * @order 10
 */
@RestController
@RequestMapping(value = "admin/menu")
public class AdminMenuController extends BasicController {
    @Autowired
    private AdminPowerService service;
    /**
     * 创建菜单
     *
     * @author lin.liu
     * @date 2023/02/17
     */
    @MustAdmin
    @PostMapping(value = "create")
    public ExecutedResult<Long> create(@RequestBody ReqCreateAdminMenu request) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                // 必须是枚举值
                .addMustEnum(ParameterUtil.named("类型"), request.getType(), EMenuType.class)
                // 非空
                .addNotNullOrEmpty(ParameterUtil.named("菜单名称"), request.getName())
                // 限制长度
                .addLengthMax(ParameterUtil.named("菜单名称"), request.getName(), ConstantFactory.LENGTH_MAX20)
                // 限制长度
                .addLengthMax(ParameterUtil.named("菜单标题"), request.getTitle(), ConstantFactory.LENGTH_MAX100)
                // 限制长度
                .addLengthMax(ParameterUtil.named("前端资源路径"), request.getUrl(), ConstantFactory.LENGTH_MAX200)
                // 限制长度
                .addLengthMax(ParameterUtil.named("图标"), request.getIcon(), ConstantFactory.LENGTH_MAX200)
                ;
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return ExecutedResult.failed(result.getErrorMsg());
        }
        //#endregion
        return this.service.createMenu(request);
    }
    /**
     * 编辑菜单
     *
     * @author lin.liu
     * @date 2023/02/17
     */
    @MustAdmin
    @PostMapping(value = "modify")
    public ExecutedResult<String> modify(@RequestBody ReqModifyAdminMenu request) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                // 必须是枚举值
                .addMustEnum(ParameterUtil.named("类型"), request.getType(), EMenuType.class)
                // 非空
                .addNotNullOrEmpty(ParameterUtil.named("菜单名称"), request.getName())
                // 限制长度
                .addLengthMax(ParameterUtil.named("菜单名称"), request.getName(), ConstantFactory.LENGTH_MAX20)
                // 限制长度
                .addLengthMax(ParameterUtil.named("菜单标题"), request.getTitle(), ConstantFactory.LENGTH_MAX100)
                // 限制长度
                .addLengthMax(ParameterUtil.named("前端资源路径"), request.getUrl(), ConstantFactory.LENGTH_MAX200)
                // 限制长度
                .addLengthMax(ParameterUtil.named("图标"), request.getIcon(), ConstantFactory.LENGTH_MAX200)
                ;
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return ExecutedResult.failed(result.getErrorMsg());
        }
        //#endregion
        return this.service.modifyMenu(request);
    }
    /**
     * 停用菜单
     *
     * @param menuId 菜单id
     * @author lin.liu
     * @date 2023/02/17
     */
    @MustAdmin
    @PostMapping(value = "stop/{menuId}")
    public ExecutedResult<String> stop(@PathVariable Long menuId) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                .addGreater(ParameterUtil.named("菜单id"), menuId, 0L);
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return ExecutedResult.failed(result.getErrorMsg());
        }
        //#endregion
        return this.service.changeMenuStatus(menuId, EState.DISABLED);
    }
    /**
     * 启用菜单
     *
     * @param menuId 菜单id
     * @author lin.liu
     * @date 2023/02/17
     */
    @MustAdmin
    @PostMapping(value = "enable/menuId")
    public ExecutedResult<String> enable(@PathVariable Long menuId) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                .addGreater(ParameterUtil.named("菜单id"), menuId, 0L);
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return ExecutedResult.failed(result.getErrorMsg());
        }
        //#endregion
        return this.service.changeMenuStatus(menuId, EState.NORMAL);
    }
    /**
     * [菜单]设置排序值
     *
     * @author lin.liu
     * @date 2021/11/23
     */
    @PostMapping(value = "setSort")
    public ExecutedResult<String> setSort(@RequestBody ReqSetSort request) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                // 必须大于0
                .addGreater(ParameterUtil.named("菜单id"), request.getId(), 0L)
                // 必须大于0
                .addGreaterThan(ParameterUtil.named("排序值"), request.getSort(), 0)
                ;
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return failed(result.getErrorMsg());
        }
        //#endregion
        return this.service.setMenuSort(request);
    }
    /**
     * [菜单]批量设置排序值
     *
     * @author lin.liu
     * @date 2021/11/23
     */
    @PostMapping(value = "listSetSort")
    ExecutedResult<String> listSetSort(ReqListSetSort request) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                // 不能为空
                .addNotNullOrEmpty(ParameterUtil.named("菜单排序设置列表"), request.getList())
                ;
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return failed(result.getErrorMsg());
        }
        //#endregion
        return this.service.listSetMenuSort(request);
    }
    /**
     * 删除菜单
     *
     * @param menuId 菜单id
     * @author lin.liu
     * @date 2023/02/17
     */
    @MustAdmin
    @PostMapping(value = "remove/{menuId}")
    public ExecutedResult<String> remove(@PathVariable Long menuId) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                .addGreater(ParameterUtil.named("菜单id"), menuId, 0L);
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return ExecutedResult.failed(result.getErrorMsg());
        }
        //#endregion
        return this.service.removeMenu(menuId);
    }
    /**
     * 批量删除[删除菜单]
     *
     * @author lin.liu
     * @date 2021/11/23
     */
    @PostMapping(value = "removeList")
    public ExecutedResult<String> removeList(@RequestBody ReqListId request) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                // 不能为空
                .addNotNullOrEmpty(ParameterUtil.named("[测试信息]id列表"), request.getListId())
                ;
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return failed(result.getErrorMsg());
        }
        //#endregion
        return this.service.removeMenuList(request.getListId());
    }
    /**
     * 获取所有层级菜单(只返回状态正常的数据)
     *
     * @author lin.liu
     * @date 2023/02/17
     */
    @GetMapping(value = "getListTree")
    public ExecutedResult<List<ResAdminMenuTreeAndPermission>> getListTree() {
        return this.service.getListTreeMenu();
    }
    /**
     * 获取指定菜单的子级菜单
     *
     * @param menuId 菜单id
     * @author lin.liu
     * @date 2023/02/17
     */
    @GetMapping(value = "getListChild/{menuId}")
    public ExecutedResult<List<AdminMenuVO>> getListChild(@PathVariable Long menuId) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                .addGreater(ParameterUtil.named("菜单id"), menuId, 0L);
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return ExecutedResult.failed(result.getErrorMsg());
        }
        //#endregion
        return this.service.getListChildMenu(menuId);
    }
    /**
     * 分页查询菜单
     *
     * @author lin.liu
     * @date 2023/02/17
     */
    @PostMapping(value = "search")
    public ExecutedResult<PagerResult<AdminMenuVO>> search(@RequestBody SearchAdminMenu request) {
        return this.service.searchMenu(request);
    }
}
src/main/java/com/nanjing/water/host/controller/admin/AdminPermissionController.java
对比新文件
@@ -0,0 +1,120 @@
package com.nanjing.water.host.controller.admin;
import com.nanjing.water.common.ConstantFactory;
import com.nanjing.water.common.ExecutedResult;
import com.nanjing.water.common.PagerResult;
import com.nanjing.water.common.util.ParameterUtil;
import com.nanjing.water.common.validator.ParameterValidateResult;
import com.nanjing.water.common.validator.ParameterValidator;
import com.nanjing.water.entity.enums.EState;
import com.nanjing.water.entity.request.adminpermission.ReqCreateAdminPermission;
import com.nanjing.water.entity.request.adminpermission.ReqModifyAdminPermission;
import com.nanjing.water.entity.response.admin.ResAdminPermission;
import com.nanjing.water.entity.search.SearchAdminPermission;
import com.nanjing.water.host.api.MustAdmin;
import com.nanjing.water.service.AdminPowerService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
 * 20.权限相关接口
 *
 * @author lin.liu
 * @date 2023/02/17
 * @order 20
 */
@MustAdmin
@RestController
@RequestMapping(value = "admin/permission")
public class AdminPermissionController {
    @Autowired
    private AdminPowerService service;
    /**
     * 创建权限
     *
     * @author lin.liu
     * @date 2023/02/17
     */
    @PostMapping(value = "create")
    public ExecutedResult<Long> create(@RequestBody ReqCreateAdminPermission request) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                .addNotNullOrEmpty(ParameterUtil.named("权限值"), request.getSn())
                .addLengthMax(ParameterUtil.named("权限值"), request.getSn(), ConstantFactory.LENGTH_MAX50)
                .addGreater(ParameterUtil.named("菜单id"), request.getMenuId(), 0)
                .addLengthMax(ParameterUtil.named("前端资源url"), request.getMenuUrl(), ConstantFactory.LENGTH_MAX200)
                .addNotNullOrEmpty(ParameterUtil.named("权限名称"), request.getName())
                .addLengthMax(ParameterUtil.named("权限名称"), request.getName(), ConstantFactory.LENGTH_MAX50)
                .addLengthMax(ParameterUtil.named("图标"), request.getIcon(), ConstantFactory.LENGTH_MAX200)
                .addLengthMax(ParameterUtil.named("类型"), request.getType(), ConstantFactory.LENGTH_MAX50)
                ;
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return ExecutedResult.failed(result.getErrorMsg());
        }
        //#endregion
        return this.service.createPermission(request);
    }
    /**
     * 编辑权限
     *
     * @author lin.liu
     * @date 2023/02/17
     */
    @PostMapping(value = "modify")
    public ExecutedResult<String> modify(@RequestBody ReqModifyAdminPermission request) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                .addNotNullOrEmpty(ParameterUtil.named("权限值"), request.getSn())
                .addLengthMax(ParameterUtil.named("权限值"), request.getSn(), ConstantFactory.LENGTH_MAX50)
                .addGreater(ParameterUtil.named("菜单id"), request.getMenuId(), 0)
                .addLengthMax(ParameterUtil.named("前端资源url"), request.getMenuUrl(), ConstantFactory.LENGTH_MAX200)
                .addNotNullOrEmpty(ParameterUtil.named("权限名称"), request.getName())
                .addLengthMax(ParameterUtil.named("权限名称"), request.getName(), ConstantFactory.LENGTH_MAX50)
                .addLengthMax(ParameterUtil.named("图标"), request.getIcon(), ConstantFactory.LENGTH_MAX200)
                .addLengthMax(ParameterUtil.named("类型"), request.getType(), ConstantFactory.LENGTH_MAX50)
                // 必须是枚举
                .addMustEnum(ParameterUtil.named("状态"), request.getStatus(), EState.class)
                ;
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return ExecutedResult.failed(result.getErrorMsg());
        }
        //#endregion
        return this.service.modifyPermission(request);
    }
    /**
     * 删除权限
     *
     * @param powerId 权限id
     * @author lin.liu
     * @date 2023/02/17
     */
    @GetMapping(value = "remove/{powerId}")
    public ExecutedResult<String> remove(@PathVariable Long powerId) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                .addGreater(ParameterUtil.named("权限id"), powerId, 0L);
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return ExecutedResult.failed(result.getErrorMsg());
        }
        //#endregion
        return this.service.removePermission(powerId);
    }
    /**
     * 分页查询权限
     *
     * @author lin.liu
     * @date 2023/02/17
     */
    @PostMapping(value = "search")
    public ExecutedResult<PagerResult<ResAdminPermission>> search(@RequestBody SearchAdminPermission request) {
        return this.service.searchPermission(request);
    }
}
src/main/java/com/nanjing/water/host/controller/admin/AdminRoleController.java
对比新文件
@@ -0,0 +1,321 @@
package com.nanjing.water.host.controller.admin;
import com.nanjing.water.common.ConstantFactory;
import com.nanjing.water.common.ExecutedResult;
import com.nanjing.water.common.PagerResult;
import com.nanjing.water.common.util.ParameterUtil;
import com.nanjing.water.common.validator.ParameterValidateResult;
import com.nanjing.water.common.validator.ParameterValidator;
import com.nanjing.water.entity.enums.EState;
import com.nanjing.water.entity.request.ReqListId;
import com.nanjing.water.entity.request.ReqListSetSort;
import com.nanjing.water.entity.request.ReqSetSort;
import com.nanjing.water.entity.request.adminrole.ReqCreateAdminRole;
import com.nanjing.water.entity.request.adminrole.ReqModifyAdminRole;
import com.nanjing.water.entity.request.adminrolemenurelation.ReqSetListMenu4Role;
import com.nanjing.water.entity.request.adminuser.ReqSetListRole4Admin;
import com.nanjing.water.entity.response.admin.ResAdminPower;
import com.nanjing.water.entity.search.SearchAdminRole;
import com.nanjing.water.host.BasicController;
import com.nanjing.water.host.api.MustAdmin;
import com.nanjing.water.repository.vo.AdminRoleVO;
import com.nanjing.water.service.AdminPowerService;
import com.nanjing.water.service.AdminService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
 * 30.角色相关接口
 *
 * @author lin.liu
 * @date 2023/02/17
 * @order 30
 */
@RestController
@RequestMapping(value = "admin/role")
public class AdminRoleController extends BasicController {
    @Autowired
    private AdminPowerService service;
    @Autowired
    private AdminService adminService;
    /**
     * 创建角色
     *
     * @author lin.liu
     * @date 2023/02/17
     */
    @MustAdmin
    @PostMapping(value = "create")
    public ExecutedResult<Long> create(@RequestBody ReqCreateAdminRole request) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                // 非空
                .addNotNullOrEmpty(ParameterUtil.named("角色名称"), request.getName())
                // 限制长度
                .addLengthMax(ParameterUtil.named("角色名称"), request.getName(), ConstantFactory.LENGTH_MAX20)
                // 限制长度
                .addLengthMax(ParameterUtil.named("描述"), request.getDescription(), ConstantFactory.LENGTH_MAX100)
                ;
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return ExecutedResult.failed(result.getErrorMsg());
        }
        //#endregion
        return service.createRole(request);
    }
    /**
     * 编辑角色
     *
     * @author lin.liu
     * @date 2023/02/17
     */
    @MustAdmin
    @PostMapping(value = "modify")
    public ExecutedResult<String> modify(@RequestBody ReqModifyAdminRole request) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                // 必须大于0
                .addGreater(ParameterUtil.named("角色id"), request.getId(), 0L)
                // 非空
                .addNotNullOrEmpty(ParameterUtil.named("角色名称"), request.getName())
                // 限制长度
                .addLengthMax(ParameterUtil.named("角色名称"), request.getName(), ConstantFactory.LENGTH_MAX100)
                // 限制长度
                .addLengthMax(ParameterUtil.named("描述"), request.getDescription(), ConstantFactory.LENGTH_MAX200)
                // 必须是枚举值
                .addMustEnum(ParameterUtil.named("状态"), request.getStatus(), EState.class)
                ;
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return ExecutedResult.failed(result.getErrorMsg());
        }
        //#endregion
        return service.modifyRole(request);
    }
    /**
     * 停用角色
     *
     * @param roleId 角色id
     * @author lin.liu
     * @date 2023/02/17
     */
    @MustAdmin
    @PostMapping(value = "stop/{roleId}")
    public ExecutedResult<String> stop(@PathVariable Long roleId) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                .addGreater(ParameterUtil.named("角色id"), roleId, 0L);
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return ExecutedResult.failed(result.getErrorMsg());
        }
        //#endregion
        return service.changeRoleStatus(roleId, EState.DISABLED);
    }
    /**
     * 启用角色
     *
     * @param roleId 角色id
     * @author lin.liu
     * @date 2023/02/17
     */
    @MustAdmin
    @PostMapping(value = "enable/{roleId}")
    public ExecutedResult<String> enable(@PathVariable Long roleId) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                .addGreater(ParameterUtil.named("角色id"), roleId, 0L);
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return ExecutedResult.failed(result.getErrorMsg());
        }
        //#endregion
        return service.changeRoleStatus(roleId, EState.NORMAL);
    }
    /**
     * [角色]设置排序值
     *
     * @author lin.liu
     * @date 2021/11/23
     */
    @PostMapping(value = "setSort")
    public ExecutedResult<String> setSort(@RequestBody ReqSetSort request) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                // 必须大于0
                .addGreater(ParameterUtil.named("角色id"), request.getId(), 0L)
                // 必须大于0
                .addGreaterThan(ParameterUtil.named("排序值"), request.getSort(), 0)
                ;
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return failed(result.getErrorMsg());
        }
        //#endregion
        return this.service.setRoleSort(request);
    }
    /**
     * [角色]批量设置排序值
     *
     * @author lin.liu
     * @date 2021/11/23
     */
    @PostMapping(value = "listSetSort")
    ExecutedResult<String> listSetSort(ReqListSetSort request) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                // 不能为空
                .addNotNullOrEmpty(ParameterUtil.named("角色排序设置列表"), request.getList())
                ;
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return failed(result.getErrorMsg());
        }
        //#endregion
        return this.service.listSetRoleSort(request);
    }
    /**
     * 删除角色
     *
     * @param roleId 角色id
     * @author lin.liu
     * @date 2023/02/17
     */
    @MustAdmin
    @PostMapping(value = "remove/{roleId}")
    public ExecutedResult<String> remove(@PathVariable Long roleId) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                .addGreater(ParameterUtil.named("角色id"), roleId, 0L);
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return ExecutedResult.failed(result.getErrorMsg());
        }
        //#endregion
        return service.removeRole(roleId);
    }
    /**
     * 批量删除角色
     * @param request 请求参数
     * @author lin.liu
     * @date 2021/11/23
     */
    @PostMapping(value = "removeList")
    public ExecutedResult<String> removeList(@RequestBody ReqListId request) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                // 不能为空
                .addNotNullOrEmpty(ParameterUtil.named("角色id列表"), request.getListId())
                ;
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return failed(result.getErrorMsg());
        }
        //#endregion
        return this.service.removeRoleList(request.getListId());
    }
    /**
     * 分页查询角色
     *
     * @author lin.liu
     * @date 2023/02/17
     */
    @PostMapping(value = "search")
    public ExecutedResult<PagerResult<AdminRoleVO>> search(@RequestBody SearchAdminRole request) {
        return this.service.searchRole(request);
    }
    /**
     * 设置角色菜单权限列表
     *
     * @author lin.liu
     * @date 2023/02/17
     */
    @MustAdmin
    @PostMapping(value = "setListMenuAndPermission")
    public ExecutedResult<String> setListMenuAndPermission(@RequestBody ReqSetListMenu4Role request) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                .addGreater(ParameterUtil.named("角色id"), request.getId(), 0)
        .addNotNullOrEmpty(ParameterUtil.named("菜单列表"), request.getListMenu())
        .addNotNullOrEmpty(ParameterUtil.named("菜单权限列表"), request.getListMenu());
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return ExecutedResult.failed(result.getErrorMsg());
        }
        //#endregion
        return service.setListMenu4Role(request);
    }
    /**
     * 获取角色菜单权限列表
     *
     * @param roleId 角色id
     * @author lin.liu
     * @date 2023/02/17
     */
    @GetMapping(value = "getListMenuAndPermission/{roleId}")
    public ExecutedResult<ResAdminPower> getListMenuAndPermission(@PathVariable Long roleId) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                .addGreater(ParameterUtil.named("角色id"), roleId, 0);
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return ExecutedResult.failed(result.getErrorMsg());
        }
        //#endregion
        return service.getListMenu4Role(roleId);
    }
    /**
     * 设置管理员的角色列表
     *
     * @author lin.liu
     * @date 2023/02/17
     */
    @MustAdmin
    @PostMapping(value = "setListRole4Admin")
    public ExecutedResult<String> setListRole4Admin(@RequestBody ReqSetListRole4Admin request) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                .addGreater(ParameterUtil.named("管理员id"), request.getId(), 0);
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return ExecutedResult.failed(result.getErrorMsg());
        }
        //#endregion
        return adminService.setListRole4Admin(request);
    }
    /**
     * 获取管理员的角色列表
     *
     * @param adminId 管理员id
     * @author lin.liu
     * @date 2023/02/17
     */
    @GetMapping(value = "getListRole4Admin")
    public ExecutedResult<List<AdminRoleVO>> getListRole4Admin(@RequestParam Long adminId) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                .addGreater(ParameterUtil.named("管理员id"), adminId, 0);
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return ExecutedResult.failed(result.getErrorMsg());
        }
        //#endregion
        return adminService.getListRole4Admin(adminId);
    }
}
src/main/java/com/nanjing/water/host/controller/admin/AdminUserController.java
对比新文件
@@ -0,0 +1,294 @@
package com.nanjing.water.host.controller.admin;
import com.nanjing.water.common.ConstantFactory;
import com.nanjing.water.common.ExecutedResult;
import com.nanjing.water.common.PagerResult;
import com.nanjing.water.common.jwt.LoginUserDTO;
import com.nanjing.water.common.util.IPUtils;
import com.nanjing.water.common.util.ParameterUtil;
import com.nanjing.water.common.validator.ParameterValidateResult;
import com.nanjing.water.common.validator.ParameterValidator;
import com.nanjing.water.entity.enums.EState;
import com.nanjing.water.entity.enums.EUserType;
import com.nanjing.water.entity.request.ReqChangePassword;
import com.nanjing.water.entity.request.adminuser.ReqAdminLogin;
import com.nanjing.water.entity.request.adminuser.ReqCreateAdminUser;
import com.nanjing.water.entity.request.adminuser.ReqModifyAdminUser;
import com.nanjing.water.entity.response.admin.ResAdminLogin;
import com.nanjing.water.entity.response.admin.ResAdminPower;
import com.nanjing.water.entity.search.SearchAdminUser;
import com.nanjing.water.host.BasicController;
import com.nanjing.water.host.api.MustAdmin;
import com.nanjing.water.host.api.NonLogin;
import com.nanjing.water.repository.vo.AdminUserVO;
import com.nanjing.water.service.AdminPowerService;
import com.nanjing.water.service.AdminService;
import com.nanjing.water.service.dto.ResAdminDetail;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
/**
 * 40.管理员用户相关接口
 *
 * @author lin.liu
 * @date 2023/02/17
 * @order 40
 */
@RestController
@RequestMapping("admin/user")
public class AdminUserController extends BasicController {
    @Autowired
    private AdminService service;
    @Autowired
    private AdminPowerService adminPowerService;
    /**
     * 添加后台管理员
     *
     * @param request 请求参数
     * @author lin.liu
     * @date 2023/02/17
     */
    @MustAdmin
    @PostMapping("add")
    public ExecutedResult<Long> add(@RequestBody ReqCreateAdminUser request) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                .addMustEnum(ParameterUtil.named("用户类型"), request.getUserType(), EUserType.class)
                .addNotNullOrEmpty(ParameterUtil.named("用户名"), request.getUserName())
                .addLengthMax(ParameterUtil.named("用户名"), request.getUserName(), ConstantFactory.LENGTH_MAX100)
                .addNotNullOrEmpty(ParameterUtil.named("密码"), request.getPassword())
                .addLengthMax(ParameterUtil.named("密码"), request.getPassword(), ConstantFactory.LENGTH_MAX50)
                .addLengthMax(ParameterUtil.named("昵称"), request.getNickName(), ConstantFactory.LENGTH_MAX50)
                .addLengthMax(ParameterUtil.named("头像"), request.getHeadImg(), ConstantFactory.LENGTH_MAX500)
                .addLengthMax(ParameterUtil.named("联系方式"), request.getContact(), ConstantFactory.LENGTH_MAX50)
                .addLengthMax(ParameterUtil.named("联系邮箱"), request.getEmail(), ConstantFactory.LENGTH_MAX50);
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return ExecutedResult.failed(result.getErrorMsg());
        }
        //#endregion
        return service.createAdmin(request);
    }
    /**
     * 修改后台管理员
     *
     * @param request 请求参数
     * @author lin.liu
     * @date 2023/02/17
     */
    @MustAdmin
    @PostMapping("modify")
    public ExecutedResult<String> modify(@RequestBody ReqModifyAdminUser request) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                .addGreater(ParameterUtil.named("用户id"), request.getId(), 0L)
                .addMustEnum(ParameterUtil.named("用户类型"), request.getUserType(), EUserType.class)
                .addMustEnum(ParameterUtil.named("状态"), request.getStatus(), EState.class)
                .addLengthMax(ParameterUtil.named("昵称"), request.getNickName(), ConstantFactory.LENGTH_MAX50)
                .addLengthMax(ParameterUtil.named("头像"), request.getHeadImg(), ConstantFactory.LENGTH_MAX500)
                .addLengthMax(ParameterUtil.named("联系方式"), request.getContact(), ConstantFactory.LENGTH_MAX50)
                .addLengthMax(ParameterUtil.named("联系邮箱"), request.getEmail(), ConstantFactory.LENGTH_MAX50);
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return ExecutedResult.failed(result.getErrorMsg());
        }
        //#endregion
        return service.modify(request);
    }
    /**
     * 获取指定管理员详情
     *
     * @param userId 用户id
     * @author lin.liu
     * @date 2023/02/17
     */
    @GetMapping("detail/{userId}")
    public ExecutedResult<ResAdminDetail> detail(@PathVariable Long userId) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                .addGreater(ParameterUtil.named("用户id"), userId, 0L);
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return ExecutedResult.failed(result.getErrorMsg());
        }
        //#endregion
        return service.detail(userId);
    }
    /**
     * 分页查询所有管理员
     *
     * @param request 查询参数
     * @author lin.liu
     * @date 2023/02/17
     */
    @MustAdmin
    @PostMapping("search")
    public ExecutedResult<PagerResult<AdminUserVO>> search(@RequestBody SearchAdminUser request) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator();
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return ExecutedResult.failed(result.getErrorMsg());
        }
        //#endregion
        return service.search(request);
    }
    /**
     * 管理员登录
     *
     * @param request 请求参数
     * @author lin.liu
     * @date 2023/02/17
     */
    @PostMapping("login")
    @NonLogin
    public ExecutedResult<ResAdminLogin> adminLogin(@RequestBody ReqAdminLogin request) throws Exception {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                .addNotNullOrEmpty(ParameterUtil.named("验证码已过期,请重新获取"), request.getUuid())
                .addNotNullOrEmpty(ParameterUtil.named("验证码不允许为空"), request.getCode())
                .addNotNullOrEmpty(ParameterUtil.named("用户名"), request.getUserName())
                .addNotNullOrEmpty(ParameterUtil.named("密码"), request.getPassword())
                .addNotNullOrEmpty(ParameterUtil.named("设备码"), request.getMachineCode());
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return ExecutedResult.failed(result.getErrorMsg());
        }
        //#endregion
        return service.adminLogin(request);
    }
    /**
     * 获取登录设备ip地址
     *
     * @param request 获取登录设备ip地址
     * @author lin.liu
     * @date 2023/02/17
     */
    @GetMapping("/getIpAddress")
    @NonLogin
    public ExecutedResult<String> getIpAddress(HttpServletRequest request) {
        return ExecutedResult.success(IPUtils.getIpAddress(request));
    }
    /**
     * 保存前端登录验证码
     *
     * @param uuid 请求参数
     * @author lin.liu
     * @date 2023/02/17
     */
    @GetMapping("/generate")
    @NonLogin
    public ExecutedResult<String> generate(@RequestParam String uuid) {
        //#endregion
        return  service.generate(uuid);
    }
    /**
     * 获取管理员权限列表
     *
     * @param userId 用户id
     * @author lin.liu
     * @date 2023/02/17
     */
    @GetMapping("getPower/{userId}")
    public ExecutedResult<ResAdminPower> getPower(@PathVariable Long userId) {
        return service.getPower(userId);
    }
    /**
     * 修改密码
     *
     * @param request 请求参数
     * @author lin.liu
     * @date 2023/02/17
     */
    @PostMapping("changePassword")
    public ExecutedResult<String> changePassword(@RequestBody ReqChangePassword request) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                .addNotNullOrEmpty(ParameterUtil.named("旧密码"), request.getOldPassword())
                .addNotNullOrEmpty(ParameterUtil.named("新密码"), request.getNewPassword())
                .addLengthMax(ParameterUtil.named("新密码"), request.getNewPassword(), ConstantFactory.LENGTH_MAX50);
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return ExecutedResult.failed(result.getErrorMsg());
        }
        //#endregion
        LoginUserDTO user = super.getTokenUser();
        return service.changePassword(user, request);
    }
    /**
     * 重置管理员密码
     *
     * @param userId 用户id
     * @author lin.liu
     * @date 2023/02/17
     */
    @MustAdmin
    @PostMapping("resetPassword/{userId}")
    public ExecutedResult<String> resetPassword(@PathVariable Long userId) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                .addGreater(ParameterUtil.named("用户id"), userId, 0L);
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return ExecutedResult.failed(result.getErrorMsg());
        }
        //#endregion
        return service.resetPassword(userId);
    }
    /**
     * 停用管理员帐号
     *
     * @param userId 用户id
     * @author lin.liu
     * @date 2023/02/17
     */
    @MustAdmin
    @PostMapping(value = "stop/{userId}")
    public ExecutedResult<String> stop(@PathVariable Long userId) {
        return this.service.stop(userId);
    }
    /**
     * 启用管理员帐号
     *
     * @param userId 用户id
     * @author lin.liu
     * @date 2023/02/17
     */
    @MustAdmin
    @PostMapping(value = "enable/{userId}")
    public ExecutedResult<String> enable(@PathVariable Long userId) {
        return this.service.enable(userId);
    }
    /**
     * 删除管理员
     *
     * @param userId 用户id
     * @author lin.liu
     * @date 2023/02/17
     */
    @MustAdmin
    @PostMapping("remove/{userId}")
    public ExecutedResult<String> remove(@PathVariable Long userId) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                .addGreater(ParameterUtil.named("用户id"), userId, 0L);
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return ExecutedResult.failed(result.getErrorMsg());
        }
        //#endregion
        return service.remove(userId);
    }
}
src/main/java/com/nanjing/water/host/controller/base/FileController.java
对比新文件
@@ -0,0 +1,188 @@
package com.nanjing.water.host.controller.base;
import com.google.gson.Gson;
import com.nanjing.water.common.ConstantFactory;
import com.nanjing.water.common.ExecutedResult;
import com.nanjing.water.common.config.SysConfig;
import com.nanjing.water.common.enums.EContentType;
import com.nanjing.water.common.util.FileUtil;
import com.nanjing.water.common.util.LocalDateTimeUtil;
import com.nanjing.water.common.util.ParameterUtil;
import com.nanjing.water.common.util.StringUtil;
import com.nanjing.water.common.validator.EParameterValidateType;
import com.nanjing.water.entity.dto.NameValueDTO;
import com.nanjing.water.entity.dto.UploadResultVo;
import com.nanjing.water.host.api.NonLogin;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.ResourceLoader;
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 org.springframework.web.multipart.MultipartHttpServletRequest;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
/**
 * 01.文件上传
 * @author lin.liu
 * @date 2021/11/26
 * @order 01
 */
@NonLogin
@RestController
@RequestMapping("/file")
public class FileController {
    @Autowired
    private ResourceLoader resourceLoader;
    /**
     * 上传文件
     *
     * @param requestMultipart 复杂请求对象
     */
    @PostMapping(value = "upload")
    @NonLogin
    public ExecutedResult<UploadResultVo> upload(MultipartHttpServletRequest requestMultipart, HttpServletRequest request) throws Exception {
        UploadResultVo result = this.defaultResult();
        Map<String, MultipartFile> mapFile = requestMultipart.getFileMap();
        if (mapFile.isEmpty()) {
            return ExecutedResult.failed("请求中没有找到文件。");
        }
        if (mapFile.size() > 1) {
            return ExecutedResult.failed("仅支持单个文件上传。");
        }
        String fileId = requestMultipart.getParameter("fileId");
        String toPath = requestMultipart.getParameter("path");
        if (StringUtil.isNullOrEmpty(toPath)) {
            return ExecutedResult.failed(ParameterUtil.named("path") + EParameterValidateType.NOT_NULLOREMPTY.getDesc());
        }
        Iterator<Map.Entry<String, MultipartFile>> iterator = mapFile.entrySet().iterator();
        Map.Entry<String, MultipartFile> fileEntry = iterator.next();
        MultipartFile file = fileEntry.getValue();
        String contentType = file.getContentType();
        InputStream fConfig = resourceLoader.getResource("classpath:upload_allow.json").getInputStream();
        String allowStr = FileUtil.readFileContent(fConfig);
        Map<String, String> map = new Gson().fromJson(allowStr, Map.class);
        List<NameValueDTO<String>> listConfig = map.entrySet().stream().map(c -> new NameValueDTO<>(c.getKey(), c.getValue()))
                .collect(Collectors.toList());
        NameValueDTO<String> findConfig = listConfig.stream().filter(c -> c.getName().equals(contentType))
                .findAny().orElse(null);
        if (Objects.isNull(findConfig)) {
            return ExecutedResult.failed(file.getOriginalFilename() + ", 不支持的文件类型。" + file.getContentType());
        }
        if (null != file.getOriginalFilename() && !file.getOriginalFilename().contains(findConfig.getValue())) {
            return ExecutedResult.failed(file.getOriginalFilename() + ", 不支持的文件类型。" + file.getContentType());
        }
        EContentType type = EContentType.getByValue(file.getContentType());
        String filePath = "/" + toPath + "/files/";
        boolean isMultimedia = false;
        long size = file.getSize() / ConstantFactory.FILE_UNIT;
        if (null != type) {
            switch (type) {
                case GIF:
                case JPG:
                case PNG:
                case JPEG:
                    filePath = "/" + toPath + "/images/";
                    if (size > ConstantFactory.FILE_SIZE_20M) {
                        return ExecutedResult.failed("图片不能超过20M!");
                    }
                    break;
                case GZ:
                case RAR:
                case X7Z:
                case ZIP:
                    if (size > ConstantFactory.FILE_SIZE_20M) {
                        return ExecutedResult.failed("压缩文件不能超过20M!");
                    }
                    break;
                case MP3:
                    isMultimedia = true;
                    if (size > ConstantFactory.FILE_SIZE_20M) {
                        return ExecutedResult.failed("音频文件不能超过20M!");
                    }
                    break;
                case MP4:
                    isMultimedia = true;
                    if (size > ConstantFactory.FILE_SIZE_20M) {
                        return ExecutedResult.failed("视频文件不能超过20M!");
                    }
                    break;
                default:
                    break;
            }
        }
        filePath += LocalDateTimeUtil.toFormatString(LocalDateTimeUtil.todayFirst(), "yyyyMMdd") + "/";
        InputStream fsIn = file.getInputStream();
        String fileSuffix = "." + findConfig.getValue();
        File directory = new File(SysConfig.fileUploadBasic() + filePath);
        //如果路径不存在,新建
        if (!directory.exists() && !directory.isDirectory()) {
            directory.mkdirs();
        }
        String newFileName = filePath + StringUtil.md5(file.getOriginalFilename() + LocalDateTimeUtil.nowDateTimeFullStr() + SysConfig.fileDisturbStr()) + fileSuffix;
        File newFile = new File(SysConfig.fileUploadBasic() + newFileName);
        if (!newFile.exists()) {
            //每次写入1MB
            byte[] buffer = new byte[ConstantFactory.FILE_UNIT * ConstantFactory.FILE_SIZE_1M];
            int len;
            FileOutputStream fsOut = null;
            try {
                fsOut = new FileOutputStream(newFile);
                while ((len = fsIn.read(buffer)) != -1) {
                    fsOut.write(buffer, 0, len);
                    fsOut.flush();
                }
            } finally {
                if (Objects.nonNull(fsOut)) {
                    fsOut.close();
                }
            }
        }
        if (Objects.nonNull(fsIn)) {
            fsIn.close();
        }
        result.setFileId(fileId);
        result.setName(file.getOriginalFilename());
        result.setNewFileName(newFileName);
        result.setSize(size);
        result.setFileType(findConfig.getValue());
        result.setContentType(findConfig.getName());
        result.setNewFileView(SysConfig.fileViewBasic() + newFileName);
        file = null;
        newFile = null;
        return ExecutedResult.success(result);
    }
    private UploadResultVo defaultResult() {
        UploadResultVo result = new UploadResultVo();
        result.setFileId("");
        result.setName("");
        result.setNewFileName("");
        result.setNewFileView("");
        result.setFileType("");
        result.setContentType("");
        result.setSize(0L);
        return result;
    }
}
src/main/java/com/nanjing/water/host/controller/base/SysDictDataController.java
对比新文件
@@ -0,0 +1,145 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.host.controller.base;
import com.nanjing.water.common.ExecutedResult;
import com.nanjing.water.common.PagerResult;
import com.nanjing.water.common.util.ParameterUtil;
import com.nanjing.water.common.validator.ParameterValidateResult;
import com.nanjing.water.common.validator.ParameterValidator;
import com.nanjing.water.entity.request.ReqListId;
import com.nanjing.water.entity.request.sysdictdata.ReqCreateSysDictData;
import com.nanjing.water.entity.request.sysdictdata.ReqModifySysDictData;
import com.nanjing.water.entity.search.SearchSysDictData;
import com.nanjing.water.host.BasicController;
import com.nanjing.water.repository.vo.SysDictDataVO;
import com.nanjing.water.service.SysDictDataService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
 * 04.字典数据
 * @author lin.liu
 * @description 字典数据
 * @order 04
 */
@RestController
@RequestMapping(value = "sysDictData")
public class SysDictDataController extends BasicController {
    @Autowired
    private SysDictDataService service;
    /**
     * 创建[字典数据表]
     * @author lin.liu
     * @description 创建[字典数据表]
     */
    @PostMapping(value = "create")
    public ExecutedResult<Long> create(@RequestBody ReqCreateSysDictData request) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                // 非空
                //.addNotNullOrEmpty(ParameterUtil.named("名称"), request.getName())
                // 限制最大长度
                //.addLengthMax(ParameterUtil.named("名称"), request.getName(), ConstantFactory.LENGTH_MAX50)
                ;
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return failed(result.getErrorMsg());
        }
        //#endregion
        return this.service.create(request, super.getTokenUser());
    }
    /**
     * 编辑[字典数据表]
     * @author lin.liu
     * @description 编辑[字典数据表]
     */
    @PostMapping(value = "modify")
    public ExecutedResult<String> modify(@RequestBody ReqModifySysDictData request) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                // 必须大于0
                .addGreater(ParameterUtil.named("[字典数据表]id"), request.getId(), 0L)
                // 非空
                //.addNotNullOrEmpty(ParameterUtil.named("名称"), request.getName())
                // 限制最大长度
                //.addLengthMax(ParameterUtil.named("名称"), request.getName(), ConstantFactory.LENGTH_MAX50)
                ;
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return failed(result.getErrorMsg());
        }
        //#endregion
        return this.service.modify(request, super.getTokenUser());
    }
    /**
     * 获取[字典数据表]
     * @author lin.liu
     */
    @GetMapping(value = "get/{id}")
    public ExecutedResult<SysDictDataVO> get(@PathVariable Long id) {
        return this.service.get(id);
    }
    /**
     * 根据id删除[字典数据表]
     * @author zr
     * @description 根据id删除[字典数据表]
     */
    @PostMapping(value = "remove/{id}")
    public ExecutedResult<String> remove(@PathVariable Long id){
        return this.service.remove(id);
    }
    /**
     * 根据id批量删除字典数据
     * @author zr
     */
    @PostMapping(value = "removeList")
    public ExecutedResult<String> removeList(@RequestBody ReqListId reqListId){
        return this.service.removeList(reqListId.getListId());
    }
    /**
     * 根据类型获取[字典数据表]
     * @author zr
     */
    @GetMapping(value = "getListByType/{type}")
    public ExecutedResult<List<SysDictDataVO>> getListByType(@PathVariable String type) {
        return this.service.getListByType(type);
    }
    /**
     * 查询[字典数据表]
     * @author lin.liu
     */
    @PostMapping(value = "search")
    public ExecutedResult<PagerResult<SysDictDataVO>> search(@RequestBody SearchSysDictData request) {
        return this.service.search(request);
    }
}
src/main/java/com/nanjing/water/host/controller/base/SysDictTypeController.java
对比新文件
@@ -0,0 +1,143 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.host.controller.base;
import com.nanjing.water.common.ExecutedResult;
import com.nanjing.water.common.PagerResult;
import com.nanjing.water.common.util.ParameterUtil;
import com.nanjing.water.common.validator.ParameterValidateResult;
import com.nanjing.water.common.validator.ParameterValidator;
import com.nanjing.water.entity.request.ReqListId;
import com.nanjing.water.entity.request.sysdicttype.ReqCreateSysDictType;
import com.nanjing.water.entity.request.sysdicttype.ReqModifySysDictType;
import com.nanjing.water.entity.search.SearchSysDictType;
import com.nanjing.water.host.BasicController;
import com.nanjing.water.repository.vo.SysDictTypeVO;
import com.nanjing.water.service.SysDictTypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
 * 03.字典类型
 * @author lin.liu
 * @order 03
 */
@RestController
@RequestMapping(value = "sysDictType")
public class SysDictTypeController extends BasicController {
    @Autowired
    private SysDictTypeService service;
    /**
     * 创建[字典类型表]
     * @author lin.liu
     */
    @PostMapping(value = "create")
    public ExecutedResult<Long> create(@RequestBody ReqCreateSysDictType request) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                // 非空
                //.addNotNullOrEmpty(ParameterUtil.named("名称"), request.getName())
                // 限制最大长度
                //.addLengthMax(ParameterUtil.named("名称"), request.getName(), ConstantFactory.LENGTH_MAX50)
                ;
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return failed(result.getErrorMsg());
        }
        //#endregion
        return this.service.create(request);
    }
    /**
     * 编辑[字典类型表]
     * @author lin.liu
     */
    @PostMapping(value = "modify")
    public ExecutedResult<String> modify(@RequestBody ReqModifySysDictType request) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                // 必须大于0
                .addGreater(ParameterUtil.named("[字典类型表]id"), request.getId(), 0L)
                // 非空
                //.addNotNullOrEmpty(ParameterUtil.named("名称"), request.getName())
                // 限制最大长度
                //.addLengthMax(ParameterUtil.named("名称"), request.getName(), ConstantFactory.LENGTH_MAX50)
                ;
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return failed(result.getErrorMsg());
        }
        //#endregion
        return this.service.modify(request);
    }
    /**
     * 获取[字典类型表]
     * @author lin.liu
     */
    @GetMapping(value = "get/{id}")
    public ExecutedResult<SysDictTypeVO> get(@PathVariable Long id) {
        return this.service.get(id);
    }
    /**
     * 根据id删除[字典类型表]
     * @author zr
     * @description 根据id删除[字典类型表]
     */
    @PostMapping(value = "remove/{id}")
    ExecutedResult<String> remove(@PathVariable Long id){
        return this.service.remove(id);
    }
    /**
     * 根据id批量删除字典类型
     */
    @PostMapping(value = "removeList")
    public ExecutedResult<String> removeList(@RequestBody ReqListId request) {
        return service.removeList(request.getListId());
    }
    /**
     * 根据id批量获取[字典类型表]
     * @author zr
     * @description 根据id批量获取[字典类型表]
     */
    @PostMapping(value = "getList")
    public ExecutedResult<List<SysDictTypeVO>> getList(@RequestBody ReqListId request) {
        return this.service.getList(request.getListId());
    }
    /**
     * 查询[字典类型表]
     * @author lin.liu
     * @description 查询[字典类型表]
     */
    @PostMapping(value = "search")
    public ExecutedResult<PagerResult<SysDictTypeVO>> search(@RequestBody SearchSysDictType request) {
        return this.service.search(request);
    }
}
src/main/java/com/nanjing/water/host/controller/base/SysRegionController.java
对比新文件
@@ -0,0 +1,160 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.host.controller.base;
import com.nanjing.water.common.ExecutedResult;
import com.nanjing.water.common.PagerResult;
import com.nanjing.water.common.util.ParameterUtil;
import com.nanjing.water.common.validator.ParameterValidateResult;
import com.nanjing.water.common.validator.ParameterValidator;
import com.nanjing.water.entity.request.ReqListId;
import com.nanjing.water.entity.request.sysregion.ReqCreateSysRegion;
import com.nanjing.water.entity.request.sysregion.ReqModifySysRegion;
import com.nanjing.water.entity.response.region.ResRegionTree;
import com.nanjing.water.entity.search.SearchSysRegion;
import com.nanjing.water.host.BasicController;
import com.nanjing.water.host.api.NonLogin;
import com.nanjing.water.repository.vo.SysRegionVO;
import com.nanjing.water.service.SysRegionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
 * 06.系统行政地区
 * @author lin.liu
 * @order 06
 */
@RestController
@RequestMapping(value = "sysRegion")
public class SysRegionController extends BasicController {
    @Autowired
    private SysRegionService service;
    /**
     * 创建[系统行政地区]
     * @author lin.liu
     * @description 创建[系统行政地区]
     */
    @PostMapping(value = "create")
    public ExecutedResult<Long> create(@RequestBody ReqCreateSysRegion request) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                // 非空
                //.addNotNullOrEmpty(ParameterUtil.named("名称"), request.getName())
                // 限制最大长度
                //.addLengthMax(ParameterUtil.named("名称"), request.getName(), ConstantFactory.LENGTH_MAX50)
                ;
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return failed(result.getErrorMsg());
        }
        //#endregion
        return this.service.create(request);
    }
    /**
     * 编辑[系统行政地区]
     * @author lin.liu
     * @description 编辑[系统行政地区]
     */
    @PostMapping(value = "modify")
    public ExecutedResult<String> modify(@RequestBody ReqModifySysRegion request) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                // 必须大于0
                .addGreater(ParameterUtil.named("[系统行政地区]id"), request.getId(), 0L)
                // 非空
                //.addNotNullOrEmpty(ParameterUtil.named("名称"), request.getName())
                // 限制最大长度
                //.addLengthMax(ParameterUtil.named("名称"), request.getName(), ConstantFactory.LENGTH_MAX50)
                ;
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return failed(result.getErrorMsg());
        }
        //#endregion
        return this.service.modify(request);
    }
    /**
     * 获取[系统行政地区]
     * @author lin.liu
     * @description 获取[系统行政地区]
     */
    @GetMapping(value = "get/{code}")
    public ExecutedResult<SysRegionVO> get(@PathVariable String code) {
        return this.service.get(code);
    }
    /**
     * 根据id批量获取[系统行政地区]
     * @author lin.liu
     * @description 根据id批量获取[系统行政地区]
     */
    @PostMapping(value = "getList")
    public ExecutedResult<List<SysRegionVO>> getList(@RequestBody ReqListId request) {
        return this.service.getList(request.getListId());
    }
    /**
     * 获取指定区域的子级区域
     *
     * @param code 区域编号,不传获取所有一级区域
     * @author lin.liu
     * @date 2024/05/13
     */
    @GetMapping(value = "getListChild")
    public ExecutedResult<List<ResRegionTree>> getListChild(@RequestParam String code) {
        return this.service.getListChild(code);
    }
    /**
     * 查询[系统行政地区]
     * @author lin.liu
     * @description 查询[系统行政地区]
     */
    @PostMapping(value = "search")
    public ExecutedResult<PagerResult<SysRegionVO>> search(@RequestBody SearchSysRegion request) {
        return this.service.search(request);
    }
    /**
     * 获取指定区域的子级区域(包含自身)
     *
     * @param code 区域编号
     * @author lin.liu
     * @date 2024/05/13
     */
    @NonLogin
    @GetMapping(value = "currAndTree/{code}")
    public ExecutedResult<ResRegionTree> currAndTree(@PathVariable String code) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                .addNotNullOrEmpty(ParameterUtil.named("区域编号"), code);
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return ExecutedResult.failed(result.getErrorMsg());
        }
        //#endregion
        return this.service.currAndTree(code);
    }
}
src/main/java/com/nanjing/water/host/mqtt/MQTTConnect.java
对比新文件
@@ -0,0 +1,36 @@
package com.nanjing.water.host.mqtt;
import com.nanjing.water.common.config.MqttConfig;
import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
@Component
@Order(20)
public class MQTTConnect {
    @Autowired
    private MqttConfig mqttConfig;
    //生成配置对象,用户名,密码等
    public MqttConnectOptions getOptions() {
        MqttConnectOptions options = new MqttConnectOptions();
        options.setCleanSession(false);
        options.setUserName(mqttConfig.getUser());
        options.setPassword(mqttConfig.getPassword().toCharArray());
        options.setConnectionTimeout(mqttConfig.getConnectionTimeout());
        //设置心跳
        options.setKeepAliveInterval(mqttConfig.getKeepAliveInterval());
        return options;
    }
    public MqttConnectOptions getOptions(MqttConnectOptions options) {
        options.setCleanSession(false);
        options.setUserName(mqttConfig.getUser());
        options.setPassword(mqttConfig.getPassword().toCharArray());
        options.setConnectionTimeout(mqttConfig.getConnectionTimeout());
        //设置心跳
        options.setKeepAliveInterval(mqttConfig.getKeepAliveInterval());
        return options;
    }
}
src/main/java/com/nanjing/water/host/mqtt/MQTTServer.java
对比新文件
@@ -0,0 +1,94 @@
package com.nanjing.water.host.mqtt;
import com.nanjing.water.common.config.MqttConfig;
import com.nanjing.water.common.enums.ELogger;
import org.eclipse.paho.client.mqttv3.*;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import java.util.Objects;
/**
 * 发布端
 * Title:Server
 * Description: 服务器向多个客户端推送主题,即不同客户端可向服务器订阅相同主题
 */
@Component
@Order(7)
public class MQTTServer implements InitializingBean {
    private static final Logger LOGGER = LoggerFactory.getLogger(ELogger.DEBUG.getLogFileName());
    @Autowired
    private MqttConfig mqttConfig;
    @Autowired
    private MQTTConnect mqttConnect;
    static MqttClient client;
    private void connect() throws MqttException {
        //防止重复创建MQTTClient实例
        if (client == null) {
            //就是这里的clientId,服务器用来区分用户的,不能重复
            String host = "tcp://" + mqttConfig.getHost() + ":" + mqttConfig.getPort();
            client = new MqttClient(host, mqttConfig.getServerClientId(), new MemoryPersistence());// MemoryPersistence设置clientid的保存形式,默认为以内存保存
            //client.setCallback(new PushCallback());
        }
        MqttConnectOptions options = mqttConnect.getOptions();
        //判断拦截状态,这里注意一下,如果没有这个判断,是非常坑的
        if (!client.isConnected()) {
            client.connect(options);
            LOGGER.info("---------------------mqtt连接成功");
        } else {//这里的逻辑是如果连接成功就重新连接
            client.disconnect();
            client.connect(mqttConnect.getOptions(options));
            LOGGER.info("---------------------mqtt连接成功");
        }
    }
    public boolean publish(MqttTopic topic , MqttMessage message) throws MqttException {
        MqttDeliveryToken token = topic.publish(message);
        token.waitForCompletion();
        LOGGER.debug("消息发送成功! " + token.isComplete());
        return token.isComplete();
    }
    /**
     * mqtt发送消息
     * @param topic 发布消息的主题
     * @param data 消息内容
     */
    public boolean send(String topic, String data) throws MqttException {
        MqttConnectOptions options = mqttConnect.getOptions();
        try {
            client.connect(mqttConnect.getOptions(options));
        } catch (Exception e) {}
        MqttTopic mqttTopic = client.getTopic(topic);
        MqttMessage message = new MqttMessage();
        //消息等级
        //level 0:最多一次的传输
        //level 1:至少一次的传输,(鸡肋)
        //level 2: 只有一次的传输
        message.setQos(0);
        //如果重复消费,则把值改为true,然后发送一条空的消息,之前的消息就会覆盖,然后在改为false
        message.setRetained(false);
        message.setPayload(data.getBytes());
        return this.publish(mqttTopic, message);
    }
    @Override
    public void afterPropertiesSet() throws Exception {
        // MemoryPersistence设置clientid的保存形式,默认为以内存保存
//        client = new MqttClient(HOST, clientid, new MemoryPersistence());
        if (Objects.equals(mqttConfig.getEnable(), Boolean.FALSE)) {
            return;
        }
        this.connect();
    }
}
src/main/java/com/nanjing/water/host/mqtt/MQTTStart.java
对比新文件
@@ -0,0 +1,26 @@
package com.nanjing.water.host.mqtt;
import com.nanjing.water.common.config.MqttConfig;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import java.util.Objects;
@Component
@Order(40)
public class MQTTStart implements InitializingBean {
    @Autowired
    private MQTTSubsribe mqttSubsribe;
    @Autowired
    private MqttConfig mqttConfig;
    @Override
    public void afterPropertiesSet() throws Exception {
        if (Objects.equals(mqttConfig.getEnable(), Boolean.FALSE)) {
            return;
        }
        mqttSubsribe.init();
    }
}
src/main/java/com/nanjing/water/host/mqtt/MQTTSubsribe.java
对比新文件
@@ -0,0 +1,100 @@
package com.nanjing.water.host.mqtt;
import com.nanjing.water.common.config.MqttConfig;
import com.nanjing.water.common.enums.ELogger;
import org.eclipse.paho.client.mqttv3.MqttClient;
import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
/**
 * 订阅端
 */
@Component
@Order(30)
public class MQTTSubsribe {
    private static final Logger LOGGER = LoggerFactory.getLogger(ELogger.DEBUG.getLogFileName());
    @Autowired
    private MqttConfig mqttConfig;
    @Autowired
    private MQTTConnect mqttConnect;
    /**
     * 测试和正式环境不要使用同样的clientId 和主题
     * 如果和正式环境一样,正式环境启动后,本地再次启动会频繁断开重连,订阅的主题一样的话,测试的数据正式环境也会消费这些数据
     */
      //private static final String clientid = "测试clients";//测试
//    private String topic = "lunhan";
    public MqttClient client;
    //方法实现说明 断线重连方法,如果是持久订阅,重连是不需要再次订阅,如果是非持久订阅,重连是需要重新订阅主题 取决于options.setCleanSession(true);
    // true为非持久订阅
    public void connect() throws MqttException {
        //防止重复创建MQTTClient实例
        if (client == null) {
            //就是这里的clientId,服务器用来区分用户的,不能重复,clientId不能和发布的clientId一样,否则会出现频繁断开连接和重连的问题
            //不仅不能和发布的clientId一样,而且也不能和其他订阅的clientId一样,如果想要接收之前的离线数据,这就需要将client的 setCleanSession
            // 设置为false,这样服务器才能保留它的session,再次建立连接的时候,它就会继续使用这个session了。 这时此连接clientId 是不能更改的。
            //但是其实还有一个问题,就是使用热部署的时候还是会出现频繁断开连接和重连的问题,可能是因为刚启动时的连接没断开,然后热部署的时候又进行了重连,重启一下就可以了
            //+ System.currentTimeMillis()
            String host = "tcp://" + mqttConfig.getHost() + ":" + mqttConfig.getPort();
            client = new MqttClient(host, mqttConfig.getClientId(), new MemoryPersistence());// MemoryPersistence设置clientid的保存形式,默认为以内存保存
            //如果是订阅者则添加回调类,发布不需要
            client.setCallback(new PushCallback(MQTTSubsribe.this));
//            client.setCallback(new PushCallback());
        }
        MqttConnectOptions options = mqttConnect.getOptions();
        //判断拦截状态,这里注意一下,如果没有这个判断,是非常坑的
        if (!client.isConnected()) {
            client.connect(options);
            LOGGER.info("----------mqtt连接成功");
        } else {//这里的逻辑是如果连接成功就重新连接
            client.disconnect();
            client.connect(mqttConnect.getOptions(options));
            LOGGER.info("----------mqtt连接成功");
        }
    }
    public void init() {
        try {
            this.connect();
            LOGGER.info("----------mqtt执行");
            this.subscribe(mqttConfig.getTopic());
            LOGGER.info("----------mqtt执行订阅");
        } catch (MqttException e) {
            e.printStackTrace();
        }
    }
    /**
     * 订阅某个主题,qos默认为0
     *
     * @param topic .
     */
    public void subscribe(String topic) {
        subscribe(topic,2);
    }
    /**
     * 订阅某个主题
     *
     * @param topic .
     * @param qos .
     */
    public void subscribe(String topic, int qos) {
        try {
            client.subscribe(topic,qos);
            //MQTT 协议中订阅关系是持久化的,因此如果不需要订阅某些 Topic,需要调用 unsubscribe 方法取消订阅关系。
//            client.unsubscribe("需要解除订阅关系的主题");
        } catch (MqttException e) {
            e.printStackTrace();
        }
    }
}
src/main/java/com/nanjing/water/host/mqtt/PushCallback.java
对比新文件
@@ -0,0 +1,85 @@
package com.nanjing.water.host.mqtt;
import com.nanjing.water.common.enums.ELogger;
import com.nanjing.water.common.util.LoggerUtil;
import com.nanjing.water.common.util.SpringUtil;
import com.nanjing.water.common.util.ThreadPoolUtil;;
import com.nanjing.water.service.DataUploadRecordService;
import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
import org.eclipse.paho.client.mqttv3.MqttCallback;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.slf4j.Logger;
import java.nio.charset.StandardCharsets;
/**
 * 发布消息的回调类
 * <p>
 * 必须实现MqttCallback的接口并实现对应的相关接口方法CallBack 类将实现 MqttCallBack。
 * 每个客户机标识都需要一个回调实例。在此示例中,构造函数传递客户机标识以另存为实例数据。
 * 在回调中,将它用来标识已经启动了该回调的哪个实例。
 * 必须在回调类中实现三个方法:
 * <p>
 * public void messageArrived(MqttTopic topic, MqttMessage message)接收已经预订的发布。
 * <p>
 * public void connectionLost(Throwable cause)在断开连接时调用。
 * <p>
 * public void deliveryComplete(MqttDeliveryToken token))
 * 接收到已经发布的 QoS 1 或 QoS 2 消息的传递令牌时调用。
 * 由 MqttClient.connect 激活此回调。
 */
public class PushCallback implements MqttCallback {
    private static final Logger LOGGER_DEBUG = LoggerUtil.get(ELogger.DEBUG);
    private static final Logger LOGGER_ERROR = LoggerUtil.get(ELogger.SYS_ERROR);
    private static DataUploadRecordService dataUploadService = SpringUtil.getBean(DataUploadRecordService.class);
    private MQTTSubsribe mqttSubsribe;
    public PushCallback(MQTTSubsribe mqttSubsribe) {
        this.mqttSubsribe = mqttSubsribe;
    }
    public void connectionLost(Throwable cause) {
        // 连接丢失后,一般在这里面进行重连
        LOGGER_DEBUG.info("---------------------mqtt连接断开");
        while (true) {
            try {//如果没有发生异常说明连接成功,如果发生异常,则死循环
                mqttSubsribe.init();
                LOGGER_DEBUG.info("---------------------mqtt重连成功");
                break;
            } catch (Exception e) {
                LOGGER_ERROR.error("mqtt连接丢失", e);
                continue;
            } finally {
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    // 重新设置中断状态
                    Thread.currentThread().interrupt();
                }
            }
        }
    }
    public void deliveryComplete(IMqttDeliveryToken token) {
        LOGGER_DEBUG.info("deliveryComplete---------" + token.isComplete());
    }
    public void messageArrived(String topic, MqttMessage message) {
        // subscribe后得到的消息会执行到这里面
        String msg = new String(message.getPayload(), StandardCharsets.UTF_8);
        LOGGER_DEBUG.info("收到mqtt消息,主题: " + topic + ", Qos: " + message.getQos() + ", 消息内容: " + msg);
        //这里可以针对收到的消息做处理
        ThreadPoolUtil.getDefaultPool().execute(() -> {
            try {
                //调用方法
                dataUploadService.mqttReceived(topic, msg);
            } catch (Exception e) {
                LOGGER_ERROR.error("messageArrived", e);
            }
        });
    }
}
src/main/java/com/nanjing/water/host/mqtt/WebSocket.java
对比新文件
@@ -0,0 +1,54 @@
package com.nanjing.water.host.mqtt;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import javax.websocket.OnClose;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
import java.util.concurrent.CopyOnWriteArraySet;
@Component
@ServerEndpoint("/webSocket")
@Order(3)
public class WebSocket {
    private static final Logger log = LoggerFactory.getLogger(WebSocket.class);
    private Session session;
    private static CopyOnWriteArraySet<WebSocket> webSocketSet=new CopyOnWriteArraySet<>();
    @OnOpen
    public void onOpen(Session session){
        this.session=session;
        webSocketSet.add(this);
        log.info("【websocket消息】 有新的连接,总数:{}",webSocketSet.size());
    }
    @OnClose
    public void onClose(){
        webSocketSet.remove(this);
        log.info("【websocket消息】 连接断开,总数:{}",webSocketSet.size());
    }
    @OnMessage
    public void onMessage(String message){
        log.info("【websocket消息】 收到客户端发来的消息:{}",message);
    }
    public static void sendMessage(String message){
        for(WebSocket webSocket:webSocketSet){
            log.info("【websocket消息】 广播消息,message={}",message);
            try {
                webSocket.session.getBasicRemote().sendText(message);
            }catch (Exception e){
                e.printStackTrace();
            }
        }
    }
}
src/main/java/com/nanjing/water/repository/impl/AdminMenuMapperImpl.java
对比新文件
@@ -0,0 +1,130 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nanjing.water.common.PagerResult;
import com.nanjing.water.common.util.ListUtil;
import com.nanjing.water.common.util.NumericUtil;
import com.nanjing.water.common.util.StringUtil;
import com.nanjing.water.entity.dto.OrderByDTO;
import com.nanjing.water.entity.dto.SearchBasicDTO;
import com.nanjing.water.entity.enums.EOrderBy;
import com.nanjing.water.entity.enums.EState;
import com.nanjing.water.entity.search.SearchAdminMenu;
import com.nanjing.water.repository.BasicMapperImpl;
import com.nanjing.water.repository.mapper.AdminMenuMapper;
import com.nanjing.water.repository.po.AdminMenuPO;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
 * 后台菜单
 * @author lin.liu
 * @description 后台菜单
 */
@Repository
public class AdminMenuMapperImpl extends BasicMapperImpl<AdminMenuPO, AdminMenuMapper> {
    public AdminMenuMapper mapper;
    AdminMenuMapperImpl(AdminMenuMapper mapper) {
        super(mapper);
    }
    @Override
    public PagerResult<AdminMenuPO> search(SearchBasicDTO request) {
        // 还原查询条件真实类型
        SearchAdminMenu search = (SearchAdminMenu)request;
        // 查询条件
        LambdaQueryWrapper<AdminMenuPO> queryWrapper = this.query();
        // 非逻辑删除
        queryWrapper.eq(AdminMenuPO::getStatus, EState.NORMAL.getValue());
        // 数据创建时间-起始
        queryWrapper.ge(NumericUtil.tryParseLong(search.getCreateTimeStart()).compareTo(0L) > 0, AdminMenuPO::getCreateTime, search.getCreateTimeStart());
        // 数据创建时间-截止
        queryWrapper.le(NumericUtil.tryParseLong(search.getCreateTimeEnd()).compareTo(0L) > 0, AdminMenuPO::getCreateTime, search.getCreateTimeEnd());
        // 关键字
        if (StringUtil.isNotNullOrEmpty(search.getKeywords())) {
            queryWrapper.and(q ->
                q.like(AdminMenuPO::getName, search.getKeywords())
                .or().like(AdminMenuPO::getTitle, search.getKeywords())
            );
        }
        // 排序处理
        if (ListUtil.isNotNullOrEmpty(search.getOrderBy())) {
            for (OrderByDTO item : search.getOrderBy()) {
                EOrderBy orderBy = EOrderBy.getByValue(item.getOrderBy());
                // 顺序排序
                if (item.getIsAsc()) {
                    switch (orderBy) {
                        // 主键
                        case ID:
                            queryWrapper.orderByAsc(AdminMenuPO::getId);
                            break;
                        // 数据创建时间
                        case CREATE_TIME:
                            queryWrapper.orderByAsc(AdminMenuPO::getCreateTime);
                            break;
                        // 最后更新时间
                        case UPDATE_TIME:
                            queryWrapper.orderByAsc(AdminMenuPO::getUpdateTime);
                            break;
                    }
                } else {
                    // 倒叙排序
                    switch (orderBy) {
                        // 主键
                        case ID:
                            queryWrapper.orderByDesc(AdminMenuPO::getId);
                            break;
                        // 数据创建时间
                        case CREATE_TIME:
                            queryWrapper.orderByDesc(AdminMenuPO::getCreateTime);
                            break;
                        // 最后更新时间
                        case UPDATE_TIME:
                            queryWrapper.orderByDesc(AdminMenuPO::getUpdateTime);
                            break;
                    }
                }
            }
        } else {
            queryWrapper.orderByDesc(AdminMenuPO::getId);
        }
        Page<AdminMenuPO> pageResult = DB.selectPage(new Page<>(search.getPage(), search.getLimit()), queryWrapper);
        return new PagerResult<>(pageResult.getSize(), pageResult.getCurrent(), pageResult.getTotal(), pageResult.getRecords());
    }
    /**
     * 根据父级菜单获取子菜单列表
     * @param parentId 父级菜单id
     */
    public List<AdminMenuPO> list4Parent(Long parentId) {
        // 查询条件
        LambdaQueryWrapper<AdminMenuPO> queryWrapper = this.query();
        queryWrapper.eq(AdminMenuPO::getParentId, parentId);
        return DB.selectList(queryWrapper);
    }
}
src/main/java/com/nanjing/water/repository/impl/AdminMenusMapperImpl.java
对比新文件
@@ -0,0 +1,137 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nanjing.water.common.PagerResult;
import com.nanjing.water.common.enums.EYesOrNo;
import com.nanjing.water.common.util.*;
import com.nanjing.water.entity.dto.*;
import com.nanjing.water.entity.enums.*;
import com.nanjing.water.entity.search.SearchAdminMenus;
import com.nanjing.water.repository.BasicMapperImpl;
import com.nanjing.water.repository.mapper.AdminMenusMapper;
import com.nanjing.water.repository.po.AdminMenusPO;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
 * 菜单信息
 * @author lin.liu
 */
@Repository
public class AdminMenusMapperImpl extends BasicMapperImpl<AdminMenusPO, AdminMenusMapper> {
    AdminMenusMapperImpl(AdminMenusMapper mapper) {
        super(mapper);
    }
    @Override
    public PagerResult<AdminMenusPO> search(SearchBasicDTO request) {
        // 还原查询条件真实类型
        SearchAdminMenus search = (SearchAdminMenus)request;
        // 查询条件
        LambdaQueryWrapper<AdminMenusPO> queryWrapper = this.query();
        // 非逻辑删除
        queryWrapper.eq(AdminMenusPO::getIsDelete, EYesOrNo.NO.getValue());
        // 状态
        //queryWrapper.eq(NumericUtil.tryParseInt(search.getStatus()).compareTo(0) > 0, AdminMenusPO::getStatus, search.getStatus());
        // 状态列表
        //queryWrapper.in(ListUtil.isNotNullOrEmpty(search.getListStatus()), AdminMenusPO::getStatus, search.getListStatus());
        // 数据创建时间-起始
        queryWrapper.ge(NumericUtil.tryParseLong(search.getCreateTimeStart()).compareTo(0L) > 0, AdminMenusPO::getCreateTime, search.getCreateTimeStart());
        // 数据创建时间-截止
        queryWrapper.le(NumericUtil.tryParseLong(search.getCreateTimeEnd()).compareTo(0L) > 0, AdminMenusPO::getCreateTime, search.getCreateTimeEnd());
        // 关键字
        //if (StringUtil.isNotNullOrEmpty(search.getKeywords())) {
        //    queryWrapper.and(q ->
        //        q.like(AdminMenusPO::getName, search.getKeywords())
        //        .or().like(AdminMenusPO::getPhone, search.getKeywords())
        //    );
        //}
        // 排序处理
        if (ListUtil.isNotNullOrEmpty(search.getOrderBy())) {
            for (OrderByDTO item : search.getOrderBy()) {
                EOrderBy orderBy = EOrderBy.getByValue(item.getOrderBy());
                // 顺序排序
                if (item.getIsAsc()) {
                    switch (orderBy) {
                        // 主键
                        case ID:
                            queryWrapper.orderByAsc(AdminMenusPO::getId);
                            break;
                        // 数据创建时间
                        case CREATE_TIME:
                            queryWrapper.orderByAsc(AdminMenusPO::getCreateTime);
                            break;
                        // 最后更新时间
                        case UPDATE_TIME:
                            queryWrapper.orderByAsc(AdminMenusPO::getUpdateTime);
                            break;
                    }
                } else {
                    // 倒叙排序
                    switch (orderBy) {
                        // 主键
                        case ID:
                            queryWrapper.orderByDesc(AdminMenusPO::getId);
                            break;
                        // 数据创建时间
                        case CREATE_TIME:
                            queryWrapper.orderByDesc(AdminMenusPO::getCreateTime);
                            break;
                        // 最后更新时间
                        case UPDATE_TIME:
                            queryWrapper.orderByDesc(AdminMenusPO::getUpdateTime);
                            break;
                    }
                }
            }
        } else {
            queryWrapper.orderByDesc(AdminMenusPO::getId);
        }
        Page<AdminMenusPO> pageResult = super.selectPage(new Page<>(search.getPage(), search.getLimit()), queryWrapper);
        return new PagerResult<>(pageResult.getSize(), pageResult.getCurrent(), pageResult.getTotal(), pageResult.getRecords());
    }
    public Boolean add(AdminMenusPO item) {
        int rowCount = super.insert(item);
        return rowCount == 1;
    }
    public Boolean addNotIncrement(AdminMenusPO item) {
        int rowCount = super.insert(item);
        return rowCount == 1;
    }
    public AdminMenusPO getById(Long id) {
        return super.get(id);
    }
    public List<AdminMenusPO> getListById(List<Long> listId) {
        return super.getList(listId);
    }
}
src/main/java/com/nanjing/water/repository/impl/AdminPermissionMapperImpl.java
对比新文件
@@ -0,0 +1,141 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nanjing.water.common.PagerResult;
import com.nanjing.water.common.enums.EYesOrNo;
import com.nanjing.water.common.util.ListUtil;
import com.nanjing.water.common.util.NumericUtil;
import com.nanjing.water.common.util.StringUtil;
import com.nanjing.water.entity.dto.OrderByDTO;
import com.nanjing.water.entity.dto.SearchBasicDTO;
import com.nanjing.water.entity.enums.EOrderBy;
import com.nanjing.water.entity.search.SearchAdminPermission;
import com.nanjing.water.repository.BasicMapperImpl;
import com.nanjing.water.repository.mapper.AdminPermissionMapper;
import com.nanjing.water.repository.po.AdminPermissionPO;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
 * 后台用户权限表
 * @author lin.liu
 * @description 后台用户权限表
 */
@Repository
public class AdminPermissionMapperImpl extends BasicMapperImpl<AdminPermissionPO, AdminPermissionMapper> {
    AdminPermissionMapperImpl(AdminPermissionMapper mapper) {
        super(mapper);
    }
    @Override
    public PagerResult<AdminPermissionPO> search(SearchBasicDTO request) {
        // 还原查询条件真实类型
        SearchAdminPermission search = (SearchAdminPermission)request;
        // 查询条件
        LambdaQueryWrapper<AdminPermissionPO> queryWrapper = this.query();
        // 非逻辑删除
        queryWrapper.eq(AdminPermissionPO::getIsDelete, EYesOrNo.NO.getValue());
        // 状态
        //queryWrapper.eq(NumericUtil.tryParseInt(search.getStatus()).compareTo(0) > 0, AdminPermissionPO::getStatus, search.getStatus());
        // 状态列表
        //queryWrapper.in(ListUtil.isNotNullOrEmpty(search.getListStatus()), AdminPermissionPO::getStatus, search.getListStatus());
        // 数据创建时间-起始
        queryWrapper.ge(NumericUtil.tryParseLong(search.getCreateTimeStart()).compareTo(0L) > 0, AdminPermissionPO::getCreateTime, search.getCreateTimeStart());
        // 数据创建时间-截止
        queryWrapper.le(NumericUtil.tryParseLong(search.getCreateTimeEnd()).compareTo(0L) > 0, AdminPermissionPO::getCreateTime, search.getCreateTimeEnd());
        // 关键字
        if (StringUtil.isNotNullOrEmpty(search.getKeywords())) {
            queryWrapper.and(q ->
                q.like(AdminPermissionPO::getName, search.getKeywords())
                .or().like(AdminPermissionPO::getMenuUrl, search.getKeywords())
            );
        }
        // 排序处理
        if (ListUtil.isNotNullOrEmpty(search.getOrderBy())) {
            for (OrderByDTO item : search.getOrderBy()) {
                EOrderBy orderBy = EOrderBy.getByValue(item.getOrderBy());
                // 顺序排序
                if (item.getIsAsc()) {
                    switch (orderBy) {
                        // 主键
                        case ID:
                            queryWrapper.orderByAsc(AdminPermissionPO::getId);
                            break;
                        // 数据创建时间
                        case CREATE_TIME:
                            queryWrapper.orderByAsc(AdminPermissionPO::getCreateTime);
                            break;
                        // 最后更新时间
                        case UPDATE_TIME:
                            queryWrapper.orderByAsc(AdminPermissionPO::getUpdateTime);
                            break;
                    }
                } else {
                    // 倒叙排序
                    switch (orderBy) {
                        // 主键
                        case ID:
                            queryWrapper.orderByDesc(AdminPermissionPO::getId);
                            break;
                        // 数据创建时间
                        case CREATE_TIME:
                            queryWrapper.orderByDesc(AdminPermissionPO::getCreateTime);
                            break;
                        // 最后更新时间
                        case UPDATE_TIME:
                            queryWrapper.orderByDesc(AdminPermissionPO::getUpdateTime);
                            break;
                    }
                }
            }
        } else {
            queryWrapper.orderByDesc(AdminPermissionPO::getId);
        }
        Page<AdminPermissionPO> pageResult = DB.selectPage(new Page<>(search.getPage(), search.getLimit()), queryWrapper);
        return new PagerResult<>(pageResult.getSize(), pageResult.getCurrent(), pageResult.getTotal(), pageResult.getRecords());
    }
    /**
     * 根据菜单id获取权限列表
     * @param listMenuId 菜单id
     */
    public List<AdminPermissionPO> list4MenuId(List<Long> listMenuId) {
        // 查询条件
        LambdaQueryWrapper<AdminPermissionPO> queryWrapper = this.query();
        queryWrapper.in(AdminPermissionPO::getMenuId, listMenuId);
        return DB.selectList(queryWrapper);
    }
    public AdminPermissionPO get4Sn(String sn) {
        // 查询条件
        LambdaQueryWrapper<AdminPermissionPO> queryWrapper = this.query();
        queryWrapper.eq(AdminPermissionPO::getSn, sn);
        return DB.selectOne(queryWrapper);
    }
}
src/main/java/com/nanjing/water/repository/impl/AdminRoleMapperImpl.java
对比新文件
@@ -0,0 +1,117 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nanjing.water.common.PagerResult;
import com.nanjing.water.common.enums.EYesOrNo;
import com.nanjing.water.common.util.*;
import com.nanjing.water.entity.dto.*;
import com.nanjing.water.entity.enums.*;
import com.nanjing.water.entity.search.SearchAdminRole;
import com.nanjing.water.repository.BasicMapperImpl;
import com.nanjing.water.repository.mapper.AdminRoleMapper;
import com.nanjing.water.repository.po.AdminRolePO;
import org.springframework.stereotype.Repository;
/**
 * 后台用户角色表
 * @author lin.liu
 * @description 后台用户角色表
 */
@Repository
public class AdminRoleMapperImpl extends BasicMapperImpl<AdminRolePO, AdminRoleMapper> {
    AdminRoleMapperImpl(AdminRoleMapper mapper) {
        super(mapper);
    }
    @Override
    public PagerResult<AdminRolePO> search(SearchBasicDTO request) {
        // 还原查询条件真实类型
        SearchAdminRole search = (SearchAdminRole)request;
        // 查询条件
        LambdaQueryWrapper<AdminRolePO> queryWrapper = this.query();
        // 非逻辑删除
        queryWrapper.eq(AdminRolePO::getIsDelete, EYesOrNo.NO.getValue());
        // 状态
        //queryWrapper.eq(NumericUtil.tryParseInt(search.getStatus()).compareTo(0) > 0, AdminRolePO::getStatus, search.getStatus());
        // 状态列表
        //queryWrapper.in(ListUtil.isNotNullOrEmpty(search.getListStatus()), AdminRolePO::getStatus, search.getListStatus());
        // 数据创建时间-起始
        queryWrapper.ge(NumericUtil.tryParseLong(search.getCreateTimeStart()).compareTo(0L) > 0, AdminRolePO::getCreateTime, search.getCreateTimeStart());
        // 数据创建时间-截止
        queryWrapper.le(NumericUtil.tryParseLong(search.getCreateTimeEnd()).compareTo(0L) > 0, AdminRolePO::getCreateTime, search.getCreateTimeEnd());
        // 关键字
        if (StringUtil.isNotNullOrEmpty(search.getKeywords())) {
            queryWrapper.and(q ->
                q.like(AdminRolePO::getName, search.getKeywords())
                .or().like(AdminRolePO::getDescription, search.getKeywords())
            );
        }
        // 排序处理
        if (ListUtil.isNotNullOrEmpty(search.getOrderBy())) {
            for (OrderByDTO item : search.getOrderBy()) {
                EOrderBy orderBy = EOrderBy.getByValue(item.getOrderBy());
                // 顺序排序
                if (item.getIsAsc()) {
                    switch (orderBy) {
                        // 主键
                        case ID:
                            queryWrapper.orderByAsc(AdminRolePO::getId);
                            break;
                        // 数据创建时间
                        case CREATE_TIME:
                            queryWrapper.orderByAsc(AdminRolePO::getCreateTime);
                            break;
                        // 最后更新时间
                        case UPDATE_TIME:
                            queryWrapper.orderByAsc(AdminRolePO::getUpdateTime);
                            break;
                    }
                } else {
                    // 倒叙排序
                    switch (orderBy) {
                        // 主键
                        case ID:
                            queryWrapper.orderByDesc(AdminRolePO::getId);
                            break;
                        // 数据创建时间
                        case CREATE_TIME:
                            queryWrapper.orderByDesc(AdminRolePO::getCreateTime);
                            break;
                        // 最后更新时间
                        case UPDATE_TIME:
                            queryWrapper.orderByDesc(AdminRolePO::getUpdateTime);
                            break;
                    }
                }
            }
        } else {
            queryWrapper.orderByDesc(AdminRolePO::getId);
        }
        Page<AdminRolePO> pageResult = DB.selectPage(new Page<>(search.getPage(), search.getLimit()), queryWrapper);
        return new PagerResult<>(pageResult.getSize(), pageResult.getCurrent(), pageResult.getTotal(), pageResult.getRecords());
    }}
src/main/java/com/nanjing/water/repository/impl/AdminRoleMenuRelationMapperImpl.java
对比新文件
@@ -0,0 +1,144 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nanjing.water.common.PagerResult;
import com.nanjing.water.common.enums.EYesOrNo;
import com.nanjing.water.common.util.ListUtil;
import com.nanjing.water.common.util.NumericUtil;
import com.nanjing.water.entity.dto.OrderByDTO;
import com.nanjing.water.entity.dto.SearchBasicDTO;
import com.nanjing.water.entity.enums.EOrderBy;
import com.nanjing.water.entity.search.SearchAdminRoleMenuRelation;
import com.nanjing.water.repository.BasicMapperImpl;
import com.nanjing.water.repository.mapper.AdminRoleMenuRelationMapper;
import com.nanjing.water.repository.po.AdminRoleMenuRelationPO;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
 * 后台角色菜单关系表
 * @author lin.liu
 * @description 后台角色菜单关系表
 */
@Repository
public class AdminRoleMenuRelationMapperImpl extends BasicMapperImpl<AdminRoleMenuRelationPO, AdminRoleMenuRelationMapper> {
    AdminRoleMenuRelationMapperImpl(AdminRoleMenuRelationMapper mapper) {
        super(mapper);
    }
    @Override
    public PagerResult<AdminRoleMenuRelationPO> search(SearchBasicDTO request) {
        // 还原查询条件真实类型
        SearchAdminRoleMenuRelation search = (SearchAdminRoleMenuRelation)request;
        // 查询条件
        LambdaQueryWrapper<AdminRoleMenuRelationPO> queryWrapper = this.query();
        // 非逻辑删除
        queryWrapper.eq(AdminRoleMenuRelationPO::getIsDelete, EYesOrNo.NO.getValue());
        // 状态
        //queryWrapper.eq(NumericUtil.tryParseInt(search.getStatus()).compareTo(0) > 0, AdminRoleMenuRelationPO::getStatus, search.getStatus());
        // 状态列表
        //queryWrapper.in(ListUtil.isNotNullOrEmpty(search.getListStatus()), AdminRoleMenuRelationPO::getStatus, search.getListStatus());
        // 数据创建时间-起始
        queryWrapper.ge(NumericUtil.tryParseLong(search.getCreateTimeStart()).compareTo(0L) > 0, AdminRoleMenuRelationPO::getCreateTime, search.getCreateTimeStart());
        // 数据创建时间-截止
        queryWrapper.le(NumericUtil.tryParseLong(search.getCreateTimeEnd()).compareTo(0L) > 0, AdminRoleMenuRelationPO::getCreateTime, search.getCreateTimeEnd());
        // 关键字
        //if (StringUtil.isNotNullOrEmpty(search.getKeywords())) {
        //    queryWrapper.and(q ->
        //        q.like(AdminRoleMenuRelationPO::getName, search.getKeywords())
        //        .or().like(AdminRoleMenuRelationPO::getPhone, search.getKeywords())
        //    );
        //}
        // 排序处理
        if (ListUtil.isNotNullOrEmpty(search.getOrderBy())) {
            for (OrderByDTO item : search.getOrderBy()) {
                EOrderBy orderBy = EOrderBy.getByValue(item.getOrderBy());
                // 顺序排序
                if (item.getIsAsc()) {
                    switch (orderBy) {
                        // 主键
                        case ID:
                            queryWrapper.orderByAsc(AdminRoleMenuRelationPO::getId);
                            break;
                        // 数据创建时间
                        case CREATE_TIME:
                            queryWrapper.orderByAsc(AdminRoleMenuRelationPO::getCreateTime);
                            break;
                        // 最后更新时间
                        case UPDATE_TIME:
                            queryWrapper.orderByAsc(AdminRoleMenuRelationPO::getUpdateTime);
                            break;
                    }
                } else {
                    // 倒叙排序
                    switch (orderBy) {
                        // 主键
                        case ID:
                            queryWrapper.orderByDesc(AdminRoleMenuRelationPO::getId);
                            break;
                        // 数据创建时间
                        case CREATE_TIME:
                            queryWrapper.orderByDesc(AdminRoleMenuRelationPO::getCreateTime);
                            break;
                        // 最后更新时间
                        case UPDATE_TIME:
                            queryWrapper.orderByDesc(AdminRoleMenuRelationPO::getUpdateTime);
                            break;
                    }
                }
            }
        } else {
            queryWrapper.orderByDesc(AdminRoleMenuRelationPO::getId);
        }
        Page<AdminRoleMenuRelationPO> pageResult = DB.selectPage(new Page<>(search.getPage(), search.getLimit()), queryWrapper);
        return new PagerResult<>(pageResult.getSize(), pageResult.getCurrent(), pageResult.getTotal(), pageResult.getRecords());
    }
    /**
     * 根据角色id获取角色拥有的菜单列表
     * @param roleId 角色id
     */
    public List<AdminRoleMenuRelationPO> list4Role(Long roleId) {
        // 查询条件
        LambdaQueryWrapper<AdminRoleMenuRelationPO> queryWrapper = this.query();
        queryWrapper.eq(AdminRoleMenuRelationPO::getRoleId, roleId);
        return DB.selectList(queryWrapper);
    }
    /**
     * 根据角色id获取角色拥有的菜单列表
     * @param listRoleId 角色id列表
     */
    public List<AdminRoleMenuRelationPO> list4Role(List<Long> listRoleId) {
        // 查询条件
        LambdaQueryWrapper<AdminRoleMenuRelationPO> queryWrapper = this.query();
        queryWrapper.in(AdminRoleMenuRelationPO::getRoleId, listRoleId);
        return DB.selectList(queryWrapper);
    }
}
src/main/java/com/nanjing/water/repository/impl/AdminRolePermissionRelationMapperImpl.java
对比新文件
@@ -0,0 +1,144 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nanjing.water.common.PagerResult;
import com.nanjing.water.common.enums.EYesOrNo;
import com.nanjing.water.common.util.ListUtil;
import com.nanjing.water.common.util.NumericUtil;
import com.nanjing.water.entity.dto.OrderByDTO;
import com.nanjing.water.entity.dto.SearchBasicDTO;
import com.nanjing.water.entity.enums.EOrderBy;
import com.nanjing.water.entity.search.SearchAdminRolePermissionRelation;
import com.nanjing.water.repository.BasicMapperImpl;
import com.nanjing.water.repository.mapper.AdminRolePermissionRelationMapper;
import com.nanjing.water.repository.po.AdminRolePermissionRelationPO;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
 * 后台角色权限关系表
 * @author lin.liu
 * @description 后台角色权限关系表
 */
@Repository
public class AdminRolePermissionRelationMapperImpl extends BasicMapperImpl<AdminRolePermissionRelationPO, AdminRolePermissionRelationMapper> {
    AdminRolePermissionRelationMapperImpl(AdminRolePermissionRelationMapper mapper) {
        super(mapper);
    }
    @Override
    public PagerResult<AdminRolePermissionRelationPO> search(SearchBasicDTO request) {
        // 还原查询条件真实类型
        SearchAdminRolePermissionRelation search = (SearchAdminRolePermissionRelation)request;
        // 查询条件
        LambdaQueryWrapper<AdminRolePermissionRelationPO> queryWrapper = this.query();
        // 非逻辑删除
        queryWrapper.eq(AdminRolePermissionRelationPO::getIsDelete, EYesOrNo.NO.getValue());
        // 状态
        //queryWrapper.eq(NumericUtil.tryParseInt(search.getStatus()).compareTo(0) > 0, AdminRolePermissionRelationPO::getStatus, search.getStatus());
        // 状态列表
        //queryWrapper.in(ListUtil.isNotNullOrEmpty(search.getListStatus()), AdminRolePermissionRelationPO::getStatus, search.getListStatus());
        // 数据创建时间-起始
        queryWrapper.ge(NumericUtil.tryParseLong(search.getCreateTimeStart()).compareTo(0L) > 0, AdminRolePermissionRelationPO::getCreateTime, search.getCreateTimeStart());
        // 数据创建时间-截止
        queryWrapper.le(NumericUtil.tryParseLong(search.getCreateTimeEnd()).compareTo(0L) > 0, AdminRolePermissionRelationPO::getCreateTime, search.getCreateTimeEnd());
        // 关键字
        //if (StringUtil.isNotNullOrEmpty(search.getKeywords())) {
        //    queryWrapper.and(q ->
        //        q.like(AdminRolePermissionRelationPO::getName, search.getKeywords())
        //        .or().like(AdminRolePermissionRelationPO::getPhone, search.getKeywords())
        //    );
        //}
        // 排序处理
        if (ListUtil.isNotNullOrEmpty(search.getOrderBy())) {
            for (OrderByDTO item : search.getOrderBy()) {
                EOrderBy orderBy = EOrderBy.getByValue(item.getOrderBy());
                // 顺序排序
                if (item.getIsAsc()) {
                    switch (orderBy) {
                        // 主键
                        case ID:
                            queryWrapper.orderByAsc(AdminRolePermissionRelationPO::getId);
                            break;
                        // 数据创建时间
                        case CREATE_TIME:
                            queryWrapper.orderByAsc(AdminRolePermissionRelationPO::getCreateTime);
                            break;
                        // 最后更新时间
                        case UPDATE_TIME:
                            queryWrapper.orderByAsc(AdminRolePermissionRelationPO::getUpdateTime);
                            break;
                    }
                } else {
                    // 倒叙排序
                    switch (orderBy) {
                        // 主键
                        case ID:
                            queryWrapper.orderByDesc(AdminRolePermissionRelationPO::getId);
                            break;
                        // 数据创建时间
                        case CREATE_TIME:
                            queryWrapper.orderByDesc(AdminRolePermissionRelationPO::getCreateTime);
                            break;
                        // 最后更新时间
                        case UPDATE_TIME:
                            queryWrapper.orderByDesc(AdminRolePermissionRelationPO::getUpdateTime);
                            break;
                    }
                }
            }
        } else {
            queryWrapper.orderByDesc(AdminRolePermissionRelationPO::getId);
        }
        Page<AdminRolePermissionRelationPO> pageResult = DB.selectPage(new Page<>(search.getPage(), search.getLimit()), queryWrapper);
        return new PagerResult<>(pageResult.getSize(), pageResult.getCurrent(), pageResult.getTotal(), pageResult.getRecords());
    }
    /**
     * 根据角色获取拥有的权限列表
     * @param roleId 角色id
     */
    public List<AdminRolePermissionRelationPO> list4Role(Long roleId) {
        // 查询条件
        LambdaQueryWrapper<AdminRolePermissionRelationPO> queryWrapper = this.query();
        queryWrapper.eq(AdminRolePermissionRelationPO::getRoleId, roleId);
        return DB.selectList(queryWrapper);
    }
    /**
     * 根据角色获取拥有的权限列表
     * @param listRoleId 角色id列表
     */
    public List<AdminRolePermissionRelationPO> list4Role(List<Long> listRoleId) {
        // 查询条件
        LambdaQueryWrapper<AdminRolePermissionRelationPO> queryWrapper = this.query();
        queryWrapper.in(AdminRolePermissionRelationPO::getRoleId, listRoleId);
        return DB.selectList(queryWrapper);
    }
}
src/main/java/com/nanjing/water/repository/impl/AdminRoleRelationMapperImpl.java
对比新文件
@@ -0,0 +1,144 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nanjing.water.common.PagerResult;
import com.nanjing.water.common.enums.EYesOrNo;
import com.nanjing.water.common.util.ListUtil;
import com.nanjing.water.common.util.NumericUtil;
import com.nanjing.water.entity.dto.OrderByDTO;
import com.nanjing.water.entity.dto.SearchBasicDTO;
import com.nanjing.water.entity.enums.EOrderBy;
import com.nanjing.water.entity.search.SearchAdminRoleRelation;
import com.nanjing.water.repository.BasicMapperImpl;
import com.nanjing.water.repository.mapper.AdminRoleRelationMapper;
import com.nanjing.water.repository.po.AdminRoleRelationPO;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
 * 后台用户和角色关系表
 * @author lin.liu
 * @description 后台用户和角色关系表
 */
@Repository
public class AdminRoleRelationMapperImpl extends BasicMapperImpl<AdminRoleRelationPO, AdminRoleRelationMapper> {
    AdminRoleRelationMapperImpl(AdminRoleRelationMapper mapper) {
        super(mapper);
    }
    @Override
    public PagerResult<AdminRoleRelationPO> search(SearchBasicDTO request) {
        // 还原查询条件真实类型
        SearchAdminRoleRelation search = (SearchAdminRoleRelation)request;
        // 查询条件
        LambdaQueryWrapper<AdminRoleRelationPO> queryWrapper = this.query();
        // 非逻辑删除
        queryWrapper.eq(AdminRoleRelationPO::getIsDelete, EYesOrNo.NO.getValue());
        // 状态
        //queryWrapper.eq(NumericUtil.tryParseInt(search.getStatus()).compareTo(0) > 0, AdminRoleRelationPO::getStatus, search.getStatus());
        // 状态列表
        //queryWrapper.in(ListUtil.isNotNullOrEmpty(search.getListStatus()), AdminRoleRelationPO::getStatus, search.getListStatus());
        // 数据创建时间-起始
        queryWrapper.ge(NumericUtil.tryParseLong(search.getCreateTimeStart()).compareTo(0L) > 0, AdminRoleRelationPO::getCreateTime, search.getCreateTimeStart());
        // 数据创建时间-截止
        queryWrapper.le(NumericUtil.tryParseLong(search.getCreateTimeEnd()).compareTo(0L) > 0, AdminRoleRelationPO::getCreateTime, search.getCreateTimeEnd());
        // 关键字
        //if (StringUtil.isNotNullOrEmpty(search.getKeywords())) {
        //    queryWrapper.and(q ->
        //        q.like(AdminRoleRelationPO::getName, search.getKeywords())
        //        .or().like(AdminRoleRelationPO::getPhone, search.getKeywords())
        //    );
        //}
        // 排序处理
        if (ListUtil.isNotNullOrEmpty(search.getOrderBy())) {
            for (OrderByDTO item : search.getOrderBy()) {
                EOrderBy orderBy = EOrderBy.getByValue(item.getOrderBy());
                // 顺序排序
                if (item.getIsAsc()) {
                    switch (orderBy) {
                        // 主键
                        case ID:
                            queryWrapper.orderByAsc(AdminRoleRelationPO::getId);
                            break;
                        // 数据创建时间
                        case CREATE_TIME:
                            queryWrapper.orderByAsc(AdminRoleRelationPO::getCreateTime);
                            break;
                        // 最后更新时间
                        case UPDATE_TIME:
                            queryWrapper.orderByAsc(AdminRoleRelationPO::getUpdateTime);
                            break;
                    }
                } else {
                    // 倒叙排序
                    switch (orderBy) {
                        // 主键
                        case ID:
                            queryWrapper.orderByDesc(AdminRoleRelationPO::getId);
                            break;
                        // 数据创建时间
                        case CREATE_TIME:
                            queryWrapper.orderByDesc(AdminRoleRelationPO::getCreateTime);
                            break;
                        // 最后更新时间
                        case UPDATE_TIME:
                            queryWrapper.orderByDesc(AdminRoleRelationPO::getUpdateTime);
                            break;
                    }
                }
            }
        } else {
            queryWrapper.orderByDesc(AdminRoleRelationPO::getId);
        }
        Page<AdminRoleRelationPO> pageResult = DB.selectPage(new Page<>(search.getPage(), search.getLimit()), queryWrapper);
        return new PagerResult<>(pageResult.getSize(), pageResult.getCurrent(), pageResult.getTotal(), pageResult.getRecords());
    }
    /**
     * 根据管理员获取拥有的角色列表
     * @param adminId 管理员id
     */
    public List<AdminRoleRelationPO> list4Admin(Long adminId) {
        // 查询条件
        LambdaQueryWrapper<AdminRoleRelationPO> queryWrapper = this.query();
        queryWrapper.eq(AdminRoleRelationPO::getAdminId, adminId);
        return DB.selectList(queryWrapper);
    }
    /**
     * 根据管理员获取拥有的角色列表
     * @param listAdminId 管理员id列表
     */
    public List<AdminRoleRelationPO> list4Admin(List<Long> listAdminId) {
        // 查询条件
        LambdaQueryWrapper<AdminRoleRelationPO> queryWrapper = this.query();
        queryWrapper.in(AdminRoleRelationPO::getAdminId, listAdminId);
        return DB.selectList(queryWrapper);
    }
}
src/main/java/com/nanjing/water/repository/impl/AdminUserMapperImpl.java
对比新文件
@@ -0,0 +1,134 @@
/**
 * #                                                    __----~~~~~~~~~~~------___
 * #                                   .  .   ~~//====......          __--~ ~~
 * #                   -.            \_|//     |||\\  ~~~~~~::::... /~
 * #                ___-==_       _-~o~  \/    |||  \\            _/~~-
 * #        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
 * #    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
 * #  .~       .~       |   \\ -_    /  /-   /   ||      \   /
 * # /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
 * # |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
 * #          '         ~-|      /|    |-~\~~       __--~~
 * #                      |-~~-_/ |    |   ~\_   _-~            /\
 * #                           /  \     \__   \/~                \__
 * #                       _--~ _/ | .-~~____--~-/                  ~~==.
 * #                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
 * #                                 -_     ~\      ~~---l__i__i__i--~~_/
 * #                                 _-~-__   ~)  \--______________--~~
 * #                               //.-~~~-~_--~- |-------~~~~~~~~
 * #                                      //.-~~~--\
 * #                  神兽保佑
 * #                  永无BUG!
 */
package com.nanjing.water.repository.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nanjing.water.common.PagerResult;
import com.nanjing.water.common.enums.EYesOrNo;
import com.nanjing.water.common.util.ListUtil;
import com.nanjing.water.common.util.NumericUtil;
import com.nanjing.water.common.util.StringUtil;
import com.nanjing.water.entity.dto.OrderByDTO;
import com.nanjing.water.entity.dto.SearchBasicDTO;
import com.nanjing.water.entity.enums.EOrderBy;
import com.nanjing.water.entity.search.SearchAdminUser;
import com.nanjing.water.repository.BasicMapperImpl;
import com.nanjing.water.repository.mapper.AdminUserMapper;
import com.nanjing.water.repository.po.AdminUserPO;
import org.springframework.stereotype.Repository;
/**
 * 管理员帐号
 * @author lin.liu
 * @description 管理员帐号
 */
@Repository
public class AdminUserMapperImpl extends BasicMapperImpl<AdminUserPO, AdminUserMapper> {
    AdminUserMapperImpl(AdminUserMapper mapper) {
        super(mapper);
    }
    @Override
    public PagerResult<AdminUserPO> search(SearchBasicDTO request) {
        // 还原查询条件真实类型
        SearchAdminUser search = (SearchAdminUser) request;
        // 查询条件
        LambdaQueryWrapper<AdminUserPO> queryWrapper = this.query();
        // 非逻辑删除
        queryWrapper.eq(AdminUserPO::getIsDelete, EYesOrNo.NO.getValue());
        // 状态
        //queryWrapper.eq(NumericUtil.tryParseInt(search.getStatus()).compareTo(0) > 0, AdminUserPO::getStatus, search.getStatus());
        // 状态列表
        //queryWrapper.in(ListUtil.isNotNullOrEmpty(search.getListStatus()), AdminUserPO::getStatus, search.getListStatus());
        // 数据创建时间-起始
        queryWrapper.ge(NumericUtil.tryParseLong(search.getCreateTimeStart()).compareTo(0L) > 0, AdminUserPO::getCreateTime, search.getCreateTimeStart());
        // 数据创建时间-截止
        queryWrapper.le(NumericUtil.tryParseLong(search.getCreateTimeEnd()).compareTo(0L) > 0, AdminUserPO::getCreateTime, search.getCreateTimeEnd());
        // 关键字
        if (StringUtil.isNotNullOrEmpty(search.getKeywords())) {
            queryWrapper.and(q ->
                q.like(AdminUserPO::getUserName, search.getKeywords())
                .or().like(AdminUserPO::getNickName, search.getKeywords())
                        .or().like(AdminUserPO::getContact, search.getKeywords())
                        .or().like(AdminUserPO::getEmail, search.getKeywords())
            );
        }
        // 排序处理
        if (ListUtil.isNotNullOrEmpty(search.getOrderBy())) {
            for (OrderByDTO item : search.getOrderBy()) {
                EOrderBy orderBy = EOrderBy.getByValue(item.getOrderBy());
                // 顺序排序
                if (item.getIsAsc()) {
                    switch (orderBy) {
                        // 主键
                        case ID:
                            queryWrapper.orderByAsc(AdminUserPO::getId);
                            break;
                        // 数据创建时间
                        case CREATE_TIME:
                            queryWrapper.orderByAsc(AdminUserPO::getCreateTime);
                            break;
                        // 最后更新时间
                        case UPDATE_TIME:
                            queryWrapper.orderByAsc(AdminUserPO::getUpdateTime);
                            break;
                    }
                } else {
                    // 倒叙排序
                    switch (orderBy) {
                        // 主键
                        case ID:
                            queryWrapper.orderByDesc(AdminUserPO::getId);
                            break;
                        // 数据创建时间
                        case CREATE_TIME:
                            queryWrapper.orderByDesc(AdminUserPO::getCreateTime);
                            break;
                        // 最后更新时间
                        case UPDATE_TIME:
                            queryWrapper.orderByDesc(AdminUserPO::getUpdateTime);
                            break;
                    }
                }
            }
        } else {
            queryWrapper.orderByDesc(AdminUserPO::getId);
        }
        Page<AdminUserPO> pageResult = DB.selectPage(new Page<>(search.getPage(), search.getLimit()), queryWrapper);
        return new PagerResult<>(pageResult.getSize(), pageResult.getCurrent(), pageResult.getTotal(), pageResult.getRecords());
    }
    /**
     * 根据用户名获取管理端用户
     * @param userName 用户名
     */
    public AdminUserPO get4Name(String userName) {
        // 查询条件
        LambdaQueryWrapper<AdminUserPO> queryWrapper = this.query();
        queryWrapper.eq(AdminUserPO::getUserName, userName);
        return DB.selectOne(queryWrapper);
    }
}
src/main/java/com/nanjing/water/repository/impl/AlarmHistoryMapperImpl.java
对比新文件
@@ -0,0 +1,152 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nanjing.water.common.PagerResult;
import com.nanjing.water.common.enums.EYesOrNo;
import com.nanjing.water.common.util.*;
import com.nanjing.water.entity.dto.*;
import com.nanjing.water.entity.enums.*;
import com.nanjing.water.entity.search.SearchAlarmHistory;
import com.nanjing.water.repository.BasicMapperImpl;
import com.nanjing.water.repository.mapper.AlarmHistoryMapper;
import com.nanjing.water.repository.po.AlarmHistoryPO;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
 * 报警信息
 * @author lin.liu
 */
@Repository
public class AlarmHistoryMapperImpl extends BasicMapperImpl<AlarmHistoryPO, AlarmHistoryMapper> {
    AlarmHistoryMapperImpl(AlarmHistoryMapper mapper) {
        super(mapper);
    }
    @Override
    public PagerResult<AlarmHistoryPO> search(SearchBasicDTO request) {
        // 还原查询条件真实类型
        SearchAlarmHistory search = (SearchAlarmHistory)request;
        // 查询条件
        LambdaQueryWrapper<AlarmHistoryPO> queryWrapper = this.query();
        // 非逻辑删除
        queryWrapper.eq(AlarmHistoryPO::getIsDelete, EYesOrNo.NO.getValue());
        // 状态
        //queryWrapper.eq(NumericUtil.tryParseInt(search.getStatus()).compareTo(0) > 0, AlarmHistoryPO::getStatus, search.getStatus());
        // 状态列表
        //queryWrapper.in(ListUtil.isNotNullOrEmpty(search.getListStatus()), AlarmHistoryPO::getStatus, search.getListStatus());
        // 数据创建时间-起始
        queryWrapper.ge(NumericUtil.tryParseLong(search.getCreateTimeStart()).compareTo(0L) > 0, AlarmHistoryPO::getCreateTime, search.getCreateTimeStart());
        // 数据创建时间-截止
        queryWrapper.le(NumericUtil.tryParseLong(search.getCreateTimeEnd()).compareTo(0L) > 0, AlarmHistoryPO::getCreateTime, search.getCreateTimeEnd());
        // 关键字
        //if (StringUtil.isNotNullOrEmpty(search.getKeywords())) {
        //    queryWrapper.and(q ->
        //        q.like(AlarmHistoryPO::getName, search.getKeywords())
        //        .or().like(AlarmHistoryPO::getPhone, search.getKeywords())
        //    );
        //}
        // 排序处理
        if (ListUtil.isNotNullOrEmpty(search.getOrderBy())) {
            for (OrderByDTO item : search.getOrderBy()) {
                EOrderBy orderBy = EOrderBy.getByValue(item.getOrderBy());
                // 顺序排序
                if (item.getIsAsc()) {
                    switch (orderBy) {
                        // 主键
                        case ID:
                            queryWrapper.orderByAsc(AlarmHistoryPO::getId);
                            break;
                        // 数据创建时间
                        case CREATE_TIME:
                            queryWrapper.orderByAsc(AlarmHistoryPO::getCreateTime);
                            break;
                        // 最后更新时间
                        case UPDATE_TIME:
                            queryWrapper.orderByAsc(AlarmHistoryPO::getUpdateTime);
                            break;
                    }
                } else {
                    // 倒叙排序
                    switch (orderBy) {
                        // 主键
                        case ID:
                            queryWrapper.orderByDesc(AlarmHistoryPO::getId);
                            break;
                        // 数据创建时间
                        case CREATE_TIME:
                            queryWrapper.orderByDesc(AlarmHistoryPO::getCreateTime);
                            break;
                        // 最后更新时间
                        case UPDATE_TIME:
                            queryWrapper.orderByDesc(AlarmHistoryPO::getUpdateTime);
                            break;
                    }
                }
            }
        } else {
            queryWrapper.orderByDesc(AlarmHistoryPO::getId);
        }
        Page<AlarmHistoryPO> pageResult = super.selectPage(new Page<>(search.getPage(), search.getLimit()), queryWrapper);
        return new PagerResult<>(pageResult.getSize(), pageResult.getCurrent(), pageResult.getTotal(), pageResult.getRecords());
    }
    public Boolean add(AlarmHistoryPO item) {
        int rowCount = super.insert(item);
        return rowCount == 1;
    }
    public Boolean addNotIncrement(AlarmHistoryPO item) {
        int rowCount = super.insert(item);
        return rowCount == 1;
    }
    public AlarmHistoryPO getById(Long id) {
        return super.get(id);
    }
    public List<AlarmHistoryPO> getListById(List<Long> listId) {
        return super.getList(listId);
    }
    public List<AlarmHistoryPO> getListByTime(Long  beginTime,Long  endTime) {
        LambdaQueryWrapper<AlarmHistoryPO> queryWrapper = this.query();
        queryWrapper.between(AlarmHistoryPO::getLastTime,beginTime,endTime);
        return super.selectList(queryWrapper);
    }
    public AlarmHistoryPO getListByFacilityId(Long  facilityId,Integer  code) {
        LambdaQueryWrapper<AlarmHistoryPO> queryWrapper = this.query();
        queryWrapper.eq(AlarmHistoryPO::getFacilityId,facilityId);
        queryWrapper.eq(AlarmHistoryPO::getCode,code);
        queryWrapper.ne(AlarmHistoryPO::getIsConfirm,30);
        queryWrapper.ne(AlarmHistoryPO::getIsConfirm,200);
        return super.selectOne(queryWrapper);
    }
}
src/main/java/com/nanjing/water/repository/impl/AlarmSchemeMapperImpl.java
对比新文件
@@ -0,0 +1,144 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nanjing.water.common.PagerResult;
import com.nanjing.water.common.enums.EYesOrNo;
import com.nanjing.water.common.util.*;
import com.nanjing.water.entity.dto.*;
import com.nanjing.water.entity.enums.*;
import com.nanjing.water.entity.search.SearchAlarmScheme;
import com.nanjing.water.repository.BasicMapperImpl;
import com.nanjing.water.repository.mapper.AlarmSchemeMapper;
import com.nanjing.water.repository.po.AlarmSchemePO;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
 * 报警方案设置
 * @author lin.liu
 */
@Repository
public class AlarmSchemeMapperImpl extends BasicMapperImpl<AlarmSchemePO, AlarmSchemeMapper> {
    AlarmSchemeMapperImpl(AlarmSchemeMapper mapper) {
        super(mapper);
    }
    @Override
    public PagerResult<AlarmSchemePO> search(SearchBasicDTO request) {
        // 还原查询条件真实类型
        SearchAlarmScheme search = (SearchAlarmScheme)request;
        // 查询条件
        LambdaQueryWrapper<AlarmSchemePO> queryWrapper = this.query();
        // 非逻辑删除
        queryWrapper.eq(AlarmSchemePO::getIsDelete, EYesOrNo.NO.getValue());
        // 状态
        //queryWrapper.eq(NumericUtil.tryParseInt(search.getStatus()).compareTo(0) > 0, AlarmSchemePO::getStatus, search.getStatus());
        // 状态列表
        //queryWrapper.in(ListUtil.isNotNullOrEmpty(search.getListStatus()), AlarmSchemePO::getStatus, search.getListStatus());
        // 数据创建时间-起始
        queryWrapper.ge(NumericUtil.tryParseLong(search.getCreateTimeStart()).compareTo(0L) > 0, AlarmSchemePO::getCreateTime, search.getCreateTimeStart());
        // 数据创建时间-截止
        queryWrapper.le(NumericUtil.tryParseLong(search.getCreateTimeEnd()).compareTo(0L) > 0, AlarmSchemePO::getCreateTime, search.getCreateTimeEnd());
        // 关键字
        //if (StringUtil.isNotNullOrEmpty(search.getKeywords())) {
        //    queryWrapper.and(q ->
        //        q.like(AlarmSchemePO::getName, search.getKeywords())
        //        .or().like(AlarmSchemePO::getPhone, search.getKeywords())
        //    );
        //}
        // 排序处理
        if (ListUtil.isNotNullOrEmpty(search.getOrderBy())) {
            for (OrderByDTO item : search.getOrderBy()) {
                EOrderBy orderBy = EOrderBy.getByValue(item.getOrderBy());
                // 顺序排序
                if (item.getIsAsc()) {
                    switch (orderBy) {
                        // 主键
                        case ID:
                            queryWrapper.orderByAsc(AlarmSchemePO::getId);
                            break;
                        // 数据创建时间
                        case CREATE_TIME:
                            queryWrapper.orderByAsc(AlarmSchemePO::getCreateTime);
                            break;
                        // 最后更新时间
                        case UPDATE_TIME:
                            queryWrapper.orderByAsc(AlarmSchemePO::getUpdateTime);
                            break;
                    }
                } else {
                    // 倒叙排序
                    switch (orderBy) {
                        // 主键
                        case ID:
                            queryWrapper.orderByDesc(AlarmSchemePO::getId);
                            break;
                        // 数据创建时间
                        case CREATE_TIME:
                            queryWrapper.orderByDesc(AlarmSchemePO::getCreateTime);
                            break;
                        // 最后更新时间
                        case UPDATE_TIME:
                            queryWrapper.orderByDesc(AlarmSchemePO::getUpdateTime);
                            break;
                    }
                }
            }
        } else {
            queryWrapper.orderByDesc(AlarmSchemePO::getId);
        }
        Page<AlarmSchemePO> pageResult = super.selectPage(new Page<>(search.getPage(), search.getLimit()), queryWrapper);
        return new PagerResult<>(pageResult.getSize(), pageResult.getCurrent(), pageResult.getTotal(), pageResult.getRecords());
    }
    public Boolean add(AlarmSchemePO item) {
        int rowCount = super.insert(item);
        return rowCount == 1;
    }
    public Boolean addNotIncrement(AlarmSchemePO item) {
        int rowCount = super.insert(item);
        return rowCount == 1;
    }
    public AlarmSchemePO getById(Long id) {
        return super.get(id);
    }
    public AlarmSchemePO getByFacilityId(Long facilityId,String code) {
        LambdaQueryWrapper<AlarmSchemePO> queryWrapper = this.query();
        queryWrapper.eq(AlarmSchemePO::getFacilityId,facilityId);
        queryWrapper.eq(AlarmSchemePO::getColumnsCode,code);
        return super.selectOne(queryWrapper);
    }
    public List<AlarmSchemePO> getListById(List<Long> listId) {
        return super.getList(listId);
    }
}
src/main/java/com/nanjing/water/repository/impl/CommonParametersMapperImpl.java
对比新文件
@@ -0,0 +1,156 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nanjing.water.common.PagerResult;
import com.nanjing.water.common.enums.EYesOrNo;
import com.nanjing.water.common.util.*;
import com.nanjing.water.entity.dto.*;
import com.nanjing.water.entity.enums.*;
import com.nanjing.water.entity.search.SearchCommonParameters;
import com.nanjing.water.repository.BasicMapperImpl;
import com.nanjing.water.repository.mapper.CommonParametersMapper;
import com.nanjing.water.repository.po.CommonParametersPO;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
 * 公共参数
 * @author lin.liu
 */
@Repository
public class CommonParametersMapperImpl extends BasicMapperImpl<CommonParametersPO, CommonParametersMapper> {
    CommonParametersMapperImpl(CommonParametersMapper mapper) {
        super(mapper);
    }
    @Override
    public PagerResult<CommonParametersPO> search(SearchBasicDTO request) {
        // 还原查询条件真实类型
        SearchCommonParameters search = (SearchCommonParameters)request;
        // 查询条件
        LambdaQueryWrapper<CommonParametersPO> queryWrapper = this.query();
        // 非逻辑删除
        queryWrapper.eq(CommonParametersPO::getIsDelete, EYesOrNo.NO.getValue());
        // 状态
        //queryWrapper.eq(NumericUtil.tryParseInt(search.getStatus()).compareTo(0) > 0, CommonParametersPO::getStatus, search.getStatus());
        // 状态列表
        //queryWrapper.in(ListUtil.isNotNullOrEmpty(search.getListStatus()), CommonParametersPO::getStatus, search.getListStatus());
        // 数据创建时间-起始
        queryWrapper.ge(NumericUtil.tryParseLong(search.getCreateTimeStart()).compareTo(0L) > 0, CommonParametersPO::getCreateTime, search.getCreateTimeStart());
        // 数据创建时间-截止
        queryWrapper.le(NumericUtil.tryParseLong(search.getCreateTimeEnd()).compareTo(0L) > 0, CommonParametersPO::getCreateTime, search.getCreateTimeEnd());
        // 关键字
        if (StringUtil.isNotNullOrEmpty(search.getKeywords())) {
            queryWrapper.and(q ->
                    q.like(CommonParametersPO::getName, search.getKeywords())
                            .or().like(CommonParametersPO::getUnit, search.getKeywords())
            );
        }
        // 排序处理
        if (ListUtil.isNotNullOrEmpty(search.getOrderBy())) {
            for (OrderByDTO item : search.getOrderBy()) {
                ESortOrderBy orderBy = ESortOrderBy.getByValue(item.getOrderBy());
                // 顺序排序
                if (item.getIsAsc()) {
                    switch (orderBy) {
                        // 主键
                        case ID:
                            queryWrapper.orderByAsc(CommonParametersPO::getId);
                            break;
                        // 数据创建时间
                        case CREATE_TIME:
                            queryWrapper.orderByAsc(CommonParametersPO::getCreateTime);
                            break;
                        // 最后更新时间
                        case UPDATE_TIME:
                            queryWrapper.orderByAsc(CommonParametersPO::getUpdateTime);
                            break;
                        // 最后更新时间
                        case SORT:
                            queryWrapper.orderByAsc(CommonParametersPO::getSort);
                            break;
                    }
                } else {
                    // 倒叙排序
                    switch (orderBy) {
                        // 主键
                        case ID:
                            queryWrapper.orderByDesc(CommonParametersPO::getId);
                            break;
                        // 数据创建时间
                        case CREATE_TIME:
                            queryWrapper.orderByDesc(CommonParametersPO::getCreateTime);
                            break;
                        // 最后更新时间
                        case UPDATE_TIME:
                            queryWrapper.orderByDesc(CommonParametersPO::getUpdateTime);
                            break;
                        // 最后更新时间
                        case SORT:
                            queryWrapper.orderByDesc(CommonParametersPO::getSort);
                            break;
                    }
                }
            }
        } else {
            queryWrapper.orderByDesc(CommonParametersPO::getSort);
        }
        Page<CommonParametersPO> pageResult = super.selectPage(new Page<>(search.getPage(), search.getLimit()), queryWrapper);
        return new PagerResult<>(pageResult.getSize(), pageResult.getCurrent(), pageResult.getTotal(), pageResult.getRecords());
    }
    public Boolean add(CommonParametersPO item) {
        int rowCount = super.insert(item);
        return rowCount == 1;
    }
    public CommonParametersPO getByMark(String mark){
        LambdaQueryWrapper<CommonParametersPO> queryWrapper = this.query();
        queryWrapper.eq(CommonParametersPO::getMark, mark);
        return super.selectOne(queryWrapper);
    }
    public Boolean addNotIncrement(CommonParametersPO item) {
        int rowCount = super.insert(item);
        return rowCount == 1;
    }
    public CommonParametersPO getById(Long id) {
        return super.get(id);
    }
    public List<CommonParametersPO> getListById(List<Long> listId) {
        return super.getList(listId);
    }
    public List<CommonParametersPO> list4Mark(List<String> listMark) {
        LambdaQueryWrapper<CommonParametersPO> queryWrapper = this.query();
        queryWrapper.in(CommonParametersPO::getMark, listMark);
        return super.selectList(queryWrapper);
    }
}
src/main/java/com/nanjing/water/repository/impl/SysDictDataMapperImpl.java
对比新文件
@@ -0,0 +1,187 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nanjing.water.common.PagerResult;
import com.nanjing.water.common.util.ListUtil;
import com.nanjing.water.common.util.NumericUtil;
import com.nanjing.water.common.util.StringUtil;
import com.nanjing.water.entity.dto.OrderByDTO;
import com.nanjing.water.entity.dto.SearchBasicDTO;
import com.nanjing.water.entity.enums.EOrderBy;
import com.nanjing.water.entity.search.SearchSysDictData;
import com.nanjing.water.repository.BasicMapperImpl;
import com.nanjing.water.repository.mapper.SysDictDataMapper;
import com.nanjing.water.repository.po.SysDictDataPO;
import org.springframework.stereotype.Repository;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * 字典数据表
 * @author lin.liu
 * @description 字典数据表
 */
@Repository
public class SysDictDataMapperImpl extends BasicMapperImpl<SysDictDataPO, SysDictDataMapper> {
    SysDictDataMapperImpl(SysDictDataMapper mapper) {
        super(mapper);
    }
    @Override
    public PagerResult<SysDictDataPO> search(SearchBasicDTO request) {
        // 还原查询条件真实类型
        SearchSysDictData search = (SearchSysDictData)request;
        // 查询条件
        LambdaQueryWrapper<SysDictDataPO> queryWrapper = this.query();
        // 状态
        queryWrapper.eq(NumericUtil.tryParseInt(search.getStatus()).compareTo(0) > 0, SysDictDataPO::getStatus, search.getStatus());
        // 状态列表
        queryWrapper.in(ListUtil.isNotNullOrEmpty(search.getListStatus()), SysDictDataPO::getStatus, search.getListStatus());
        // 数据创建时间-起始
        queryWrapper.ge(NumericUtil.tryParseLong(search.getCreateTimeStart()).compareTo(0L) > 0, SysDictDataPO::getCreateTime, search.getCreateTimeStart());
        // 数据创建时间-截止
        queryWrapper.le(NumericUtil.tryParseLong(search.getCreateTimeEnd()).compareTo(0L) > 0, SysDictDataPO::getCreateTime, search.getCreateTimeEnd());
        // 关键字
        if (StringUtil.isNotNullOrEmpty(search.getKeywords())) {
            queryWrapper.like(SysDictDataPO::getDictLabel, search.getKeywords());
        }
        // 排序处理
        if (ListUtil.isNotNullOrEmpty(search.getOrderBy())) {
            for (OrderByDTO item : search.getOrderBy()) {
                EOrderBy orderBy = EOrderBy.getByValue(item.getOrderBy());
                // 顺序排序
                if (item.getIsAsc()) {
                    switch (orderBy) {
                        // 主键
                        case ID:
                            queryWrapper.orderByAsc(SysDictDataPO::getId);
                            break;
                        // 数据创建时间
                        case CREATE_TIME:
                            queryWrapper.orderByAsc(SysDictDataPO::getCreateTime);
                            break;
                        // 最后更新时间
                        case UPDATE_TIME:
                            queryWrapper.orderByAsc(SysDictDataPO::getUpdateTime);
                            break;
                    }
                } else {
                    // 倒叙排序
                    switch (orderBy) {
                        // 主键
                        case ID:
                            queryWrapper.orderByDesc(SysDictDataPO::getId);
                            break;
                        // 数据创建时间
                        case CREATE_TIME:
                            queryWrapper.orderByDesc(SysDictDataPO::getCreateTime);
                            break;
                        // 最后更新时间
                        case UPDATE_TIME:
                            queryWrapper.orderByDesc(SysDictDataPO::getUpdateTime);
                            break;
                    }
                }
            }
        } else {
            queryWrapper.orderByDesc(SysDictDataPO::getId);
        }
        Page<SysDictDataPO> pageResult = super.selectPage(new Page<>(search.getPage(), search.getLimit()), queryWrapper);
        return new PagerResult<>(pageResult.getSize(), pageResult.getCurrent(), pageResult.getTotal(), pageResult.getRecords());
    }
    public Boolean add(SysDictDataPO item) {
        int rowCount = super.insert(item);
        return rowCount == 1;
    }
    /**
     * 根据type获取数据列表
     * @param type 类型
     */
    public List<SysDictDataPO> getListByType(String type) {
        LambdaQueryWrapper<SysDictDataPO> queryWrapper = this.query();
         queryWrapper.eq(SysDictDataPO::getDictType, type);
         return DB.selectList(queryWrapper);
    }
    public Long count4Type(String type) {
        LambdaQueryWrapper<SysDictDataPO> queryWrapper = this.query();
        queryWrapper.eq(SysDictDataPO::getDictType, type);
        return DB.getCount(queryWrapper);
    }
    public List<String> findExists4Type(List<String> listType) {
        LambdaQueryWrapper<SysDictDataPO> queryWrapper = this.query();
        queryWrapper.select(SysDictDataPO.class, c -> c.getColumn().equals("dict_type"));
        queryWrapper.in(SysDictDataPO::getDictType, listType);
        List<Map<String, Object>> result = DB.selectMaps(queryWrapper);
        return result.stream().map(c -> c.get("dict_type").toString()).distinct().collect(Collectors.toList());
    }
    public Boolean addNotIncrement(SysDictDataPO item) {
        int rowCount = super.insert(item);
        return rowCount == 1;
    }
    public SysDictDataPO getById(Long id) {
        return super.get(id);
    }
    public List<SysDictDataPO> getListById(List<Long> listId) {
        return super.getList(listId);
    }
    public List<SysDictDataPO> listByType(List<String> listType) {
        LambdaQueryWrapper<SysDictDataPO> queryWrapper = this.query();
        queryWrapper.in(SysDictDataPO::getDictType, listType);
        return DB.selectList(queryWrapper);
    }
    public Map<String, Map<String, String>> map4Type(List<String> listType) {
        Map<String, Map<String, String>> result = new HashMap<>();
        List<SysDictDataPO> listDictData = this.listByType(listType);
        Map<String, List<SysDictDataPO>> map4Type = listDictData.stream().collect(Collectors.groupingBy(SysDictDataPO::getDictType));
        for (Map.Entry<String, List<SysDictDataPO>> entry : map4Type.entrySet()) {
            Map<String, String> mapData = entry.getValue().stream().collect(
                    Collectors.toMap(SysDictDataPO::getDictValue, SysDictDataPO::getDictLabel)
            );
            result.put(entry.getKey(), mapData);
        }
        return result;
    }
    public Map<String, SysDictDataPO> map4Type(String type) {
        List<SysDictDataPO> listDictData = this.getListByType(type);
        if (ListUtil.isNullOrEmpty(listDictData)) {
            return new HashMap<>();
        }
        return listDictData.stream().collect(Collectors.toMap(SysDictDataPO::getDictValue, c -> c));
    }
}
src/main/java/com/nanjing/water/repository/impl/SysDictTypeMapperImpl.java
对比新文件
@@ -0,0 +1,150 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nanjing.water.common.PagerResult;
import com.nanjing.water.common.util.ListUtil;
import com.nanjing.water.common.util.NumericUtil;
import com.nanjing.water.common.util.StringUtil;
import com.nanjing.water.entity.dto.OrderByDTO;
import com.nanjing.water.entity.dto.SearchBasicDTO;
import com.nanjing.water.entity.enums.EOrderBy;
import com.nanjing.water.entity.search.SearchSysDictType;
import com.nanjing.water.repository.BasicMapperImpl;
import com.nanjing.water.repository.mapper.SysDictTypeMapper;
import com.nanjing.water.repository.po.SysDictTypePO;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
 * 字典类型表
 * @author lin.liu
 * @description 字典类型表
 */
@Repository
public class SysDictTypeMapperImpl extends BasicMapperImpl<SysDictTypePO, SysDictTypeMapper> {
    SysDictTypeMapperImpl(SysDictTypeMapper mapper) {
        super(mapper);
    }
    @Override
    public PagerResult<SysDictTypePO> search(SearchBasicDTO request) {
        // 还原查询条件真实类型
        SearchSysDictType search = (SearchSysDictType)request;
        // 查询条件
        LambdaQueryWrapper<SysDictTypePO> queryWrapper = this.query();
        // 状态
        queryWrapper.eq(NumericUtil.tryParseInt(search.getStatus()).compareTo(0) > 0, SysDictTypePO::getStatus, search.getStatus());
        // 状态列表
        queryWrapper.in(ListUtil.isNotNullOrEmpty(search.getListStatus()), SysDictTypePO::getStatus, search.getListStatus());
        // 数据创建时间-起始
        queryWrapper.ge(NumericUtil.tryParseLong(search.getCreateTimeStart()).compareTo(0L) > 0, SysDictTypePO::getCreateTime, search.getCreateTimeStart());
        // 数据创建时间-截止
        queryWrapper.le(NumericUtil.tryParseLong(search.getCreateTimeEnd()).compareTo(0L) > 0, SysDictTypePO::getCreateTime, search.getCreateTimeEnd());
        // 关键字
        if (StringUtil.isNotNullOrEmpty(search.getKeywords())) {
            queryWrapper.and(q ->
                q.like(SysDictTypePO::getDictType, search.getKeywords())
                .or().like(SysDictTypePO::getDictName, search.getKeywords())
            );
        }
        // 排序处理
        if (ListUtil.isNotNullOrEmpty(search.getOrderBy())) {
            for (OrderByDTO item : search.getOrderBy()) {
                EOrderBy orderBy = EOrderBy.getByValue(item.getOrderBy());
                // 顺序排序
                if (item.getIsAsc()) {
                    switch (orderBy) {
                        // 主键
                        case ID:
                            queryWrapper.orderByAsc(SysDictTypePO::getId);
                            break;
                        // 数据创建时间
                        case CREATE_TIME:
                            queryWrapper.orderByAsc(SysDictTypePO::getCreateTime);
                            break;
                        // 最后更新时间
                        case UPDATE_TIME:
                            queryWrapper.orderByAsc(SysDictTypePO::getUpdateTime);
                            break;
                    }
                } else {
                    // 倒叙排序
                    switch (orderBy) {
                        // 主键
                        case ID:
                            queryWrapper.orderByDesc(SysDictTypePO::getId);
                            break;
                        // 数据创建时间
                        case CREATE_TIME:
                            queryWrapper.orderByDesc(SysDictTypePO::getCreateTime);
                            break;
                        // 最后更新时间
                        case UPDATE_TIME:
                            queryWrapper.orderByDesc(SysDictTypePO::getUpdateTime);
                            break;
                    }
                }
            }
        } else {
            queryWrapper.orderByDesc(SysDictTypePO::getId);
        }
        Page<SysDictTypePO> pageResult = super.selectPage(new Page<>(search.getPage(), search.getLimit()), queryWrapper);
        return new PagerResult<>(pageResult.getSize(), pageResult.getCurrent(), pageResult.getTotal(), pageResult.getRecords());
    }
    public Boolean add(SysDictTypePO item) {
        int rowCount = super.insert(item);
        return rowCount == 1;
    }
    public Boolean addNotIncrement(SysDictTypePO item) {
        int rowCount = super.insert(item);
        return rowCount == 1;
    }
    public SysDictTypePO getById(Long id) {
        return super.get(id);
    }
    public List<SysDictTypePO> getListById(List<Long> listId) {
        return super.getList(listId);
    }
    public SysDictTypePO get4Type(String type) {
        LambdaQueryWrapper<SysDictTypePO> queryWrapper = this.query();
        queryWrapper.eq(SysDictTypePO::getDictType, type);
        return DB.selectOne(queryWrapper);
    }
    public List<SysDictTypePO> get4Type(List<String> listType) {
        LambdaQueryWrapper<SysDictTypePO> queryWrapper = this.query();
        queryWrapper.in(SysDictTypePO::getDictType, listType);
        return DB.selectList(queryWrapper);
    }
}
src/main/java/com/nanjing/water/repository/impl/SysRegionMapperImpl.java
对比新文件
@@ -0,0 +1,162 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nanjing.water.common.PagerResult;
import com.nanjing.water.common.enums.EYesOrNo;
import com.nanjing.water.common.util.*;
import com.nanjing.water.entity.dto.*;
import com.nanjing.water.entity.enums.*;
import com.nanjing.water.entity.search.SearchSysRegion;
import com.nanjing.water.repository.BasicMapperImpl;
import com.nanjing.water.repository.mapper.SysRegionMapper;
import com.nanjing.water.repository.po.SysRegionPO;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
 * 系统行政地区
 * @author lin.liu
 */
@Repository
public class SysRegionMapperImpl extends BasicMapperImpl<SysRegionPO, SysRegionMapper> {
    SysRegionMapperImpl(SysRegionMapper mapper) {
        super(mapper);
    }
    @Override
    public PagerResult<SysRegionPO> search(SearchBasicDTO request) {
        // 还原查询条件真实类型
        SearchSysRegion search = (SearchSysRegion)request;
        // 查询条件
        LambdaQueryWrapper<SysRegionPO> queryWrapper = this.query();
        // 非逻辑删除
        queryWrapper.eq(SysRegionPO::getIsDelete, EYesOrNo.NO.getValue());
        // 状态
        //queryWrapper.eq(NumericUtil.tryParseInt(search.getStatus()).compareTo(0) > 0, SysRegionPO::getStatus, search.getStatus());
        // 状态列表
        //queryWrapper.in(ListUtil.isNotNullOrEmpty(search.getListStatus()), SysRegionPO::getStatus, search.getListStatus());
        // 数据创建时间-起始
        queryWrapper.ge(NumericUtil.tryParseLong(search.getCreateTimeStart()).compareTo(0L) > 0, SysRegionPO::getCreateTime, search.getCreateTimeStart());
        // 数据创建时间-截止
        queryWrapper.le(NumericUtil.tryParseLong(search.getCreateTimeEnd()).compareTo(0L) > 0, SysRegionPO::getCreateTime, search.getCreateTimeEnd());
        // 关键字
        //if (StringUtil.isNotNullOrEmpty(search.getKeywords())) {
        //    queryWrapper.and(q ->
        //        q.like(SysRegionPO::getName, search.getKeywords())
        //        .or().like(SysRegionPO::getPhone, search.getKeywords())
        //    );
        //}
        // 排序处理
        if (ListUtil.isNotNullOrEmpty(search.getOrderBy())) {
            for (OrderByDTO item : search.getOrderBy()) {
                EOrderBy orderBy = EOrderBy.getByValue(item.getOrderBy());
                // 顺序排序
                if (item.getIsAsc()) {
                    switch (orderBy) {
                        // 主键
                        case ID:
                            queryWrapper.orderByAsc(SysRegionPO::getId);
                            break;
                        // 数据创建时间
                        case CREATE_TIME:
                            queryWrapper.orderByAsc(SysRegionPO::getCreateTime);
                            break;
                        // 最后更新时间
                        case UPDATE_TIME:
                            queryWrapper.orderByAsc(SysRegionPO::getUpdateTime);
                            break;
                    }
                } else {
                    // 倒叙排序
                    switch (orderBy) {
                        // 主键
                        case ID:
                            queryWrapper.orderByDesc(SysRegionPO::getId);
                            break;
                        // 数据创建时间
                        case CREATE_TIME:
                            queryWrapper.orderByDesc(SysRegionPO::getCreateTime);
                            break;
                        // 最后更新时间
                        case UPDATE_TIME:
                            queryWrapper.orderByDesc(SysRegionPO::getUpdateTime);
                            break;
                    }
                }
            }
        } else {
            queryWrapper.orderByDesc(SysRegionPO::getId);
        }
        Page<SysRegionPO> pageResult = super.selectPage(new Page<>(search.getPage(), search.getLimit()), queryWrapper);
        return new PagerResult<>(pageResult.getSize(), pageResult.getCurrent(), pageResult.getTotal(), pageResult.getRecords());
    }
    public Boolean add(SysRegionPO item) {
        int rowCount = super.insert(item);
        return rowCount == 1;
    }
    public List<SysRegionPO> getList4Parent(String code) {
        LambdaQueryWrapper<SysRegionPO> queryWrapper = this.query();
        queryWrapper.eq(SysRegionPO::getParentCode,code);
        return DB.selectList(queryWrapper);
    }
    public SysRegionPO get4Code(String code) {
        LambdaQueryWrapper<SysRegionPO> queryWrapper = this.query();
        queryWrapper.eq(SysRegionPO::getCode,code);
        return DB.selectOne(queryWrapper);
    }
    public List<SysRegionPO> getList4LevelChild(Integer level) {
        LambdaQueryWrapper<SysRegionPO> queryWrapper = this.query();
        queryWrapper.gt(SysRegionPO::getLevel,level);
        return DB.selectList(queryWrapper);
    }
    public List<SysRegionPO> getList4Level(Integer level) {
        LambdaQueryWrapper<SysRegionPO> queryWrapper = this.query();
        queryWrapper.eq(SysRegionPO::getLevel,level);
        return DB.selectList(queryWrapper);
    }
    public Boolean addNotIncrement(SysRegionPO item) {
        int rowCount = super.insert(item);
        return rowCount == 1;
    }
    public SysRegionPO getById(Long id) {
        return super.get(id);
    }
    public List<SysRegionPO> getListById(List<Long> listId) {
        return super.getList(listId);
    }
    public List<SysRegionPO> list4Code(List<String> listCode) {
        LambdaQueryWrapper<SysRegionPO> queryWrapper = this.query();
        queryWrapper.in(SysRegionPO::getCode, listCode);
        return DB.selectList(queryWrapper);
    }
}
src/main/java/com/nanjing/water/repository/impl/WaterFacilityMapperImpl.java
对比新文件
@@ -0,0 +1,156 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nanjing.water.common.PagerResult;
import com.nanjing.water.common.enums.EYesOrNo;
import com.nanjing.water.common.util.ListUtil;
import com.nanjing.water.common.util.NumericUtil;
import com.nanjing.water.common.util.StringUtil;
import com.nanjing.water.entity.dto.OrderByDTO;
import com.nanjing.water.entity.dto.SearchBasicDTO;
import com.nanjing.water.entity.enums.EOrderBy;
import com.nanjing.water.entity.search.SearchWaterFacility;
import com.nanjing.water.repository.BasicMapperImpl;
import com.nanjing.water.repository.mapper.WaterFacilityMapper;
import com.nanjing.water.repository.po.WaterFacilityPO;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
 * 设备信息
 * @author lin.liu
 */
@Repository
public class WaterFacilityMapperImpl extends BasicMapperImpl<WaterFacilityPO, WaterFacilityMapper> {
    WaterFacilityMapperImpl(WaterFacilityMapper mapper) {
        super(mapper);
    }
    @Override
    public PagerResult<WaterFacilityPO> search(SearchBasicDTO request) {
        // 还原查询条件真实类型
        SearchWaterFacility search = (SearchWaterFacility)request;
        // 查询条件
        LambdaQueryWrapper<WaterFacilityPO> queryWrapper = this.query();
        // 非逻辑删除
        queryWrapper.eq(WaterFacilityPO::getIsDelete, EYesOrNo.NO.getValue());
        // 数据创建时间-起始
        queryWrapper.ge(NumericUtil.tryParseLong(search.getCreateTimeStart()).compareTo(0L) > 0, WaterFacilityPO::getCreateTime, search.getCreateTimeStart());
        // 数据创建时间-截止
        queryWrapper.le(NumericUtil.tryParseLong(search.getCreateTimeEnd()).compareTo(0L) > 0, WaterFacilityPO::getCreateTime, search.getCreateTimeEnd());
        // 关键字
        if (StringUtil.isNotNullOrEmpty(search.getKeywords())) {
            queryWrapper.and(q ->
                    q.like(WaterFacilityPO::getFacilityName, search.getKeywords())
                            .or().like(WaterFacilityPO::getFacilityCode, search.getKeywords())
            );
        }
        // 排序处理
        if (ListUtil.isNotNullOrEmpty(search.getOrderBy())) {
            for (OrderByDTO item : search.getOrderBy()) {
                EOrderBy orderBy = EOrderBy.getByValue(item.getOrderBy());
                // 顺序排序
                if (item.getIsAsc()) {
                    switch (orderBy) {
                        // 主键
                        case ID:
                            queryWrapper.orderByAsc(WaterFacilityPO::getId);
                            break;
                        // 数据创建时间
                        case CREATE_TIME:
                            queryWrapper.orderByAsc(WaterFacilityPO::getCreateTime);
                            break;
                        // 最后更新时间
                        case UPDATE_TIME:
                            queryWrapper.orderByAsc(WaterFacilityPO::getUpdateTime);
                            break;
                    }
                } else {
                    // 倒叙排序
                    switch (orderBy) {
                        // 主键
                        case ID:
                            queryWrapper.orderByDesc(WaterFacilityPO::getId);
                            break;
                        // 数据创建时间
                        case CREATE_TIME:
                            queryWrapper.orderByDesc(WaterFacilityPO::getCreateTime);
                            break;
                        // 最后更新时间
                        case UPDATE_TIME:
                            queryWrapper.orderByDesc(WaterFacilityPO::getUpdateTime);
                            break;
                    }
                }
            }
        } else {
            queryWrapper.orderByDesc(WaterFacilityPO::getId);
        }
        Page<WaterFacilityPO> pageResult = super.selectPage(new Page<>(search.getPage(), search.getLimit()), queryWrapper);
        return new PagerResult<>(pageResult.getSize(), pageResult.getCurrent(), pageResult.getTotal(), pageResult.getRecords());
    }
    public Boolean add(WaterFacilityPO item) {
        int rowCount = super.insert(item);
        return rowCount == 1;
    }
    public Boolean addNotIncrement(WaterFacilityPO item) {
        int rowCount = super.insert(item);
        return rowCount == 1;
    }
    public List<WaterFacilityPO> getListByCode(List<String> listCode) {
        LambdaQueryWrapper<WaterFacilityPO> queryWrapper = this.query();
        queryWrapper.in(WaterFacilityPO::getFacilityCode,listCode);
        return super.selectList(queryWrapper);
    }
    public WaterFacilityPO getByCode(String code) {
        LambdaQueryWrapper<WaterFacilityPO> queryWrapper = this.query();
        queryWrapper.eq(WaterFacilityPO::getFacilityCode,code);
        return super.selectOne(queryWrapper);
    }
    public List<WaterFacilityPO> getListByPointId(Long pointId) {
        LambdaQueryWrapper<WaterFacilityPO> queryWrapper = this.query();
        queryWrapper.eq(WaterFacilityPO::getPointId,pointId);
        return super.selectList(queryWrapper);
    }
//    public List<WaterFacilityPO> getListByPointTypeId(Long pointTypeId) {
//        LambdaQueryWrapper<WaterFacilityPO> queryWrapper = this.query();
//        queryWrapper.eq(WaterFacilityPO::getPointTypeId,pointTypeId);
//        return super.selectList(queryWrapper);
//    }
    public WaterFacilityPO getById(Long id) {
        return super.get(id);
    }
    public List<WaterFacilityPO> getListById(List<Long> listId) {
        return super.getList(listId);
    }
}
src/main/java/com/nanjing/water/repository/impl/WaterFacilityParameterMapperImpl.java
对比新文件
@@ -0,0 +1,151 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nanjing.water.common.PagerResult;
import com.nanjing.water.common.enums.EYesOrNo;
import com.nanjing.water.common.util.*;
import com.nanjing.water.entity.dto.*;
import com.nanjing.water.entity.enums.*;
import com.nanjing.water.entity.search.SearchWaterFacilityParameter;
import com.nanjing.water.repository.BasicMapperImpl;
import com.nanjing.water.repository.mapper.WaterFacilityParameterMapper;
import com.nanjing.water.repository.po.WaterFacilityParameterPO;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
 * 设备设定参数
 * @author lin.liu
 */
@Repository
public class WaterFacilityParameterMapperImpl extends BasicMapperImpl<WaterFacilityParameterPO, WaterFacilityParameterMapper> {
    WaterFacilityParameterMapperImpl(WaterFacilityParameterMapper mapper) {
        super(mapper);
    }
    @Override
    public PagerResult<WaterFacilityParameterPO> search(SearchBasicDTO request) {
        // 还原查询条件真实类型
        SearchWaterFacilityParameter search = (SearchWaterFacilityParameter)request;
        // 查询条件
        LambdaQueryWrapper<WaterFacilityParameterPO> queryWrapper = this.query();
        // 非逻辑删除
        queryWrapper.eq(WaterFacilityParameterPO::getIsDelete, EYesOrNo.NO.getValue());
        // 状态
        //queryWrapper.eq(NumericUtil.tryParseInt(search.getStatus()).compareTo(0) > 0, WaterFacilityParameterPO::getStatus, search.getStatus());
        // 状态列表
        //queryWrapper.in(ListUtil.isNotNullOrEmpty(search.getListStatus()), WaterFacilityParameterPO::getStatus, search.getListStatus());
        // 数据创建时间-起始
        queryWrapper.ge(NumericUtil.tryParseLong(search.getCreateTimeStart()).compareTo(0L) > 0, WaterFacilityParameterPO::getCreateTime, search.getCreateTimeStart());
        // 数据创建时间-截止
        queryWrapper.le(NumericUtil.tryParseLong(search.getCreateTimeEnd()).compareTo(0L) > 0, WaterFacilityParameterPO::getCreateTime, search.getCreateTimeEnd());
        // 关键字
        if (StringUtil.isNotNullOrEmpty(search.getKeywords())) {
            queryWrapper.and(q ->
                    q.like(WaterFacilityParameterPO::getFacilityCode, search.getKeywords())
            );
        }
        // 排序处理
        if (ListUtil.isNotNullOrEmpty(search.getOrderBy())) {
            for (OrderByDTO item : search.getOrderBy()) {
                EOrderBy orderBy = EOrderBy.getByValue(item.getOrderBy());
                // 顺序排序
                if (item.getIsAsc()) {
                    switch (orderBy) {
                        // 主键
                        case ID:
                            queryWrapper.orderByAsc(WaterFacilityParameterPO::getId);
                            break;
                        // 数据创建时间
                        case CREATE_TIME:
                            queryWrapper.orderByAsc(WaterFacilityParameterPO::getCreateTime);
                            break;
                        // 最后更新时间
                        case UPDATE_TIME:
                            queryWrapper.orderByAsc(WaterFacilityParameterPO::getUpdateTime);
                            break;
                    }
                } else {
                    // 倒叙排序
                    switch (orderBy) {
                        // 主键
                        case ID:
                            queryWrapper.orderByDesc(WaterFacilityParameterPO::getId);
                            break;
                        // 数据创建时间
                        case CREATE_TIME:
                            queryWrapper.orderByDesc(WaterFacilityParameterPO::getCreateTime);
                            break;
                        // 最后更新时间
                        case UPDATE_TIME:
                            queryWrapper.orderByDesc(WaterFacilityParameterPO::getUpdateTime);
                            break;
                    }
                }
            }
        } else {
            queryWrapper.orderByDesc(WaterFacilityParameterPO::getId);
        }
        Page<WaterFacilityParameterPO> pageResult = super.selectPage(new Page<>(search.getPage(), search.getLimit()), queryWrapper);
        return new PagerResult<>(pageResult.getSize(), pageResult.getCurrent(), pageResult.getTotal(), pageResult.getRecords());
    }
    public Boolean add(WaterFacilityParameterPO item) {
        int rowCount = super.insert(item);
        return rowCount == 1;
    }
    public List<WaterFacilityParameterPO> getCodeList(List<String> codeList) {
        LambdaQueryWrapper<WaterFacilityParameterPO> queryWrapper = this.query();
        queryWrapper.in(WaterFacilityParameterPO::getFacilityCode,codeList);
        return super.selectList(queryWrapper);
    }
    public Boolean addNotIncrement(WaterFacilityParameterPO item) {
        int rowCount = super.insert(item);
        return rowCount == 1;
    }
    public List<WaterFacilityParameterPO> getListByFacilityId(Long facilityId) {
        LambdaQueryWrapper<WaterFacilityParameterPO> queryWrapper = this.query();
        queryWrapper.eq(WaterFacilityParameterPO::getFacilityId,facilityId);
        queryWrapper.eq(WaterFacilityParameterPO::getIsDelete,EYesOrNo.NO.getValue());
        return DB.selectList(queryWrapper);
    }
    public WaterFacilityParameterPO getById(Long id) {
        return super.get(id);
    }
    public List<WaterFacilityParameterPO> getListById(List<Long> listId) {
        return super.getList(listId);
    }
    public List<WaterFacilityParameterPO> getListByFacilityId(List<Long> facilityId) {
        LambdaQueryWrapper<WaterFacilityParameterPO> queryWrapper = this.query();
        queryWrapper.in(WaterFacilityParameterPO::getFacilityId, facilityId);
        return DB.selectList(queryWrapper);
    }
}
src/main/java/com/nanjing/water/repository/impl/WaterFacilityTypeMapperImpl.java
对比新文件
@@ -0,0 +1,142 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nanjing.water.common.PagerResult;
import com.nanjing.water.common.enums.EYesOrNo;
import com.nanjing.water.common.util.*;
import com.nanjing.water.entity.dto.*;
import com.nanjing.water.entity.enums.*;
import com.nanjing.water.entity.search.SearchWaterFacilityType;
import com.nanjing.water.repository.BasicMapperImpl;
import com.nanjing.water.repository.mapper.WaterFacilityTypeMapper;
import com.nanjing.water.repository.po.WaterFacilityTypePO;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
 * 设备类型
 * @author lin.liu
 */
@Repository
public class WaterFacilityTypeMapperImpl extends BasicMapperImpl<WaterFacilityTypePO, WaterFacilityTypeMapper> {
    WaterFacilityTypeMapperImpl(WaterFacilityTypeMapper mapper) {
        super(mapper);
    }
    @Override
    public PagerResult<WaterFacilityTypePO> search(SearchBasicDTO request) {
        // 还原查询条件真实类型
        SearchWaterFacilityType search = (SearchWaterFacilityType)request;
        // 查询条件
        LambdaQueryWrapper<WaterFacilityTypePO> queryWrapper = this.query();
        // 非逻辑删除
        queryWrapper.eq(WaterFacilityTypePO::getIsDelete, EYesOrNo.NO.getValue());
        // 状态
        //queryWrapper.eq(NumericUtil.tryParseInt(search.getStatus()).compareTo(0) > 0, WaterFacilityTypePO::getStatus, search.getStatus());
        // 状态列表
        //queryWrapper.in(ListUtil.isNotNullOrEmpty(search.getListStatus()), WaterFacilityTypePO::getStatus, search.getListStatus());
        // 数据创建时间-起始
        queryWrapper.ge(NumericUtil.tryParseLong(search.getCreateTimeStart()).compareTo(0L) > 0, WaterFacilityTypePO::getCreateTime, search.getCreateTimeStart());
        // 数据创建时间-截止
        queryWrapper.le(NumericUtil.tryParseLong(search.getCreateTimeEnd()).compareTo(0L) > 0, WaterFacilityTypePO::getCreateTime, search.getCreateTimeEnd());
        // 关键字
        //if (StringUtil.isNotNullOrEmpty(search.getKeywords())) {
        //    queryWrapper.and(q ->
        //        q.like(WaterFacilityTypePO::getName, search.getKeywords())
        //        .or().like(WaterFacilityTypePO::getPhone, search.getKeywords())
        //    );
        //}
        // 排序处理
        if (ListUtil.isNotNullOrEmpty(search.getOrderBy())) {
            for (OrderByDTO item : search.getOrderBy()) {
                EOrderBy orderBy = EOrderBy.getByValue(item.getOrderBy());
                // 顺序排序
                if (item.getIsAsc()) {
                    switch (orderBy) {
                        // 主键
                        case ID:
                            queryWrapper.orderByAsc(WaterFacilityTypePO::getId);
                            break;
                        // 数据创建时间
                        case CREATE_TIME:
                            queryWrapper.orderByAsc(WaterFacilityTypePO::getCreateTime);
                            break;
                        // 最后更新时间
                        case UPDATE_TIME:
                            queryWrapper.orderByAsc(WaterFacilityTypePO::getUpdateTime);
                            break;
                    }
                } else {
                    // 倒叙排序
                    switch (orderBy) {
                        // 主键
                        case ID:
                            queryWrapper.orderByDesc(WaterFacilityTypePO::getId);
                            break;
                        // 数据创建时间
                        case CREATE_TIME:
                            queryWrapper.orderByDesc(WaterFacilityTypePO::getCreateTime);
                            break;
                        // 最后更新时间
                        case UPDATE_TIME:
                            queryWrapper.orderByDesc(WaterFacilityTypePO::getUpdateTime);
                            break;
                    }
                }
            }
        } else {
            queryWrapper.orderByDesc(WaterFacilityTypePO::getId);
        }
        Page<WaterFacilityTypePO> pageResult = super.selectPage(new Page<>(search.getPage(), search.getLimit()), queryWrapper);
        return new PagerResult<>(pageResult.getSize(), pageResult.getCurrent(), pageResult.getTotal(), pageResult.getRecords());
    }
    public Boolean add(WaterFacilityTypePO item) {
        int rowCount = super.insert(item);
        return rowCount == 1;
    }
    public Boolean addNotIncrement(WaterFacilityTypePO item) {
        int rowCount = super.insert(item);
        return rowCount == 1;
    }
    public WaterFacilityTypePO getById(Long id) {
        return super.get(id);
    }
    public WaterFacilityTypePO getByCode(String code) {
        LambdaQueryWrapper<WaterFacilityTypePO> queryWrapper = this.query();
        queryWrapper.eq(WaterFacilityTypePO::getCode,code);
        return  super.selectOne(queryWrapper);
    }
    public List<WaterFacilityTypePO> getListById(List<Long> listId) {
        return super.getList(listId);
    }
}
src/main/java/com/nanjing/water/repository/impl/WaterMonitoryPointMapperImpl.java
对比新文件
@@ -0,0 +1,152 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nanjing.water.common.PagerResult;
import com.nanjing.water.common.enums.EYesOrNo;
import com.nanjing.water.common.util.*;
import com.nanjing.water.entity.dto.*;
import com.nanjing.water.entity.enums.*;
import com.nanjing.water.entity.search.SearchWaterMonitoryPoint;
import com.nanjing.water.repository.BasicMapperImpl;
import com.nanjing.water.repository.mapper.WaterMonitoryPointMapper;
import com.nanjing.water.repository.po.WaterMonitoryPointPO;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
 * 监控点
 * @author lin.liu
 */
@Repository
public class WaterMonitoryPointMapperImpl extends BasicMapperImpl<WaterMonitoryPointPO, WaterMonitoryPointMapper> {
    WaterMonitoryPointMapperImpl(WaterMonitoryPointMapper mapper) {
        super(mapper);
    }
    @Override
    public PagerResult<WaterMonitoryPointPO> search(SearchBasicDTO request) {
        // 还原查询条件真实类型
        SearchWaterMonitoryPoint search = (SearchWaterMonitoryPoint)request;
        // 查询条件
        LambdaQueryWrapper<WaterMonitoryPointPO> queryWrapper = this.query();
        // 非逻辑删除
        queryWrapper.eq(WaterMonitoryPointPO::getIsDelete, EYesOrNo.NO.getValue());
        // 状态
        //queryWrapper.eq(NumericUtil.tryParseInt(search.getStatus()).compareTo(0) > 0, WaterMonitoryPointPO::getStatus, search.getStatus());
        // 状态列表
        //queryWrapper.in(ListUtil.isNotNullOrEmpty(search.getListStatus()), WaterMonitoryPointPO::getStatus, search.getListStatus());
        // 数据创建时间-起始
        queryWrapper.ge(NumericUtil.tryParseLong(search.getCreateTimeStart()).compareTo(0L) > 0, WaterMonitoryPointPO::getCreateTime, search.getCreateTimeStart());
        // 数据创建时间-截止
        queryWrapper.le(NumericUtil.tryParseLong(search.getCreateTimeEnd()).compareTo(0L) > 0, WaterMonitoryPointPO::getCreateTime, search.getCreateTimeEnd());
        // 关键字
        if (StringUtil.isNotNullOrEmpty(search.getKeywords())) {
            queryWrapper.and(q ->
                    q.like(WaterMonitoryPointPO::getPointName, search.getKeywords())
            );
        }
        // 排序处理
        if (ListUtil.isNotNullOrEmpty(search.getOrderBy())) {
            for (OrderByDTO item : search.getOrderBy()) {
                EOrderBy orderBy = EOrderBy.getByValue(item.getOrderBy());
                // 顺序排序
                if (item.getIsAsc()) {
                    switch (orderBy) {
                        // 主键
                        case ID:
                            queryWrapper.orderByAsc(WaterMonitoryPointPO::getId);
                            break;
                        // 数据创建时间
                        case CREATE_TIME:
                            queryWrapper.orderByAsc(WaterMonitoryPointPO::getCreateTime);
                            break;
                        // 最后更新时间
                        case UPDATE_TIME:
                            queryWrapper.orderByAsc(WaterMonitoryPointPO::getUpdateTime);
                            break;
                    }
                } else {
                    // 倒叙排序
                    switch (orderBy) {
                        // 主键
                        case ID:
                            queryWrapper.orderByDesc(WaterMonitoryPointPO::getId);
                            break;
                        // 数据创建时间
                        case CREATE_TIME:
                            queryWrapper.orderByDesc(WaterMonitoryPointPO::getCreateTime);
                            break;
                        // 最后更新时间
                        case UPDATE_TIME:
                            queryWrapper.orderByDesc(WaterMonitoryPointPO::getUpdateTime);
                            break;
                    }
                }
            }
        } else {
            queryWrapper.orderByDesc(WaterMonitoryPointPO::getId);
        }
        Page<WaterMonitoryPointPO> pageResult = super.selectPage(new Page<>(search.getPage(), search.getLimit()), queryWrapper);
        return new PagerResult<>(pageResult.getSize(), pageResult.getCurrent(), pageResult.getTotal(), pageResult.getRecords());
    }
    public Boolean add(WaterMonitoryPointPO item) {
        int rowCount = super.insert(item);
        return rowCount == 1;
    }
    public Boolean addNotIncrement(WaterMonitoryPointPO item) {
        int rowCount = super.insert(item);
        return rowCount == 1;
    }
    public WaterMonitoryPointPO getById(Long id) {
        return super.get(id);
    }
    public WaterMonitoryPointPO getByCode(String code) {
        LambdaQueryWrapper<WaterMonitoryPointPO> queryWrapper = this.query();
        queryWrapper.eq(WaterMonitoryPointPO::getPointCode,code);
        return super.selectOne(queryWrapper);
    }
    public List<WaterMonitoryPointPO> getListById(List<Long> listId) {
        return super.getList(listId);
    }
    public WaterMonitoryPointPO likeCode(String code) {
        LambdaQueryWrapper<WaterMonitoryPointPO> queryWrapper = this.query();
        queryWrapper.like(WaterMonitoryPointPO::getPointCode, code);
        return super.selectOne(queryWrapper);
    }
    public List<WaterMonitoryPointPO> getListByType(Integer type) {
        LambdaQueryWrapper<WaterMonitoryPointPO> queryWrapper = this.query();
        queryWrapper.eq(WaterMonitoryPointPO::getPointType,type);
        return super.selectList(queryWrapper);
    }
}
src/main/java/com/nanjing/water/repository/mapper/AdminMenuMapper.java
对比新文件
@@ -0,0 +1,11 @@
package com.nanjing.water.repository.mapper;
import com.nanjing.water.repository.BasicMapper;
import com.nanjing.water.repository.po.AdminMenuPO;
/**
 * 菜单 mapper
 * @author lin.liu
 */
public interface AdminMenuMapper extends BasicMapper<AdminMenuPO> {
}
src/main/java/com/nanjing/water/repository/mapper/AdminMenusMapper.java
对比新文件
@@ -0,0 +1,11 @@
package com.nanjing.water.repository.mapper;
import com.nanjing.water.repository.BasicMapper;
import com.nanjing.water.repository.po.AdminMenusPO;
/**
 * 菜单信息 mapper
 * @author lin.liu
 */
public interface AdminMenusMapper extends BasicMapper<AdminMenusPO> {
}
src/main/java/com/nanjing/water/repository/mapper/AdminPermissionMapper.java
对比新文件
@@ -0,0 +1,11 @@
package com.nanjing.water.repository.mapper;
import com.nanjing.water.repository.BasicMapper;
import com.nanjing.water.repository.po.AdminPermissionPO;
/**
 * 权限 mapper
 * @author lin.liu
 */
public interface AdminPermissionMapper extends BasicMapper<AdminPermissionPO> {
}
src/main/java/com/nanjing/water/repository/mapper/AdminRoleMapper.java
对比新文件
@@ -0,0 +1,11 @@
package com.nanjing.water.repository.mapper;
import com.nanjing.water.repository.BasicMapper;
import com.nanjing.water.repository.po.AdminRolePO;
/**
 * 角色 mapper
 * @author lin.liu
 */
public interface AdminRoleMapper extends BasicMapper<AdminRolePO> {
}
src/main/java/com/nanjing/water/repository/mapper/AdminRoleMenuRelationMapper.java
对比新文件
@@ -0,0 +1,11 @@
package com.nanjing.water.repository.mapper;
import com.nanjing.water.repository.BasicMapper;
import com.nanjing.water.repository.po.AdminRoleMenuRelationPO;
/**
 * 角色菜单关联关系 mapper
 * @author lin.liu
 */
public interface AdminRoleMenuRelationMapper extends BasicMapper<AdminRoleMenuRelationPO> {
}
src/main/java/com/nanjing/water/repository/mapper/AdminRolePermissionRelationMapper.java
对比新文件
@@ -0,0 +1,11 @@
package com.nanjing.water.repository.mapper;
import com.nanjing.water.repository.BasicMapper;
import com.nanjing.water.repository.po.AdminRolePermissionRelationPO;
/**
 * 角色权限关联关系 mapper
 * @author lin.liu
 */
public interface AdminRolePermissionRelationMapper extends BasicMapper<AdminRolePermissionRelationPO> {
}
src/main/java/com/nanjing/water/repository/mapper/AdminRoleRelationMapper.java
对比新文件
@@ -0,0 +1,11 @@
package com.nanjing.water.repository.mapper;
import com.nanjing.water.repository.BasicMapper;
import com.nanjing.water.repository.po.AdminRoleRelationPO;
/**
 * 用户和角色关联关系 mapper
 * @author lin.liu
 */
public interface AdminRoleRelationMapper extends BasicMapper<AdminRoleRelationPO> {
}
src/main/java/com/nanjing/water/repository/mapper/AdminUserMapper.java
对比新文件
@@ -0,0 +1,11 @@
package com.nanjing.water.repository.mapper;
import com.nanjing.water.repository.BasicMapper;
import com.nanjing.water.repository.po.AdminUserPO;
/**
 * 管理员帐号 mapper
 * @author lin.liu
 */
public interface AdminUserMapper extends BasicMapper<AdminUserPO> {
}
src/main/java/com/nanjing/water/repository/mapper/AlarmHistoryMapper.java
对比新文件
@@ -0,0 +1,11 @@
package com.nanjing.water.repository.mapper;
import com.nanjing.water.repository.BasicMapper;
import com.nanjing.water.repository.po.AlarmHistoryPO;
/**
 * 报警信息 mapper
 * @author lin.liu
 */
public interface AlarmHistoryMapper extends BasicMapper<AlarmHistoryPO> {
}
src/main/java/com/nanjing/water/repository/mapper/AlarmSchemeMapper.java
对比新文件
@@ -0,0 +1,11 @@
package com.nanjing.water.repository.mapper;
import com.nanjing.water.repository.BasicMapper;
import com.nanjing.water.repository.po.AlarmSchemePO;
/**
 * 报警方案设置 mapper
 * @author lin.liu
 */
public interface AlarmSchemeMapper extends BasicMapper<AlarmSchemePO> {
}
src/main/java/com/nanjing/water/repository/mapper/CommonParametersMapper.java
对比新文件
@@ -0,0 +1,11 @@
package com.nanjing.water.repository.mapper;
import com.nanjing.water.repository.BasicMapper;
import com.nanjing.water.repository.po.CommonParametersPO;
/**
 * 公共参数 mapper
 * @author lin.liu
 */
public interface CommonParametersMapper extends BasicMapper<CommonParametersPO> {
}
src/main/java/com/nanjing/water/repository/mapper/SysDictDataMapper.java
对比新文件
@@ -0,0 +1,11 @@
package com.nanjing.water.repository.mapper;
import com.nanjing.water.repository.BasicMapper;
import com.nanjing.water.repository.po.SysDictDataPO;
/**
 * 字典数据 mapper
 * @author lin.liu
 */
public interface SysDictDataMapper extends BasicMapper<SysDictDataPO> {
}
src/main/java/com/nanjing/water/repository/mapper/SysDictTypeMapper.java
对比新文件
@@ -0,0 +1,11 @@
package com.nanjing.water.repository.mapper;
import com.nanjing.water.repository.BasicMapper;
import com.nanjing.water.repository.po.SysDictTypePO;
/**
 * 字典类型 mapper
 * @author lin.liu
 */
public interface SysDictTypeMapper extends BasicMapper<SysDictTypePO> {
}
src/main/java/com/nanjing/water/repository/mapper/SysRegionMapper.java
对比新文件
@@ -0,0 +1,11 @@
package com.nanjing.water.repository.mapper;
import com.nanjing.water.repository.BasicMapper;
import com.nanjing.water.repository.po.SysRegionPO;
/**
 * 系统行政地区 mapper
 * @author lin.liu
 */
public interface SysRegionMapper extends BasicMapper<SysRegionPO> {
}
src/main/java/com/nanjing/water/repository/mapper/WaterFacilityMapper.java
对比新文件
@@ -0,0 +1,14 @@
package com.nanjing.water.repository.mapper;
import com.nanjing.water.repository.BasicMapper;
import com.nanjing.water.repository.po.WaterFacilityPO;
/**
 * 设备信息 mapper
 *
 * @author lin.liu
 */
public interface WaterFacilityMapper extends BasicMapper<WaterFacilityPO> {
}
src/main/java/com/nanjing/water/repository/mapper/WaterFacilityParameterMapper.java
对比新文件
@@ -0,0 +1,12 @@
package com.nanjing.water.repository.mapper;
import com.nanjing.water.repository.BasicMapper;
import com.nanjing.water.repository.po.WaterFacilityParameterPO;
/**
 * 设备设定参数 mapper
 *
 * @author lin.liu
 */
public interface WaterFacilityParameterMapper extends BasicMapper<WaterFacilityParameterPO> {
}
src/main/java/com/nanjing/water/repository/mapper/WaterFacilityTypeMapper.java
对比新文件
@@ -0,0 +1,11 @@
package com.nanjing.water.repository.mapper;
import com.nanjing.water.repository.BasicMapper;
import com.nanjing.water.repository.po.WaterFacilityTypePO;
/**
 * 设备类型 mapper
 * @author lin.liu
 */
public interface WaterFacilityTypeMapper extends BasicMapper<WaterFacilityTypePO> {
}
src/main/java/com/nanjing/water/repository/mapper/WaterMonitoryPointMapper.java
对比新文件
@@ -0,0 +1,11 @@
package com.nanjing.water.repository.mapper;
import com.nanjing.water.repository.BasicMapper;
import com.nanjing.water.repository.po.WaterMonitoryPointPO;
/**
 * 监控点 mapper
 * @author lin.liu
 */
public interface WaterMonitoryPointMapper extends BasicMapper<WaterMonitoryPointPO> {
}
src/main/java/com/nanjing/water/repository/po/AdminMenuPO.java
对比新文件
@@ -0,0 +1,105 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.sql.Timestamp;
/**
 * 菜单
 * @author lin.liu
 */
@Data
@TableName("admin_menu")
public class AdminMenuPO implements Serializable {
    /**
     * 主键
     */
    private Long id;
    /**
     * 父级ID
     */
    @TableField(value = "parent_id")
    private Long parentId;
    /**
     * 类型 EMenuType
     */
    @TableField(value = "type")
    private Integer type;
    /**
     * 菜单名称
     */
    @TableField(value = "name")
    private String name;
    /**
     * 菜单标题
     */
    @TableField(value = "title")
    private String title;
    /**
     * 前端资源路径
     */
    @TableField(value = "url")
    private String url;
    /**
     * 菜单层级
     */
    @TableField(value = "level")
    private Integer level;
    /**
     * 排序值
     */
    @TableField(value = "sort")
    private Integer sort;
    /**
     * 图标
     */
    @TableField(value = "icon")
    private String icon;
    /**
     * 状态 EState
     */
    @TableField(value = "status")
    private Integer status;
    /**
     * 数据创建时间
     */
    @TableField(value = "create_time")
    private Long createTime;
    /**
     * 最后更新时间
     */
    @TableField(value = "update_time")
    private Timestamp updateTime;
    /**
     * 是否删除(逻辑删除)
     */
    @TableLogic
    @TableField(value = "is_delete")
    private Integer isDelete;
}
src/main/java/com/nanjing/water/repository/po/AdminMenusPO.java
对比新文件
@@ -0,0 +1,100 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.sql.Timestamp;
/**
 * 菜单信息
 * @author lin.liu
 */
@Data
@TableName("admin_menus")
public class AdminMenusPO implements Serializable {
    /**
     * 主键id
     */
    private Long id;
    /**
     * 父级id
     */
    @TableField(value = "parent_id")
    private Long parentId;
    /**
     * 菜单名称
     */
    @TableField(value = "name")
    private String name;
    /**
     * 菜单标题
     */
    @TableField(value = "title")
    private String title;
    /**
     * 前端资源路径
     */
    @TableField(value = "uri")
    private String uri;
    /**
     * 菜单层级
     */
    @TableField(value = "level")
    private Integer level;
    /**
     * 排序值
     */
    @TableField(value = "sort")
    private Integer sort;
    /**
     * 图标
     */
    @TableField(value = "icon")
    private String icon;
    /**
     * 状态 EState
     */
    @TableField(value = "status")
    private Integer status;
    /**
     * 数据创建时间
     */
    @TableField(value = "create_time")
    private Long createTime;
    /**
     * 最后更新时间
     */
    @TableField(value = "update_time")
    private Timestamp updateTime;
    /**
     * 是否删除(逻辑删除)
     */
    @TableLogic
    @TableField(value = "is_delete")
    private Integer isDelete;
}
src/main/java/com/nanjing/water/repository/po/AdminPermissionPO.java
对比新文件
@@ -0,0 +1,95 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.sql.Timestamp;
/**
 * 权限
 * @author lin.liu
 */
@Data
@TableName("admin_permission")
public class AdminPermissionPO implements Serializable {
    /**
     * 主键
     */
    private Long id;
    /**
     * 权限值
     */
    @TableField(value = "sn")
    private String sn;
    /**
     * 菜单id
     */
    @TableField(value = "menu_id")
    private Long menuId;
    /**
     * 前端资源url
     */
    @TableField(value = "menu_url")
    private String menuUrl;
    /**
     * 名称
     */
    @TableField(value = "name")
    private String name;
    /**
     * 图标
     */
    @TableField(value = "icon")
    private String icon;
    /**
     * 权限类型 EOperation
     */
    @TableField(value = "type")
    private String type;
    /**
     * 状态 EStatus
     */
    @TableField(value = "status")
    private Integer status;
    /**
     * 数据创建时间
     */
    @TableField(value = "create_time")
    private Long createTime;
    /**
     * 最后更新时间
     */
    @TableField(value = "update_time")
    private Timestamp updateTime;
    /**
     * 是否删除(逻辑删除)
     */
    @TableLogic
    @TableField(value = "is_delete")
    private Integer isDelete;
}
src/main/java/com/nanjing/water/repository/po/AdminRoleMenuRelationPO.java
对比新文件
@@ -0,0 +1,70 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.sql.Timestamp;
/**
 * 角色菜单关联关系
 * @author lin.liu
 */
@Data
@TableName("admin_role_menu_relation")
public class AdminRoleMenuRelationPO implements Serializable {
    /**
     * 主键
     */
    private Long id;
    /**
     * 角色id
     */
    @TableField(value = "role_id")
    private Long roleId;
    /**
     * 菜单id
     */
    @TableField(value = "menu_id")
    private Long menuId;
    /**
     * 数据创建时间
     */
    @TableField(value = "create_time")
    private Long createTime;
    /**
     * 最后更新时间
     */
    @TableField(value = "update_time")
    private Timestamp updateTime;
    /**
     * 是否删除(逻辑删除)
     */
    @TableLogic
    @TableField(value = "is_delete")
    private Integer isDelete;
}
src/main/java/com/nanjing/water/repository/po/AdminRolePO.java
对比新文件
@@ -0,0 +1,80 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.sql.Timestamp;
/**
 * 角色
 * @author lin.liu
 */
@Data
@TableName("admin_role")
public class AdminRolePO implements Serializable {
    /**
     * 主键
     */
    private Long id;
    /**
     * 角色名称
     */
    @TableField(value = "name")
    private String name;
    /**
     * 描述
     */
    @TableField(value = "description")
    private String description;
    /**
     * 状态 EState
     */
    @TableField(value = "status")
    private Integer status;
    /**
     * 排序值
     */
    @TableField(value = "sort")
    private Integer sort;
    /**
     * 数据创建时间
     */
    @TableField(value = "create_time")
    private Long createTime;
    /**
     * 最后更新时间
     */
    @TableField(value = "update_time")
    private Timestamp updateTime;
    /**
     * 是否删除(逻辑删除)
     */
    @TableLogic
    @TableField(value = "is_delete")
    private Integer isDelete;
}
src/main/java/com/nanjing/water/repository/po/AdminRolePermissionRelationPO.java
对比新文件
@@ -0,0 +1,70 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.sql.Timestamp;
/**
 * 角色权限关联关系
 * @author lin.liu
 */
@Data
@TableName("admin_role_permission_relation")
public class AdminRolePermissionRelationPO implements Serializable {
    /**
     * 主键
     */
    private Long id;
    /**
     * 角色id
     */
    @TableField(value = "role_id")
    private Long roleId;
    /**
     * 权限id
     */
    @TableField(value = "permission_id")
    private Long permissionId;
    /**
     * 数据创建时间
     */
    @TableField(value = "create_time")
    private Long createTime;
    /**
     * 最后更新时间
     */
    @TableField(value = "update_time")
    private Timestamp updateTime;
    /**
     * 是否删除(逻辑删除)
     */
    @TableLogic
    @TableField(value = "is_delete")
    private Integer isDelete;
}
src/main/java/com/nanjing/water/repository/po/AdminRoleRelationPO.java
对比新文件
@@ -0,0 +1,70 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.sql.Timestamp;
/**
 * 用户和角色关联关系
 * @author lin.liu
 */
@Data
@TableName("admin_role_relation")
public class AdminRoleRelationPO implements Serializable {
    /**
     * 主键
     */
    private Long id;
    /**
     * 管理员id
     */
    @TableField(value = "admin_id")
    private Long adminId;
    /**
     * 角色id
     */
    @TableField(value = "role_id")
    private Long roleId;
    /**
     * 数据创建时间
     */
    @TableField(value = "create_time")
    private Long createTime;
    /**
     * 最后更新时间
     */
    @TableField(value = "update_time")
    private Timestamp updateTime;
    /**
     * 是否删除(逻辑删除)
     */
    @TableLogic
    @TableField(value = "is_delete")
    private Integer isDelete;
}
src/main/java/com/nanjing/water/repository/po/AdminUserPO.java
对比新文件
@@ -0,0 +1,105 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.sql.Timestamp;
/**
 * 管理员帐号
 * @author lin.liu
 */
@Data
@TableName("admin_user")
public class AdminUserPO implements Serializable {
    /**
     * 主键
     */
    private Long id;
    /**
     * 用户类型 EUserType
     */
    @TableField(value = "user_type")
    private Integer userType;
    /**
     * 用户关联id,和“user_type”对应,如:客户id等
     */
    @TableField(value = "user_rel_id")
    private Long userRelId;
    /**
     * 用户名
     */
    @TableField(value = "user_name")
    private String userName;
    /**
     * 密码
     */
    @TableField(value = "password")
    private String password;
    /**
     * 昵称
     */
    @TableField(value = "nick_name")
    private String nickName;
    /**
     * 头像
     */
    @TableField(value = "head_img")
    private String headImg;
    /**
     * 联系方式
     */
    @TableField(value = "contact")
    private String contact;
    /**
     * 联系邮箱
     */
    @TableField(value = "email")
    private String email;
    /**
     * 状态 EState
     */
    @TableField(value = "status")
    private Integer status;
    /**
     * 数据创建时间
     */
    @TableField(value = "create_time")
    private Long createTime;
    /**
     * 最后更新时间
     */
    @TableField(value = "update_time")
    private Timestamp updateTime;
    /**
     * 是否删除(逻辑删除)
     */
    @TableLogic
    @TableField(value = "is_delete")
    private Integer isDelete;
}
src/main/java/com/nanjing/water/repository/po/AlarmHistoryPO.java
对比新文件
@@ -0,0 +1,105 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.sql.Timestamp;
/**
 * 报警信息
 * @author lin.liu
 */
@Data
@TableName("alarm_history")
public class AlarmHistoryPO implements Serializable {
    /**
     * 主键id
     */
    private Long id;
    /**
     * 设备id
     */
    @TableField(value = "facility_id")
    private Long facilityId;
    /**
     * 设备名称
     */
    @TableField(value = "facility_name")
    private String facilityName;
    /**
     * 报警参数
     */
    @TableField(value = "code")
    private Integer code;
    /**
     * 报警描述
     */
    @TableField(value = "description")
    private String description;
    /**
     * 备注
     */
    @TableField(value = "comment")
    private String comment;
    /**
     * 是否处理
     */
    @TableField(value = "is_solve")
    private Integer isSolve;
    /**
     * 是否确认(10误报 20已证实,200已处理)
     */
    @TableField(value = "is_confirm")
    private Integer isConfirm;
    /**
     * 是否删除
     */
    @TableLogic
    @TableField(value = "is_delete")
    private Integer isDelete;
    /**
     * 创建时间
     */
    @TableField(value = "create_time")
    private Long createTime;
    /**
     * 修改时间
     */
    @TableField(value = "update_time")
    private Timestamp updateTime;
    /**
     * 最后报警时间
     */
    @TableField(value = "last_time")
    private Long lastTime;
    /**
     * 报警次数
     */
    @TableField(value = "total_count")
    private Integer totalCount;
}
src/main/java/com/nanjing/water/repository/po/AlarmSchemePO.java
对比新文件
@@ -0,0 +1,91 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.sql.Timestamp;
/**
 * 报警方案设置
 * @author lin.liu
 */
@Data
@TableName("alarm_scheme")
public class AlarmSchemePO implements Serializable {
    /**
     * 主键id
     */
    private Long id;
    /**
     * 设备id
     */
    @TableField(value = "facility_id")
    private Long facilityId;
    /**
     * 设备参数
     */
    @TableField(value = "columns_code")
    private String columnsCode;
    /**
     * 方案名称
     */
    @TableField(value = "scheme_name")
    private String schemeName;
    /**
     * 低报警值
     */
    @TableField(value = "low_alarm")
    private BigDecimal lowAlarm;
    /**
     * 高报警值
     */
    @TableField(value = "tall_alarm")
    private BigDecimal tallAlarm;
    /**
     * 备注
     */
    @TableField(value = "remark")
    private String remark;
    /**
     * 是否删除
     */
    @TableLogic
    @TableField(value = "is_delete")
    private Integer isDelete;
    /**
     * 创建日期
     */
    @TableField(value = "create_time")
    private Long createTime;
    /**
     * 修改日期
     */
    @TableField(value = "update_time")
    private Timestamp updateTime;
}
src/main/java/com/nanjing/water/repository/po/CommonParametersPO.java
对比新文件
@@ -0,0 +1,80 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.sql.Timestamp;
/**
 * 公共参数
 * @author lin.liu
 */
@Data
@TableName("common_parameters")
public class CommonParametersPO implements Serializable {
    /**
     * 参数管理id,主键自增
     */
    private Long id;
    /**
     * 参数名称,与前端对接的名称
     */
    @TableField(value = "name")
    private String name;
    /**
     * 参数标识,与硬件对接的名称
     */
    @TableField(value = "mark")
    private String mark;
    /**
     * 单位
     */
    @TableField(value = "unit")
    private String unit;
    /**
     * 排序值
     */
    @TableField(value = "sort")
    private Integer sort;
    /**
     * 数据创建时间
     */
    @TableField(value = "create_time")
    private Long createTime;
    /**
     * 最后更新时间
     */
    @TableField(value = "update_time")
    private Timestamp updateTime;
    /**
     * 是否删除(逻辑删除)(逻辑删除)
     */
    @TableLogic
    @TableField(value = "is_delete")
    private Integer isDelete;
}
src/main/java/com/nanjing/water/repository/po/SysDictDataPO.java
对比新文件
@@ -0,0 +1,85 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.sql.Timestamp;
/**
 * 字典数据
 * @author lin.liu
 */
@Data
@TableName("sys_dict_data")
public class SysDictDataPO implements Serializable {
    /**
     * 主键
     */
    private Long id;
    /**
     * 字典标题
     */
    @TableField(value = "dict_label")
    private String dictLabel;
    /**
     * 字典键值
     */
    @TableField(value = "dict_value")
    private String dictValue;
    /**
     * 字典类型
     */
    @TableField(value = "dict_type")
    private String dictType;
    /**
     * 状态
     */
    @TableField(value = "status")
    private Integer status;
    /**
     * 备注
     */
    @TableField(value = "remark")
    private String remark;
    /**
     * 数据创建时间
     */
    @TableField(value = "create_time")
    private Long createTime;
    /**
     * 最后更新时间
     */
    @TableField(value = "update_time")
    private Timestamp updateTime;
    /**
     * 是否删除(逻辑删除)
     */
    @TableLogic
    @TableField(value = "is_delete")
    private Integer isDelete;
}
src/main/java/com/nanjing/water/repository/po/SysDictTypePO.java
对比新文件
@@ -0,0 +1,80 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.sql.Timestamp;
/**
 * 字典类型
 * @author lin.liu
 */
@Data
@TableName("sys_dict_type")
public class SysDictTypePO implements Serializable {
    /**
     * 主键
     */
    private Long id;
    /**
     * 字典名称
     */
    @TableField(value = "dict_name")
    private String dictName;
    /**
     * 字典类型
     */
    @TableField(value = "dict_type")
    private String dictType;
    /**
     * 状态
     */
    @TableField(value = "status")
    private Integer status;
    /**
     * 备注
     */
    @TableField(value = "remark")
    private String remark;
    /**
     * 数据创建时间
     */
    @TableField(value = "create_time")
    private Long createTime;
    /**
     * 最后更新时间
     */
    @TableField(value = "update_time")
    private Timestamp updateTime;
    /**
     * 是否删除(逻辑删除)
     */
    @TableLogic
    @TableField(value = "is_delete")
    private Integer isDelete;
}
src/main/java/com/nanjing/water/repository/po/SysRegionPO.java
对比新文件
@@ -0,0 +1,126 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.sql.Timestamp;
/**
 * 系统行政地区
 * @author lin.liu
 */
@Data
@TableName("sys_region")
public class SysRegionPO implements Serializable {
    /**
     * 主键Id
     */
    private Long id;
    /**
     * 行政代码
     */
    @TableField(value = "code")
    private String code;
    /**
     * 上级行政代码
     */
    @TableField(value = "parent_code")
    private String parentCode;
    /**
     * 名称
     */
    @TableField(value = "name")
    private String name;
    /**
     * 简称
     */
    @TableField(value = "short_name")
    private String shortName;
    /**
     * 邮政编码
     */
    @TableField(value = "zip_code")
    private String zipCode;
    /**
     * 区号
     */
    @TableField(value = "city_code")
    private String cityCode;
    /**
     * 层级
     */
    @TableField(value = "level")
    private Integer level;
    /**
     * 拼音
     */
    @TableField(value = "pin_yin")
    private String pinYin;
    /**
     * 拼音简写
     */
    @TableField(value = "pin_yin_short")
    private String pinYinShort;
    /**
     * 经度
     */
    @TableField(value = "lng")
    private BigDecimal lng;
    /**
     * 维度
     */
    @TableField(value = "lat")
    private BigDecimal lat;
    /**
     * 排序
     */
    @TableField(value = "sort")
    private Integer sort;
    /**
     * 备注
     */
    @TableField(value = "remark")
    private String remark;
    /**
     * 是否删除(逻辑删除)
     */
    @TableLogic
    @TableField(value = "is_delete")
    private Integer isDelete;
    /**
     * 数据创建时间
     */
    @TableField(value = "create_time")
    private Long createTime;
    /**
     * 最后更新时间
     */
    @TableField(value = "update_time")
    private Timestamp updateTime;
}
src/main/java/com/nanjing/water/repository/po/WaterFacilityPO.java
对比新文件
@@ -0,0 +1,143 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.sql.Timestamp;
/**
 * 设备信息
 * @author lin.liu
 */
@Data
@TableName("water_facility")
public class WaterFacilityPO implements Serializable {
    /**
     * 主键
     */
    private Long id;
    /**
     * 设备名称
     */
    @TableField(value = "facility_name")
    private String facilityName;
    /**
     * 设备编号
     */
    @TableField(value = "facility_code")
    private String facilityCode;
    /**
     * 设备类型
     */
    @TableField(value = "facility_type")
    private Long facilityType;
    /**
     * 监控点id
     */
    @TableField(value = "point_id")
    private Long pointId;
    /**
     * 1:在线 0:下线
     */
    @TableField(value = "is_online")
    private Integer isOnline;
    /**
     * 地址
     */
    @TableField(value = "address")
    private String address;
    /**
     * 备注
     */
    @TableField(value = "remark")
    private String remark;
    /**
     * 设备图片
     */
    @TableField(value = "facility_url")
    private String facilityUrl;
    /**
     * 安装日期
     */
    @TableField(value = "install_date")
    private String installDate;
    /**
     * 最新数据上报时间间隔(单位分钟)
     */
    @TableField(value = "new_interval_time")
    private Integer newIntervalTime;
    /**
     * 历史数据上报时间间隔(单位分钟)
     */
    @TableField(value = "history_interval_time")
    private Integer historyIntervalTime;
    /**
     * 水位采集时间间隔(单位分钟)
     */
    @TableField(value = "gather_interval_time")
    private Integer gatherIntervalTime;
    /**
     * 量程设置
     */
    @TableField(value = "range")
    private BigDecimal range;
    /**
     * 高程设置
     */
    @TableField(value = "elevation")
    private BigDecimal elevation;
    /**
     * 投放角度
     */
    @TableField(value = "put_angle")
    private BigDecimal putAngle;
    /**
     * 低水位下限
     */
    @TableField(value = "low_water_level")
    private BigDecimal lowWaterLevel;
    /**
     * 数据创建时间
     */
    @TableField(value = "create_time")
    private Long createTime;
    /**
     * 最后更新时间
     */
    @TableField(value = "update_time")
    private Timestamp updateTime;
    /**
     * 是否删除(逻辑删除)
     */
    @TableLogic
    @TableField(value = "is_delete")
    private Integer isDelete;
}
src/main/java/com/nanjing/water/repository/po/WaterFacilityParameterPO.java
对比新文件
@@ -0,0 +1,95 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.sql.Timestamp;
/**
 * 设备设定参数
 * @author lin.liu
 */
@Data
@TableName("water_facility_parameter")
public class WaterFacilityParameterPO implements Serializable {
    /**
     * 主键
     */
    private Long id;
    /**
     * 设备id
     */
    @TableField(value = "facility_id")
    private Long facilityId;
    /**
     * 设备code
     */
    @TableField(value = "facility_code")
    private String facilityCode;
    /**
     * 参数编码
     */
    @TableField(value = "columns_code")
    private String columnsCode;
    /**
     * 参数名称
     */
    @TableField(value = "columns_show")
    private String columnsShow;
    /**
     * 锟斤拷位
     */
    @TableField(value = "columns_units")
    private String columnsUnits;
    /**
     * 数据创建时间
     */
    @TableField(value = "create_time")
    private Long createTime;
    /**
     * 最后更新时间
     */
    @TableField(value = "update_time")
    private Timestamp updateTime;
    /**
     * 是否删除(逻辑删除)
     */
    @TableLogic
    @TableField(value = "is_delete")
    private Integer isDelete;
    /**
     * 参数值
     */
    @TableField(value = "column_value")
    private String columnValue;
    /**
     * 最后更新时间
     */
    @TableField(value = "last_time")
    private String lastTime;
}
src/main/java/com/nanjing/water/repository/po/WaterFacilityTypePO.java
对比新文件
@@ -0,0 +1,70 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.sql.Timestamp;
/**
 * 设备类型
 * @author lin.liu
 */
@Data
@TableName("water_facility_type")
public class WaterFacilityTypePO implements Serializable {
    /**
     * 主键
     */
    private Long id;
    /**
     * 编码
     */
    @TableField(value = "code")
    private String code;
    /**
     * 名称
     */
    @TableField(value = "name")
    private String name;
    /**
     * 数据创建时间
     */
    @TableField(value = "create_time")
    private Long createTime;
    /**
     * 编辑时间
     */
    @TableField(value = "update_time")
    private Timestamp updateTime;
    /**
     * 是否删除(逻辑删除)
     */
    @TableLogic
    @TableField(value = "is_delete")
    private Integer isDelete;
}
src/main/java/com/nanjing/water/repository/po/WaterMonitoryPointPO.java
对比新文件
@@ -0,0 +1,96 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.sql.Timestamp;
/**
 * 监控点
 * @author lin.liu
 */
@Data
@TableName("water_monitory_point")
public class WaterMonitoryPointPO implements Serializable {
    /**
     * 主键
     */
    private Long id;
    /**
     * 上级监控点id
     */
    @TableField(value = "parent_id")
    private Long parentId;
    /**
     * 监控点类型
     */
    @TableField(value = "point_type")
    private Integer pointType;
    /**
     * 监控点编号
     */
    @TableField(value = "point_code")
    private String pointCode;
    /**
     * 监控点名称
     */
    @TableField(value = "point_name")
    private String pointName;
    /**
     * 详细地址
     */
    @TableField(value = "address")
    private String address;
    /**
     * 备注
     */
    @TableField(value = "remark")
    private String remark;
    /**
     * 监控点图片
     */
    @TableField(value = "image_rul")
    private String imageUrl;
    /**
     * 数据创建时间
     */
    @TableField(value = "create_time")
    private Long createTime;
    /**
     * 最后更新时间
     */
    @TableField(value = "update_time")
    private Timestamp updateTime;
    /**
     * 是否删除(逻辑删除)
     */
    @TableLogic
    @TableField(value = "is_delete")
    private Integer isDelete;
}
src/main/java/com/nanjing/water/repository/vo/AdminMenuVO.java
对比新文件
@@ -0,0 +1,54 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.vo;
import com.nanjing.water.common.util.LocalDateTimeUtil;
import com.nanjing.water.common.util.NumericUtil;
import com.nanjing.water.repository.po.AdminMenuPO;
import lombok.Data;
import java.util.Objects;
/**
 * 后台菜单
 * @author lin.liu
 */
@Data
public class AdminMenuVO extends AdminMenuPO implements BasicVO {
    @Override
    public String getCreateTimeView() {
        if (NumericUtil.tryParseLong(this.getCreateTime()).compareTo(0L) > 0) {
            return LocalDateTimeUtil.toFormatString(this.getCreateTime());
        }
        return "";
    }
    @Override
    public String getUpdateTimeView() {
        if (Objects.isNull(this.getUpdateTime())) {
            return "";
        }
        return LocalDateTimeUtil.toFormatFullString(this.getUpdateTime());
    }
}
src/main/java/com/nanjing/water/repository/vo/AdminPermissionVO.java
对比新文件
@@ -0,0 +1,54 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.vo;
import com.nanjing.water.common.util.LocalDateTimeUtil;
import com.nanjing.water.common.util.NumericUtil;
import com.nanjing.water.repository.po.AdminPermissionPO;
import lombok.Data;
import java.util.Objects;
/**
 * 后台用户权限表
 * @author lin.liu
 */
@Data
public class AdminPermissionVO extends AdminPermissionPO implements BasicVO {
    @Override
    public String getCreateTimeView() {
        if (NumericUtil.tryParseLong(this.getCreateTime()).compareTo(0L) > 0) {
            return LocalDateTimeUtil.toFormatString(this.getCreateTime());
        }
        return "";
    }
    @Override
    public String getUpdateTimeView() {
        if (Objects.isNull(this.getUpdateTime())) {
            return "";
        }
        return LocalDateTimeUtil.toFormatFullString(this.getUpdateTime());
    }
}
src/main/java/com/nanjing/water/repository/vo/AdminRoleMenuRelationVO.java
对比新文件
@@ -0,0 +1,54 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.vo;
import com.nanjing.water.common.util.LocalDateTimeUtil;
import com.nanjing.water.common.util.NumericUtil;
import com.nanjing.water.repository.po.AdminRoleMenuRelationPO;
import lombok.Data;
import java.util.Objects;
/**
 * 后台角色菜单关系表
 * @author lin.liu
 */
@Data
public class AdminRoleMenuRelationVO extends AdminRoleMenuRelationPO implements BasicVO {
    @Override
    public String getCreateTimeView() {
        if (NumericUtil.tryParseLong(this.getCreateTime()).compareTo(0L) > 0) {
            return LocalDateTimeUtil.toFormatString(this.getCreateTime());
        }
        return "";
    }
    @Override
    public String getUpdateTimeView() {
        if (Objects.isNull(this.getUpdateTime())) {
            return "";
        }
        return LocalDateTimeUtil.toFormatFullString(this.getUpdateTime());
    }
}
src/main/java/com/nanjing/water/repository/vo/AdminRolePermissionRelationVO.java
对比新文件
@@ -0,0 +1,54 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.vo;
import com.nanjing.water.common.util.LocalDateTimeUtil;
import com.nanjing.water.common.util.NumericUtil;
import com.nanjing.water.repository.po.AdminRolePermissionRelationPO;
import lombok.Data;
import java.util.Objects;
/**
 * 后台角色权限关系表
 * @author lin.liu
 */
@Data
public class AdminRolePermissionRelationVO extends AdminRolePermissionRelationPO implements BasicVO {
    @Override
    public String getCreateTimeView() {
        if (NumericUtil.tryParseLong(this.getCreateTime()).compareTo(0L) > 0) {
            return LocalDateTimeUtil.toFormatString(this.getCreateTime());
        }
        return "";
    }
    @Override
    public String getUpdateTimeView() {
        if (Objects.isNull(this.getUpdateTime())) {
            return "";
        }
        return LocalDateTimeUtil.toFormatFullString(this.getUpdateTime());
    }
}
src/main/java/com/nanjing/water/repository/vo/AdminRoleRelationVO.java
对比新文件
@@ -0,0 +1,54 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.vo;
import com.nanjing.water.common.util.LocalDateTimeUtil;
import com.nanjing.water.common.util.NumericUtil;
import com.nanjing.water.repository.po.AdminRoleRelationPO;
import lombok.Data;
import java.util.Objects;
/**
 * 后台用户和角色关系表
 * @author lin.liu
 */
@Data
public class AdminRoleRelationVO extends AdminRoleRelationPO implements BasicVO {
    @Override
    public String getCreateTimeView() {
        if (NumericUtil.tryParseLong(this.getCreateTime()).compareTo(0L) > 0) {
            return LocalDateTimeUtil.toFormatString(this.getCreateTime());
        }
        return "";
    }
    @Override
    public String getUpdateTimeView() {
        if (Objects.isNull(this.getUpdateTime())) {
            return "";
        }
        return LocalDateTimeUtil.toFormatFullString(this.getUpdateTime());
    }
}
src/main/java/com/nanjing/water/repository/vo/AdminRoleVO.java
对比新文件
@@ -0,0 +1,53 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.vo;
import com.nanjing.water.common.util.LocalDateTimeUtil;
import com.nanjing.water.common.util.NumericUtil;
import com.nanjing.water.repository.po.AdminRolePO;
import java.util.Objects;
/**
 * 后台用户角色表
 * @author lin.liu
 */
public class AdminRoleVO extends AdminRolePO implements BasicVO {
    @Override
    public String getCreateTimeView() {
        if (NumericUtil.tryParseLong(this.getCreateTime()).compareTo(0L) > 0) {
            return LocalDateTimeUtil.toFormatString(this.getCreateTime());
        }
        return "";
    }
    @Override
    public String getUpdateTimeView() {
        if (Objects.isNull(this.getUpdateTime())) {
            return "";
        }
        return LocalDateTimeUtil.toFormatFullString(this.getUpdateTime());
    }
}
src/main/java/com/nanjing/water/repository/vo/AdminUserVO.java
对比新文件
@@ -0,0 +1,54 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.vo;
import com.nanjing.water.common.util.LocalDateTimeUtil;
import com.nanjing.water.common.util.NumericUtil;
import com.nanjing.water.repository.po.AdminUserPO;
import lombok.Data;
import java.util.Objects;
/**
 * 管理员帐号
 * @author lin.liu
 */
@Data
public class AdminUserVO extends AdminUserPO implements BasicVO {
    @Override
    public String getCreateTimeView() {
        if (NumericUtil.tryParseLong(this.getCreateTime()).compareTo(0L) > 0) {
            return LocalDateTimeUtil.toFormatString(this.getCreateTime());
        }
        return "";
    }
    @Override
    public String getUpdateTimeView() {
        if (Objects.isNull(this.getUpdateTime())) {
            return "";
        }
        return LocalDateTimeUtil.toFormatFullString(this.getUpdateTime());
    }
}
src/main/java/com/nanjing/water/repository/vo/AlarmHistoryVO.java
对比新文件
@@ -0,0 +1,61 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.vo;
import com.nanjing.water.common.util.LocalDateTimeUtil;
import com.nanjing.water.common.util.NumericUtil;
import com.nanjing.water.repository.po.AlarmHistoryPO;
import lombok.Data;
import java.util.Objects;
/**
 * 报警信息
 * @author lin.liu
 */
@Data
public class AlarmHistoryVO extends AlarmHistoryPO implements BasicVO {
    @Override
    public String getCreateTimeView() {
        if (NumericUtil.tryParseLong(this.getCreateTime()).compareTo(0L) > 0) {
            return LocalDateTimeUtil.toFormatString(this.getCreateTime());
        }
        return "";
    }
    @Override
    public String getUpdateTimeView() {
        if (Objects.isNull(this.getUpdateTime())) {
            return "";
        }
        return LocalDateTimeUtil.toFormatFullString(this.getUpdateTime());
    }
    public String getLastTimeView() {
        if (NumericUtil.tryParseLong(this.getLastTime()).compareTo(0L) > 0) {
            return LocalDateTimeUtil.toFormatString(this.getLastTime());
        }
        return "";
    }
}
src/main/java/com/nanjing/water/repository/vo/AlarmSchemeVO.java
对比新文件
@@ -0,0 +1,56 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.vo;
import com.nanjing.water.common.util.LocalDateTimeUtil;
import com.nanjing.water.common.util.NumericUtil;
import com.nanjing.water.repository.po.AlarmSchemePO;
import lombok.Data;
import java.util.Objects;
/**
 * 报警方案设置
 * @author lin.liu
 */
@Data
public class AlarmSchemeVO extends AlarmSchemePO implements BasicVO {
    private String facilityName;
    private String columnsName;
    @Override
    public String getCreateTimeView() {
        if (NumericUtil.tryParseLong(this.getCreateTime()).compareTo(0L) > 0) {
            return LocalDateTimeUtil.toFormatString(this.getCreateTime());
        }
        return "";
    }
    @Override
    public String getUpdateTimeView() {
        if (Objects.isNull(this.getUpdateTime())) {
            return "";
        }
        return LocalDateTimeUtil.toFormatFullString(this.getUpdateTime());
    }
}
src/main/java/com/nanjing/water/repository/vo/CommonParametersVO.java
对比新文件
@@ -0,0 +1,54 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.vo;
import com.nanjing.water.common.util.LocalDateTimeUtil;
import com.nanjing.water.common.util.NumericUtil;
import com.nanjing.water.repository.po.CommonParametersPO;
import lombok.Data;
import java.util.Objects;
/**
 * 公共参数
 * @author lin.liu
 */
@Data
public class CommonParametersVO extends CommonParametersPO implements BasicVO {
    @Override
    public String getCreateTimeView() {
        if (NumericUtil.tryParseLong(this.getCreateTime()).compareTo(0L) > 0) {
            return LocalDateTimeUtil.toFormatString(this.getCreateTime());
        }
        return "";
    }
    @Override
    public String getUpdateTimeView() {
        if (Objects.isNull(this.getUpdateTime())) {
            return "";
        }
        return LocalDateTimeUtil.toFormatFullString(this.getUpdateTime());
    }
}
src/main/java/com/nanjing/water/repository/vo/SysDictDataVO.java
对比新文件
@@ -0,0 +1,58 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.vo;
import com.nanjing.water.common.util.LocalDateTimeUtil;
import com.nanjing.water.common.util.NumericUtil;
import com.nanjing.water.repository.po.SysDictDataPO;
import lombok.Data;
import java.util.Objects;
/**
 * 字典数据表
 * @author lin.liu
 */
@Data
public class SysDictDataVO extends SysDictDataPO implements BasicVO {
    /**
     * 字典类型名称
     */
    public String dictTypeTxt;
    @Override
    public String getCreateTimeView() {
        if (NumericUtil.tryParseLong(this.getCreateTime()).compareTo(0L) > 0) {
            return LocalDateTimeUtil.toFormatString(this.getCreateTime());
        }
        return "";
    }
    @Override
    public String getUpdateTimeView() {
        if (Objects.isNull(this.getUpdateTime())) {
            return "";
        }
        return LocalDateTimeUtil.toFormatFullString(this.getUpdateTime());
    }
}
src/main/java/com/nanjing/water/repository/vo/SysDictTypeVO.java
对比新文件
@@ -0,0 +1,54 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.vo;
import com.nanjing.water.common.util.LocalDateTimeUtil;
import com.nanjing.water.common.util.NumericUtil;
import com.nanjing.water.repository.po.SysDictTypePO;
import lombok.Data;
import java.util.Objects;
/**
 * 字典类型表
 * @author lin.liu
 */
@Data
public class SysDictTypeVO extends SysDictTypePO implements BasicVO {
    @Override
    public String getCreateTimeView() {
        if (NumericUtil.tryParseLong(this.getCreateTime()).compareTo(0L) > 0) {
            return LocalDateTimeUtil.toFormatString(this.getCreateTime());
        }
        return "";
    }
    @Override
    public String getUpdateTimeView() {
        if (Objects.isNull(this.getUpdateTime())) {
            return "";
        }
        return LocalDateTimeUtil.toFormatFullString(this.getUpdateTime());
    }
}
src/main/java/com/nanjing/water/repository/vo/SysRegionVO.java
对比新文件
@@ -0,0 +1,54 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.vo;
import com.nanjing.water.common.util.LocalDateTimeUtil;
import com.nanjing.water.common.util.NumericUtil;
import com.nanjing.water.repository.po.SysRegionPO;
import lombok.Data;
import java.util.Objects;
/**
 * 系统行政地区
 * @author lin.liu
 */
@Data
public class SysRegionVO extends SysRegionPO implements BasicVO {
    @Override
    public String getCreateTimeView() {
        if (NumericUtil.tryParseLong(this.getCreateTime()).compareTo(0L) > 0) {
            return LocalDateTimeUtil.toFormatString(this.getCreateTime());
        }
        return "";
    }
    @Override
    public String getUpdateTimeView() {
        if (Objects.isNull(this.getUpdateTime())) {
            return "";
        }
        return LocalDateTimeUtil.toFormatFullString(this.getUpdateTime());
    }
}
src/main/java/com/nanjing/water/repository/vo/WaterFacilityParameterVO.java
对比新文件
@@ -0,0 +1,55 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.vo;
import com.nanjing.water.common.util.LocalDateTimeUtil;
import com.nanjing.water.common.util.NumericUtil;
import com.nanjing.water.repository.po.WaterFacilityParameterPO;
import lombok.Data;
import java.util.Objects;
/**
 * 设备设定参数
 * @author lin.liu
 */
@Data
public class WaterFacilityParameterVO extends WaterFacilityParameterPO implements BasicVO {
    private String facilityName;
    @Override
    public String getCreateTimeView() {
        if (NumericUtil.tryParseLong(this.getCreateTime()).compareTo(0L) > 0) {
            return LocalDateTimeUtil.toFormatString(this.getCreateTime());
        }
        return "";
    }
    @Override
    public String getUpdateTimeView() {
        if (Objects.isNull(this.getUpdateTime())) {
            return "";
        }
        return LocalDateTimeUtil.toFormatFullString(this.getUpdateTime());
    }
}
src/main/java/com/nanjing/water/repository/vo/WaterFacilityTypeVO.java
对比新文件
@@ -0,0 +1,56 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.vo;
import com.nanjing.water.common.util.LocalDateTimeUtil;
import com.nanjing.water.common.util.NumericUtil;
import com.nanjing.water.repository.po.WaterFacilityPO;
import com.nanjing.water.repository.po.WaterFacilityTypePO;
import lombok.Data;
import java.util.List;
import java.util.Objects;
/**
 * 设备类型
 * @author lin.liu
 */
@Data
public class WaterFacilityTypeVO extends WaterFacilityTypePO implements BasicVO {
  private List<WaterFacilityPO> facilityPOList;
    @Override
    public String getCreateTimeView() {
        if (NumericUtil.tryParseLong(this.getCreateTime()).compareTo(0L) > 0) {
            return LocalDateTimeUtil.toFormatString(this.getCreateTime());
        }
        return "";
    }
    @Override
    public String getUpdateTimeView() {
        if (Objects.isNull(this.getUpdateTime())) {
            return "";
        }
        return LocalDateTimeUtil.toFormatFullString(this.getUpdateTime());
    }
}
src/main/java/com/nanjing/water/repository/vo/WaterFacilityVO.java
对比新文件
@@ -0,0 +1,56 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.vo;
import com.nanjing.water.common.util.LocalDateTimeUtil;
import com.nanjing.water.common.util.NumericUtil;
import com.nanjing.water.repository.po.WaterFacilityPO;
import lombok.Data;
import java.util.Objects;
/**
 * 设备信息
 * @author lin.liu
 */
@Data
public class WaterFacilityVO extends WaterFacilityPO implements BasicVO {
    private String pointName;
    private String facilityTypeName;
    @Override
    public String getCreateTimeView() {
        if (NumericUtil.tryParseLong(this.getCreateTime()).compareTo(0L) > 0) {
            return LocalDateTimeUtil.toFormatString(this.getCreateTime());
        }
        return "";
    }
    @Override
    public String getUpdateTimeView() {
        if (Objects.isNull(this.getUpdateTime())) {
            return "";
        }
        return LocalDateTimeUtil.toFormatFullString(this.getUpdateTime());
    }
}
src/main/java/com/nanjing/water/repository/vo/WaterMonitoryPointVO.java
对比新文件
@@ -0,0 +1,58 @@
/**
 * #                                                    __----~~~~~~~~~~~------___
 * #                                   .  .   ~~//====......          __--~ ~~
 * #                   -.            \_|//     |||\\  ~~~~~~::::... /~
 * #                ___-==_       _-~o~  \/    |||  \\            _/~~-
 * #        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
 * #    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
 * #  .~       .~       |   \\ -_    /  /-   /   ||      \   /
 * # /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
 * # |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
 * #          '         ~-|      /|    |-~\~~       __--~~
 * #                      |-~~-_/ |    |   ~\_   _-~            /\
 * #                           /  \     \__   \/~                \__
 * #                       _--~ _/ | .-~~____--~-/                  ~~==.
 * #                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
 * #                                 -_     ~\      ~~---l__i__i__i--~~_/
 * #                                 _-~-__   ~)  \--______________--~~
 * #                               //.-~~~-~_--~- |-------~~~~~~~~
 * #                                      //.-~~~--\
 * #                  神兽保佑
 * #                  永无BUG!
 */
package com.nanjing.water.repository.vo;
import com.nanjing.water.common.util.LocalDateTimeUtil;
import com.nanjing.water.common.util.NumericUtil;
import com.nanjing.water.repository.po.WaterMonitoryPointPO;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
 * 监控点
 * @author lin.liu
 */
@Data
public class WaterMonitoryPointVO extends WaterMonitoryPointPO implements BasicVO {
    private List<WaterMonitoryPointVO> childrenList=new ArrayList<>();
    private String pointTypeName;
    @Override
    public String getCreateTimeView() {
        if (NumericUtil.tryParseLong(this.getCreateTime()).compareTo(0L) > 0) {
            return LocalDateTimeUtil.toFormatString(this.getCreateTime());
        }
        return "";
    }
    @Override
    public String getUpdateTimeView() {
        if (Objects.isNull(this.getUpdateTime())) {
            return "";
        }
        return LocalDateTimeUtil.toFormatFullString(this.getUpdateTime());
    }
}
src/main/java/com/nanjing/water/service/AdminPowerService.java
对比新文件
@@ -0,0 +1,869 @@
package com.nanjing.water.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.nanjing.water.common.ExecutedResult;
import com.nanjing.water.common.PagerResult;
import com.nanjing.water.common.model.Tuple;
import com.nanjing.water.common.util.*;
import com.nanjing.water.entity.enums.EState;
import com.nanjing.water.entity.request.ReqListSetSort;
import com.nanjing.water.entity.request.ReqSetSort;
import com.nanjing.water.entity.request.adminmenu.ReqCreateAdminMenu;
import com.nanjing.water.entity.request.adminmenu.ReqModifyAdminMenu;
import com.nanjing.water.entity.request.adminpermission.ReqCreateAdminPermission;
import com.nanjing.water.entity.request.adminpermission.ReqModifyAdminPermission;
import com.nanjing.water.entity.request.adminrole.ReqCreateAdminRole;
import com.nanjing.water.entity.request.adminrole.ReqModifyAdminRole;
import com.nanjing.water.entity.request.adminrolemenurelation.ReqSetListMenu4Role;
import com.nanjing.water.entity.response.admin.ResAdminMenuTreeAndPermission;
import com.nanjing.water.entity.response.admin.ResAdminPermission;
import com.nanjing.water.entity.response.admin.ResAdminPower;
import com.nanjing.water.entity.search.SearchAdminMenu;
import com.nanjing.water.entity.search.SearchAdminPermission;
import com.nanjing.water.entity.search.SearchAdminRole;
import com.nanjing.water.repository.impl.*;
import com.nanjing.water.repository.po.*;
import com.nanjing.water.repository.vo.AdminMenuVO;
import com.nanjing.water.repository.vo.AdminRoleVO;
import com.nanjing.water.service.cache.AdminMenuService;
import com.nanjing.water.service.cache.AdminPermissionService;
import com.nanjing.water.service.convert.AdminMenuConvert;
import com.nanjing.water.service.convert.AdminPermissionConvert;
import com.nanjing.water.service.convert.AdminRoleConvert;
import org.apache.commons.lang3.BooleanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
@Service
public class AdminPowerService extends BaseService {
    @Autowired
    private AdminMenuMapperImpl menusDao;
    @Autowired
    private AdminPermissionMapperImpl permissionDao;
    @Autowired
    private AdminRoleMapperImpl roleDao;
    @Autowired
    private AdminRoleMenuRelationMapperImpl roleMenuRelationDao;
    @Autowired
    private AdminRolePermissionRelationMapperImpl rolePermissionRelationDao;
    @Autowired
    private AdminRoleRelationMapperImpl adminRoleRelationDao;
    @Autowired
    private AdminMenuService menusService;
    @Autowired
    private AdminPermissionService permissionService;
    // 创建菜单
    public ExecutedResult<Long> createMenu(ReqCreateAdminMenu request) {
        AdminMenuPO item = AdminMenuConvert.INSTANCE.toCreate(request);
        item.setParentId(NumericUtil.tryParseLong(request.getParentId(), 0L));
        item.setTitle(ParameterUtil.dealNullStr(request.getTitle()));
        item.setLevel(1);
        item.setSort(NumericUtil.tryParseInt(request.getSort(), 0));
        item.setStatus(EState.NORMAL.getValue());
        item.setCreateTime(LocalDateTimeUtil.nowTimeStamp());
        if (item.getParentId().compareTo(0L) > 0) {
            ExecutedResult<AdminMenuPO> check = this.checkMenuId(request.getParentId());
            if (check.isFailed()) {
                return ExecutedResult.failed("父级菜单不存在: " + request.getParentId());
            }
            item.setLevel(check.getData().getLevel() + 1);
        }
        int rowCount = menusDao.insert(item);
        if (rowCount == 1) {
            // 删除菜单缓存
            menusService.removeListAllCache();
            // 删除所有权限缓存
            permissionService.removeListAllCache();
            // 删除所有用户的菜单和权限缓存
            this.removePowerAllUser();
            // 给新增的菜单添加默认权限
            permissionService.createDefaultPermission(item);
            return ExecutedResult.success(item.getId());
        }
        return ExecutedResult.failed("创建[菜单]失败。");
    }
    private ExecutedResult<AdminMenuPO> checkMenuId(Long id) {
        AdminMenuPO item = menusDao.get(id);
        if (Objects.isNull(item)) {
            return ExecutedResult.failed("[菜单]不存在: " + id);
        }
        return ExecutedResult.success(item);
    }
    protected ExecutedResult<List<AdminMenuPO>> checkMenuId(List<Long> listId) {
        // 从数据库查找测试信息
        List<AdminMenuPO> list = menusDao.getList(listId);
        if (ListUtil.isNullOrEmpty(list)) {
            return ExecutedResult.failed("[菜单]不存在." + listId);
        }
        // 数据库找到的id列表
        List<Long> listIdFind = list.stream().map(AdminMenuPO::getId).collect(Collectors.toList());
        // 数量不一致
        if (listId.size() != listIdFind.size()) {
            // 筛选数据库不存在的测试信息
            List<Long> listIdNotFound = listId.stream().filter(c -> !listIdFind.contains(c)).collect(Collectors.toList());
            if (ListUtil.isNullOrEmpty(list)) {
                return ExecutedResult.failed("[菜单]不存在." + listIdNotFound);
            }
        }
        return ExecutedResult.success(list);
    }
    // 编辑菜单
    public ExecutedResult<String> modifyMenu(ReqModifyAdminMenu request) {
        ExecutedResult<AdminMenuPO> checkExists = this.checkMenuId(request.getId());
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        AdminMenuPO item = AdminMenuConvert.INSTANCE.toModify(request);
        item.setTitle(ParameterUtil.dealNullStr(request.getTitle()));
        item.setParentId(NumericUtil.tryParseLong(request.getParentId(), 0L));
        item.setLevel(1);
        item.setSort(NumericUtil.tryParseInt(request.getSort(), 0));
        if (item.getParentId().compareTo(0L) > 0) {
            ExecutedResult<AdminMenuPO> check = this.checkMenuId(request.getParentId());
            if (check.isFailed()) {
                return ExecutedResult.failed("父级菜单不存在: " + request.getParentId());
            }
            item.setLevel(check.getData().getLevel() + 1);
        }
        int rowCount = menusDao.updateById(item);
        if (rowCount == 1) {
            // 删除菜单缓存
            menusService.removeListAllCache();
            // 删除所有权限缓存
            permissionService.removeListAllCache();
            // 删除所有用户的菜单和权限缓存
            this.removePowerAllUser();
            return ExecutedResult.success();
        }
        return ExecutedResult.failed("编辑[菜单]失败。");
    }
    public ExecutedResult<String> removeMenu(Long id) {
        // 验证记录是否存在
        ExecutedResult<AdminMenuPO> checkExists = this.checkMenuId(id);
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        Boolean result = menusDao.deleteLogic(id);
        if (result) {
            // 删除菜单缓存
            menusService.removeListAllCache();
            // 删除所有权限缓存
            permissionService.removeListAllCache();
            // 删除所有用户的菜单和权限缓存
            this.removePowerAllUser();
            return ExecutedResult.success();
        }
        return ExecutedResult.failed("删除[菜单]失败。");
    }
    public ExecutedResult<String> removeMenuList(List<Long> listId) {
        // 验证记录是否存在
        ExecutedResult<List<AdminMenuPO>> checkExists = this.checkMenuId(listId);
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        Boolean result = menusDao.deleteLogic(listId);
        if (result) {
            // 删除菜单缓存
            menusService.removeListAllCache();
            // 删除所有权限缓存
            permissionService.removeListAllCache();
            // 删除所有用户的菜单和权限缓存
            this.removePowerAllUser();
            return ExecutedResult.success();
        }
        return ExecutedResult.failed("删除[菜单]失败。");
    }
    // 变更菜单状态
    public ExecutedResult<String> changeMenuStatus(Long id, EState status) {
        ExecutedResult<AdminMenuPO> checkExists = this.checkMenuId(id);
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        AdminMenuPO upd = new AdminMenuPO();
        upd.setId(id);
        upd.setStatus(status.getValue());
        int rowCount = menusDao.updateById(upd);
        if (rowCount == 1) {
            // 删除菜单缓存
            menusService.removeListAllCache();
            // 删除所有权限缓存
            permissionService.removeListAllCache();
            // 删除所有用户的菜单和权限缓存
            this.removePowerAllUser();
            return ExecutedResult.success();
        }
        return ExecutedResult.failed("修改[菜单]状态失败。");
    }
    // 获取所有层级菜单
    public ExecutedResult<List<ResAdminMenuTreeAndPermission>> getListTreeMenu() {
        List<ResAdminMenuTreeAndPermission> result = new ArrayList<>();
        LambdaQueryWrapper<AdminMenuPO> where = menusDao.query();
        where.in(AdminMenuPO::getStatus, Arrays.asList(
                EState.NORMAL.getValue()
        ));
        List<AdminMenuPO> list = menusDao.selectList(where);
        if (ListUtil.isNullOrEmpty(list)) {
            return ExecutedResult.success(result);
        }
        List<AdminMenuPO> listRoot = list.stream().filter(c -> Objects.equals(c.getLevel(), 1)).collect(Collectors.toList());
        listRoot = listRoot.stream()
                .sorted(Comparator.comparing(AdminMenuPO::getSort))
                .collect(Collectors.toList());
        if (ListUtil.isNullOrEmpty(listRoot)) {
            return ExecutedResult.success(result);
        }
        List<Long> listMenuId = list.stream()
                .map(AdminMenuPO::getId)
                .collect(Collectors.toList());
        List<AdminPermissionPO> listPermission = permissionDao.list4MenuId(listMenuId);
        Map<Long, List<AdminPermissionPO>> mapPermission = listPermission.stream()
                .collect(Collectors.groupingBy(AdminPermissionPO::getMenuId));
        for (AdminMenuPO item : listRoot) {
            ResAdminMenuTreeAndPermission view = AdminMenuConvert.INSTANCE.toTreeVo(item);
            this.fillChildMenu(view, list, mapPermission);
            this.fillPermission4Menu(view, mapPermission);
            result.add(view);
        }
        return ExecutedResult.success(result);
    }
    public void fillPermission4Menu(ResAdminMenuTreeAndPermission view, Map<Long, List<AdminPermissionPO>> mapPermission) {
        view.setPermissions(new ArrayList<>());
        if (BooleanUtils.isFalse(mapPermission.containsKey(view.getId()))) {
            return;
        }
        List<AdminPermissionPO> list = mapPermission.get(view.getId());
        view.setPermissions(AdminPermissionConvert.INSTANCE.toDetail(list));
    }
    public void fillChildMenu(ResAdminMenuTreeAndPermission view, List<AdminMenuPO> list, Map<Long, List<AdminPermissionPO>> mapPermission) {
        List<AdminMenuPO> listChild = list.stream()
                .filter(c -> c.getParentId().equals(view.getId()))
                .collect(Collectors.toList());
        view.setChildren(new ArrayList<>());
        if (ListUtil.isNullOrEmpty(listChild)) {
            return;
        }
        listChild = listChild.stream()
                .sorted(Comparator.comparing(AdminMenuPO::getSort).reversed())
                .collect(Collectors.toList());
        for (AdminMenuPO child : listChild) {
            ResAdminMenuTreeAndPermission viewChild = AdminMenuConvert.INSTANCE.toTreeVo(child);
            this.fillChildMenu(viewChild, list, mapPermission);
            this.fillPermission4Menu(viewChild, mapPermission);
            view.getChildren().add(viewChild);
        }
    }
    // 获取指定菜单的子级菜单
    public ExecutedResult<List<AdminMenuVO>> getListChildMenu(Long parentId) {
        List<AdminMenuPO> list = menusDao.list4Parent(parentId);
        if (ListUtil.isNullOrEmpty(list)) {
            return ExecutedResult.success(new ArrayList<>());
        }
        return ExecutedResult.success(AdminMenuConvert.INSTANCE.toVo(list));
    }
    // 分页查询菜单
    public ExecutedResult<PagerResult<AdminMenuVO>> searchMenu(SearchAdminMenu request) {
        List<AdminMenuVO> result = new ArrayList<>();
        super.dealPager(request);
        request.setLastRowNo((request.getPage() - 1) * NumericUtil.tryParseLong(request.getLimit()));
        // 处理时间范围
        Tuple<String, String> createTimeRange = ParameterUtil.getTimeRange(request.getCreateTimeRange());
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem1())) {
            request.setCreateTimeStart(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem1()).getTime());
        }
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem2())) {
            request.setCreateTimeEnd(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem2()).getTime());
        }
        if (NumericUtil.tryParseInt(request.getStatus(), 0).compareTo(0) < 1 && ListUtil.isNullOrEmpty(request.getListStatus())) {
            request.setListStatus(Arrays.asList(EState.NORMAL.getValue(), EState.DISABLED.getValue()));
        }
        PagerResult<AdminMenuPO> pagerResult = menusDao.search(request);
        if (NumericUtil.tryParseLong(pagerResult.getTotal()).compareTo(0L) < 1) {
            return ExecutedResult.success(
                    new PagerResult<>(request.getLimit(), request.getPage(), 0L, new ArrayList<>())
            );
        }
        List<AdminMenuPO> list = pagerResult.getList();
        Long lastId = 0L;
        if (ListUtil.isNotNullOrEmpty(list)) {
            lastId = list.stream().map(AdminMenuPO::getId).min(Comparator.comparing(c -> c)).get();
            result = AdminMenuConvert.INSTANCE.toVo(list);
        }
        PagerResult<AdminMenuVO> view = new PagerResult<>(request.getLimit(), request.getPage(), pagerResult.getTotal(), result);
        view.setLastId(lastId);
        return ExecutedResult.success(view);
    }
    // 创建权限
    public ExecutedResult<Long> createPermission(ReqCreateAdminPermission request) {
        String sn = request.getSn();
        AdminPermissionPO find = permissionDao.get4Sn(sn);
        if (Objects.nonNull(find) && find.getId().compareTo(0L) > 0) {
            return ExecutedResult.failed("权限编码已存在。" + sn);
        }
        ExecutedResult<AdminMenuPO> checkExists = this.checkMenuId(request.getMenuId());
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        AdminPermissionPO item = new AdminPermissionPO();
        item.setName(request.getName());
        item.setSn(request.getSn());
        item.setMenuId(request.getMenuId());
        item.setMenuId(request.getMenuId());
        item.setStatus(EState.NORMAL.getValue());
        item.setMenuUrl(ParameterUtil.dealNullStr(request.getMenuUrl()));
        item.setIcon(ParameterUtil.dealNullStr(request.getIcon()));
        item.setType(ParameterUtil.dealNullStr(request.getType()));
        item.setCreateTime(LocalDateTimeUtil.nowTimeStamp());
        int rowCount = permissionDao.insert(item);
        if (rowCount == 1) {
            // 删除权限缓存
            permissionService.removeListAllCache();
            return ExecutedResult.success(item.getId());
        }
        return ExecutedResult.failed("创建[权限]失败。");
    }
    // 编辑权限
    public ExecutedResult<String> modifyPermission(ReqModifyAdminPermission request) {
        Long id = request.getId();
        String sn = request.getSn();
        ExecutedResult<AdminPermissionPO> checkExists = this.checkPermissionId(id);
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        AdminPermissionPO findBySn = permissionDao.get4Sn(sn);
        if (Objects.nonNull(findBySn) && !Objects.equals(id, findBySn.getId())) {
            return ExecutedResult.failed("权限编码已存在。" + sn);
        }
        ExecutedResult<AdminMenuPO> check = this.checkMenuId(request.getMenuId());
        if (check.isFailed()) {
            return ExecutedResult.failed(check.getMsg());
        }
        AdminPermissionPO item = new AdminPermissionPO();
        item.setId(id);
        item.setSn(request.getSn());
        item.setMenuId(request.getMenuId());
        item.setName(request.getName());
        int rowCount = permissionDao.updateById(item);
        if (rowCount == 1) {
            // 删除权限缓存
            permissionService.removeListAllCache();
            return ExecutedResult.success();
        }
        return ExecutedResult.failed("编辑[权限]失败。");
    }
    private ExecutedResult<AdminPermissionPO> checkPermissionId(Long id) {
        AdminPermissionPO item = permissionDao.get(id);
        if (Objects.isNull(item)) {
            return ExecutedResult.failed("[权限]不存在: " + id);
        }
        return ExecutedResult.success(item);
    }
    // 删除权限
    public ExecutedResult<String> removePermission(Long id) {
        AdminPermissionPO find = permissionDao.get(id);
        if (null == find) {
            return ExecutedResult.failed("[权限]记录未找到。" + id);
        }
        Boolean remove = permissionDao.remove(id);
        if (remove) {
            // 删除权限缓存
            permissionService.removeListAllCache();
            return ExecutedResult.success();
        }
        return ExecutedResult.failed("删除[权限]失败");
    }
    // 分页查询权限
    public ExecutedResult<PagerResult<ResAdminPermission>> searchPermission(SearchAdminPermission request) {
        List<ResAdminPermission> result = new ArrayList<>();
        super.dealPager(request);
        request.setLastRowNo((request.getPage() - 1) * NumericUtil.tryParseLong(request.getLimit()));
        // 处理时间范围
        Tuple<String, String> createTimeRange = ParameterUtil.getTimeRange(request.getCreateTimeRange());
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem1())) {
            request.setCreateTimeStart(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem1()).getTime());
        }
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem2())) {
            request.setCreateTimeEnd(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem2()).getTime());
        }
        if (NumericUtil.tryParseInt(request.getStatus(), 0).compareTo(0) < 1 && ListUtil.isNullOrEmpty(request.getListStatus())) {
            request.setListStatus(Arrays.asList(EState.NORMAL.getValue(), EState.DISABLED.getValue()));
        }
        PagerResult<AdminPermissionPO> pagerResult = permissionDao.search(request);
        if (NumericUtil.tryParseLong(pagerResult.getTotal()).compareTo(0L) < 1) {
            return ExecutedResult.success(
                    new PagerResult<>(request.getLimit(), request.getPage(), 0L, new ArrayList<>())
            );
        }
        List<AdminPermissionPO> list = pagerResult.getList();
        Long lastId = 0L;
        if (ListUtil.isNotNullOrEmpty(list)) {
            lastId = list.stream().map(AdminPermissionPO::getId).min(Comparator.comparing(c -> c)).get();
            result = AdminPermissionConvert.INSTANCE.toDetail(list);
        }
        PagerResult<ResAdminPermission> view = new PagerResult<>(request.getLimit(), request.getPage(), pagerResult.getTotal(), result);
        view.setLastId(lastId);
        return ExecutedResult.success(view);
    }
    // 创建角色
    public ExecutedResult<Long> createRole(ReqCreateAdminRole request) {
        AdminRolePO item = AdminRoleConvert.INSTANCE.toCreate(request);
        item.setDescription(ParameterUtil.dealNullStr(request.getDescription()));
        item.setStatus(EState.NORMAL.getValue());
        item.setSort(NumericUtil.tryParseInt(request.getSort(), 0));
        item.setCreateTime(LocalDateTimeUtil.nowTimeStamp());
        int rowCount = roleDao.insert(item);
        if (rowCount == 1) {
            return ExecutedResult.success(item.getId());
        }
        return ExecutedResult.failed("创建[角色]失败。");
    }
    // 编辑角色
    public ExecutedResult<String> modifyRole(ReqModifyAdminRole request) {
        ExecutedResult<AdminRolePO> checkExists = this.checkRoleId(request.getId());
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        AdminRolePO item = AdminRoleConvert.INSTANCE.toModify(request);
        item.setSort(NumericUtil.tryParseInt(request.getSort(), 0));
        item.setDescription(ParameterUtil.dealNullStr(request.getDescription()));
        int rowCount = roleDao.updateById(item);
        if (rowCount == 1) {
            return ExecutedResult.success();
        }
        return ExecutedResult.failed("编辑[角色]失败。");
    }
    // 修改角色状态
    public ExecutedResult<String> changeRoleStatus(Long id, EState status) {
        ExecutedResult<AdminRolePO> checkExists = this.checkRoleId(id);
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        AdminRolePO upd = new AdminRolePO();
        upd.setId(id);
        upd.setStatus(status.getValue());
        int rowCount = roleDao.updateById(upd);
        if (rowCount == 1) {
            return ExecutedResult.success();
        }
        return ExecutedResult.failed("修改[角色]状态失败。");
    }
    private ExecutedResult<AdminRolePO> checkRoleId(Long id) {
        AdminRolePO item = roleDao.selectById(id);
        if (Objects.isNull(item)) {
            return ExecutedResult.failed("[角色]不存在: " + id);
        }
        return ExecutedResult.success(item);
    }
    private ExecutedResult<List<AdminRolePO>> checkRoleId(List<Long> listId) {
        // 从数据库查找测试信息
        List<AdminRolePO> list = roleDao.getList(listId);
        if (ListUtil.isNullOrEmpty(list)) {
            return ExecutedResult.failed("[角色]不存在." + listId);
        }
        // 数据库找到的id列表
        List<Long> listIdFind = list.stream().map(AdminRolePO::getId).collect(Collectors.toList());
        // 数量不一致
        if (listId.size() != listIdFind.size()) {
            // 筛选数据库不存在的测试信息
            List<Long> listIdNotFound = listId.stream().filter(c -> !listIdFind.contains(c)).collect(Collectors.toList());
            if (ListUtil.isNullOrEmpty(list)) {
                return ExecutedResult.failed("[角色]不存在." + listIdNotFound);
            }
        }
        return ExecutedResult.success(list);
    }
    public ExecutedResult<String> removeRole(Long id) {
        // 验证记录是否存在
        ExecutedResult<AdminRolePO> checkExists = this.checkRoleId(id);
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        Boolean result = roleDao.deleteLogic(id);
        if (BooleanUtils.isFalse(result)) {
            return ExecutedResult.failed("删除[角色]失败。");
        }
        return ExecutedResult.success();
    }
    public ExecutedResult<String> removeRoleList(List<Long> listId) {
        // 验证记录是否存在
        ExecutedResult<List<AdminRolePO>> checkExists = this.checkRoleId(listId);
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        Boolean result = roleDao.deleteLogic(listId);
        if (BooleanUtils.isFalse(result)) {
            return ExecutedResult.failed("删除[角色]失败。");
        }
        return ExecutedResult.success();
    }
    // 分页查询角色
    public ExecutedResult<PagerResult<AdminRoleVO>> searchRole(SearchAdminRole request) {
        List<AdminRoleVO> result = new ArrayList<>();
        super.dealPager(request);
        request.setLastRowNo((request.getPage() - 1) * NumericUtil.tryParseLong(request.getLimit()));
        // 处理时间范围
        Tuple<String, String> createTimeRange = ParameterUtil.getTimeRange(request.getCreateTimeRange());
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem1())) {
            request.setCreateTimeStart(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem1()).getTime());
        }
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem2())) {
            request.setCreateTimeEnd(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem2()).getTime());
        }
        if (NumericUtil.tryParseInt(request.getStatus(), 0).compareTo(0) < 1 && ListUtil.isNullOrEmpty(request.getListStatus())) {
            request.setListStatus(Arrays.asList(EState.NORMAL.getValue(), EState.DISABLED.getValue()));
        }
        PagerResult<AdminRolePO> pagerResult = roleDao.search(request);
        if (NumericUtil.tryParseLong(pagerResult.getTotal()).compareTo(0L) < 1) {
            return ExecutedResult.success(
                    new PagerResult<>(request.getLimit(), request.getPage(), 0L, new ArrayList<>())
            );
        }
        List<AdminRolePO> list = pagerResult.getList();
        Long lastId = 0L;
        if (ListUtil.isNotNullOrEmpty(list)) {
            lastId = list.stream().map(AdminRolePO::getId).min(Comparator.comparing(c -> c)).get();
            result = AdminRoleConvert.INSTANCE.toVo(list);
        }
        PagerResult<AdminRoleVO> view = new PagerResult<>(request.getLimit(), request.getPage(), pagerResult.getTotal(), result);
        view.setLastId(lastId);
        return ExecutedResult.success(view);
    }
    // 设置角色菜单权限列表
    public ExecutedResult<String> setListMenu4Role(ReqSetListMenu4Role request) {
        Long roleId = request.getId();
        ExecutedResult<AdminRolePO> checkExists = this.checkRoleId(roleId);
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        AdminRolePO find = checkExists.getData();
        Long now = LocalDateTimeUtil.nowTimeStamp();
        //找到角色已有的菜单列表
        List<AdminRoleMenuRelationPO> listOld = roleMenuRelationDao.list4Role(roleId);
        listOld = ParameterUtil.dealNull(listOld);
        List<Long> listOldMenuId = listOld.stream()
                .map(AdminRoleMenuRelationPO::getMenuId)
                .collect(Collectors.toList());
        //现在设置的菜单id列表
        List<Long> listMenuId = ParameterUtil.dealNull(request.getListMenu());
        //找到所有菜单
        List<Long> listAllId = new ArrayList<>(listOldMenuId);
        listAllId.addAll(listMenuId);
        ListUtil.repeat(listAllId);
        List<AdminMenuPO> listMenu = menusDao.getList(listAllId);
        Map<Long, AdminMenuPO> mapMenu = listMenu.stream()
                .collect(Collectors.toMap(AdminMenuPO::getId, c -> c));
        //找到新增菜单列表(新菜单列表的元素,不存在于已有的菜单列表中)
        List<Long> listNew = listMenuId.stream()
                .filter(c -> !listOldMenuId.contains(c))
                .collect(Collectors.toList());
        //找到删除菜单列表(已有菜单列表的元素,不存在于新菜单列表)
        List<Long> listRemove = listOldMenuId.stream()
                .filter(c -> !listMenuId.contains(c))
                .collect(Collectors.toList());
        //批量新增
        if(BooleanUtils.isFalse(listNew.isEmpty())) {
            List<AdminRoleMenuRelationPO> list = listNew.stream()
                    .map(c -> {
                        AdminRoleMenuRelationPO item = new AdminRoleMenuRelationPO();
                        item.setRoleId(roleId);
                        item.setMenuId(c);
                        item.setCreateTime(now);
                        return item;
                    }).collect(Collectors.toList());
            Boolean addList = roleMenuRelationDao.addList(list);
            if(BooleanUtils.isFalse(addList)) {
                return ExecutedResult.failed("给角色“" + roleId + "”新增菜单失败。" + listNew);
            }
        }
        //批量删除
        if(BooleanUtils.isFalse(listRemove.isEmpty())) {
            List<Long> listId = listOld.stream()
                    .filter(c -> listRemove.contains(c.getMenuId()))
                    .map(AdminRoleMenuRelationPO::getId).collect(Collectors.toList());
            Boolean removeList = roleMenuRelationDao.remove(listId);
            if(BooleanUtils.isFalse(removeList)) {
                return ExecutedResult.failed("删除角色“" + roleId + "”已有菜单失败。" + listRemove);
            }
        }
        //找到角色已有的权限列表
        List<AdminRolePermissionRelationPO> listOldPermission = rolePermissionRelationDao.list4Role(roleId);
        listOldPermission = ParameterUtil.dealNull(listOldPermission);
        List<Long> listOldPermissionId = listOldPermission.stream()
                .map(AdminRolePermissionRelationPO::getPermissionId)
                .collect(Collectors.toList());
        //现在设置的权限id列表
        List<Long> listPermissionId = ParameterUtil.dealNull(request.getListPermission());
        //找到所有权限
        List<Long> listAllPermissionId = new ArrayList<>(listOldPermissionId);
        listAllPermissionId.addAll(listPermissionId);
        ListUtil.repeat(listAllPermissionId);
        List<AdminPermissionPO> listPermission = permissionDao.getList(listAllPermissionId);
        Map<Long, AdminPermissionPO> mapPermission = listPermission.stream()
                .collect(Collectors.toMap(AdminPermissionPO::getId, c -> c));
        //找到新增权限列表(新权限列表的元素,不存在于已有的菜单列表中)
        List<Long> listNewPermission = listPermissionId.stream()
                .filter(c -> !listOldPermissionId.contains(c))
                .collect(Collectors.toList());
        //找到删除权限列表(已有权限列表的元素,不存在于新菜单列表)
        List<Long> listRemovePermission = listOldPermissionId.stream()
                .filter(c -> !listPermissionId.contains(c))
                .collect(Collectors.toList());
        //批量新增
        if(BooleanUtils.isFalse(listNewPermission.isEmpty())) {
            List<AdminRolePermissionRelationPO> list = listNewPermission.stream()
                    .map(c -> {
                        AdminRolePermissionRelationPO item = new AdminRolePermissionRelationPO();
                        item.setRoleId(roleId);
                        item.setPermissionId(c);
                        item.setCreateTime(now);
                        return item;
                    }).collect(Collectors.toList());
            Boolean addList = rolePermissionRelationDao.addList(list);
            if(BooleanUtils.isFalse(addList)) {
                return ExecutedResult.failed("给角色“" + roleId + "”新增权限失败。" + listNewPermission);
            }
        }
        //批量删除
        if(BooleanUtils.isFalse(listRemovePermission.isEmpty())) {
            List<Long> listId = listOldPermission.stream()
                    .filter(c -> listRemovePermission.contains(c.getPermissionId()))
                    .map(AdminRolePermissionRelationPO::getId).collect(Collectors.toList());
            Boolean removeList = rolePermissionRelationDao.remove(listId);
            if(BooleanUtils.isFalse(removeList)) {
                return ExecutedResult.failed("删除角色“" + roleId + "”已有权限失败。" + listRemovePermission);
            }
        }
        return ExecutedResult.success();
    }
    // 获取角色菜单权限列表
    public ExecutedResult<ResAdminPower> getListMenu4Role(Long roleId) {
        ResAdminPower result = new ResAdminPower();
        result.setMenus(new ArrayList<>());
        result.setPermissions(new ArrayList<>());
        ExecutedResult<AdminRolePO> checkExists = this.checkRoleId(roleId);
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        AdminRolePO find = checkExists.getData();
        //找到角色已有的菜单列表
        List<AdminRoleMenuRelationPO> listMenu4Role = roleMenuRelationDao.list4Role(roleId);
        if (ListUtil.isNotNullOrEmpty(listMenu4Role)) {
            List<Long> listOldMenuId = listMenu4Role.stream()
                    .map(AdminRoleMenuRelationPO::getMenuId)
                    .collect(Collectors.toList());
            List<AdminMenuPO> listMenu = menusDao.getList(listOldMenuId);
            if (ListUtil.isNotNullOrEmpty(listMenu)) {
                result.setMenus(AdminMenuConvert.INSTANCE.toVo(listMenu));
            }
        }
        //找到角色已有的权限列表
        List<AdminRolePermissionRelationPO> listPermission4Role = rolePermissionRelationDao.list4Role(roleId);
        if (ListUtil.isNotNullOrEmpty(listPermission4Role)) {
            List<Long> listPermissionId = listPermission4Role.stream()
                    .map(AdminRolePermissionRelationPO::getPermissionId)
                    .collect(Collectors.toList());
            List<AdminPermissionPO> listPermission = permissionDao.getList(listPermissionId);
            if (ListUtil.isNotNullOrEmpty(listPermission)) {
                result.setPermissions(AdminPermissionConvert.INSTANCE.toDetail(listPermission));
            }
        }
        return ExecutedResult.success(result);
    }
    protected List<AdminPermissionPO> getListPermission4Role(List<Long> listRoleId) {
        List<AdminRolePermissionRelationPO> listPermissionRel = rolePermissionRelationDao.list4Role(listRoleId);
        if (ListUtil.isNullOrEmpty(listPermissionRel)) {
            return new ArrayList<>();
        }
        List<AdminPermissionPO> listPermission = permissionService.listAllWithCache();
        if (ListUtil.isNullOrEmpty(listPermission)) {
            return new ArrayList<>();
        }
        // 筛选状态
        listPermission = listPermission.stream()
                .filter(c -> Objects.equals(c.getStatus(), EState.NORMAL.getValue()))
                .collect(Collectors.toList());
        List<Long> listPermissionId = listPermissionRel.stream()
                .map(AdminRolePermissionRelationPO::getPermissionId)
                .collect(Collectors.toList());
        return listPermission.stream()
                .filter(c -> listPermissionId.contains(c.getId()))
                .collect(Collectors.toList());
    }
    protected List<AdminMenuPO> getListMenu4Role(List<Long> listRoleId) {
        List<AdminRoleMenuRelationPO> listRoleMenu = roleMenuRelationDao.list4Role(listRoleId);
        if (ListUtil.isNullOrEmpty(listRoleMenu)) {
            return new ArrayList<>();
        }
        List<AdminMenuPO> listMenu = menusService.listAllWithCache();
        if (ListUtil.isNullOrEmpty(listMenu)) {
            return new ArrayList<>();
        }
        // 筛选状态
        listMenu = listMenu.stream()
                .filter(c -> Objects.equals(c.getStatus(), EState.NORMAL.getValue()))
                .collect(Collectors.toList());
        List<Long> listMenuId = listRoleMenu.stream().map(AdminRoleMenuRelationPO::getMenuId)
                .collect(Collectors.toList());
        return listMenu.stream()
                .filter(c -> listMenuId.contains(c.getId()))
                .collect(Collectors.toList());
    }
    /**
     * 删除指定用户的菜单和权限缓存
     * @param userId 用户id
     */
    protected void removePower4User(Long userId) {
        menusService.removeUserMenuCache(userId);
        permissionService.removeUserCache(userId);
    }
    /**
     * 删除所有用户的菜单和权限缓存
     */
    protected void removePowerAllUser() {
        menusService.removeAllUserMenuCache();
        permissionService.removeAllUserCache();
    }
    public ExecutedResult<String> setMenuSort(ReqSetSort request) {
        // 验证记录是否存在
        ExecutedResult<AdminMenuPO> checkExists = this.checkMenuId(request.getId());
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        AdminMenuPO item = new AdminMenuPO();
        item.setId(request.getId());
        item.setSort(request.getSort());
        int rowCount = menusDao.updateById(item);
        if (rowCount != 1) {
            return ExecutedResult.failed("[测试信息]设置排序值失败。");
        }
        return ExecutedResult.success();
    }
    public ExecutedResult<String> listSetMenuSort(ReqListSetSort request) {
        // id列表
        List<Long> listId = request.getList().stream().map(ReqSetSort::getId).collect(Collectors.toList());
        // 验证记录是否存在
        ExecutedResult<List<AdminMenuPO>> checkExists = this.checkMenuId(listId);
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        List<AdminMenuPO> listUpdate = request.getList().stream()
                .map(c -> {
                    AdminMenuPO item = new AdminMenuPO();
                    item.setId(c.getId());
                    item.setSort(c.getSort());
                    return item;
                })
                .collect(Collectors.toList());
        Boolean result = menusDao.modifyList(listUpdate);
        if (result) {
            return ExecutedResult.success();
        }
        return ExecutedResult.failed("[测试信息]设置排序值失败");
    }
    public ExecutedResult<String> setRoleSort(ReqSetSort request) {
        // 验证记录是否存在
        ExecutedResult<AdminRolePO> checkExists = this.checkRoleId(request.getId());
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        AdminRolePO item = new AdminRolePO();
        item.setId(request.getId());
        item.setSort(request.getSort());
        int rowCount = roleDao.updateById(item);
        if (rowCount != 1) {
            return ExecutedResult.failed("[角色]设置排序值失败。");
        }
        return ExecutedResult.success();
    }
    public ExecutedResult<String> listSetRoleSort(ReqListSetSort request) {
        // id列表
        List<Long> listId = request.getList().stream().map(ReqSetSort::getId).collect(Collectors.toList());
        // 验证记录是否存在
        ExecutedResult<List<AdminRolePO>> checkExists = this.checkRoleId(listId);
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        List<AdminRolePO> listUpdate = request.getList().stream()
                .map(c -> {
                    AdminRolePO item = new AdminRolePO();
                    item.setId(c.getId());
                    item.setSort(c.getSort());
                    return item;
                })
                .collect(Collectors.toList());
        Boolean result = roleDao.modifyList(listUpdate);
        if (result) {
            return ExecutedResult.success();
        }
        return ExecutedResult.failed("[角色]设置排序值失败");
    }
}
src/main/java/com/nanjing/water/service/AdminRoleMenuRelationService.java
对比新文件
@@ -0,0 +1,246 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.service;
import com.nanjing.water.common.*;
import com.nanjing.water.common.enums.*;
import com.nanjing.water.common.model.Tuple;
import com.nanjing.water.common.util.*;
import com.nanjing.water.entity.request.adminrolemenurelation.ReqCreateAdminRoleMenuRelation;
import com.nanjing.water.entity.request.adminrolemenurelation.ReqModifyAdminRoleMenuRelation;
import com.nanjing.water.entity.search.SearchAdminRoleMenuRelation;
import com.nanjing.water.repository.impl.AdminRoleMenuRelationMapperImpl;
import com.nanjing.water.repository.po.AdminRoleMenuRelationPO;
import com.nanjing.water.repository.vo.AdminRoleMenuRelationVO;
import com.nanjing.water.service.convert.AdminRoleMenuRelationConvert;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
 * 角色菜单关联关系
 * @author lin.liu
 */
@Service
public class AdminRoleMenuRelationService extends BaseService {
    @Autowired
    private AdminRoleMenuRelationMapperImpl mapper;
    public ExecutedResult<Long> create(ReqCreateAdminRoleMenuRelation request) {
        // 转换po
        AdminRoleMenuRelationPO item = AdminRoleMenuRelationConvert.INSTANCE.toCreate(request);
        // 设置状态
        //item.setStatus(EState.NORMAL.getValue());
        // 设置记录创建时间
        item.setCreateTime(LocalDateTimeUtil.nowTimeStamp());
        // 是否删除(逻辑删除)初始值
        item.setIsDelete(EYesOrNo.NO.getValue());
        int rowCount = mapper.insert(item);
        if (rowCount != 1) {
            return ExecutedResult.failed("创建[角色菜单关联关系]失败。");
        }
        return ExecutedResult.success(item.getId());
    }
    public ExecutedResult<String> modify(ReqModifyAdminRoleMenuRelation request) {
        // 验证记录是否存在
        ExecutedResult<AdminRoleMenuRelationPO> checkExists = this.check4Id(request.getId());
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        // 转换po
        AdminRoleMenuRelationPO item = AdminRoleMenuRelationConvert.INSTANCE.toModify(request);
        int rowCount = mapper.updateById(item);
        if (rowCount != 1) {
            return ExecutedResult.failed("编辑[角色菜单关联关系]失败。");
        }
        return ExecutedResult.success();
    }
    public ExecutedResult<AdminRoleMenuRelationVO> get(Long id) {
        AdminRoleMenuRelationVO result = new AdminRoleMenuRelationVO();
        AdminRoleMenuRelationPO find = mapper.get(id);
        if (null != find) {
            // 转换vo
            result = AdminRoleMenuRelationConvert.INSTANCE.toVo(find);
        }
        return ExecutedResult.success(result);
    }
//    public ExecutedResult<String> stop(Long id) {
//        // 验证记录是否存在
//        ExecutedResult<AdminRoleMenuRelationPO> checkExists = this.check4Id(id);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        AdminRoleMenuRelationPO item = new AdminRoleMenuRelationPO();
//        item.setId(id);
//        item.setStatus(EState.DISABLED.getValue());
//
//        int rowCount = mapper.updateById(item);
//        if (rowCount != 1) {
//           return ExecutedResult.failed("停用[角色菜单关联关系]失败。");
//       }
//       return ExecutedResult.success();
//   }
//
//    public ExecutedResult<String> enable(Long id) {
//        // 验证记录是否存在
//        ExecutedResult<AdminRoleMenuRelationPO> checkExists = this.check4Id(id);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        AdminRoleMenuRelationPO item = new AdminRoleMenuRelationPO();
//        item.setId(id);
//        item.setStatus(EState.NORMAL.getValue());
//
//        int rowCount = mapper.updateById(item);
//        if (rowCount != 1) {
//            return ExecutedResult.failed("启用[角色菜单关联关系]失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> setSort(ReqSetSort request) {
//        // 验证记录是否存在
//        ExecutedResult<AdminRoleMenuRelationPO> checkExists = this.check4Id(request.getId());
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        AdminRoleMenuRelationPO item = new AdminRoleMenuRelationPO();
//        item.setId(request.getId());
//        item.setSort(request.getSort());
//
//        int rowCount = mapper.updateById(item);
//        if (rowCount != 1) {
//            return ExecutedResult.failed("设置[角色菜单关联关系]排序值失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> listSetSort(ReqListSetSort request) {
//        // id列表
//        List<Long> listId = request.getList().stream().map(ReqSetSort::getId).collect(Collectors.toList());
//        // 验证记录是否存在
//        ExecutedResult<List<AdminRoleMenuRelationPO>> checkExists = this.check4Id(listId);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//
//        List<AdminRoleMenuRelationPO> listUpdate = request.getList().stream()
//                .map(c -> {
//                    AdminRoleMenuRelationPO item = new AdminRoleMenuRelationPO();
//                    item.setId(c.getId());
//                    item.setSort(c.getSort());
//                    return item;
//                })
//                .collect(Collectors.toList());
//        Boolean result = mapper.modifyList(listUpdate);
//        if (result) {
//            return ExecutedResult.success();
//        }
//        return ExecutedResult.failed("[角色菜单关联关系]设置排序值失败");
//    }
//
//    public ExecutedResult<String> remove(Long id) {
//        Boolean result = mapper.deleteLogic(id);
//        if (BooleanUtils.isFalse(result)) {
//            return ExecutedResult.failed("删除[角色菜单关联关系]失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> removeList(List<Long> ids) {
//        Boolean result = mapper.deleteLogic(ids);
//        if (BooleanUtils.isFalse(result)) {
//            return ExecutedResult.failed("删除[角色菜单关联关系]失败。");
//        }
//        return ExecutedResult.success();
//    }
    public ExecutedResult<List<AdminRoleMenuRelationVO>> getList(List<Long> listId) {
        List<AdminRoleMenuRelationVO> result = new ArrayList<>();
        List<AdminRoleMenuRelationPO> list = mapper.getList(listId);
        if (ListUtil.isNotNullOrEmpty(list)) {
            // 转换vo
            result = AdminRoleMenuRelationConvert.INSTANCE.toVo(list);
        }
        return ExecutedResult.success(result);
    }
    public ExecutedResult<PagerResult<AdminRoleMenuRelationVO>> search(SearchAdminRoleMenuRelation search) {
        // 处理创建时间范围-查询参数
        Tuple<String, String> createTimeRange = ParameterUtil.getTimeRange(search.getCreateTimeRange());
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem1())) {
            search.setCreateTimeStart(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem1()).getTime());
        }
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem2())) {
            search.setCreateTimeEnd(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem2()).getTime());
        }
        PagerResult<AdminRoleMenuRelationPO> pageList = mapper.search(search);
        List<AdminRoleMenuRelationVO> listVo = new ArrayList<>();
        List<AdminRoleMenuRelationPO> list = pageList.getList();
        if (ListUtil.isNotNullOrEmpty(list)) {
            pageList.setLastId(list.get(list.size() - 1).getId());
            // 转换vo
            listVo = AdminRoleMenuRelationConvert.INSTANCE.toVo(list);
        }
        PagerResult<AdminRoleMenuRelationVO> result = new PagerResult<>(pageList.getLimit(), pageList.getPage(), pageList.getTotal(), listVo);
        result.setLastId(pageList.getLastId());
        return ExecutedResult.success(result);
    }
    protected ExecutedResult<AdminRoleMenuRelationPO> check4Id(Long id) {
        AdminRoleMenuRelationPO exists = mapper.get(id);
        if (Objects.isNull(exists)) {
            return ExecutedResult.failed("[角色菜单关联关系]不存在:" + id);
        }
        return ExecutedResult.success(exists);
    }
    protected ExecutedResult<List<AdminRoleMenuRelationPO>> check4Id(List<Long> listId) {
        // 从数据库查找角色菜单关联关系
        List<AdminRoleMenuRelationPO> list = mapper.getList(listId);
        if (ListUtil.isNullOrEmpty(list)) {
            return ExecutedResult.failed("[角色菜单关联关系]不存在." + listId);
        }
        // 数据库找到的id列表
        List<Long> listIdFind = list.stream().map(AdminRoleMenuRelationPO::getId).collect(Collectors.toList());
        // 数量不一致
        if (listId.size() != listIdFind.size()) {
            // 筛选数据库不存在的角色菜单关联关系
            List<Long> listIdNotFound = listId.stream().filter(c -> !listIdFind.contains(c)).collect(Collectors.toList());
            if (ListUtil.isNullOrEmpty(list)) {
                return ExecutedResult.failed("[角色菜单关联关系]不存在." + listIdNotFound);
            }
        }
        return ExecutedResult.success(list);
    }}
src/main/java/com/nanjing/water/service/AdminRolePermissionRelationService.java
对比新文件
@@ -0,0 +1,246 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.service;
import com.nanjing.water.common.*;
import com.nanjing.water.common.enums.*;
import com.nanjing.water.common.model.Tuple;
import com.nanjing.water.common.util.*;
import com.nanjing.water.entity.request.adminrolepermissionrelation.ReqCreateAdminRolePermissionRelation;
import com.nanjing.water.entity.request.adminrolepermissionrelation.ReqModifyAdminRolePermissionRelation;
import com.nanjing.water.entity.search.SearchAdminRolePermissionRelation;
import com.nanjing.water.repository.impl.AdminRolePermissionRelationMapperImpl;
import com.nanjing.water.repository.po.AdminRolePermissionRelationPO;
import com.nanjing.water.repository.vo.AdminRolePermissionRelationVO;
import com.nanjing.water.service.convert.AdminRolePermissionRelationConvert;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
 * 角色权限关联关系
 * @author lin.liu
 */
@Service
public class AdminRolePermissionRelationService extends BaseService {
    @Autowired
    private AdminRolePermissionRelationMapperImpl mapper;
    public ExecutedResult<Long> create(ReqCreateAdminRolePermissionRelation request) {
        // 转换po
        AdminRolePermissionRelationPO item = AdminRolePermissionRelationConvert.INSTANCE.toCreate(request);
        // 设置状态
        //item.setStatus(EState.NORMAL.getValue());
        // 设置记录创建时间
        item.setCreateTime(LocalDateTimeUtil.nowTimeStamp());
        // 是否删除(逻辑删除)初始值
        item.setIsDelete(EYesOrNo.NO.getValue());
        int rowCount = mapper.insert(item);
        if (rowCount != 1) {
            return ExecutedResult.failed("创建[角色权限关联关系]失败。");
        }
        return ExecutedResult.success(item.getId());
    }
    public ExecutedResult<String> modify(ReqModifyAdminRolePermissionRelation request) {
        // 验证记录是否存在
        ExecutedResult<AdminRolePermissionRelationPO> checkExists = this.check4Id(request.getId());
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        // 转换po
        AdminRolePermissionRelationPO item = AdminRolePermissionRelationConvert.INSTANCE.toModify(request);
        int rowCount = mapper.updateById(item);
        if (rowCount != 1) {
            return ExecutedResult.failed("编辑[角色权限关联关系]失败。");
        }
        return ExecutedResult.success();
    }
    public ExecutedResult<AdminRolePermissionRelationVO> get(Long id) {
        AdminRolePermissionRelationVO result = new AdminRolePermissionRelationVO();
        AdminRolePermissionRelationPO find = mapper.get(id);
        if (null != find) {
            // 转换vo
            result = AdminRolePermissionRelationConvert.INSTANCE.toVo(find);
        }
        return ExecutedResult.success(result);
    }
//    public ExecutedResult<String> stop(Long id) {
//        // 验证记录是否存在
//        ExecutedResult<AdminRolePermissionRelationPO> checkExists = this.check4Id(id);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        AdminRolePermissionRelationPO item = new AdminRolePermissionRelationPO();
//        item.setId(id);
//        item.setStatus(EState.DISABLED.getValue());
//
//        int rowCount = mapper.updateById(item);
//        if (rowCount != 1) {
//           return ExecutedResult.failed("停用[角色权限关联关系]失败。");
//       }
//       return ExecutedResult.success();
//   }
//
//    public ExecutedResult<String> enable(Long id) {
//        // 验证记录是否存在
//        ExecutedResult<AdminRolePermissionRelationPO> checkExists = this.check4Id(id);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        AdminRolePermissionRelationPO item = new AdminRolePermissionRelationPO();
//        item.setId(id);
//        item.setStatus(EState.NORMAL.getValue());
//
//        int rowCount = mapper.updateById(item);
//        if (rowCount != 1) {
//            return ExecutedResult.failed("启用[角色权限关联关系]失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> setSort(ReqSetSort request) {
//        // 验证记录是否存在
//        ExecutedResult<AdminRolePermissionRelationPO> checkExists = this.check4Id(request.getId());
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        AdminRolePermissionRelationPO item = new AdminRolePermissionRelationPO();
//        item.setId(request.getId());
//        item.setSort(request.getSort());
//
//        int rowCount = mapper.updateById(item);
//        if (rowCount != 1) {
//            return ExecutedResult.failed("设置[角色权限关联关系]排序值失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> listSetSort(ReqListSetSort request) {
//        // id列表
//        List<Long> listId = request.getList().stream().map(ReqSetSort::getId).collect(Collectors.toList());
//        // 验证记录是否存在
//        ExecutedResult<List<AdminRolePermissionRelationPO>> checkExists = this.check4Id(listId);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//
//        List<AdminRolePermissionRelationPO> listUpdate = request.getList().stream()
//                .map(c -> {
//                    AdminRolePermissionRelationPO item = new AdminRolePermissionRelationPO();
//                    item.setId(c.getId());
//                    item.setSort(c.getSort());
//                    return item;
//                })
//                .collect(Collectors.toList());
//        Boolean result = mapper.modifyList(listUpdate);
//        if (result) {
//            return ExecutedResult.success();
//        }
//        return ExecutedResult.failed("[角色权限关联关系]设置排序值失败");
//    }
//
//    public ExecutedResult<String> remove(Long id) {
//        Boolean result = mapper.deleteLogic(id);
//        if (BooleanUtils.isFalse(result)) {
//            return ExecutedResult.failed("删除[角色权限关联关系]失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> removeList(List<Long> ids) {
//        Boolean result = mapper.deleteLogic(ids);
//        if (BooleanUtils.isFalse(result)) {
//            return ExecutedResult.failed("删除[角色权限关联关系]失败。");
//        }
//        return ExecutedResult.success();
//    }
    public ExecutedResult<List<AdminRolePermissionRelationVO>> getList(List<Long> listId) {
        List<AdminRolePermissionRelationVO> result = new ArrayList<>();
        List<AdminRolePermissionRelationPO> list = mapper.getList(listId);
        if (ListUtil.isNotNullOrEmpty(list)) {
            // 转换vo
            result = AdminRolePermissionRelationConvert.INSTANCE.toVo(list);
        }
        return ExecutedResult.success(result);
    }
    public ExecutedResult<PagerResult<AdminRolePermissionRelationVO>> search(SearchAdminRolePermissionRelation search) {
        // 处理创建时间范围-查询参数
        Tuple<String, String> createTimeRange = ParameterUtil.getTimeRange(search.getCreateTimeRange());
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem1())) {
            search.setCreateTimeStart(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem1()).getTime());
        }
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem2())) {
            search.setCreateTimeEnd(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem2()).getTime());
        }
        PagerResult<AdminRolePermissionRelationPO> pageList = mapper.search(search);
        List<AdminRolePermissionRelationVO> listVo = new ArrayList<>();
        List<AdminRolePermissionRelationPO> list = pageList.getList();
        if (ListUtil.isNotNullOrEmpty(list)) {
            pageList.setLastId(list.get(list.size() - 1).getId());
            // 转换vo
            listVo = AdminRolePermissionRelationConvert.INSTANCE.toVo(list);
        }
        PagerResult<AdminRolePermissionRelationVO> result = new PagerResult<>(pageList.getLimit(), pageList.getPage(), pageList.getTotal(), listVo);
        result.setLastId(pageList.getLastId());
        return ExecutedResult.success(result);
    }
    protected ExecutedResult<AdminRolePermissionRelationPO> check4Id(Long id) {
        AdminRolePermissionRelationPO exists = mapper.get(id);
        if (Objects.isNull(exists)) {
            return ExecutedResult.failed("[角色权限关联关系]不存在:" + id);
        }
        return ExecutedResult.success(exists);
    }
    protected ExecutedResult<List<AdminRolePermissionRelationPO>> check4Id(List<Long> listId) {
        // 从数据库查找角色权限关联关系
        List<AdminRolePermissionRelationPO> list = mapper.getList(listId);
        if (ListUtil.isNullOrEmpty(list)) {
            return ExecutedResult.failed("[角色权限关联关系]不存在." + listId);
        }
        // 数据库找到的id列表
        List<Long> listIdFind = list.stream().map(AdminRolePermissionRelationPO::getId).collect(Collectors.toList());
        // 数量不一致
        if (listId.size() != listIdFind.size()) {
            // 筛选数据库不存在的角色权限关联关系
            List<Long> listIdNotFound = listId.stream().filter(c -> !listIdFind.contains(c)).collect(Collectors.toList());
            if (ListUtil.isNullOrEmpty(list)) {
                return ExecutedResult.failed("[角色权限关联关系]不存在." + listIdNotFound);
            }
        }
        return ExecutedResult.success(list);
    }}
src/main/java/com/nanjing/water/service/AdminRoleRelationService.java
对比新文件
@@ -0,0 +1,246 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.service;
import com.nanjing.water.common.*;
import com.nanjing.water.common.enums.*;
import com.nanjing.water.common.model.Tuple;
import com.nanjing.water.common.util.*;
import com.nanjing.water.entity.request.adminrolerelation.ReqCreateAdminRoleRelation;
import com.nanjing.water.entity.request.adminrolerelation.ReqModifyAdminRoleRelation;
import com.nanjing.water.entity.search.SearchAdminRoleRelation;
import com.nanjing.water.repository.impl.AdminRoleRelationMapperImpl;
import com.nanjing.water.repository.po.AdminRoleRelationPO;
import com.nanjing.water.repository.vo.AdminRoleRelationVO;
import com.nanjing.water.service.convert.AdminRoleRelationConvert;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
 * 用户和角色关联关系
 * @author lin.liu
 */
@Service
public class AdminRoleRelationService extends BaseService {
    @Autowired
    private AdminRoleRelationMapperImpl mapper;
    public ExecutedResult<Long> create(ReqCreateAdminRoleRelation request) {
        // 转换po
        AdminRoleRelationPO item = AdminRoleRelationConvert.INSTANCE.toCreate(request);
        // 设置状态
        //item.setStatus(EState.NORMAL.getValue());
        // 设置记录创建时间
        item.setCreateTime(LocalDateTimeUtil.nowTimeStamp());
        // 是否删除(逻辑删除)初始值
        item.setIsDelete(EYesOrNo.NO.getValue());
        int rowCount = mapper.insert(item);
        if (rowCount != 1) {
            return ExecutedResult.failed("创建[用户和角色关联关系]失败。");
        }
        return ExecutedResult.success(item.getId());
    }
    public ExecutedResult<String> modify(ReqModifyAdminRoleRelation request) {
        // 验证记录是否存在
        ExecutedResult<AdminRoleRelationPO> checkExists = this.check4Id(request.getId());
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        // 转换po
        AdminRoleRelationPO item = AdminRoleRelationConvert.INSTANCE.toModify(request);
        int rowCount = mapper.updateById(item);
        if (rowCount != 1) {
            return ExecutedResult.failed("编辑[用户和角色关联关系]失败。");
        }
        return ExecutedResult.success();
    }
    public ExecutedResult<AdminRoleRelationVO> get(Long id) {
        AdminRoleRelationVO result = new AdminRoleRelationVO();
        AdminRoleRelationPO find = mapper.get(id);
        if (null != find) {
            // 转换vo
            result = AdminRoleRelationConvert.INSTANCE.toVo(find);
        }
        return ExecutedResult.success(result);
    }
//    public ExecutedResult<String> stop(Long id) {
//        // 验证记录是否存在
//        ExecutedResult<AdminRoleRelationPO> checkExists = this.check4Id(id);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        AdminRoleRelationPO item = new AdminRoleRelationPO();
//        item.setId(id);
//        item.setStatus(EState.DISABLED.getValue());
//
//        int rowCount = mapper.updateById(item);
//        if (rowCount != 1) {
//           return ExecutedResult.failed("停用[用户和角色关联关系]失败。");
//       }
//       return ExecutedResult.success();
//   }
//
//    public ExecutedResult<String> enable(Long id) {
//        // 验证记录是否存在
//        ExecutedResult<AdminRoleRelationPO> checkExists = this.check4Id(id);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        AdminRoleRelationPO item = new AdminRoleRelationPO();
//        item.setId(id);
//        item.setStatus(EState.NORMAL.getValue());
//
//        int rowCount = mapper.updateById(item);
//        if (rowCount != 1) {
//            return ExecutedResult.failed("启用[用户和角色关联关系]失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> setSort(ReqSetSort request) {
//        // 验证记录是否存在
//        ExecutedResult<AdminRoleRelationPO> checkExists = this.check4Id(request.getId());
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        AdminRoleRelationPO item = new AdminRoleRelationPO();
//        item.setId(request.getId());
//        item.setSort(request.getSort());
//
//        int rowCount = mapper.updateById(item);
//        if (rowCount != 1) {
//            return ExecutedResult.failed("设置[用户和角色关联关系]排序值失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> listSetSort(ReqListSetSort request) {
//        // id列表
//        List<Long> listId = request.getList().stream().map(ReqSetSort::getId).collect(Collectors.toList());
//        // 验证记录是否存在
//        ExecutedResult<List<AdminRoleRelationPO>> checkExists = this.check4Id(listId);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//
//        List<AdminRoleRelationPO> listUpdate = request.getList().stream()
//                .map(c -> {
//                    AdminRoleRelationPO item = new AdminRoleRelationPO();
//                    item.setId(c.getId());
//                    item.setSort(c.getSort());
//                    return item;
//                })
//                .collect(Collectors.toList());
//        Boolean result = mapper.modifyList(listUpdate);
//        if (result) {
//            return ExecutedResult.success();
//        }
//        return ExecutedResult.failed("[用户和角色关联关系]设置排序值失败");
//    }
//
//    public ExecutedResult<String> remove(Long id) {
//        Boolean result = mapper.deleteLogic(id);
//        if (BooleanUtils.isFalse(result)) {
//            return ExecutedResult.failed("删除[用户和角色关联关系]失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> removeList(List<Long> ids) {
//        Boolean result = mapper.deleteLogic(ids);
//        if (BooleanUtils.isFalse(result)) {
//            return ExecutedResult.failed("删除[用户和角色关联关系]失败。");
//        }
//        return ExecutedResult.success();
//    }
    public ExecutedResult<List<AdminRoleRelationVO>> getList(List<Long> listId) {
        List<AdminRoleRelationVO> result = new ArrayList<>();
        List<AdminRoleRelationPO> list = mapper.getList(listId);
        if (ListUtil.isNotNullOrEmpty(list)) {
            // 转换vo
            result = AdminRoleRelationConvert.INSTANCE.toVo(list);
        }
        return ExecutedResult.success(result);
    }
    public ExecutedResult<PagerResult<AdminRoleRelationVO>> search(SearchAdminRoleRelation search) {
        // 处理创建时间范围-查询参数
        Tuple<String, String> createTimeRange = ParameterUtil.getTimeRange(search.getCreateTimeRange());
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem1())) {
            search.setCreateTimeStart(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem1()).getTime());
        }
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem2())) {
            search.setCreateTimeEnd(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem2()).getTime());
        }
        PagerResult<AdminRoleRelationPO> pageList = mapper.search(search);
        List<AdminRoleRelationVO> listVo = new ArrayList<>();
        List<AdminRoleRelationPO> list = pageList.getList();
        if (ListUtil.isNotNullOrEmpty(list)) {
            pageList.setLastId(list.get(list.size() - 1).getId());
            // 转换vo
            listVo = AdminRoleRelationConvert.INSTANCE.toVo(list);
        }
        PagerResult<AdminRoleRelationVO> result = new PagerResult<>(pageList.getLimit(), pageList.getPage(), pageList.getTotal(), listVo);
        result.setLastId(pageList.getLastId());
        return ExecutedResult.success(result);
    }
    protected ExecutedResult<AdminRoleRelationPO> check4Id(Long id) {
        AdminRoleRelationPO exists = mapper.get(id);
        if (Objects.isNull(exists)) {
            return ExecutedResult.failed("[用户和角色关联关系]不存在:" + id);
        }
        return ExecutedResult.success(exists);
    }
    protected ExecutedResult<List<AdminRoleRelationPO>> check4Id(List<Long> listId) {
        // 从数据库查找用户和角色关联关系
        List<AdminRoleRelationPO> list = mapper.getList(listId);
        if (ListUtil.isNullOrEmpty(list)) {
            return ExecutedResult.failed("[用户和角色关联关系]不存在." + listId);
        }
        // 数据库找到的id列表
        List<Long> listIdFind = list.stream().map(AdminRoleRelationPO::getId).collect(Collectors.toList());
        // 数量不一致
        if (listId.size() != listIdFind.size()) {
            // 筛选数据库不存在的用户和角色关联关系
            List<Long> listIdNotFound = listId.stream().filter(c -> !listIdFind.contains(c)).collect(Collectors.toList());
            if (ListUtil.isNullOrEmpty(list)) {
                return ExecutedResult.failed("[用户和角色关联关系]不存在." + listIdNotFound);
            }
        }
        return ExecutedResult.success(list);
    }}
src/main/java/com/nanjing/water/service/AdminRoleService.java
对比新文件
@@ -0,0 +1,246 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.service;
import com.nanjing.water.common.*;
import com.nanjing.water.common.enums.*;
import com.nanjing.water.common.model.Tuple;
import com.nanjing.water.common.util.*;
import com.nanjing.water.entity.request.adminrole.ReqCreateAdminRole;
import com.nanjing.water.entity.request.adminrole.ReqModifyAdminRole;
import com.nanjing.water.entity.search.SearchAdminRole;
import com.nanjing.water.repository.impl.AdminRoleMapperImpl;
import com.nanjing.water.repository.po.AdminRolePO;
import com.nanjing.water.repository.vo.AdminRoleVO;
import com.nanjing.water.service.convert.AdminRoleConvert;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
 * 角色
 * @author lin.liu
 */
@Service
public class AdminRoleService extends BaseService {
    @Autowired
    private AdminRoleMapperImpl mapper;
    public ExecutedResult<Long> create(ReqCreateAdminRole request) {
        // 转换po
        AdminRolePO item = AdminRoleConvert.INSTANCE.toCreate(request);
        // 设置状态
        //item.setStatus(EState.NORMAL.getValue());
        // 设置记录创建时间
        item.setCreateTime(LocalDateTimeUtil.nowTimeStamp());
        // 是否删除(逻辑删除)初始值
        item.setIsDelete(EYesOrNo.NO.getValue());
        int rowCount = mapper.insert(item);
        if (rowCount != 1) {
            return ExecutedResult.failed("创建[角色]失败。");
        }
        return ExecutedResult.success(item.getId());
    }
    public ExecutedResult<String> modify(ReqModifyAdminRole request) {
        // 验证记录是否存在
        ExecutedResult<AdminRolePO> checkExists = this.check4Id(request.getId());
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        // 转换po
        AdminRolePO item = AdminRoleConvert.INSTANCE.toModify(request);
        int rowCount = mapper.updateById(item);
        if (rowCount != 1) {
            return ExecutedResult.failed("编辑[角色]失败。");
        }
        return ExecutedResult.success();
    }
    public ExecutedResult<AdminRoleVO> get(Long id) {
        AdminRoleVO result = new AdminRoleVO();
        AdminRolePO find = mapper.get(id);
        if (null != find) {
            // 转换vo
            result = AdminRoleConvert.INSTANCE.toVo(find);
        }
        return ExecutedResult.success(result);
    }
//    public ExecutedResult<String> stop(Long id) {
//        // 验证记录是否存在
//        ExecutedResult<AdminRolePO> checkExists = this.check4Id(id);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        AdminRolePO item = new AdminRolePO();
//        item.setId(id);
//        item.setStatus(EState.DISABLED.getValue());
//
//        int rowCount = mapper.updateById(item);
//        if (rowCount != 1) {
//           return ExecutedResult.failed("停用[角色]失败。");
//       }
//       return ExecutedResult.success();
//   }
//
//    public ExecutedResult<String> enable(Long id) {
//        // 验证记录是否存在
//        ExecutedResult<AdminRolePO> checkExists = this.check4Id(id);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        AdminRolePO item = new AdminRolePO();
//        item.setId(id);
//        item.setStatus(EState.NORMAL.getValue());
//
//        int rowCount = mapper.updateById(item);
//        if (rowCount != 1) {
//            return ExecutedResult.failed("启用[角色]失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> setSort(ReqSetSort request) {
//        // 验证记录是否存在
//        ExecutedResult<AdminRolePO> checkExists = this.check4Id(request.getId());
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        AdminRolePO item = new AdminRolePO();
//        item.setId(request.getId());
//        item.setSort(request.getSort());
//
//        int rowCount = mapper.updateById(item);
//        if (rowCount != 1) {
//            return ExecutedResult.failed("设置[角色]排序值失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> listSetSort(ReqListSetSort request) {
//        // id列表
//        List<Long> listId = request.getList().stream().map(ReqSetSort::getId).collect(Collectors.toList());
//        // 验证记录是否存在
//        ExecutedResult<List<AdminRolePO>> checkExists = this.check4Id(listId);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//
//        List<AdminRolePO> listUpdate = request.getList().stream()
//                .map(c -> {
//                    AdminRolePO item = new AdminRolePO();
//                    item.setId(c.getId());
//                    item.setSort(c.getSort());
//                    return item;
//                })
//                .collect(Collectors.toList());
//        Boolean result = mapper.modifyList(listUpdate);
//        if (result) {
//            return ExecutedResult.success();
//        }
//        return ExecutedResult.failed("[角色]设置排序值失败");
//    }
//
//    public ExecutedResult<String> remove(Long id) {
//        Boolean result = mapper.deleteLogic(id);
//        if (BooleanUtils.isFalse(result)) {
//            return ExecutedResult.failed("删除[角色]失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> removeList(List<Long> ids) {
//        Boolean result = mapper.deleteLogic(ids);
//        if (BooleanUtils.isFalse(result)) {
//            return ExecutedResult.failed("删除[角色]失败。");
//        }
//        return ExecutedResult.success();
//    }
    public ExecutedResult<List<AdminRoleVO>> getList(List<Long> listId) {
        List<AdminRoleVO> result = new ArrayList<>();
        List<AdminRolePO> list = mapper.getList(listId);
        if (ListUtil.isNotNullOrEmpty(list)) {
            // 转换vo
            result = AdminRoleConvert.INSTANCE.toVo(list);
        }
        return ExecutedResult.success(result);
    }
    public ExecutedResult<PagerResult<AdminRoleVO>> search(SearchAdminRole search) {
        // 处理创建时间范围-查询参数
        Tuple<String, String> createTimeRange = ParameterUtil.getTimeRange(search.getCreateTimeRange());
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem1())) {
            search.setCreateTimeStart(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem1()).getTime());
        }
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem2())) {
            search.setCreateTimeEnd(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem2()).getTime());
        }
        PagerResult<AdminRolePO> pageList = mapper.search(search);
        List<AdminRoleVO> listVo = new ArrayList<>();
        List<AdminRolePO> list = pageList.getList();
        if (ListUtil.isNotNullOrEmpty(list)) {
            pageList.setLastId(list.get(list.size() - 1).getId());
            // 转换vo
            listVo = AdminRoleConvert.INSTANCE.toVo(list);
        }
        PagerResult<AdminRoleVO> result = new PagerResult<>(pageList.getLimit(), pageList.getPage(), pageList.getTotal(), listVo);
        result.setLastId(pageList.getLastId());
        return ExecutedResult.success(result);
    }
    protected ExecutedResult<AdminRolePO> check4Id(Long id) {
        AdminRolePO exists = mapper.get(id);
        if (Objects.isNull(exists)) {
            return ExecutedResult.failed("[角色]不存在:" + id);
        }
        return ExecutedResult.success(exists);
    }
    protected ExecutedResult<List<AdminRolePO>> check4Id(List<Long> listId) {
        // 从数据库查找角色
        List<AdminRolePO> list = mapper.getList(listId);
        if (ListUtil.isNullOrEmpty(list)) {
            return ExecutedResult.failed("[角色]不存在." + listId);
        }
        // 数据库找到的id列表
        List<Long> listIdFind = list.stream().map(AdminRolePO::getId).collect(Collectors.toList());
        // 数量不一致
        if (listId.size() != listIdFind.size()) {
            // 筛选数据库不存在的角色
            List<Long> listIdNotFound = listId.stream().filter(c -> !listIdFind.contains(c)).collect(Collectors.toList());
            if (ListUtil.isNullOrEmpty(list)) {
                return ExecutedResult.failed("[角色]不存在." + listIdNotFound);
            }
        }
        return ExecutedResult.success(list);
    }}
src/main/java/com/nanjing/water/service/AdminService.java
对比新文件
@@ -0,0 +1,544 @@
package com.nanjing.water.service;
import com.nanjing.water.common.ConstantFactory;
import com.nanjing.water.common.ExecutedResult;
import com.nanjing.water.common.PagerResult;
import com.nanjing.water.common.jwt.JWTUtil;
import com.nanjing.water.common.jwt.LoginUserDTO;
import com.nanjing.water.common.model.Tuple;
import com.nanjing.water.common.security.MD5Util;
import com.nanjing.water.common.util.*;
import com.nanjing.water.entity.enums.EState;
import com.nanjing.water.entity.enums.EUserType;
import com.nanjing.water.entity.request.ReqChangePassword;
import com.nanjing.water.entity.request.adminuser.ReqAdminLogin;
import com.nanjing.water.entity.request.adminuser.ReqCreateAdminUser;
import com.nanjing.water.entity.request.adminuser.ReqModifyAdminUser;
import com.nanjing.water.entity.request.adminuser.ReqSetListRole4Admin;
import com.nanjing.water.entity.response.admin.ResAdminLogin;
import com.nanjing.water.entity.response.admin.ResAdminMenuTreeAndPermission;
import com.nanjing.water.entity.response.admin.ResAdminPower;
import com.nanjing.water.entity.search.SearchAdminUser;
import com.nanjing.water.repository.impl.*;
import com.nanjing.water.repository.po.*;
import com.nanjing.water.repository.vo.AdminRoleVO;
import com.nanjing.water.repository.vo.AdminUserVO;
import com.nanjing.water.service.cache.AdminMenuService;
import com.nanjing.water.service.cache.AdminPermissionService;
import com.nanjing.water.service.convert.AdminMenuConvert;
import com.nanjing.water.service.convert.AdminPermissionConvert;
import com.nanjing.water.service.convert.AdminRoleConvert;
import com.nanjing.water.service.convert.AdminUserConvert;
import com.nanjing.water.service.dto.ResAdminDetail;
import com.wf.captcha.SpecCaptcha;
import org.apache.commons.lang3.BooleanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@Service
public class AdminService extends BaseService {
    private static final List<Integer> LIST_ADMIN_TYPE = Arrays.asList(
            EUserType.ADMIN.getValue(),
            EUserType.ADMIN_USER.getValue()
    );
    @Autowired
    private AdminUserMapperImpl dao;
    @Autowired
    private AdminMenuMapperImpl menusDao;
    @Autowired
    private AdminPermissionMapperImpl permissionDao;
    @Autowired
    private AdminRoleMapperImpl roleDao;
    @Autowired
    private AdminRoleMenuRelationMapperImpl roleMenuRelationDao;
    @Autowired
    private AdminRolePermissionRelationMapperImpl rolePermissionRelationDao;
    @Autowired
    private AdminRoleRelationMapperImpl adminRoleRelationDao;
    @Autowired
    private AdminMenuService menusService;
    @Autowired
    private AdminPermissionService permissionService;
    @Autowired
    private AdminPowerService adminPowerService;
    @Autowired
    private StringRedisTemplate redisTemplate;
    // 添加后台管理员
    public ExecutedResult<Long> createAdmin(ReqCreateAdminUser request) {
        AdminUserPO find = dao.get4Name(request.getUserName());
        if (Objects.nonNull(find)) {
            return ExecutedResult.failed("管理员帐号已存在。" + request.getUserName());
        }
        AdminUserPO item = AdminUserConvert.INSTANCE.toCreate(request);
        item.setUserRelId(0L);
        item.setNickName(ParameterUtil.dealNullStr(request.getNickName()));
        item.setHeadImg(ParameterUtil.dealNullStr(request.getHeadImg()));
        item.setEmail(ParameterUtil.dealNullStr(request.getEmail()));
        item.setContact(ParameterUtil.dealNullStr(request.getContact()));
        // 密码加密
        item.setPassword(MD5Util.encrypt(request.getPassword() + ConstantFactory.KEY_PASSWORD));
        item.setStatus(EState.NORMAL.getValue());
        item.setCreateTime(LocalDateTimeUtil.nowTimeStamp());
        int rowCount = dao.insert(item);
        if (rowCount == 1) {
            return ExecutedResult.success(item.getId());
        }
        return ExecutedResult.failed("添加[管理员]失败。");
    }
    // 修改后台管理员
    public ExecutedResult<String> modify(ReqModifyAdminUser request) {
        ExecutedResult<AdminUserPO> check = this.check4Id(request.getId());
        if (check.isFailed()) {
            return ExecutedResult.failed(check.getMsg(), check.getMsgCode());
        }
        AdminUserPO item = new AdminUserPO();
        item.setId(request.getId());
        item.setNickName(ParameterUtil.dealNullStr(request.getNickName()));
        item.setHeadImg(ParameterUtil.dealNullStr(request.getHeadImg()));
        item.setContact(ParameterUtil.dealNullStr(request.getContact()));
        item.setEmail(ParameterUtil.dealNullStr(request.getEmail()));
        item.setStatus(request.getStatus());
        int rowCount = dao.updateById(item);
        if (rowCount == 1) {
            return ExecutedResult.success();
        }
        return ExecutedResult.failed("编辑[管理员]失败。");
    }
    // 获取指定管理员详情
    public ExecutedResult<ResAdminDetail> detail(Long adminId) {
        ExecutedResult<AdminUserPO> check = this.check4Id(adminId);
        if (check.isFailed()) {
            return ExecutedResult.failed(check.getMsg(), check.getMsgCode());
        }
        ResAdminDetail result = AdminUserConvert.INSTANCE.toDetail(check.getData());
        result.setListRole(new ArrayList<>());
        //找到角色已有的菜单列表
        List<AdminRoleRelationPO> listRoleRel = adminRoleRelationDao.list4Admin(adminId);
        if (ListUtil.isNotNullOrEmpty(listRoleRel)) {
            List<Long> listRoleId = listRoleRel.stream()
                    .map(AdminRoleRelationPO::getRoleId)
                    .collect(Collectors.toList());
            List<AdminRolePO> listRole = roleDao.getList(listRoleId);
            result.setListRole(AdminRoleConvert.INSTANCE.toVo(listRole));
        }
        return ExecutedResult.success(result);
    }
    // 管理员登录
    public ExecutedResult<ResAdminLogin> adminLogin(ReqAdminLogin request) throws Exception {
        Integer maxNumber = 3;
        AdminUserPO user = dao.get4Name(request.getUserName());
        //获取缓存中的验证码
        String realCode = redisTemplate.opsForValue().get(request.getUuid());
        if (realCode == null) {
            return ExecutedResult.failed("验证码已失效,请重新获取~");
        }
        // 验证码校验
        if (!request.getCode().equalsIgnoreCase(realCode)) {
            return ExecutedResult.failed("验证码错误");
        }
        //获取缓存中设备码
        String machineCode = redisTemplate.opsForValue().get(request.getMachineCode());
        if (StringUtil.isNotNullOrEmpty(machineCode) && Integer.valueOf(machineCode) >= maxNumber) {
            return ExecutedResult.failed("登录次数限制,请10分钟后重新登录!");
        }
        if (checkPassword(user, request.getPassword())) {
            // 构建登录用户
            LoginUserDTO loginUser = new LoginUserDTO();
            loginUser.setUserId(user.getId().toString());
            loginUser.setUserType(user.getUserType());
            loginUser.setNickName(user.getNickName());
            loginUser.setPhone(user.getContact());
            // 保存用户信息到jwt
            String token = JWTUtil.getToken(loginUser);
            ResAdminLogin result = this.getListPower4Admin(user);
            result.setName(user.getNickName());
            result.setToken(token);
            return ExecutedResult.success(result);
        } else {
            Integer newAttempts = StringUtil.isNullOrEmpty(machineCode) ? 1 : Integer.valueOf(machineCode) + 1;
            redisTemplate.opsForValue().set(request.getMachineCode(), newAttempts.toString());
            redisTemplate.expire(request.getMachineCode(), 10, TimeUnit.MINUTES);
        }
        return ExecutedResult.failed("账号或密码错误!");
    }
    private static boolean checkPassword(AdminUserPO user, String passWord) throws Exception {
        if (Objects.isNull(user)) {
            return false;
        }
        if (BooleanUtils.isFalse(Objects.equals(user.getStatus(), EState.NORMAL.getValue()))) {
            return false;
        }
        if (BooleanUtils.isFalse(MD5Util.encrypt(passWord + ConstantFactory.KEY_PASSWORD).equals(user.getPassword()))) {
            return false;
        }
        return true;
    }
    /**
     * 生成验证码图片并返回其 Base64 编码字符串
     *
     * @param uuid 用于标识验证码的唯一标识符
     * @return 包含验证码图片 Base64 编码的响应结果
     */
    public ExecutedResult<String> generate(String uuid) {
        SpecCaptcha specCaptcha = new SpecCaptcha(100, 30, 4);
        // captcha.setCharType(Captcha.TYPE_DEFAULT);
        String code = specCaptcha.text().toLowerCase();
        // 缓存验证码
        redisTemplate.opsForValue().set(uuid, code);
        // 设置验证码3分钟后过期
        redisTemplate.expire(uuid, 3, TimeUnit.MINUTES);
        return ExecutedResult.success(specCaptcha.toBase64());
    }
    // 获取管理员权限列表
    public ExecutedResult<ResAdminPower> getPower(Long adminId) {
        ResAdminPower result = new ResAdminPower();
        result.setMenus(new ArrayList<>());
        ExecutedResult<AdminUserPO> check = this.check4Id(adminId);
        if (check.isFailed()) {
            return ExecutedResult.success(result);
        }
        AdminUserPO user = check.getData();
        List<AdminMenuPO> listMenu;
        List<AdminPermissionPO> listPermission = null;
        // 超级管理员有所有权限
        if (Objects.equals(user.getUserType(), EUserType.ADMIN.getValue())) {
            listMenu = menusService.listAllWithCache();
            listPermission = permissionService.listAllWithCache();
        } else {
            //找到角色已有的菜单列表
            List<AdminRoleRelationPO> listRole = adminRoleRelationDao.list4Admin(adminId);
            if (ListUtil.isNullOrEmpty(listRole)) {
                return ExecutedResult.success(result);
            }
            List<Long> listRoleId = listRole.stream()
                    .map(AdminRoleRelationPO::getRoleId)
                    .collect(Collectors.toList());
            listMenu = menusService.listUserAllWithCache(adminId, listRoleId, adminPowerService::getListMenu4Role);
            listPermission = permissionService.listUserAllWithCache(adminId, listRoleId, adminPowerService::getListPermission4Role);
        }
        if (ListUtil.isNotNullOrEmpty(listMenu)) {
            // 筛选状态
            listMenu = listMenu.stream()
                    .filter(c -> Objects.equals(c.getStatus(), EState.NORMAL.getValue()))
                    .collect(Collectors.toList());
            result.setMenus(AdminMenuConvert.INSTANCE.toVo(listMenu));
        }
        if (ListUtil.isNotNullOrEmpty(listPermission)) {
            // 筛选状态
            listPermission = listPermission.stream()
                    .filter(c -> Objects.equals(c.getStatus(), EState.NORMAL.getValue()))
                    .collect(Collectors.toList());
            result.setPermissions(AdminPermissionConvert.INSTANCE.toDetail(listPermission));
        }
        return ExecutedResult.success(result);
    }
    // 修改密码
    public ExecutedResult<String> changePassword(LoginUserDTO user, ReqChangePassword request) {
        Long adminId = NumericUtil.tryParseLong(user.getUserId(), 0L);
        ExecutedResult<AdminUserPO> check = this.check4Id(adminId);
        if (check.isFailed()) {
            return ExecutedResult.failed(check.getMsg(), check.getMsgCode());
        }
        String oldPass = MD5Util.encrypt(request.getOldPassword() + ConstantFactory.KEY_PASSWORD);
        if (BooleanUtils.isFalse(oldPass.equals(check.getData().getPassword()))) {
            return ExecutedResult.failed("密码校验失败。");
        }
        return this.changePasswordDo(adminId, request.getNewPassword());
    }
    private ExecutedResult<String> changePasswordDo(Long adminId, String password) {
        AdminUserPO item = new AdminUserPO();
        item.setId(adminId);
        // 密码加密
        item.setPassword(MD5Util.encrypt(password + ConstantFactory.KEY_PASSWORD));
        int rowCount = dao.updateById(item);
        if (rowCount == 1) {
            return ExecutedResult.success();
        }
        return ExecutedResult.failed("密码修改失败。");
    }
    // 重置密码
    public ExecutedResult<String> resetPassword(Long adminId) {
        ExecutedResult<AdminUserPO> check = this.check4Id(adminId);
        if (check.isFailed()) {
            return ExecutedResult.failed(check.getMsg(), check.getMsgCode());
        }
        String pass = RandVerifyCode.complexCode(8);
        ExecutedResult<String> changePasswordDo = this.changePasswordDo(adminId, pass);
        if (changePasswordDo.isFailed()) {
            return changePasswordDo;
        }
        return ExecutedResult.success(pass);
    }
    // 分页查询所有管理员
    public ExecutedResult<PagerResult<AdminUserVO>> search(SearchAdminUser request) {
        List<AdminUserVO> result = new ArrayList<>();
        super.dealPager(request);
        request.setLastRowNo((request.getPage() - 1) * NumericUtil.tryParseLong(request.getLimit()));
        // 处理时间范围
        Tuple<String, String> createTimeRange = ParameterUtil.getTimeRange(request.getCreateTimeRange());
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem1())) {
            request.setCreateTimeStart(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem1()).getTime());
        }
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem2())) {
            request.setCreateTimeEnd(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem2()).getTime());
        }
        PagerResult<AdminUserPO> pagerResult = dao.search(request);
        if (NumericUtil.tryParseLong(pagerResult.getTotal()).compareTo(0L) < 1) {
            return ExecutedResult.success(
                    new PagerResult<>(request.getLimit(), request.getPage(), 0L, new ArrayList<>())
            );
        }
        List<AdminUserPO> list = pagerResult.getList();
        Long lastId = 0L;
        if (ListUtil.isNotNullOrEmpty(list)) {
            lastId = list.stream().map(AdminUserPO::getId).min(Comparator.comparing(c -> c)).get();
            list.forEach(item -> {
                AdminUserVO vo = AdminUserConvert.INSTANCE.toVo(item);
                result.add(vo);
            });
        }
        PagerResult<AdminUserVO> view = new PagerResult<>(request.getLimit(), request.getPage(), pagerResult.getTotal(), result);
        view.setLastId(lastId);
        return ExecutedResult.success(view);
    }
    public ExecutedResult<String> stop(Long id) {
        // 验证记录是否存在
        ExecutedResult<AdminUserPO> checkExists = this.check4Id(id);
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        AdminUserPO item = new AdminUserPO();
        item.setId(id);
        item.setStatus(EState.DISABLED.getValue());
        int rowCount = this.dao.updateById(item);
        if (rowCount == 1) {
            return ExecutedResult.success();
        }
        return ExecutedResult.failed("停用[管理员]失败。");
    }
    public ExecutedResult<String> enable(Long id) {
        // 验证记录是否存在
        ExecutedResult<AdminUserPO> checkExists = this.check4Id(id);
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        AdminUserPO item = new AdminUserPO();
        item.setId(id);
        item.setStatus(EState.NORMAL.getValue());
        int rowCount = this.dao.updateById(item);
        if (rowCount == 1) {
            return ExecutedResult.success();
        }
        return ExecutedResult.failed("启用[管理员]失败。");
    }
    public ExecutedResult<String> remove(Long adminId) {
        ExecutedResult<AdminUserPO> check = this.check4Id(adminId);
        if (check.isFailed()) {
            return ExecutedResult.failed(check.getMsg(), check.getMsgCode());
        }
        Boolean remove = dao.remove(adminId);
        if (remove) {
            return ExecutedResult.success();
        }
        return ExecutedResult.failed("删除[管理员]失败");
    }
    public ExecutedResult<AdminUserPO> check4Id(Long id) {
        AdminUserPO item = dao.get(id);
        if (Objects.isNull(item)) {
            return ExecutedResult.failed("[管理员]不存在: " + id);
        }
        return ExecutedResult.success(item);
    }
    // 设置管理员的角色列表
    public ExecutedResult<String> setListRole4Admin(ReqSetListRole4Admin request) {
        Long adminId = request.getId();
        ExecutedResult<AdminUserPO> checkExists = this.check4Id(adminId);
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        AdminUserPO find = checkExists.getData();
        //找到管理员已有的角色列表
        List<AdminRoleRelationPO> listOld = adminRoleRelationDao.list4Admin(adminId);
        listOld = ParameterUtil.dealNull(listOld);
        //现在设置的角色id列表
        List<Long> listRoleId = ParameterUtil.dealNull(request.getListRole());
        //批量新增
        if (BooleanUtils.isFalse(listRoleId.isEmpty())) {
            List<AdminRoleRelationPO> list = listRoleId.stream()
                    .map(c -> {
                        AdminRoleRelationPO item = new AdminRoleRelationPO();
                        item.setAdminId(adminId);
                        item.setRoleId(c);
                        item.setCreateTime(LocalDateTimeUtil.nowTimeStamp());
                        return item;
                    }).collect(Collectors.toList());
            Boolean addList = adminRoleRelationDao.addList(list);
            if (BooleanUtils.isFalse(addList)) {
                return ExecutedResult.failed("给管理员“" + adminId + "”新增角色失败。" + listRoleId);
            }
        }
        //批量删除
        if (BooleanUtils.isFalse(listOld.isEmpty())) {
            List<Long> listId = listOld.stream()
                    .map(AdminRoleRelationPO::getId).collect(Collectors.toList());
            Boolean removeList = adminRoleRelationDao.remove(listId);
            if (BooleanUtils.isFalse(removeList)) {
                return ExecutedResult.failed("删除管理员“" + adminId + "”已有角色失败。" + listId);
            }
        }
        // 删除指定用户的菜单和权限缓存
        adminPowerService.removePower4User(adminId);
        return ExecutedResult.success();
    }
    // 获取管理员的角色列表
    public ExecutedResult<List<AdminRoleVO>> getListRole4Admin(Long id) {
        List<AdminRoleVO> result = new ArrayList<>();
        ExecutedResult<AdminUserPO> checkExists = this.check4Id(id);
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        AdminUserPO find = checkExists.getData();
        List<AdminRolePO> list;
        if (Objects.equals(find.getUserType(), EUserType.ADMIN.getValue())) {
            list = roleDao.getList();
        } else {
            //找到角色已有的菜单列表
            List<AdminRoleRelationPO> listRole = adminRoleRelationDao.list4Admin(id);
            listRole = ParameterUtil.dealNull(listRole);
            if (ListUtil.isNullOrEmpty(listRole)) {
                return ExecutedResult.success(result);
            }
            List<Long> listRoleId = listRole.stream()
                    .map(AdminRoleRelationPO::getRoleId)
                    .collect(Collectors.toList());
            list = roleDao.getList(listRoleId);
        }
        if (ListUtil.isNotNullOrEmpty(list)) {
            // 筛选状态
            list = list.stream()
                    .filter(c -> Objects.equals(c.getStatus(), EState.NORMAL.getValue()))
                    .collect(Collectors.toList());
            result = AdminRoleConvert.INSTANCE.toVo(list);
        }
        return ExecutedResult.success(result);
    }
    /**
     * 获取指定用户的菜单和权限
     *
     * @param user 用户
     */
    public ResAdminLogin getListPower4Admin(AdminUserPO user) {
        Long adminId = user.getId();
        ResAdminLogin result = new ResAdminLogin();
        result.setId(user.getId());
        result.setUserType(user.getUserType());
        result.setMenus(new ArrayList<>());
        List<AdminMenuPO> listMenu;
        List<AdminPermissionPO> listPermission = null;
        // 管理员从缓存中取有所有权限(普通管理员剔除系统管理部分菜单)
        if (LIST_ADMIN_TYPE.contains(user.getUserType())) {
            listMenu = menusService.listAllWithCache();
            if (Objects.equals(EUserType.ADMIN_USER.getValue(), user.getUserType())) {
                List<Long> listNot = Arrays.asList(10101L, 10102L, 10103L);
                listMenu = listMenu.stream().filter(c -> !listNot.contains(c.getId())).collect(Collectors.toList());
            }
            listPermission = permissionService.listAllWithCache();
        } else {
            //找到角色已有的菜单列表
            List<AdminRoleRelationPO> listRole = adminRoleRelationDao.list4Admin(adminId);
            if (ListUtil.isNullOrEmpty(listRole)) {
                return result;
            }
            List<Long> listRoleId = listRole.stream()
                    .map(AdminRoleRelationPO::getRoleId)
                    .collect(Collectors.toList());
            listMenu = menusService.listUserAllWithCache(user.getId(), listRoleId, adminPowerService::getListMenu4Role);
            listPermission = permissionService.listUserAllWithCache(user.getId(), listRoleId, adminPowerService::getListPermission4Role);
        }
        if (ListUtil.isNotNullOrEmpty(listMenu)) {
            // 筛选状态
            listMenu = listMenu.stream()
                    .filter(c -> Objects.equals(c.getStatus(), EState.NORMAL.getValue()))
                    .collect(Collectors.toList());
            Map<Long, List<AdminPermissionPO>> mapPermission = new HashMap<>();
            // 筛选权限状态
            if (ListUtil.isNotNullOrEmpty(listPermission)) {
                // 筛选状态
                mapPermission = listPermission.stream()
                        .filter(c -> Objects.equals(c.getStatus(), EState.NORMAL.getValue()))
                        .collect(Collectors.groupingBy(AdminPermissionPO::getMenuId));
            }
            List<AdminMenuPO> listRoot = listMenu.stream().filter(c -> Objects.equals(c.getLevel(), 1)).collect(Collectors.toList());
            listRoot = listRoot.stream()
                    .sorted(Comparator.comparing(AdminMenuPO::getSort).reversed())
                    .collect(Collectors.toList());
            if (ListUtil.isNotNullOrEmpty(listRoot)) {
                for (AdminMenuPO item : listRoot) {
                    ResAdminMenuTreeAndPermission view = AdminMenuConvert.INSTANCE.toTreeVo(item);
                    adminPowerService.fillChildMenu(view, listMenu, mapPermission);
                    adminPowerService.fillPermission4Menu(view, mapPermission);
                    result.getMenus().add(view);
                }
            }
        }
        if (ListUtil.isNotNullOrEmpty(listPermission)) {
            // 筛选状态
            List<String> listPermissionSn = listPermission.stream()
                    .filter(c -> Objects.equals(c.getStatus(), EState.NORMAL.getValue()))
                    .sorted(Comparator.comparing(AdminPermissionPO::getMenuId))
                    .map(AdminPermissionPO::getSn)
                    .collect(Collectors.toList());
            result.setListPermission(listPermissionSn);
        }
        return result;
    }
}
src/main/java/com/nanjing/water/service/AdminUserService.java
对比新文件
@@ -0,0 +1,246 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.service;
import com.nanjing.water.common.*;
import com.nanjing.water.common.enums.*;
import com.nanjing.water.common.model.Tuple;
import com.nanjing.water.common.util.*;
import com.nanjing.water.entity.request.adminuser.ReqCreateAdminUser;
import com.nanjing.water.entity.request.adminuser.ReqModifyAdminUser;
import com.nanjing.water.entity.search.SearchAdminUser;
import com.nanjing.water.repository.impl.AdminUserMapperImpl;
import com.nanjing.water.repository.po.AdminUserPO;
import com.nanjing.water.repository.vo.AdminUserVO;
import com.nanjing.water.service.convert.AdminUserConvert;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
 * 管理员帐号
 * @author lin.liu
 */
@Service
public class AdminUserService extends BaseService {
    @Autowired
    private AdminUserMapperImpl mapper;
    public ExecutedResult<Long> create(ReqCreateAdminUser request) {
        // 转换po
        AdminUserPO item = AdminUserConvert.INSTANCE.toCreate(request);
        // 设置状态
        //item.setStatus(EState.NORMAL.getValue());
        // 设置记录创建时间
        item.setCreateTime(LocalDateTimeUtil.nowTimeStamp());
        // 是否删除(逻辑删除)初始值
        item.setIsDelete(EYesOrNo.NO.getValue());
        int rowCount = mapper.insert(item);
        if (rowCount != 1) {
            return ExecutedResult.failed("创建[管理员帐号]失败。");
        }
        return ExecutedResult.success(item.getId());
    }
    public ExecutedResult<String> modify(ReqModifyAdminUser request) {
        // 验证记录是否存在
        ExecutedResult<AdminUserPO> checkExists = this.check4Id(request.getId());
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        // 转换po
        AdminUserPO item = AdminUserConvert.INSTANCE.toModify(request);
        int rowCount = mapper.updateById(item);
        if (rowCount != 1) {
            return ExecutedResult.failed("编辑[管理员帐号]失败。");
        }
        return ExecutedResult.success();
    }
    public ExecutedResult<AdminUserVO> get(Long id) {
        AdminUserVO result = new AdminUserVO();
        AdminUserPO find = mapper.get(id);
        if (null != find) {
            // 转换vo
            result = AdminUserConvert.INSTANCE.toVo(find);
        }
        return ExecutedResult.success(result);
    }
//    public ExecutedResult<String> stop(Long id) {
//        // 验证记录是否存在
//        ExecutedResult<AdminUserPO> checkExists = this.check4Id(id);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        AdminUserPO item = new AdminUserPO();
//        item.setId(id);
//        item.setStatus(EState.DISABLED.getValue());
//
//        int rowCount = mapper.updateById(item);
//        if (rowCount != 1) {
//           return ExecutedResult.failed("停用[管理员帐号]失败。");
//       }
//       return ExecutedResult.success();
//   }
//
//    public ExecutedResult<String> enable(Long id) {
//        // 验证记录是否存在
//        ExecutedResult<AdminUserPO> checkExists = this.check4Id(id);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        AdminUserPO item = new AdminUserPO();
//        item.setId(id);
//        item.setStatus(EState.NORMAL.getValue());
//
//        int rowCount = mapper.updateById(item);
//        if (rowCount != 1) {
//            return ExecutedResult.failed("启用[管理员帐号]失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> setSort(ReqSetSort request) {
//        // 验证记录是否存在
//        ExecutedResult<AdminUserPO> checkExists = this.check4Id(request.getId());
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        AdminUserPO item = new AdminUserPO();
//        item.setId(request.getId());
//        item.setSort(request.getSort());
//
//        int rowCount = mapper.updateById(item);
//        if (rowCount != 1) {
//            return ExecutedResult.failed("设置[管理员帐号]排序值失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> listSetSort(ReqListSetSort request) {
//        // id列表
//        List<Long> listId = request.getList().stream().map(ReqSetSort::getId).collect(Collectors.toList());
//        // 验证记录是否存在
//        ExecutedResult<List<AdminUserPO>> checkExists = this.check4Id(listId);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//
//        List<AdminUserPO> listUpdate = request.getList().stream()
//                .map(c -> {
//                    AdminUserPO item = new AdminUserPO();
//                    item.setId(c.getId());
//                    item.setSort(c.getSort());
//                    return item;
//                })
//                .collect(Collectors.toList());
//        Boolean result = mapper.modifyList(listUpdate);
//        if (result) {
//            return ExecutedResult.success();
//        }
//        return ExecutedResult.failed("[管理员帐号]设置排序值失败");
//    }
//
//    public ExecutedResult<String> remove(Long id) {
//        Boolean result = mapper.deleteLogic(id);
//        if (BooleanUtils.isFalse(result)) {
//            return ExecutedResult.failed("删除[管理员帐号]失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> removeList(List<Long> ids) {
//        Boolean result = mapper.deleteLogic(ids);
//        if (BooleanUtils.isFalse(result)) {
//            return ExecutedResult.failed("删除[管理员帐号]失败。");
//        }
//        return ExecutedResult.success();
//    }
    public ExecutedResult<List<AdminUserVO>> getList(List<Long> listId) {
        List<AdminUserVO> result = new ArrayList<>();
        List<AdminUserPO> list = mapper.getList(listId);
        if (ListUtil.isNotNullOrEmpty(list)) {
            // 转换vo
            result = AdminUserConvert.INSTANCE.toVo(list);
        }
        return ExecutedResult.success(result);
    }
    public ExecutedResult<PagerResult<AdminUserVO>> search(SearchAdminUser search) {
        // 处理创建时间范围-查询参数
        Tuple<String, String> createTimeRange = ParameterUtil.getTimeRange(search.getCreateTimeRange());
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem1())) {
            search.setCreateTimeStart(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem1()).getTime());
        }
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem2())) {
            search.setCreateTimeEnd(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem2()).getTime());
        }
        PagerResult<AdminUserPO> pageList = mapper.search(search);
        List<AdminUserVO> listVo = new ArrayList<>();
        List<AdminUserPO> list = pageList.getList();
        if (ListUtil.isNotNullOrEmpty(list)) {
            pageList.setLastId(list.get(list.size() - 1).getId());
            // 转换vo
            listVo = AdminUserConvert.INSTANCE.toVo(list);
        }
        PagerResult<AdminUserVO> result = new PagerResult<>(pageList.getLimit(), pageList.getPage(), pageList.getTotal(), listVo);
        result.setLastId(pageList.getLastId());
        return ExecutedResult.success(result);
    }
    protected ExecutedResult<AdminUserPO> check4Id(Long id) {
        AdminUserPO exists = mapper.get(id);
        if (Objects.isNull(exists)) {
            return ExecutedResult.failed("[管理员帐号]不存在:" + id);
        }
        return ExecutedResult.success(exists);
    }
    protected ExecutedResult<List<AdminUserPO>> check4Id(List<Long> listId) {
        // 从数据库查找管理员帐号
        List<AdminUserPO> list = mapper.getList(listId);
        if (ListUtil.isNullOrEmpty(list)) {
            return ExecutedResult.failed("[管理员帐号]不存在." + listId);
        }
        // 数据库找到的id列表
        List<Long> listIdFind = list.stream().map(AdminUserPO::getId).collect(Collectors.toList());
        // 数量不一致
        if (listId.size() != listIdFind.size()) {
            // 筛选数据库不存在的管理员帐号
            List<Long> listIdNotFound = listId.stream().filter(c -> !listIdFind.contains(c)).collect(Collectors.toList());
            if (ListUtil.isNullOrEmpty(list)) {
                return ExecutedResult.failed("[管理员帐号]不存在." + listIdNotFound);
            }
        }
        return ExecutedResult.success(list);
    }}
src/main/java/com/nanjing/water/service/AlarmHistoryService.java
对比新文件
@@ -0,0 +1,275 @@
/**
 * #                                                    __----~~~~~~~~~~~------___
 * #                                   .  .   ~~//====......          __--~ ~~
 * #                   -.            \_|//     |||\\  ~~~~~~::::... /~
 * #                ___-==_       _-~o~  \/    |||  \\            _/~~-
 * #        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
 * #    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
 * #  .~       .~       |   \\ -_    /  /-   /   ||      \   /
 * # /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
 * # |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
 * #          '         ~-|      /|    |-~\~~       __--~~
 * #                      |-~~-_/ |    |   ~\_   _-~            /\
 * #                           /  \     \__   \/~                \__
 * #                       _--~ _/ | .-~~____--~-/                  ~~==.
 * #                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
 * #                                 -_     ~\      ~~---l__i__i__i--~~_/
 * #                                 _-~-__   ~)  \--______________--~~
 * #                               //.-~~~-~_--~- |-------~~~~~~~~
 * #                                      //.-~~~--\
 * #                  神兽保佑
 * #                  永无BUG!
 */
package com.nanjing.water.service;
import com.nanjing.water.common.*;
import com.nanjing.water.common.enums.*;
import com.nanjing.water.common.model.Tuple;
import com.nanjing.water.common.util.*;
import com.nanjing.water.entity.request.alarmhistory.ReqCreateAlarmHistory;
import com.nanjing.water.entity.request.alarmhistory.ReqModifyAlarmHistory;
import com.nanjing.water.entity.search.SearchAlarmHistory;
import com.nanjing.water.repository.impl.AlarmHistoryMapperImpl;
import com.nanjing.water.repository.po.AlarmHistoryPO;
import com.nanjing.water.repository.vo.AlarmHistoryVO;
import com.nanjing.water.service.convert.AlarmHistoryConvert;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletResponse;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
 * 报警信息
 * @author lin.liu
 */
@Service
public class AlarmHistoryService extends BaseService {
    @Autowired
    private AlarmHistoryMapperImpl mapper;
    public ExecutedResult<String> create(ReqCreateAlarmHistory request) {
        //查询报警记录是否存在
        AlarmHistoryPO historyPO = mapper.getListByFacilityId(request.getFacilityId(), request.getCode());
        if(Objects.nonNull(historyPO)){
            historyPO.setTotalCount(historyPO.getTotalCount()+1);
            historyPO.setLastTime(LocalDateTimeUtil.nowTimeStamp());
            int i = mapper.updateById(historyPO);
            if (i != 1) {
                return ExecutedResult.failed("创建[报警信息]失败。");
            }
        }else {
            // 转换po
            AlarmHistoryPO item = AlarmHistoryConvert.INSTANCE.toCreate(request);
            // 设置记录创建时间
            item.setCreateTime(LocalDateTimeUtil.nowTimeStamp());
            // 是否删除(逻辑删除)初始值
            item.setIsDelete(EYesOrNo.NO.getValue());
            int rowCount = mapper.insert(item);
            if (rowCount != 1) {
                return ExecutedResult.failed("创建[报警信息]失败。");
            }
        }
        return ExecutedResult.success();
    }
    public ExecutedResult<String> modify(ReqModifyAlarmHistory request) {
        // 验证记录是否存在
        ExecutedResult<AlarmHistoryPO> checkExists = this.check4Id(request.getId());
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        // 转换po
        AlarmHistoryPO item = AlarmHistoryConvert.INSTANCE.toModify(request);
        int rowCount = mapper.updateById(item);
        if (rowCount != 1) {
            return ExecutedResult.failed("编辑[报警信息]失败。");
        }
        return ExecutedResult.success();
    }
    public ExecutedResult<String> editConfirm(Long id,Integer status){
        // 验证记录是否存在
        ExecutedResult<AlarmHistoryPO> checkExists = this.check4Id(id);
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        AlarmHistoryPO data = checkExists.getData();
        data.setIsConfirm(status);
        int i = mapper.updateById(data);
        if(i!=1){
            return ExecutedResult.failed("编辑[报警信息]失败。");
        }
        return ExecutedResult.success();
    }
    public ExecutedResult<AlarmHistoryVO> get(Long id) {
        AlarmHistoryVO result = new AlarmHistoryVO();
        AlarmHistoryPO find = mapper.get(id);
        if (null != find) {
            // 转换vo
            result = AlarmHistoryConvert.INSTANCE.toVo(find);
        }
        return ExecutedResult.success(result);
    }
//    public ExecutedResult<String> stop(Long id) {
//        // 验证记录是否存在
//        ExecutedResult<AlarmHistoryPO> checkExists = this.check4Id(id);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        AlarmHistoryPO item = new AlarmHistoryPO();
//        item.setId(id);
//        item.setStatus(EState.DISABLED.getValue());
//
//        int rowCount = mapper.updateById(item);
//        if (rowCount != 1) {
//           return ExecutedResult.failed("停用[报警信息]失败。");
//       }
//       return ExecutedResult.success();
//   }
//
//    public ExecutedResult<String> enable(Long id) {
//        // 验证记录是否存在
//        ExecutedResult<AlarmHistoryPO> checkExists = this.check4Id(id);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        AlarmHistoryPO item = new AlarmHistoryPO();
//        item.setId(id);
//        item.setStatus(EState.NORMAL.getValue());
//
//        int rowCount = mapper.updateById(item);
//        if (rowCount != 1) {
//            return ExecutedResult.failed("启用[报警信息]失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> setSort(ReqSetSort request) {
//        // 验证记录是否存在
//        ExecutedResult<AlarmHistoryPO> checkExists = this.check4Id(request.getId());
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        AlarmHistoryPO item = new AlarmHistoryPO();
//        item.setId(request.getId());
//        item.setSort(request.getSort());
//
//        int rowCount = mapper.updateById(item);
//        if (rowCount != 1) {
//            return ExecutedResult.failed("设置[报警信息]排序值失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> listSetSort(ReqListSetSort request) {
//        // id列表
//        List<Long> listId = request.getList().stream().map(ReqSetSort::getId).collect(Collectors.toList());
//        // 验证记录是否存在
//        ExecutedResult<List<AlarmHistoryPO>> checkExists = this.check4Id(listId);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//
//        List<AlarmHistoryPO> listUpdate = request.getList().stream()
//                .map(c -> {
//                    AlarmHistoryPO item = new AlarmHistoryPO();
//                    item.setId(c.getId());
//                    item.setSort(c.getSort());
//                    return item;
//                })
//                .collect(Collectors.toList());
//        Boolean result = mapper.modifyList(listUpdate);
//        if (result) {
//            return ExecutedResult.success();
//        }
//        return ExecutedResult.failed("[报警信息]设置排序值失败");
//    }
//
//    public ExecutedResult<String> remove(Long id) {
//        Boolean result = mapper.deleteLogic(id);
//        if (BooleanUtils.isFalse(result)) {
//            return ExecutedResult.failed("删除[报警信息]失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> removeList(List<Long> ids) {
//        Boolean result = mapper.deleteLogic(ids);
//        if (BooleanUtils.isFalse(result)) {
//            return ExecutedResult.failed("删除[报警信息]失败。");
//        }
//        return ExecutedResult.success();
//    }
    public ExecutedResult<List<AlarmHistoryVO>> getList(List<Long> listId) {
        List<AlarmHistoryVO> result = new ArrayList<>();
        List<AlarmHistoryPO> list = mapper.getList(listId);
        if (ListUtil.isNotNullOrEmpty(list)) {
            // 转换vo
            result = AlarmHistoryConvert.INSTANCE.toVo(list);
        }
        return ExecutedResult.success(result);
    }
    public ExecutedResult<PagerResult<AlarmHistoryVO>> search(SearchAlarmHistory search) {
        // 处理创建时间范围-查询参数
        Tuple<String, String> createTimeRange = ParameterUtil.getTimeRange(search.getCreateTimeRange());
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem1())) {
            search.setCreateTimeStart(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem1()).getTime());
        }
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem2())) {
            search.setCreateTimeEnd(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem2()).getTime());
        }
        PagerResult<AlarmHistoryPO> pageList = mapper.search(search);
        List<AlarmHistoryVO> listVo = new ArrayList<>();
        List<AlarmHistoryPO> list = pageList.getList();
        if (ListUtil.isNotNullOrEmpty(list)) {
            pageList.setLastId(list.get(list.size() - 1).getId());
            // 转换vo
            listVo = CopierUtil.mapTo(list, AlarmHistoryVO.class);
        }
        PagerResult<AlarmHistoryVO> result = new PagerResult<>(pageList.getLimit(), pageList.getPage(), pageList.getTotal(), listVo);
        result.setLastId(pageList.getLastId());
        return ExecutedResult.success(result);
    }
    protected ExecutedResult<AlarmHistoryPO> check4Id(Long id) {
        AlarmHistoryPO exists = mapper.get(id);
        if (Objects.isNull(exists)) {
            return ExecutedResult.failed("[报警信息]不存在:" + id);
        }
        return ExecutedResult.success(exists);
    }
    protected ExecutedResult<List<AlarmHistoryPO>> check4Id(List<Long> listId) {
        // 从数据库查找报警信息
        List<AlarmHistoryPO> list = mapper.getList(listId);
        if (ListUtil.isNullOrEmpty(list)) {
            return ExecutedResult.failed("[报警信息]不存在." + listId);
        }
        // 数据库找到的id列表
        List<Long> listIdFind = list.stream().map(AlarmHistoryPO::getId).collect(Collectors.toList());
        // 数量不一致
        if (listId.size() != listIdFind.size()) {
            // 筛选数据库不存在的报警信息
            List<Long> listIdNotFound = listId.stream().filter(c -> !listIdFind.contains(c)).collect(Collectors.toList());
            if (ListUtil.isNullOrEmpty(list)) {
                return ExecutedResult.failed("[报警信息]不存在." + listIdNotFound);
            }
        }
        return ExecutedResult.success(list);
    }
}
src/main/java/com/nanjing/water/service/AlarmSchemeService.java
对比新文件
@@ -0,0 +1,275 @@
/**
 * #                                                    __----~~~~~~~~~~~------___
 * #                                   .  .   ~~//====......          __--~ ~~
 * #                   -.            \_|//     |||\\  ~~~~~~::::... /~
 * #                ___-==_       _-~o~  \/    |||  \\            _/~~-
 * #        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
 * #    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
 * #  .~       .~       |   \\ -_    /  /-   /   ||      \   /
 * # /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
 * # |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
 * #          '         ~-|      /|    |-~\~~       __--~~
 * #                      |-~~-_/ |    |   ~\_   _-~            /\
 * #                           /  \     \__   \/~                \__
 * #                       _--~ _/ | .-~~____--~-/                  ~~==.
 * #                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
 * #                                 -_     ~\      ~~---l__i__i__i--~~_/
 * #                                 _-~-__   ~)  \--______________--~~
 * #                               //.-~~~-~_--~- |-------~~~~~~~~
 * #                                      //.-~~~--\
 * #                  神兽保佑
 * #                  永无BUG!
 */
package com.nanjing.water.service;
import com.nanjing.water.common.*;
import com.nanjing.water.common.enums.*;
import com.nanjing.water.common.model.Tuple;
import com.nanjing.water.common.util.*;
import com.nanjing.water.entity.request.alarmscheme.ReqCreateAlarmScheme;
import com.nanjing.water.entity.request.alarmscheme.ReqModifyAlarmScheme;
import com.nanjing.water.entity.search.SearchAlarmScheme;
import com.nanjing.water.repository.impl.AlarmSchemeMapperImpl;
import com.nanjing.water.repository.impl.CommonParametersMapperImpl;
import com.nanjing.water.repository.impl.WaterFacilityMapperImpl;
import com.nanjing.water.repository.po.AlarmSchemePO;
import com.nanjing.water.repository.po.CommonParametersPO;
import com.nanjing.water.repository.po.WaterFacilityPO;
import com.nanjing.water.repository.vo.AlarmSchemeVO;
import com.nanjing.water.service.convert.AlarmSchemeConvert;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
 * 报警方案设置
 *
 * @author lin.liu
 */
@Service
public class AlarmSchemeService extends BaseService {
    @Autowired
    private AlarmSchemeMapperImpl mapper;
    @Autowired
    private WaterFacilityMapperImpl waterFacilityMapper;
    @Autowired
    private CommonParametersMapperImpl commonParametersMapper;
    public ExecutedResult<Long> create(ReqCreateAlarmScheme request) {
        //查询是否存着报警方案
        AlarmSchemePO alarmSchemePO = mapper.getByFacilityId(request.getFacilityId(), request.getColumnsCode());
        if(Objects.nonNull(alarmSchemePO)){
            return ExecutedResult.failed("设备报警方案已存在!");
        }
        // 转换po
        AlarmSchemePO item = AlarmSchemeConvert.INSTANCE.toCreate(request);
        // 设置状态
        //item.setStatus(EState.NORMAL.getValue());
        // 设置记录创建时间
        item.setCreateTime(LocalDateTimeUtil.nowTimeStamp());
        // 是否删除(逻辑删除)初始值
        item.setIsDelete(EYesOrNo.NO.getValue());
        int rowCount = mapper.insert(item);
        if (rowCount != 1) {
            return ExecutedResult.failed("创建[报警方案设置]失败。");
        }
        return ExecutedResult.success(item.getId());
    }
    public ExecutedResult<String> modify(ReqModifyAlarmScheme request) {
        // 验证记录是否存在
        ExecutedResult<AlarmSchemePO> checkExists = this.check4Id(request.getId());
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        // 转换po
        AlarmSchemePO item = AlarmSchemeConvert.INSTANCE.toModify(request);
        int rowCount = mapper.updateById(item);
        if (rowCount != 1) {
            return ExecutedResult.failed("编辑[报警方案设置]失败。");
        }
        return ExecutedResult.success();
    }
    public ExecutedResult<AlarmSchemeVO> get(Long id) {
        AlarmSchemeVO result = new AlarmSchemeVO();
        AlarmSchemePO find = mapper.get(id);
        if (null != find) {
            // 转换vo
            result = AlarmSchemeConvert.INSTANCE.toVo(find);
        }
        return ExecutedResult.success(result);
    }
//    public ExecutedResult<String> stop(Long id) {
//        // 验证记录是否存在
//        ExecutedResult<AlarmSchemePO> checkExists = this.check4Id(id);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        AlarmSchemePO item = new AlarmSchemePO();
//        item.setId(id);
//        item.setStatus(EState.DISABLED.getValue());
//
//        int rowCount = mapper.updateById(item);
//        if (rowCount != 1) {
//           return ExecutedResult.failed("停用[报警方案设置]失败。");
//       }
//       return ExecutedResult.success();
//   }
//
//    public ExecutedResult<String> enable(Long id) {
//        // 验证记录是否存在
//        ExecutedResult<AlarmSchemePO> checkExists = this.check4Id(id);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        AlarmSchemePO item = new AlarmSchemePO();
//        item.setId(id);
//        item.setStatus(EState.NORMAL.getValue());
//
//        int rowCount = mapper.updateById(item);
//        if (rowCount != 1) {
//            return ExecutedResult.failed("启用[报警方案设置]失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> setSort(ReqSetSort request) {
//        // 验证记录是否存在
//        ExecutedResult<AlarmSchemePO> checkExists = this.check4Id(request.getId());
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        AlarmSchemePO item = new AlarmSchemePO();
//        item.setId(request.getId());
//        item.setSort(request.getSort());
//
//        int rowCount = mapper.updateById(item);
//        if (rowCount != 1) {
//            return ExecutedResult.failed("设置[报警方案设置]排序值失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> listSetSort(ReqListSetSort request) {
//        // id列表
//        List<Long> listId = request.getList().stream().map(ReqSetSort::getId).collect(Collectors.toList());
//        // 验证记录是否存在
//        ExecutedResult<List<AlarmSchemePO>> checkExists = this.check4Id(listId);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//
//        List<AlarmSchemePO> listUpdate = request.getList().stream()
//                .map(c -> {
//                    AlarmSchemePO item = new AlarmSchemePO();
//                    item.setId(c.getId());
//                    item.setSort(c.getSort());
//                    return item;
//                })
//                .collect(Collectors.toList());
//        Boolean result = mapper.modifyList(listUpdate);
//        if (result) {
//            return ExecutedResult.success();
//        }
//        return ExecutedResult.failed("[报警方案设置]设置排序值失败");
//    }
//
    public ExecutedResult<String> remove(Long id) {
        int result = mapper.deleteById(id);
        if (result<1) {
            return ExecutedResult.failed("删除[报警方案设置]失败。");
        }
        return ExecutedResult.success();
    }
//
//    public ExecutedResult<String> removeList(List<Long> ids) {
//        Boolean result = mapper.deleteLogic(ids);
//        if (BooleanUtils.isFalse(result)) {
//            return ExecutedResult.failed("删除[报警方案设置]失败。");
//        }
//        return ExecutedResult.success();
//    }
    public ExecutedResult<List<AlarmSchemeVO>> getList(List<Long> listId) {
        List<AlarmSchemeVO> result = new ArrayList<>();
        List<AlarmSchemePO> list = mapper.getList(listId);
        if (ListUtil.isNotNullOrEmpty(list)) {
            // 转换vo
            result = AlarmSchemeConvert.INSTANCE.toVo(list);
        }
        return ExecutedResult.success(result);
    }
    public ExecutedResult<PagerResult<AlarmSchemeVO>> search(SearchAlarmScheme search) {
        // 处理创建时间范围-查询参数
        Tuple<String, String> createTimeRange = ParameterUtil.getTimeRange(search.getCreateTimeRange());
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem1())) {
            search.setCreateTimeStart(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem1()).getTime());
        }
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem2())) {
            search.setCreateTimeEnd(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem2()).getTime());
        }
        PagerResult<AlarmSchemePO> pageList = mapper.search(search);
        List<AlarmSchemeVO> listVo = new ArrayList<>();
        List<AlarmSchemePO> list = pageList.getList();
        if (ListUtil.isNotNullOrEmpty(list)) {
            pageList.setLastId(list.get(list.size() - 1).getId());
            // 转换vo
            listVo = AlarmSchemeConvert.INSTANCE.toVo(list);
            if (ListUtil.isNotNullOrEmpty(listVo)) {
                List<WaterFacilityPO> facilityPOList = waterFacilityMapper.getList();
                List<CommonParametersPO> parametersPOList = commonParametersMapper.getList();
                for (AlarmSchemeVO schemeVO : listVo) {
                    WaterFacilityPO facilityPO = facilityPOList.stream().filter(item -> item.getId().equals(schemeVO.getFacilityId())).findFirst().orElse(null);
                    CommonParametersPO parametersPO = parametersPOList.stream().filter(item -> item.getMark().equals(schemeVO.getColumnsCode())).findFirst().orElse(null);
                    if (Objects.nonNull(facilityPO))
                        schemeVO.setFacilityName(facilityPO.getFacilityName());
                    if (Objects.nonNull(parametersPO))
                        schemeVO.setColumnsName(parametersPO.getName());
                }
            }
        }
        PagerResult<AlarmSchemeVO> result = new PagerResult<>(pageList.getLimit(), pageList.getPage(), pageList.getTotal(), listVo);
        result.setLastId(pageList.getLastId());
        return ExecutedResult.success(result);
    }
    protected ExecutedResult<AlarmSchemePO> check4Id(Long id) {
        AlarmSchemePO exists = mapper.get(id);
        if (Objects.isNull(exists)) {
            return ExecutedResult.failed("[报警方案设置]不存在:" + id);
        }
        return ExecutedResult.success(exists);
    }
    protected ExecutedResult<List<AlarmSchemePO>> check4Id(List<Long> listId) {
        // 从数据库查找报警方案设置
        List<AlarmSchemePO> list = mapper.getList(listId);
        if (ListUtil.isNullOrEmpty(list)) {
            return ExecutedResult.failed("[报警方案设置]不存在." + listId);
        }
        // 数据库找到的id列表
        List<Long> listIdFind = list.stream().map(AlarmSchemePO::getId).collect(Collectors.toList());
        // 数量不一致
        if (listId.size() != listIdFind.size()) {
            // 筛选数据库不存在的报警方案设置
            List<Long> listIdNotFound = listId.stream().filter(c -> !listIdFind.contains(c)).collect(Collectors.toList());
            if (ListUtil.isNullOrEmpty(list)) {
                return ExecutedResult.failed("[报警方案设置]不存在." + listIdNotFound);
            }
        }
        return ExecutedResult.success(list);
    }
}
src/main/java/com/nanjing/water/service/CommonParametersService.java
对比新文件
@@ -0,0 +1,290 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.nanjing.water.common.ExecutedResult;
import com.nanjing.water.common.PagerResult;
import com.nanjing.water.common.enums.EYesOrNo;
import com.nanjing.water.common.model.Tuple;
import com.nanjing.water.common.util.*;
import com.nanjing.water.entity.request.commonparameters.ReqCreateCommonParameters;
import com.nanjing.water.entity.request.commonparameters.ReqModifyCommonParameters;
import com.nanjing.water.entity.search.SearchCommonParameters;
import com.nanjing.water.repository.impl.CommonParametersMapperImpl;
import com.nanjing.water.repository.impl.WaterFacilityParameterMapperImpl;
import com.nanjing.water.repository.po.CommonParametersPO;
import com.nanjing.water.repository.po.WaterFacilityParameterPO;
import com.nanjing.water.repository.vo.CommonParametersVO;
import org.apache.commons.lang3.BooleanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
 * 公共参数
 * @author lin.liu
 */
@Service
public class CommonParametersService extends BaseService {
    @Autowired
    private CommonParametersMapperImpl mapper;
    @Autowired
    private WaterFacilityParameterMapperImpl facilityParameterMapper;
    public ExecutedResult<Long> create(ReqCreateCommonParameters request) {
        if(StringUtil.isNotNullOrEmpty(request.getMark())){
            CommonParametersPO byMark = mapper.getByMark(request.getMark());
            if(Objects.nonNull(byMark)){
                return ExecutedResult.failed("参数:"+request.getMark()+"标记已存在。");
            }
        }
        // 转换po
        CommonParametersPO item = CopierUtil.mapTo(request, CommonParametersPO.class);
        item.setUnit(ParameterUtil.dealNull(request.getUnit()));
        item.setSort(NumericUtil.tryParseInt(request.getSort(), 0));
        // 设置状态
        //item.setStatus(EState.NORMAL.getValue());
        // 设置记录创建时间
        item.setCreateTime(LocalDateTimeUtil.nowTimeStamp());
        // 是否删除(逻辑删除)初始值
        item.setIsDelete(EYesOrNo.NO.getValue());
        int rowCount = mapper.insert(item);
        if (rowCount != 1) {
            return ExecutedResult.failed("创建[公共参数]失败。");
        }
        return ExecutedResult.success(item.getId());
    }
    public ExecutedResult<String> modify(ReqModifyCommonParameters request) {
        // 验证记录是否存在
        ExecutedResult<CommonParametersPO> checkExists = this.check4Id(request.getId());
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        // 转换po
        CommonParametersPO item = CopierUtil.mapTo(request, CommonParametersPO.class);
        item.setUnit(ParameterUtil.dealNull(request.getUnit()));
        item.setSort(NumericUtil.tryParseInt(request.getSort(), 0));
        int rowCount = mapper.updateById(item);
        if (rowCount != 1) {
            return ExecutedResult.failed("编辑[公共参数]失败。");
        }
        return ExecutedResult.success();
    }
    public ExecutedResult<CommonParametersVO> get(Long id) {
        CommonParametersVO result = new CommonParametersVO();
        CommonParametersPO find = mapper.get(id);
        if (null != find) {
            result = CopierUtil.mapTo(find, CommonParametersVO.class);
        }
        return ExecutedResult.success(result);
    }
    //    public ExecutedResult<String> stop(Long id) {
//        // 验证记录是否存在
//        ExecutedResult<CommonParametersPO> checkExists = this.check4Id(id);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        CommonParametersPO item = new CommonParametersPO();
//        item.setId(id);
//        item.setStatus(EState.DISABLED.getValue());
//
//        int rowCount = mapper.updateById(item);
//        if (rowCount != 1) {
//           return ExecutedResult.failed("停用[公共参数]失败。");
//       }
//       return ExecutedResult.success();
//   }
//
//    public ExecutedResult<String> enable(Long id) {
//        // 验证记录是否存在
//        ExecutedResult<CommonParametersPO> checkExists = this.check4Id(id);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        CommonParametersPO item = new CommonParametersPO();
//        item.setId(id);
//        item.setStatus(EState.NORMAL.getValue());
//
//        int rowCount = mapper.updateById(item);\n" +
//        if (rowCount != 1) {
//            return ExecutedResult.failed("启用[公共参数]失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> setSort(ReqSetSort request) {
//        // 验证记录是否存在
//        ExecutedResult<CommonParametersPO> checkExists = this.check4Id(request.getId());
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        CommonParametersPO item = new CommonParametersPO();
//        item.setId(request.getId());
//        item.setSort(request.getSort());
//
//        int rowCount = mapper.updateById(item);\n" +
//        if (rowCount != 1) {
//            return ExecutedResult.failed("设置[公共参数]排序值失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> listSetSort(ReqListSetSort request) {
//        // id列表
//        List<Long> listId = request.getList().stream().map(ReqSetSort::getId).collect(Collectors.toList());
//        // 验证记录是否存在
//        ExecutedResult<List<CommonParametersPO>> checkExists = this.check4Id(listId);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//
//        List<CommonParametersPO> listUpdate = request.getList().stream()
//                .map(c -> {
//                    CommonParametersPO item = new CommonParametersPO();
//                    item.setId(c.getId());
//                    item.setSort(c.getSort());
//                    return item;
//                })
//                .collect(Collectors.toList());
//        Boolean result = mapper.modifyList(listUpdate);
//        if (result) {
//            return ExecutedResult.success();
//        }
//        return ExecutedResult.failed("[公共参数]设置排序值失败");
//    }
//
    public ExecutedResult<String> remove(Long id) {
        CommonParametersPO parametersPO = mapper.get(id);
        if(Objects.isNull(parametersPO)){
            return ExecutedResult.failed("要删除的[公共参数]不存在。");
        }
        LambdaQueryWrapper<WaterFacilityParameterPO> queryWrapper =new LambdaQueryWrapper<>();
        queryWrapper.eq(WaterFacilityParameterPO::getColumnsCode,parametersPO.getMark());
        queryWrapper.eq(WaterFacilityParameterPO::getIsDelete,EYesOrNo.NO.getValue());
        List<WaterFacilityParameterPO> list = facilityParameterMapper.selectList(queryWrapper);
        if(ListUtil.isNotNullOrEmpty(list)){
            return ExecutedResult.failed("请先解除绑定此参数的设备");
        }
        Boolean result = mapper.remove(id);
        if (BooleanUtils.isFalse(result)) {
            return ExecutedResult.failed("删除[公共参数]失败。");
        }
        return ExecutedResult.success();
    }
//
//    public ExecutedResult<String> removeList(List<Long> ids) {
//        Boolean result = mapper.deleteLogic(ids);
//        if (BooleanUtils.isFalse(result)) {
//            return ExecutedResult.failed("删除[公共参数]失败。");
//        }
//        return ExecutedResult.success();
//    }
    public ExecutedResult<List<CommonParametersVO>> getList(List<Long> listId) {
        List<CommonParametersVO> result = new ArrayList<>();
        List<CommonParametersPO> list = mapper.getList(listId);
        if (ListUtil.isNotNullOrEmpty(list)) {
            result = CopierUtil.mapTo(list, CommonParametersVO.class);
        }
        return ExecutedResult.success(result);
    }
    public ExecutedResult<PagerResult<CommonParametersVO>> search(SearchCommonParameters search) {
        // 处理创建时间范围-查询参数
        Tuple<String, String> createTimeRange = ParameterUtil.getTimeRange(search.getCreateTimeRange());
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem1())) {
            search.setCreateTimeStart(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem1()).getTime());
        }
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem2())) {
            search.setCreateTimeEnd(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem2()).getTime());
        }
        PagerResult<CommonParametersPO> pageList = mapper.search(search);
        List<CommonParametersVO> listVo = new ArrayList<>();
        List<CommonParametersPO> list = pageList.getList();
        if (ListUtil.isNotNullOrEmpty(list)) {
            pageList.setLastId(list.get(list.size() - 1).getId());
            // 转换vo
            listVo = CopierUtil.mapTo(list, CommonParametersVO.class);
        }
        PagerResult<CommonParametersVO> result = new PagerResult<>(pageList.getLimit(), pageList.getPage(), pageList.getTotal(), listVo);
        result.setLastId(pageList.getLastId());
        return ExecutedResult.success(result);
    }
    protected ExecutedResult<CommonParametersPO> check4Id(Long id) {
        CommonParametersPO exists = mapper.get(id);
        if (Objects.isNull(exists)) {
            return ExecutedResult.failed("[公共参数]不存在:" + id);
        }
        return ExecutedResult.success(exists);
    }
    protected ExecutedResult<List<CommonParametersPO>> check4Id(List<Long> listId) {
        // 从数据库查找公共参数
        List<CommonParametersPO> list = mapper.getList(listId);
        if (ListUtil.isNullOrEmpty(list)) {
            return ExecutedResult.failed("[公共参数]不存在." + listId);
        }
        // 数据库找到的id列表
        List<Long> listIdFind = list.stream().map(CommonParametersPO::getId).collect(Collectors.toList());
        // 数量不一致
        if (listId.size() != listIdFind.size()) {
            // 筛选数据库不存在的公共参数
            List<Long> listIdNotFound = listId.stream().filter(c -> !listIdFind.contains(c)).collect(Collectors.toList());
            if (ListUtil.isNullOrEmpty(list)) {
                return ExecutedResult.failed("[公共参数]不存在." + listIdNotFound);
            }
        }
        return ExecutedResult.success(list);
    }
    protected ExecutedResult<List<CommonParametersPO>> check4Mark(List<String> listMark) {
        // 从数据库查找公共参数
        List<CommonParametersPO> list = mapper.list4Mark(listMark);
        if (ListUtil.isNullOrEmpty(list)) {
            return ExecutedResult.failed("参数不存在." + listMark);
        }
        // 数据库找到的id列表
        List<String> listIdFind = list.stream().map(CommonParametersPO::getMark).collect(Collectors.toList());
        // 数量不一致
        if (listMark.size() != listIdFind.size()) {
            // 筛选数据库不存在的公共参数
            List<String> listIdNotFound = listMark.stream().filter(c -> !listIdFind.contains(c)).collect(Collectors.toList());
            if (ListUtil.isNullOrEmpty(list)) {
                return ExecutedResult.failed("参数不存在." + listIdNotFound);
            }
        }
        return ExecutedResult.success(list);
    }
}
src/main/java/com/nanjing/water/service/QuartzTaskErrorService.java
对比新文件
@@ -0,0 +1,246 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.service;
import com.nanjing.water.common.*;
import com.nanjing.water.common.enums.*;
import com.nanjing.water.common.model.Tuple;
import com.nanjing.water.common.util.*;
import com.nanjing.water.entity.request.quartztaskerror.ReqCreateQuartzTaskError;
import com.nanjing.water.entity.request.quartztaskerror.ReqModifyQuartzTaskError;
import com.nanjing.water.entity.search.SearchQuartzTaskError;
import com.nanjing.water.repository.impl.QuartzTaskErrorMapperImpl;
import com.nanjing.water.repository.po.QuartzTaskErrorPO;
import com.nanjing.water.repository.vo.QuartzTaskErrorVO;
import com.nanjing.water.service.convert.QuartzTaskErrorConvert;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
 * 定时任务错误信息
 * @author lin.liu
 */
@Service
public class QuartzTaskErrorService extends BaseService {
    @Autowired
    private QuartzTaskErrorMapperImpl mapper;
    public ExecutedResult<Long> create(ReqCreateQuartzTaskError request) {
        // 转换po
        QuartzTaskErrorPO item = QuartzTaskErrorConvert.INSTANCE.toCreate(request);
        // 设置状态
        //item.setStatus(EState.NORMAL.getValue());
        // 设置记录创建时间
        item.setCreateTime(LocalDateTimeUtil.nowTimeStamp());
        // 是否删除(逻辑删除)初始值
        item.setIsDelete(EYesOrNo.NO.getValue());
        int rowCount = mapper.insert(item);
        if (rowCount != 1) {
            return ExecutedResult.failed("创建[定时任务错误信息]失败。");
        }
        return ExecutedResult.success(item.getId());
    }
    public ExecutedResult<String> modify(ReqModifyQuartzTaskError request) {
        // 验证记录是否存在
        ExecutedResult<QuartzTaskErrorPO> checkExists = this.check4Id(request.getId());
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        // 转换po
        QuartzTaskErrorPO item = QuartzTaskErrorConvert.INSTANCE.toModify(request);
        int rowCount = mapper.updateById(item);
        if (rowCount != 1) {
            return ExecutedResult.failed("编辑[定时任务错误信息]失败。");
        }
        return ExecutedResult.success();
    }
    public ExecutedResult<QuartzTaskErrorVO> get(Long id) {
        QuartzTaskErrorVO result = new QuartzTaskErrorVO();
        QuartzTaskErrorPO find = mapper.get(id);
        if (null != find) {
            // 转换vo
            result = QuartzTaskErrorConvert.INSTANCE.toVo(find);
        }
        return ExecutedResult.success(result);
    }
//    public ExecutedResult<String> stop(Long id) {
//        // 验证记录是否存在
//        ExecutedResult<QuartzTaskErrorPO> checkExists = this.check4Id(id);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        QuartzTaskErrorPO item = new QuartzTaskErrorPO();
//        item.setId(id);
//        item.setStatus(EState.DISABLED.getValue());
//
//        int rowCount = mapper.updateById(item);
//        if (rowCount != 1) {
//           return ExecutedResult.failed("停用[定时任务错误信息]失败。");
//       }
//       return ExecutedResult.success();
//   }
//
//    public ExecutedResult<String> enable(Long id) {
//        // 验证记录是否存在
//        ExecutedResult<QuartzTaskErrorPO> checkExists = this.check4Id(id);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        QuartzTaskErrorPO item = new QuartzTaskErrorPO();
//        item.setId(id);
//        item.setStatus(EState.NORMAL.getValue());
//
//        int rowCount = mapper.updateById(item);
//        if (rowCount != 1) {
//            return ExecutedResult.failed("启用[定时任务错误信息]失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> setSort(ReqSetSort request) {
//        // 验证记录是否存在
//        ExecutedResult<QuartzTaskErrorPO> checkExists = this.check4Id(request.getId());
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        QuartzTaskErrorPO item = new QuartzTaskErrorPO();
//        item.setId(request.getId());
//        item.setSort(request.getSort());
//
//        int rowCount = mapper.updateById(item);
//        if (rowCount != 1) {
//            return ExecutedResult.failed("设置[定时任务错误信息]排序值失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> listSetSort(ReqListSetSort request) {
//        // id列表
//        List<Long> listId = request.getList().stream().map(ReqSetSort::getId).collect(Collectors.toList());
//        // 验证记录是否存在
//        ExecutedResult<List<QuartzTaskErrorPO>> checkExists = this.check4Id(listId);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//
//        List<QuartzTaskErrorPO> listUpdate = request.getList().stream()
//                .map(c -> {
//                    QuartzTaskErrorPO item = new QuartzTaskErrorPO();
//                    item.setId(c.getId());
//                    item.setSort(c.getSort());
//                    return item;
//                })
//                .collect(Collectors.toList());
//        Boolean result = mapper.modifyList(listUpdate);
//        if (result) {
//            return ExecutedResult.success();
//        }
//        return ExecutedResult.failed("[定时任务错误信息]设置排序值失败");
//    }
//
//    public ExecutedResult<String> remove(Long id) {
//        Boolean result = mapper.deleteLogic(id);
//        if (BooleanUtils.isFalse(result)) {
//            return ExecutedResult.failed("删除[定时任务错误信息]失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> removeList(List<Long> ids) {
//        Boolean result = mapper.deleteLogic(ids);
//        if (BooleanUtils.isFalse(result)) {
//            return ExecutedResult.failed("删除[定时任务错误信息]失败。");
//        }
//        return ExecutedResult.success();
//    }
    public ExecutedResult<List<QuartzTaskErrorVO>> getList(List<Long> listId) {
        List<QuartzTaskErrorVO> result = new ArrayList<>();
        List<QuartzTaskErrorPO> list = mapper.getList(listId);
        if (ListUtil.isNotNullOrEmpty(list)) {
            // 转换vo
            result = QuartzTaskErrorConvert.INSTANCE.toVo(list);
        }
        return ExecutedResult.success(result);
    }
    public ExecutedResult<PagerResult<QuartzTaskErrorVO>> search(SearchQuartzTaskError search) {
        // 处理创建时间范围-查询参数
        Tuple<String, String> createTimeRange = ParameterUtil.getTimeRange(search.getCreateTimeRange());
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem1())) {
            search.setCreateTimeStart(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem1()).getTime());
        }
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem2())) {
            search.setCreateTimeEnd(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem2()).getTime());
        }
        PagerResult<QuartzTaskErrorPO> pageList = mapper.search(search);
        List<QuartzTaskErrorVO> listVo = new ArrayList<>();
        List<QuartzTaskErrorPO> list = pageList.getList();
        if (ListUtil.isNotNullOrEmpty(list)) {
            pageList.setLastId(list.get(list.size() - 1).getId());
            // 转换vo
            listVo = QuartzTaskErrorConvert.INSTANCE.toVo(list);
        }
        PagerResult<QuartzTaskErrorVO> result = new PagerResult<>(pageList.getLimit(), pageList.getPage(), pageList.getTotal(), listVo);
        result.setLastId(pageList.getLastId());
        return ExecutedResult.success(result);
    }
    protected ExecutedResult<QuartzTaskErrorPO> check4Id(Long id) {
        QuartzTaskErrorPO exists = mapper.get(id);
        if (Objects.isNull(exists)) {
            return ExecutedResult.failed("[定时任务错误信息]不存在:" + id);
        }
        return ExecutedResult.success(exists);
    }
    protected ExecutedResult<List<QuartzTaskErrorPO>> check4Id(List<Long> listId) {
        // 从数据库查找定时任务错误信息
        List<QuartzTaskErrorPO> list = mapper.getList(listId);
        if (ListUtil.isNullOrEmpty(list)) {
            return ExecutedResult.failed("[定时任务错误信息]不存在." + listId);
        }
        // 数据库找到的id列表
        List<Long> listIdFind = list.stream().map(QuartzTaskErrorPO::getId).collect(Collectors.toList());
        // 数量不一致
        if (listId.size() != listIdFind.size()) {
            // 筛选数据库不存在的定时任务错误信息
            List<Long> listIdNotFound = listId.stream().filter(c -> !listIdFind.contains(c)).collect(Collectors.toList());
            if (ListUtil.isNullOrEmpty(list)) {
                return ExecutedResult.failed("[定时任务错误信息]不存在." + listIdNotFound);
            }
        }
        return ExecutedResult.success(list);
    }}
src/main/java/com/nanjing/water/service/QuartzTaskInfoService.java
对比新文件
@@ -0,0 +1,246 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.service;
import com.nanjing.water.common.*;
import com.nanjing.water.common.enums.*;
import com.nanjing.water.common.model.Tuple;
import com.nanjing.water.common.util.*;
import com.nanjing.water.entity.request.quartztaskinfo.ReqCreateQuartzTaskInfo;
import com.nanjing.water.entity.request.quartztaskinfo.ReqModifyQuartzTaskInfo;
import com.nanjing.water.entity.search.SearchQuartzTaskInfo;
import com.nanjing.water.repository.impl.QuartzTaskInfoMapperImpl;
import com.nanjing.water.repository.po.QuartzTaskInfoPO;
import com.nanjing.water.repository.vo.QuartzTaskInfoVO;
import com.nanjing.water.service.convert.QuartzTaskInfoConvert;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
 * 定时任务信息
 * @author lin.liu
 */
@Service
public class QuartzTaskInfoService extends BaseService {
    @Autowired
    private QuartzTaskInfoMapperImpl mapper;
    public ExecutedResult<Long> create(ReqCreateQuartzTaskInfo request) {
        // 转换po
        QuartzTaskInfoPO item = QuartzTaskInfoConvert.INSTANCE.toCreate(request);
        // 设置状态
        //item.setStatus(EState.NORMAL.getValue());
        // 设置记录创建时间
        item.setCreateTime(LocalDateTimeUtil.nowTimeStamp());
        // 是否删除(逻辑删除)初始值
        item.setIsDelete(EYesOrNo.NO.getValue());
        int rowCount = mapper.insert(item);
        if (rowCount != 1) {
            return ExecutedResult.failed("创建[定时任务信息]失败。");
        }
        return ExecutedResult.success(item.getId());
    }
    public ExecutedResult<String> modify(ReqModifyQuartzTaskInfo request) {
        // 验证记录是否存在
        ExecutedResult<QuartzTaskInfoPO> checkExists = this.check4Id(request.getId());
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        // 转换po
        QuartzTaskInfoPO item = QuartzTaskInfoConvert.INSTANCE.toModify(request);
        int rowCount = mapper.updateById(item);
        if (rowCount != 1) {
            return ExecutedResult.failed("编辑[定时任务信息]失败。");
        }
        return ExecutedResult.success();
    }
    public ExecutedResult<QuartzTaskInfoVO> get(Long id) {
        QuartzTaskInfoVO result = new QuartzTaskInfoVO();
        QuartzTaskInfoPO find = mapper.get(id);
        if (null != find) {
            // 转换vo
            result = QuartzTaskInfoConvert.INSTANCE.toVo(find);
        }
        return ExecutedResult.success(result);
    }
//    public ExecutedResult<String> stop(Long id) {
//        // 验证记录是否存在
//        ExecutedResult<QuartzTaskInfoPO> checkExists = this.check4Id(id);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        QuartzTaskInfoPO item = new QuartzTaskInfoPO();
//        item.setId(id);
//        item.setStatus(EState.DISABLED.getValue());
//
//        int rowCount = mapper.updateById(item);
//        if (rowCount != 1) {
//           return ExecutedResult.failed("停用[定时任务信息]失败。");
//       }
//       return ExecutedResult.success();
//   }
//
//    public ExecutedResult<String> enable(Long id) {
//        // 验证记录是否存在
//        ExecutedResult<QuartzTaskInfoPO> checkExists = this.check4Id(id);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        QuartzTaskInfoPO item = new QuartzTaskInfoPO();
//        item.setId(id);
//        item.setStatus(EState.NORMAL.getValue());
//
//        int rowCount = mapper.updateById(item);
//        if (rowCount != 1) {
//            return ExecutedResult.failed("启用[定时任务信息]失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> setSort(ReqSetSort request) {
//        // 验证记录是否存在
//        ExecutedResult<QuartzTaskInfoPO> checkExists = this.check4Id(request.getId());
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        QuartzTaskInfoPO item = new QuartzTaskInfoPO();
//        item.setId(request.getId());
//        item.setSort(request.getSort());
//
//        int rowCount = mapper.updateById(item);
//        if (rowCount != 1) {
//            return ExecutedResult.failed("设置[定时任务信息]排序值失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> listSetSort(ReqListSetSort request) {
//        // id列表
//        List<Long> listId = request.getList().stream().map(ReqSetSort::getId).collect(Collectors.toList());
//        // 验证记录是否存在
//        ExecutedResult<List<QuartzTaskInfoPO>> checkExists = this.check4Id(listId);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//
//        List<QuartzTaskInfoPO> listUpdate = request.getList().stream()
//                .map(c -> {
//                    QuartzTaskInfoPO item = new QuartzTaskInfoPO();
//                    item.setId(c.getId());
//                    item.setSort(c.getSort());
//                    return item;
//                })
//                .collect(Collectors.toList());
//        Boolean result = mapper.modifyList(listUpdate);
//        if (result) {
//            return ExecutedResult.success();
//        }
//        return ExecutedResult.failed("[定时任务信息]设置排序值失败");
//    }
//
//    public ExecutedResult<String> remove(Long id) {
//        Boolean result = mapper.deleteLogic(id);
//        if (BooleanUtils.isFalse(result)) {
//            return ExecutedResult.failed("删除[定时任务信息]失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> removeList(List<Long> ids) {
//        Boolean result = mapper.deleteLogic(ids);
//        if (BooleanUtils.isFalse(result)) {
//            return ExecutedResult.failed("删除[定时任务信息]失败。");
//        }
//        return ExecutedResult.success();
//    }
    public ExecutedResult<List<QuartzTaskInfoVO>> getList(List<Long> listId) {
        List<QuartzTaskInfoVO> result = new ArrayList<>();
        List<QuartzTaskInfoPO> list = mapper.getList(listId);
        if (ListUtil.isNotNullOrEmpty(list)) {
            // 转换vo
            result = QuartzTaskInfoConvert.INSTANCE.toVo(list);
        }
        return ExecutedResult.success(result);
    }
    public ExecutedResult<PagerResult<QuartzTaskInfoVO>> search(SearchQuartzTaskInfo search) {
        // 处理创建时间范围-查询参数
        Tuple<String, String> createTimeRange = ParameterUtil.getTimeRange(search.getCreateTimeRange());
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem1())) {
            search.setCreateTimeStart(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem1()).getTime());
        }
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem2())) {
            search.setCreateTimeEnd(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem2()).getTime());
        }
        PagerResult<QuartzTaskInfoPO> pageList = mapper.search(search);
        List<QuartzTaskInfoVO> listVo = new ArrayList<>();
        List<QuartzTaskInfoPO> list = pageList.getList();
        if (ListUtil.isNotNullOrEmpty(list)) {
            pageList.setLastId(list.get(list.size() - 1).getId());
            // 转换vo
            listVo = QuartzTaskInfoConvert.INSTANCE.toVo(list);
        }
        PagerResult<QuartzTaskInfoVO> result = new PagerResult<>(pageList.getLimit(), pageList.getPage(), pageList.getTotal(), listVo);
        result.setLastId(pageList.getLastId());
        return ExecutedResult.success(result);
    }
    protected ExecutedResult<QuartzTaskInfoPO> check4Id(Long id) {
        QuartzTaskInfoPO exists = mapper.get(id);
        if (Objects.isNull(exists)) {
            return ExecutedResult.failed("[定时任务信息]不存在:" + id);
        }
        return ExecutedResult.success(exists);
    }
    protected ExecutedResult<List<QuartzTaskInfoPO>> check4Id(List<Long> listId) {
        // 从数据库查找定时任务信息
        List<QuartzTaskInfoPO> list = mapper.getList(listId);
        if (ListUtil.isNullOrEmpty(list)) {
            return ExecutedResult.failed("[定时任务信息]不存在." + listId);
        }
        // 数据库找到的id列表
        List<Long> listIdFind = list.stream().map(QuartzTaskInfoPO::getId).collect(Collectors.toList());
        // 数量不一致
        if (listId.size() != listIdFind.size()) {
            // 筛选数据库不存在的定时任务信息
            List<Long> listIdNotFound = listId.stream().filter(c -> !listIdFind.contains(c)).collect(Collectors.toList());
            if (ListUtil.isNullOrEmpty(list)) {
                return ExecutedResult.failed("[定时任务信息]不存在." + listIdNotFound);
            }
        }
        return ExecutedResult.success(list);
    }}
src/main/java/com/nanjing/water/service/QuartzTaskRecordService.java
对比新文件
@@ -0,0 +1,246 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.service;
import com.nanjing.water.common.*;
import com.nanjing.water.common.enums.*;
import com.nanjing.water.common.model.Tuple;
import com.nanjing.water.common.util.*;
import com.nanjing.water.entity.request.quartztaskrecord.ReqCreateQuartzTaskRecord;
import com.nanjing.water.entity.request.quartztaskrecord.ReqModifyQuartzTaskRecord;
import com.nanjing.water.entity.search.SearchQuartzTaskRecord;
import com.nanjing.water.repository.impl.QuartzTaskRecordMapperImpl;
import com.nanjing.water.repository.po.QuartzTaskRecordPO;
import com.nanjing.water.repository.vo.QuartzTaskRecordVO;
import com.nanjing.water.service.convert.QuartzTaskRecordConvert;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
 * 定时任务执行记录
 * @author lin.liu
 */
@Service
public class QuartzTaskRecordService extends BaseService {
    @Autowired
    private QuartzTaskRecordMapperImpl mapper;
    public ExecutedResult<Long> create(ReqCreateQuartzTaskRecord request) {
        // 转换po
        QuartzTaskRecordPO item = QuartzTaskRecordConvert.INSTANCE.toCreate(request);
        // 设置状态
        //item.setStatus(EState.NORMAL.getValue());
        // 设置记录创建时间
        item.setCreateTime(LocalDateTimeUtil.nowTimeStamp());
        // 是否删除(逻辑删除)初始值
        item.setIsDelete(EYesOrNo.NO.getValue());
        int rowCount = mapper.insert(item);
        if (rowCount != 1) {
            return ExecutedResult.failed("创建[定时任务执行记录]失败。");
        }
        return ExecutedResult.success(item.getId());
    }
    public ExecutedResult<String> modify(ReqModifyQuartzTaskRecord request) {
        // 验证记录是否存在
        ExecutedResult<QuartzTaskRecordPO> checkExists = this.check4Id(request.getId());
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        // 转换po
        QuartzTaskRecordPO item = QuartzTaskRecordConvert.INSTANCE.toModify(request);
        int rowCount = mapper.updateById(item);
        if (rowCount != 1) {
            return ExecutedResult.failed("编辑[定时任务执行记录]失败。");
        }
        return ExecutedResult.success();
    }
    public ExecutedResult<QuartzTaskRecordVO> get(Long id) {
        QuartzTaskRecordVO result = new QuartzTaskRecordVO();
        QuartzTaskRecordPO find = mapper.get(id);
        if (null != find) {
            // 转换vo
            result = QuartzTaskRecordConvert.INSTANCE.toVo(find);
        }
        return ExecutedResult.success(result);
    }
//    public ExecutedResult<String> stop(Long id) {
//        // 验证记录是否存在
//        ExecutedResult<QuartzTaskRecordPO> checkExists = this.check4Id(id);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        QuartzTaskRecordPO item = new QuartzTaskRecordPO();
//        item.setId(id);
//        item.setStatus(EState.DISABLED.getValue());
//
//        int rowCount = mapper.updateById(item);
//        if (rowCount != 1) {
//           return ExecutedResult.failed("停用[定时任务执行记录]失败。");
//       }
//       return ExecutedResult.success();
//   }
//
//    public ExecutedResult<String> enable(Long id) {
//        // 验证记录是否存在
//        ExecutedResult<QuartzTaskRecordPO> checkExists = this.check4Id(id);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        QuartzTaskRecordPO item = new QuartzTaskRecordPO();
//        item.setId(id);
//        item.setStatus(EState.NORMAL.getValue());
//
//        int rowCount = mapper.updateById(item);
//        if (rowCount != 1) {
//            return ExecutedResult.failed("启用[定时任务执行记录]失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> setSort(ReqSetSort request) {
//        // 验证记录是否存在
//        ExecutedResult<QuartzTaskRecordPO> checkExists = this.check4Id(request.getId());
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        QuartzTaskRecordPO item = new QuartzTaskRecordPO();
//        item.setId(request.getId());
//        item.setSort(request.getSort());
//
//        int rowCount = mapper.updateById(item);
//        if (rowCount != 1) {
//            return ExecutedResult.failed("设置[定时任务执行记录]排序值失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> listSetSort(ReqListSetSort request) {
//        // id列表
//        List<Long> listId = request.getList().stream().map(ReqSetSort::getId).collect(Collectors.toList());
//        // 验证记录是否存在
//        ExecutedResult<List<QuartzTaskRecordPO>> checkExists = this.check4Id(listId);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//
//        List<QuartzTaskRecordPO> listUpdate = request.getList().stream()
//                .map(c -> {
//                    QuartzTaskRecordPO item = new QuartzTaskRecordPO();
//                    item.setId(c.getId());
//                    item.setSort(c.getSort());
//                    return item;
//                })
//                .collect(Collectors.toList());
//        Boolean result = mapper.modifyList(listUpdate);
//        if (result) {
//            return ExecutedResult.success();
//        }
//        return ExecutedResult.failed("[定时任务执行记录]设置排序值失败");
//    }
//
//    public ExecutedResult<String> remove(Long id) {
//        Boolean result = mapper.deleteLogic(id);
//        if (BooleanUtils.isFalse(result)) {
//            return ExecutedResult.failed("删除[定时任务执行记录]失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> removeList(List<Long> ids) {
//        Boolean result = mapper.deleteLogic(ids);
//        if (BooleanUtils.isFalse(result)) {
//            return ExecutedResult.failed("删除[定时任务执行记录]失败。");
//        }
//        return ExecutedResult.success();
//    }
    public ExecutedResult<List<QuartzTaskRecordVO>> getList(List<Long> listId) {
        List<QuartzTaskRecordVO> result = new ArrayList<>();
        List<QuartzTaskRecordPO> list = mapper.getList(listId);
        if (ListUtil.isNotNullOrEmpty(list)) {
            // 转换vo
            result = QuartzTaskRecordConvert.INSTANCE.toVo(list);
        }
        return ExecutedResult.success(result);
    }
    public ExecutedResult<PagerResult<QuartzTaskRecordVO>> search(SearchQuartzTaskRecord search) {
        // 处理创建时间范围-查询参数
        Tuple<String, String> createTimeRange = ParameterUtil.getTimeRange(search.getCreateTimeRange());
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem1())) {
            search.setCreateTimeStart(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem1()).getTime());
        }
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem2())) {
            search.setCreateTimeEnd(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem2()).getTime());
        }
        PagerResult<QuartzTaskRecordPO> pageList = mapper.search(search);
        List<QuartzTaskRecordVO> listVo = new ArrayList<>();
        List<QuartzTaskRecordPO> list = pageList.getList();
        if (ListUtil.isNotNullOrEmpty(list)) {
            pageList.setLastId(list.get(list.size() - 1).getId());
            // 转换vo
            listVo = QuartzTaskRecordConvert.INSTANCE.toVo(list);
        }
        PagerResult<QuartzTaskRecordVO> result = new PagerResult<>(pageList.getLimit(), pageList.getPage(), pageList.getTotal(), listVo);
        result.setLastId(pageList.getLastId());
        return ExecutedResult.success(result);
    }
    protected ExecutedResult<QuartzTaskRecordPO> check4Id(Long id) {
        QuartzTaskRecordPO exists = mapper.get(id);
        if (Objects.isNull(exists)) {
            return ExecutedResult.failed("[定时任务执行记录]不存在:" + id);
        }
        return ExecutedResult.success(exists);
    }
    protected ExecutedResult<List<QuartzTaskRecordPO>> check4Id(List<Long> listId) {
        // 从数据库查找定时任务执行记录
        List<QuartzTaskRecordPO> list = mapper.getList(listId);
        if (ListUtil.isNullOrEmpty(list)) {
            return ExecutedResult.failed("[定时任务执行记录]不存在." + listId);
        }
        // 数据库找到的id列表
        List<Long> listIdFind = list.stream().map(QuartzTaskRecordPO::getId).collect(Collectors.toList());
        // 数量不一致
        if (listId.size() != listIdFind.size()) {
            // 筛选数据库不存在的定时任务执行记录
            List<Long> listIdNotFound = listId.stream().filter(c -> !listIdFind.contains(c)).collect(Collectors.toList());
            if (ListUtil.isNullOrEmpty(list)) {
                return ExecutedResult.failed("[定时任务执行记录]不存在." + listIdNotFound);
            }
        }
        return ExecutedResult.success(list);
    }}
src/main/java/com/nanjing/water/service/SysDictDataService.java
对比新文件
@@ -0,0 +1,390 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.service;
import com.nanjing.water.common.ExecutedResult;
import com.nanjing.water.common.PagerResult;
import com.nanjing.water.common.enums.EYesOrNo;
import com.nanjing.water.common.jwt.LoginUserDTO;
import com.nanjing.water.common.model.Tuple;
import com.nanjing.water.common.util.ListUtil;
import com.nanjing.water.common.util.LocalDateTimeUtil;
import com.nanjing.water.common.util.ParameterUtil;
import com.nanjing.water.common.util.StringUtil;
import com.nanjing.water.entity.enums.EState;
import com.nanjing.water.entity.request.sysdictdata.ReqCreateSysDictData;
import com.nanjing.water.entity.request.sysdictdata.ReqModifySysDictData;
import com.nanjing.water.entity.search.SearchSysDictData;
import com.nanjing.water.repository.impl.SysDictDataMapperImpl;
import com.nanjing.water.repository.impl.SysDictTypeMapperImpl;
import com.nanjing.water.repository.po.SysDictDataPO;
import com.nanjing.water.repository.po.SysDictTypePO;
import com.nanjing.water.repository.vo.SysDictDataVO;
import com.nanjing.water.service.convert.SysDictDataConvert;
import org.apache.commons.lang3.BooleanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
 * 字典数据表
 * @author lin.liu
 * @description 字典数据表
 */
@Service
public class SysDictDataService extends BaseService {
    @Autowired
    private SysDictDataMapperImpl mapper;
    @Autowired
    private SysDictTypeMapperImpl dictTypeMapper;
    @Autowired
    private SysDictTypeService dictTypeService;
    public ExecutedResult<Long> create(ReqCreateSysDictData request, LoginUserDTO loginUser) {
        // 校验类型
        dictTypeService.check4TypeExc(request.getDictType());
        // 转换po
        SysDictDataPO item = SysDictDataConvert.INSTANCE.toCreate(request);
        // 设置状态
        item.setStatus(EState.NORMAL.getValue());
        // 设置记录创建时间
        item.setCreateTime(LocalDateTimeUtil.nowTimeStamp());
        // 是否删除(逻辑删除)初始值
        item.setIsDelete(EYesOrNo.NO.getValue());
        int rowCount = mapper.insert(item);
        if (rowCount != 1) {
            return ExecutedResult.failed("创建[字典数据表]失败。");
        }
        // 删除所有缓存
        this.removeAllTypeCache();
        return ExecutedResult.success(item.getId());
    }
    public ExecutedResult<String> modify(ReqModifySysDictData request, LoginUserDTO loginUser) {
        // 验证记录是否存在
        ExecutedResult<SysDictDataPO> checkExists = this.check4Id(request.getId());
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        // 转换po
        SysDictDataPO item = SysDictDataConvert.INSTANCE.toModify(request);
        int rowCount = mapper.updateById(item);
        if (rowCount != 1) {
            return ExecutedResult.failed("编辑[字典数据表]失败。");
        }
        // 删除所有缓存
        this.removeAllTypeCache();
        return ExecutedResult.success();
    }
    public ExecutedResult<SysDictDataVO> get(Long id) {
        SysDictDataVO result = new SysDictDataVO();
        SysDictDataPO find = mapper.get(id);
        if (null != find) {
            // 转换po
            result = SysDictDataConvert.INSTANCE.toVo(find);
            // 赋值类型名称
            result.setDictTypeTxt("");
            SysDictTypePO type = dictTypeMapper.get4Type(find.getDictType());
            if (Objects.nonNull(type)) {
                result.setDictTypeTxt(type.getDictName());
            }
        }
        return ExecutedResult.success(result);
    }
    //    public ExecutedResult<String> stop(Long id) {
//        // 验证记录是否存在
//        ExecutedResult<SysDictDataPO> checkExists = this.check4Id(id);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        SysDictDataPO item = new SysDictDataPO();
//        item.setId(id);
//        item.setStatus(EState.DISABLED.getValue());
//
//        int rowCount = mapper.updateById(item);
//        if (rowCount != 1) {
//           return ExecutedResult.failed("停用[字典数据表]失败。");
//       }
//       return ExecutedResult.success();
//   }
//
//    public ExecutedResult<String> enable(Long id) {
//        // 验证记录是否存在
//        ExecutedResult<SysDictDataPO> checkExists = this.check4Id(id);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        SysDictDataPO item = new SysDictDataPO();
//        item.setId(id);
//        item.setStatus(EState.NORMAL.getValue());
//
//        int rowCount = mapper.updateById(item);\n" +
//        if (rowCount != 1) {
//            return ExecutedResult.failed("启用[字典数据表]失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> setSort(ReqSetSort request) {
//        // 验证记录是否存在
//        ExecutedResult<SysDictDataPO> checkExists = this.check4Id(request.getId());
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        SysDictDataPO item = new SysDictDataPO();
//        item.setId(request.getId());
//        item.setSort(request.getSort());
//
//        int rowCount = mapper.updateById(item);\n" +
//        if (rowCount != 1) {
//            return ExecutedResult.failed("设置[字典数据表]排序值失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> listSetSort(ReqListSetSort request) {
//        // id列表
//        List<Long> listId = request.getList().stream().map(ReqSetSort::getId).collect(Collectors.toList());
//        // 验证记录是否存在
//        ExecutedResult<List<SysDictDataPO>> checkExists = this.check4Id(listId);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//
//        List<SysDictDataPO> listUpdate = request.getList().stream()
//                .map(c -> {
//                    SysDictDataPO item = new SysDictDataPO();
//                    item.setId(c.getId());
//                    item.setSort(c.getSort());
//                    return item;
//                })
//                .collect(Collectors.toList());
//        Boolean result = mapper.modifyList(listUpdate);
//        if (result) {
//            return ExecutedResult.success();
//        }
//        return ExecutedResult.failed("[字典数据表]设置排序值失败");
//    }
//
    public ExecutedResult<String> remove(Long id) {
        Boolean result = mapper.remove(id);
        if (BooleanUtils.isFalse(result)) {
            return ExecutedResult.failed("删除[字典数据表]失败。");
        }
        // 删除所有缓存
        this.removeAllTypeCache();
        return ExecutedResult.success();
    }
    public ExecutedResult<String> removeList(List<Long> ids) {
        Boolean result = mapper.remove(ids);
        if (BooleanUtils.isFalse(result)) {
            return ExecutedResult.failed("删除[字典数据表]失败。");
        }
        // 删除所有缓存
        this.removeAllTypeCache();
        return ExecutedResult.success();
    }
    /**
     * 根据类型查询数据
     * @param type 字典类型
     */
    public ExecutedResult<List<SysDictDataVO>> getListByType(String type) {
        List<SysDictDataVO> result = new ArrayList<>();
        List<SysDictDataPO> list = this.mapper.getListByType(type);
        if (ListUtil.isNotNullOrEmpty(list)) {
            List<SysDictTypePO> listType = dictTypeMapper.get4Type(
                    list.stream()
                            .map(SysDictDataPO::getDictType)
                            .distinct()
                            .collect(Collectors.toList())
            );
            Map<Object, SysDictTypePO> map4Type = listType.stream().collect(Collectors.toMap(SysDictTypePO::getId, c -> c));
            for (SysDictDataPO item : list) {
                // 转化vo
                SysDictDataVO vo = SysDictDataConvert.INSTANCE.toVo(item);
                // 赋值类型名称
                vo.setDictTypeTxt("");
                if (map4Type.containsKey(item.getDictType())) {
                    vo.setDictTypeTxt(map4Type.get(item.getDictType()).getDictName());
                }
                result.add(vo);
            }
        }
        return ExecutedResult.success(result);
    }
    /**
     * 根据类型查询数据
     * @param listId 字典数据id列表
     */
    public ExecutedResult<List<SysDictDataVO>> getList(List<Long> listId) {
        List<SysDictDataVO> result = new ArrayList<>();
        List<SysDictDataPO> list = mapper.getList(listId);
        if (ListUtil.isNotNullOrEmpty(list)) {
            List<SysDictTypePO> listType = dictTypeMapper.get4Type(
                    list.stream()
                            .map(SysDictDataPO::getDictType)
                            .distinct()
                            .collect(Collectors.toList())
            );
            Map<Object, SysDictTypePO> map4Type = listType.stream().collect(Collectors.toMap(SysDictTypePO::getId, c -> c));
            for (SysDictDataPO item : list) {
                // 转化vo
                SysDictDataVO vo = SysDictDataConvert.INSTANCE.toVo(item);
                // 赋值类型名称
                vo.setDictTypeTxt("");
                if (map4Type.containsKey(item.getDictType())) {
                    vo.setDictTypeTxt(map4Type.get(item.getDictType()).getDictName());
                }
                result.add(vo);
            }
        }
        return ExecutedResult.success(result);
    }
    public ExecutedResult<PagerResult<SysDictDataVO>> search(SearchSysDictData search) {
        // 处理创建时间范围-查询参数
        Tuple<String, String> createTimeRange = ParameterUtil.getTimeRange(search.getCreateTimeRange());
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem1())) {
            search.setCreateTimeStart(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem1()).getTime());
        }
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem2())) {
            search.setCreateTimeEnd(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem2()).getTime());
        }
        PagerResult<SysDictDataPO> pageList = mapper.search(search);
        List<SysDictDataVO> listVo = new ArrayList<>();
        List<SysDictDataPO> list = pageList.getList();
        if (ListUtil.isNotNullOrEmpty(list)) {
            pageList.setLastId(list.get(list.size() - 1).getId());
            List<SysDictTypePO> listType = dictTypeMapper.get4Type(
                    list.stream()
                            .map(SysDictDataPO::getDictType)
                            .distinct()
                            .collect(Collectors.toList())
            );
            Map<Object, SysDictTypePO> map4Type = listType.stream().collect(Collectors.toMap(SysDictTypePO::getId, c -> c));
            for (SysDictDataPO item : list) {
                // 转化vo
                SysDictDataVO vo = SysDictDataConvert.INSTANCE.toVo(item);
                // 赋值类型名称
                vo.setDictTypeTxt("");
                if (map4Type.containsKey(item.getDictType())) {
                    vo.setDictTypeTxt(map4Type.get(item.getDictType()).getDictName());
                }
                listVo.add(vo);
            }
        }
        PagerResult<SysDictDataVO> result = new PagerResult<>(pageList.getLimit(), pageList.getPage(), pageList.getTotal(), listVo);
        result.setLastId(pageList.getLastId());
        return ExecutedResult.success(result);
    }
    protected ExecutedResult<SysDictDataPO> check4Id(Long id) {
        SysDictDataPO exists = mapper.get(id);
        if (Objects.isNull(exists)) {
            return ExecutedResult.failed("[字典数据表]不存在:" + id);
        }
        return ExecutedResult.success(exists);
    }
    protected ExecutedResult<List<SysDictDataPO>> check4Id(List<Long> listId) {
        // 从数据库查找字典数据表
        List<SysDictDataPO> list = mapper.getList(listId);
        if (ListUtil.isNullOrEmpty(list)) {
            return ExecutedResult.failed("[字典数据表]不存在." + listId);
        }
        // 数据库找到的id列表
        List<Long> listIdFind = list.stream().map(SysDictDataPO::getId).collect(Collectors.toList());
        // 数量不一致
        if (listId.size() != listIdFind.size()) {
            // 筛选数据库不存在的字典数据表
            List<Long> listIdNotFound = listId.stream().filter(c -> !listIdFind.contains(c)).collect(Collectors.toList());
            if (ListUtil.isNullOrEmpty(list)) {
                return ExecutedResult.failed("[字典数据表]不存在." + listIdNotFound);
            }
        }
        return ExecutedResult.success(list);
    }
    /**
     * 获取指定类型下的字典列表(缓存)
     */
    @Cacheable(cacheManager = "json4RedisCacheManager", value = "dictDataCache4Type", key = "#type")
    private List<SysDictDataVO> list4TypeWithCache(String type, Function<String, List<SysDictDataVO>> funcList4Type) {
        return funcList4Type.apply(type);
    }
    // 根据类型删除字典列表缓存
    @CacheEvict(cacheNames = "dictDataCache4Type", key = "#type")
    private void removeList4TypeCache(String type) {
    }
    // 删除所有用户拥有的菜单缓存
    @CacheEvict(cacheNames = "dictDataCache4Type", allEntries = true)
    public void removeAllTypeCache() {
    }
    public List<SysDictDataVO> list4TypeWithCache(String type) {
        return this.list4TypeWithCache(type, (t) -> this.getListByType(t).getData());
    }
    public Map<String, SysDictDataVO> map4TypeWithCache(String type) {
        List<SysDictDataVO> list = this.list4TypeWithCache(type);
        return list.stream().collect(Collectors.toMap(SysDictDataVO::getDictValue, c -> c));
    }
    public Map<String, SysDictDataVO> mapLabel4TypeWithCache(String type) {
        List<SysDictDataVO> list = this.list4TypeWithCache(type);
        return list.stream().collect(Collectors.toMap(SysDictDataVO::getDictLabel, c -> c));
    }
}
src/main/java/com/nanjing/water/service/SysDictTypeService.java
对比新文件
@@ -0,0 +1,323 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.service;
import com.nanjing.water.common.ExecutedResult;
import com.nanjing.water.common.PagerResult;
import com.nanjing.water.common.enums.EResultCode;
import com.nanjing.water.common.enums.EYesOrNo;
import com.nanjing.water.common.exceptions.BusinessException;
import com.nanjing.water.common.model.Tuple;
import com.nanjing.water.common.util.*;
import com.nanjing.water.entity.enums.EState;
import com.nanjing.water.entity.request.sysdicttype.ReqCreateSysDictType;
import com.nanjing.water.entity.request.sysdicttype.ReqModifySysDictType;
import com.nanjing.water.entity.search.SearchSysDictType;
import com.nanjing.water.repository.impl.SysDictDataMapperImpl;
import com.nanjing.water.repository.impl.SysDictTypeMapperImpl;
import com.nanjing.water.repository.po.SysDictTypePO;
import com.nanjing.water.repository.vo.SysDictTypeVO;
import org.apache.commons.lang3.BooleanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
 * 字典类型表
 * @author lin.liu
 * @description 字典类型表
 */
@Service
public class SysDictTypeService extends BaseService {
    @Autowired
    private SysDictTypeMapperImpl mapper;
    @Autowired
    private SysDictDataMapperImpl sysDictDataMapper;
    public ExecutedResult<Long> create(ReqCreateSysDictType request) {
        // 转换po
        SysDictTypePO item = CopierUtil.mapTo(request, SysDictTypePO.class);
        // 设置状态
        item.setStatus(EState.NORMAL.getValue());
        // 设置记录创建时间
        item.setCreateTime(LocalDateTimeUtil.nowTimeStamp());
        // 是否删除(逻辑删除)初始值
        item.setIsDelete(EYesOrNo.NO.getValue());
        int rowCount = mapper.insert(item);
        if (rowCount != 1) {
            return ExecutedResult.failed("创建[字典类型表]失败。");
        }
        return ExecutedResult.success(item.getId());
    }
    public ExecutedResult<String> modify(ReqModifySysDictType request) {
        // 验证记录是否存在
        ExecutedResult<SysDictTypePO> checkExists = this.check4Id(request.getId());
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        // 转换po
        SysDictTypePO item = CopierUtil.mapTo(request, SysDictTypePO.class);
        int rowCount = mapper.updateById(item);
        if (rowCount != 1) {
            return ExecutedResult.failed("编辑[字典类型表]失败。");
        }
        return ExecutedResult.success();
    }
    public ExecutedResult<SysDictTypeVO> get(Long id) {
        SysDictTypeVO result = new SysDictTypeVO();
        SysDictTypePO find = mapper.get(id);
        if (null != find) {
            result = CopierUtil.mapTo(find, SysDictTypeVO.class);
        }
        return ExecutedResult.success(result);
    }
    public ExecutedResult<String> remove(Long id) {
        // 验证记录是否存在
        ExecutedResult<SysDictTypePO> checkExists = this.check4Id(id);
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        Long exitCount = sysDictDataMapper.count4Type(checkExists.getData().getDictType());
        if(exitCount.compareTo(0L) > 0){
            return ExecutedResult.failed("此类型有关联的字典数据,不能删除");
        }
        Boolean result = this.mapper.remove(id);
        if (BooleanUtils.isFalse(result)) {
            return ExecutedResult.failed("删除[字典类型表]失败。");
        }
        return ExecutedResult.success();
    }
    public ExecutedResult<String> removeList(List<Long> ids) {
        // 验证记录是否存在
        ExecutedResult<List<SysDictTypePO>> checkExists = this.check4Id(ids);
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        List<String> listExitDataType = sysDictDataMapper.findExists4Type(
                checkExists.getData().stream()
                    .map(SysDictTypePO::getDictType)
                    .collect(Collectors.toList())
        );
        if (ListUtil.isNotNullOrEmpty(listExitDataType)) {
            return ExecutedResult.failed("以下类型有关联的字典数据,不能删除." + listExitDataType);
        }
        Boolean result = mapper.remove(ids);
        if (BooleanUtils.isFalse(result)) {
            return ExecutedResult.failed("删除[字典类型表]失败。");
        }
        return ExecutedResult.success();
    }
//    public ExecutedResult<String> stop(Long id) {
//        // 验证记录是否存在
//        ExecutedResult<SysDictTypePO> checkExists = this.check4Id(id);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        SysDictTypePO item = new SysDictTypePO();
//        item.setId(id);
//        item.setStatus(EState.DISABLED.getValue());
//
//        int rowCount = mapper.updateById(item);
//        if (rowCount != 1) {
//           return ExecutedResult.failed("停用[字典类型表]失败。");
//       }
//       return ExecutedResult.success();
//   }
//
//    public ExecutedResult<String> enable(Long id) {
//        // 验证记录是否存在
//        ExecutedResult<SysDictTypePO> checkExists = this.check4Id(id);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        SysDictTypePO item = new SysDictTypePO();
//        item.setId(id);
//        item.setStatus(EState.NORMAL.getValue());
//
//        int rowCount = mapper.updateById(item);\n" +
//        if (rowCount != 1) {
//            return ExecutedResult.failed("启用[字典类型表]失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> setSort(ReqSetSort request) {
//        // 验证记录是否存在
//        ExecutedResult<SysDictTypePO> checkExists = this.check4Id(request.getId());
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        SysDictTypePO item = new SysDictTypePO();
//        item.setId(request.getId());
//        item.setSort(request.getSort());
//
//        int rowCount = mapper.updateById(item);\n" +
//        if (rowCount != 1) {
//            return ExecutedResult.failed("设置[字典类型表]排序值失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> listSetSort(ReqListSetSort request) {
//        // id列表
//        List<Long> listId = request.getList().stream().map(ReqSetSort::getId).collect(Collectors.toList());
//        // 验证记录是否存在
//        ExecutedResult<List<SysDictTypePO>> checkExists = this.check4Id(listId);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//
//        List<SysDictTypePO> listUpdate = request.getList().stream()
//                .map(c -> {
//                    SysDictTypePO item = new SysDictTypePO();
//                    item.setId(c.getId());
//                    item.setSort(c.getSort());
//                    return item;
//                })
//                .collect(Collectors.toList());
//        Boolean result = mapper.modifyList(listUpdate);
//        if (result) {
//            return ExecutedResult.success();
//        }
//        return ExecutedResult.failed("[字典类型表]设置排序值失败");
//    }
//
//    public ExecutedResult<String> remove(Long id) {
//        Boolean result = mapper.deleteLogic(id);
//        if (BooleanUtils.isFalse(result)) {
//            return ExecutedResult.failed("删除[字典类型表]失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> removeList(List<Long> ids) {
//        Boolean result = mapper.deleteLogic(ids);
//        if (BooleanUtils.isFalse(result)) {
//            return ExecutedResult.failed("删除[字典类型表]失败。");
//        }
//        return ExecutedResult.success();
//    }
    public ExecutedResult<List<SysDictTypeVO>> getList(List<Long> listId) {
        List<SysDictTypeVO> result = new ArrayList<>();
        List<SysDictTypePO> list = mapper.getList(listId);
        if (ListUtil.isNotNullOrEmpty(list)) {
            result = CopierUtil.mapTo(list, SysDictTypeVO.class);
        }
        return ExecutedResult.success(result);
    }
    public ExecutedResult<PagerResult<SysDictTypeVO>> search(SearchSysDictType search) {
        // 处理创建时间范围-查询参数
        Tuple<String, String> createTimeRange = ParameterUtil.getTimeRange(search.getCreateTimeRange());
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem1())) {
            search.setCreateTimeStart(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem1()).getTime());
        }
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem2())) {
            search.setCreateTimeEnd(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem2()).getTime());
        }
        PagerResult<SysDictTypePO> pageList = mapper.search(search);
        List<SysDictTypeVO> listVo = new ArrayList<>();
        List<SysDictTypePO> list = pageList.getList();
        if (ListUtil.isNotNullOrEmpty(list)) {
            pageList.setLastId(list.get(list.size() - 1).getId());
            // 转换vo
            listVo = CopierUtil.mapTo(list, SysDictTypeVO.class);
        }
        PagerResult<SysDictTypeVO> result = new PagerResult<>(pageList.getLimit(), pageList.getPage(), pageList.getTotal(), listVo);
        result.setLastId(pageList.getLastId());
        return ExecutedResult.success(result);
    }
    protected ExecutedResult<SysDictTypePO> check4Id(Long id) {
        SysDictTypePO exists = mapper.get(id);
        if (Objects.isNull(exists)) {
            return ExecutedResult.failed("[字典类型]不存在:" + id);
        }
        return ExecutedResult.success(exists);
    }
    protected SysDictTypePO check4IdExc(Long id) {
        ExecutedResult<SysDictTypePO> check = this.check4Id(id);
        if (check.isFailed()) {
            throw new BusinessException(EResultCode.NOT_FOUND, check.getMsg());
        }
        return check.getData();
    }
    protected ExecutedResult<List<SysDictTypePO>> check4Id(List<Long> listId) {
        // 从数据库查找字典类型表
        List<SysDictTypePO> list = mapper.getList(listId);
        if (ListUtil.isNullOrEmpty(list)) {
            return ExecutedResult.failed("[字典类型]不存在." + listId);
        }
        // 数据库找到的id列表
        List<Long> listIdFind = list.stream().map(SysDictTypePO::getId).collect(Collectors.toList());
        // 数量不一致
        if (listId.size() != listIdFind.size()) {
            // 筛选数据库不存在的字典类型表
            List<Long> listIdNotFound = listId.stream().filter(c -> !listIdFind.contains(c)).collect(Collectors.toList());
            if (ListUtil.isNullOrEmpty(list)) {
                return ExecutedResult.failed("[字典类型]不存在." + listIdNotFound);
            }
        }
        return ExecutedResult.success(list);
    }
    protected List<SysDictTypePO> check4IdExc(List<Long> listId) {
        ExecutedResult<List<SysDictTypePO>> check = this.check4Id(listId);
        if (check.isFailed()) {
            throw new BusinessException(EResultCode.NOT_FOUND, check.getMsg());
        }
        return check.getData();
    }
    protected ExecutedResult<SysDictTypePO> check4Type(String type) {
        SysDictTypePO exists = mapper.get4Type(type);
        if (Objects.isNull(exists)) {
            return ExecutedResult.failed("[字典类型]不存在:" + type);
        }
        return ExecutedResult.success(exists);
    }
    protected SysDictTypePO check4TypeExc(String type) {
        ExecutedResult<SysDictTypePO> check = this.check4Type(type);
        if (check.isFailed()) {
            throw new BusinessException(EResultCode.NOT_FOUND, check.getMsg());
        }
        return check.getData();
    }
}
src/main/java/com/nanjing/water/service/SysRegionService.java
对比新文件
@@ -0,0 +1,258 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.service;
import com.nanjing.water.common.*;
import com.nanjing.water.common.enums.*;
import com.nanjing.water.common.exceptions.BusinessException;
import com.nanjing.water.common.model.Tuple;
import com.nanjing.water.common.util.*;
import com.nanjing.water.entity.request.sysregion.ReqCreateSysRegion;
import com.nanjing.water.entity.request.sysregion.ReqModifySysRegion;
import com.nanjing.water.entity.response.region.ResRegionTree;
import com.nanjing.water.entity.search.SearchSysRegion;
import com.nanjing.water.repository.impl.SysRegionMapperImpl;
import com.nanjing.water.repository.po.SysRegionPO;
import com.nanjing.water.repository.vo.SysRegionVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
 * 系统行政地区
 * @author lin.liu
 */
@Service
public class SysRegionService extends BaseService {
    @Autowired
    private SysRegionMapperImpl mapper;
    public ExecutedResult<Long> create(ReqCreateSysRegion request) {
        // 转换po
        SysRegionPO item = CopierUtil.mapTo(request, SysRegionPO.class);
        // 设置状态
        //item.setStatus(EState.NORMAL.getValue());
        // 设置记录创建时间
        item.setCreateTime(LocalDateTimeUtil.nowTimeStamp());
        // 是否删除(逻辑删除)初始值
        item.setIsDelete(EYesOrNo.NO.getValue());
        int rowCount = mapper.insert(item);
        if (rowCount != 1) {
            return ExecutedResult.failed("创建[系统行政地区]失败。");
        }
        return ExecutedResult.success(item.getId());
    }
    public ExecutedResult<String> modify(ReqModifySysRegion request) {
        // 验证记录是否存在
        ExecutedResult<SysRegionPO> checkExists = this.check4Id(request.getId());
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        // 转换po
        SysRegionPO item = CopierUtil.mapTo(request, SysRegionPO.class);
        int rowCount = mapper.updateById(item);
        if (rowCount != 1) {
            return ExecutedResult.failed("编辑[系统行政地区]失败。");
        }
        return ExecutedResult.success();
    }
    public ExecutedResult<SysRegionVO> get(String code) {
        SysRegionVO result = new SysRegionVO();
        SysRegionPO find = mapper.get4Code(code);
        if (null != find) {
            result = CopierUtil.mapTo(find, SysRegionVO.class);
        }
        return ExecutedResult.success(result);
    }
    public ExecutedResult<List<SysRegionVO>> getList(List<Long> listId) {
        List<SysRegionVO> result = new ArrayList<>();
        List<SysRegionPO> list = mapper.getList(listId);
        if (ListUtil.isNotNullOrEmpty(list)) {
            result = CopierUtil.mapTo(list, SysRegionVO.class);
        }
        return ExecutedResult.success(result);
    }
    public ExecutedResult<List<ResRegionTree>> getListChild(String code) {
        List<SysRegionPO> list = null;
        if (StringUtil.isNullOrEmpty(code)) {
            list = mapper.getList4Level(1);
        } else {
            list = mapper.getList4Parent(code);
        }
        if (ListUtil.isNullOrEmpty(list)) {
            return ExecutedResult.success(new ArrayList<>());
        }
        return ExecutedResult.success(CopierUtil.mapTo(list, ResRegionTree.class));
    }
    public void fillChildMenu(ResRegionTree view, List<SysRegionPO> list) {
        List<SysRegionPO> listChild = list.stream()
                .filter(c -> c.getParentCode().equals(view.getCode()))
                .collect(Collectors.toList());
        view.setChildren(new ArrayList<>());
        if (ListUtil.isNullOrEmpty(listChild)) {
            return;
        }
        listChild = listChild.stream()
                .sorted(Comparator.comparing(SysRegionPO::getSort))
                .collect(Collectors.toList());
        for (SysRegionPO child : listChild) {
            ResRegionTree viewChild = CopierUtil.mapTo(child, ResRegionTree.class);
            this.fillChildMenu(viewChild, list);
            view.getChildren().add(viewChild);
        }
    }
    public ExecutedResult<PagerResult<SysRegionVO>> search(SearchSysRegion search) {
        // 处理创建时间范围-查询参数
        Tuple<String, String> createTimeRange = ParameterUtil.getTimeRange(search.getCreateTimeRange());
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem1())) {
            search.setCreateTimeStart(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem1()).getTime());
        }
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem2())) {
            search.setCreateTimeEnd(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem2()).getTime());
        }
        PagerResult<SysRegionPO> pageList = mapper.search(search);
        List<SysRegionVO> listVo = new ArrayList<>();
        List<SysRegionPO> list = pageList.getList();
        if (ListUtil.isNotNullOrEmpty(list)) {
            pageList.setLastId(list.get(list.size() - 1).getId());
            // 转换vo
            listVo = CopierUtil.mapTo(list, SysRegionVO.class);
        }
        PagerResult<SysRegionVO> result = new PagerResult<>(pageList.getLimit(), pageList.getPage(), pageList.getTotal(), listVo);
        result.setLastId(pageList.getLastId());
        return ExecutedResult.success(result);
    }
    protected ExecutedResult<SysRegionPO> check4Id(Long id) {
        SysRegionPO exists = mapper.get(id);
        if (Objects.isNull(exists)) {
            return ExecutedResult.failed("[系统行政地区]不存在:" + id);
        }
        return ExecutedResult.success(exists);
    }
    protected ExecutedResult<List<SysRegionPO>> check4Id(List<Long> listId) {
        // 从数据库查找系统行政地区
        List<SysRegionPO> list = mapper.getList(listId);
        if (ListUtil.isNullOrEmpty(list)) {
            return ExecutedResult.failed("[系统行政地区]不存在." + listId);
        }
        // 数据库找到的id列表
        List<Long> listIdFind = list.stream().map(SysRegionPO::getId).collect(Collectors.toList());
        // 数量不一致
        if (listId.size() != listIdFind.size()) {
            // 筛选数据库不存在的系统行政地区
            List<Long> listIdNotFound = listId.stream().filter(c -> !listIdFind.contains(c)).collect(Collectors.toList());
            if (ListUtil.isNullOrEmpty(list)) {
                return ExecutedResult.failed("[系统行政地区]不存在." + listIdNotFound);
            }
        }
        return ExecutedResult.success(list);
    }
    public void fillChild(ResRegionTree view, List<SysRegionPO> list) {
        List<SysRegionPO> listChild = list.stream()
                .filter(c -> c.getParentCode().equals(view.getCode()))
                .collect(Collectors.toList());
        view.setChildren(new ArrayList<>());
        if (ListUtil.isNullOrEmpty(listChild)) {
            return;
        }
        listChild = listChild.stream()
                .sorted(Comparator.comparing(SysRegionPO::getSort))
                .collect(Collectors.toList());
        for (SysRegionPO child : listChild) {
            ResRegionTree viewChild = CopierUtil.mapTo(child, ResRegionTree.class);
            this.fillChild(viewChild, list);
            view.getChildren().add(viewChild);
        }
    }
    public ExecutedResult<SysRegionPO> check4Code(String code) {
        SysRegionPO exists = mapper.get4Code(code);
        if (Objects.isNull(exists)) {
            return ExecutedResult.failed("[系统行政地区]不存在:" + code);
        }
        return ExecutedResult.success(exists);
    }
    protected ExecutedResult<List<SysRegionPO>> check4Code(List<String> listCode) {
        // 从数据库查找系统行政地区
        List<SysRegionPO> list = mapper.list4Code(listCode);
        if (ListUtil.isNullOrEmpty(list)) {
            return ExecutedResult.failed("[系统行政地区]不存在." + listCode);
        }
        // 数据库找到的id列表
        List<String> listIdFind = list.stream().map(SysRegionPO::getCode).collect(Collectors.toList());
        // 数量不一致
        if (listCode.size() != listIdFind.size()) {
            // 筛选数据库不存在的系统行政地区
            List<String> listIdNotFound = listCode.stream().filter(c -> !listIdFind.contains(c)).collect(Collectors.toList());
            if (ListUtil.isNullOrEmpty(list)) {
                return ExecutedResult.failed("[系统行政地区]不存在." + listIdNotFound);
            }
        }
        return ExecutedResult.success(list);
    }
    public ExecutedResult<ResRegionTree> currAndTree(String code) {
        // 校验区域信息
        ExecutedResult<SysRegionPO> checkRegion = this.check4Code(code);
        if (checkRegion.isFailed()) {
            return ExecutedResult.failed(checkRegion.getMsg());
        }
        SysRegionPO curr = checkRegion.getData();
        ResRegionTree result = CopierUtil.mapTo(curr, ResRegionTree.class);
        List<SysRegionPO> list = mapper.getList4LevelChild(curr.getLevel());
        if (ListUtil.isNullOrEmpty(list)) {
            return ExecutedResult.success(result);
        }
        this.fillChild(result, list);
        return ExecutedResult.success(result);
    }
    public List<SysRegionPO> check4CodeExc(List<String> listRegion) {
        ExecutedResult<List<SysRegionPO>> check4Code = this.check4Code(listRegion);
        if (check4Code.isFailed()) {
            throw new BusinessException(check4Code.getMsg());
        }
        return check4Code.getData();
    }
}
src/main/java/com/nanjing/water/service/WaterFacilityParameterService.java
对比新文件
@@ -0,0 +1,284 @@
/**
 * #                                                    __----~~~~~~~~~~~------___
 * #                                   .  .   ~~//====......          __--~ ~~
 * #                   -.            \_|//     |||\\  ~~~~~~::::... /~
 * #                ___-==_       _-~o~  \/    |||  \\            _/~~-
 * #        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
 * #    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
 * #  .~       .~       |   \\ -_    /  /-   /   ||      \   /
 * # /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
 * # |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
 * #          '         ~-|      /|    |-~\~~       __--~~
 * #                      |-~~-_/ |    |   ~\_   _-~            /\
 * #                           /  \     \__   \/~                \__
 * #                       _--~ _/ | .-~~____--~-/                  ~~==.
 * #                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
 * #                                 -_     ~\      ~~---l__i__i__i--~~_/
 * #                                 _-~-__   ~)  \--______________--~~
 * #                               //.-~~~-~_--~- |-------~~~~~~~~
 * #                                      //.-~~~--\
 * #                  神兽保佑
 * #                  永无BUG!
 */
package com.nanjing.water.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.nanjing.water.common.*;
import com.nanjing.water.common.model.Tuple;
import com.nanjing.water.common.util.*;
import com.nanjing.water.entity.request.waterfacilityparameter.ReqAddParameter;
import com.nanjing.water.entity.request.waterfacilityparameter.ReqCreateWaterFacilityParameter;
import com.nanjing.water.entity.request.waterfacilityparameter.ReqModifyWaterFacilityParameter;
import com.nanjing.water.entity.search.SearchWaterFacilityParameter;
import com.nanjing.water.repository.impl.WaterFacilityMapperImpl;
import com.nanjing.water.repository.impl.WaterFacilityParameterMapperImpl;
import com.nanjing.water.repository.impl.WaterMonitoryPointMapperImpl;
import com.nanjing.water.repository.po.WaterFacilityPO;
import com.nanjing.water.repository.po.WaterFacilityParameterPO;
import com.nanjing.water.repository.vo.WaterFacilityParameterVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
 * 设备设定参数
 * @author lin.liu
 */
@Service
public class WaterFacilityParameterService extends BaseService {
    @Autowired
    private WaterFacilityParameterMapperImpl mapper;
    @Autowired
    private WaterFacilityMapperImpl waterFacilityMapper;
    @Autowired
    private WaterMonitoryPointMapperImpl waterMonitoryPointMapper;
    public ExecutedResult<String> create(ReqAddParameter request) {
        WaterFacilityPO facilityPO = waterFacilityMapper.get(request.getFacilityId());
        if (Objects.isNull(facilityPO)) {
            return ExecutedResult.failed("所属设备[id=" + request.getFacilityId() + "]不存在。");
        }
        List<WaterFacilityParameterPO> list = mapper.getListByFacilityId(request.getFacilityId());
        List<Long> ids = new ArrayList<Long>();
        if (ListUtil.isNotNullOrEmpty(list)) {
            list.forEach(x -> {
                ids.add(x.getId());
            });
        }
        if (ListUtil.isNotNullOrEmpty(ids)) {
            mapper.remove(ids);
        }
        if (ListUtil.isNotNullOrEmpty(request.getParameterList())) {
            for (ReqCreateWaterFacilityParameter x : request.getParameterList()) {
                WaterFacilityParameterPO item = new WaterFacilityParameterPO();
                item.setId(SnowFlakeUtil.getId());
                item.setFacilityId(facilityPO.getId());
                item.setFacilityCode(facilityPO.getFacilityCode());
                item.setCreateTime(LocalDateTimeUtil.nowTimeStamp());
                item.setColumnsUnits(x.getColumnsUnits());
                item.setColumnsCode(x.getColumnsCode());
                item.setColumnsShow(x.getColumnsShow());
                item.setColumnValue("");
                item.setLastTime("");
                this.mapper.insert(item);
            }
        }
        return ExecutedResult.success("添加成功");
    }
    public ExecutedResult<String> modify(ReqModifyWaterFacilityParameter request) {
        // 验证记录是否存在
        ExecutedResult<WaterFacilityParameterPO> checkExists = this.check4Id(request.getId());
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        // 转换po
        WaterFacilityParameterPO item = CopierUtil.mapTo(request, WaterFacilityParameterPO.class);
        int rowCount = mapper.updateById(item);
        if (rowCount != 1) {
            return ExecutedResult.failed("编辑[设备设定参数]失败。");
        }
        return ExecutedResult.success();
    }
    public ExecutedResult<WaterFacilityParameterVO> get(Long id) {
        WaterFacilityParameterVO result = new WaterFacilityParameterVO();
        WaterFacilityParameterPO find = mapper.get(id);
        if (null != find) {
            result = CopierUtil.mapTo(find, WaterFacilityParameterVO.class);
        }
        return ExecutedResult.success(result);
    }
    public ExecutedResult<List<WaterFacilityParameterPO>> getListByFacilityId(Long facilityId) {
        List<WaterFacilityParameterPO> list = new ArrayList<>();
        LambdaQueryWrapper<WaterFacilityParameterPO> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(WaterFacilityParameterPO::getFacilityId, facilityId);
        list = mapper.selectList(wrapper);
        return ExecutedResult.success(list);
    }
//    public ExecutedResult<String> stop(Long id) {
//        // 验证记录是否存在
//        ExecutedResult<WaterFacilityParameterPO> checkExists = this.check4Id(id);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        WaterFacilityParameterPO item = new WaterFacilityParameterPO();
//        item.setId(id);
//        item.setStatus(EState.DISABLED.getValue());
//
//        int rowCount = mapper.updateById(item);
//        if (rowCount != 1) {
//           return ExecutedResult.failed("停用[设备设定参数]失败。");
//       }
//       return ExecutedResult.success();
//   }
//
//    public ExecutedResult<String> enable(Long id) {
//        // 验证记录是否存在
//        ExecutedResult<WaterFacilityParameterPO> checkExists = this.check4Id(id);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        WaterFacilityParameterPO item = new WaterFacilityParameterPO();
//        item.setId(id);
//        item.setStatus(EState.NORMAL.getValue());
//
//        int rowCount = mapper.updateById(item);\n" +
//        if (rowCount != 1) {
//            return ExecutedResult.failed("启用[设备设定参数]失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> setSort(ReqSetSort request) {
//        // 验证记录是否存在
//        ExecutedResult<WaterFacilityParameterPO> checkExists = this.check4Id(request.getId());
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        WaterFacilityParameterPO item = new WaterFacilityParameterPO();
//        item.setId(request.getId());
//        item.setSort(request.getSort());
//
//        int rowCount = mapper.updateById(item);\n" +
//        if (rowCount != 1) {
//            return ExecutedResult.failed("设置[设备设定参数]排序值失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> listSetSort(ReqListSetSort request) {
//        // id列表
//        List<Long> listId = request.getList().stream().map(ReqSetSort::getId).collect(Collectors.toList());
//        // 验证记录是否存在
//        ExecutedResult<List<WaterFacilityParameterPO>> checkExists = this.check4Id(listId);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//
//        List<WaterFacilityParameterPO> listUpdate = request.getList().stream()
//                .map(c -> {
//                    WaterFacilityParameterPO item = new WaterFacilityParameterPO();
//                    item.setId(c.getId());
//                    item.setSort(c.getSort());
//                    return item;
//                })
//                .collect(Collectors.toList());
//        Boolean result = mapper.modifyList(listUpdate);
//        if (result) {
//            return ExecutedResult.success();
//        }
//        return ExecutedResult.failed("[设备设定参数]设置排序值失败");
//    }
//
//    public ExecutedResult<String> remove(Long id) {
//        Boolean result = mapper.deleteLogic(id);
//        if (BooleanUtils.isFalse(result)) {
//            return ExecutedResult.failed("删除[设备设定参数]失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> removeList(List<Long> ids) {
//        Boolean result = mapper.deleteLogic(ids);
//        if (BooleanUtils.isFalse(result)) {
//            return ExecutedResult.failed("删除[设备设定参数]失败。");
//        }
//        return ExecutedResult.success();
//    }
    public ExecutedResult<List<WaterFacilityParameterVO>> getList(List<Long> listId) {
        List<WaterFacilityParameterVO> result = new ArrayList<>();
        List<WaterFacilityParameterPO> list = mapper.getList(listId);
        if (ListUtil.isNotNullOrEmpty(list)) {
            result = CopierUtil.mapTo(list, WaterFacilityParameterVO.class);
        }
        return ExecutedResult.success(result);
    }
    public ExecutedResult<PagerResult<WaterFacilityParameterVO>> search(SearchWaterFacilityParameter search) {
        // 处理创建时间范围-查询参数
        Tuple<String, String> createTimeRange = ParameterUtil.getTimeRange(search.getCreateTimeRange());
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem1())) {
            search.setCreateTimeStart(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem1()).getTime());
        }
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem2())) {
            search.setCreateTimeEnd(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem2()).getTime());
        }
        PagerResult<WaterFacilityParameterPO> pageList = mapper.search(search);
        List<WaterFacilityParameterVO> listVo = new ArrayList<>();
        List<WaterFacilityParameterPO> list = pageList.getList();
        if (ListUtil.isNotNullOrEmpty(list)) {
            pageList.setLastId(list.get(list.size() - 1).getId());
            // 转换vo
            listVo = CopierUtil.mapTo(list, WaterFacilityParameterVO.class);
            List<WaterFacilityPO> facilityPOList = waterFacilityMapper.getList();
            for (WaterFacilityParameterVO vo : listVo) {
                String facilityName = facilityPOList.stream().filter(x -> x.getId().equals(vo.getFacilityId())).map(WaterFacilityPO::getFacilityName).findFirst().orElse(null);
                if (StringUtil.isNotNullOrEmpty(facilityName)) {
                    vo.setFacilityName(facilityName);
                }
            }
        }
        PagerResult<WaterFacilityParameterVO> result = new PagerResult<>(pageList.getLimit(), pageList.getPage(), pageList.getTotal(), listVo);
        result.setLastId(pageList.getLastId());
        return ExecutedResult.success(result);
    }
    protected ExecutedResult<WaterFacilityParameterPO> check4Id(Long id) {
        WaterFacilityParameterPO exists = mapper.get(id);
        if (Objects.isNull(exists)) {
            return ExecutedResult.failed("[设备设定参数]不存在:" + id);
        }
        return ExecutedResult.success(exists);
    }
    protected ExecutedResult<List<WaterFacilityParameterPO>> check4Id(List<Long> listId) {
        // 从数据库查找设备设定参数
        List<WaterFacilityParameterPO> list = mapper.getList(listId);
        if (ListUtil.isNullOrEmpty(list)) {
            return ExecutedResult.failed("[设备设定参数]不存在." + listId);
        }
        // 数据库找到的id列表
        List<Long> listIdFind = list.stream().map(WaterFacilityParameterPO::getId).collect(Collectors.toList());
        // 数量不一致
        if (listId.size() != listIdFind.size()) {
            // 筛选数据库不存在的设备设定参数
            List<Long> listIdNotFound = listId.stream().filter(c -> !listIdFind.contains(c)).collect(Collectors.toList());
            if (ListUtil.isNullOrEmpty(list)) {
                return ExecutedResult.failed("[设备设定参数]不存在." + listIdNotFound);
            }
        }
        return ExecutedResult.success(list);
    }
}
src/main/java/com/nanjing/water/service/WaterFacilityService.java
对比新文件
@@ -0,0 +1,238 @@
/**
 * #                                                    __----~~~~~~~~~~~------___
 * #                                   .  .   ~~//====......          __--~ ~~
 * #                   -.            \_|//     |||\\  ~~~~~~::::... /~
 * #                ___-==_       _-~o~  \/    |||  \\            _/~~-
 * #        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
 * #    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
 * #  .~       .~       |   \\ -_    /  /-   /   ||      \   /
 * # /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
 * # |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
 * #          '         ~-|      /|    |-~\~~       __--~~
 * #                      |-~~-_/ |    |   ~\_   _-~            /\
 * #                           /  \     \__   \/~                \__
 * #                       _--~ _/ | .-~~____--~-/                  ~~==.
 * #                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
 * #                                 -_     ~\      ~~---l__i__i__i--~~_/
 * #                                 _-~-__   ~)  \--______________--~~
 * #                               //.-~~~-~_--~- |-------~~~~~~~~
 * #                                      //.-~~~--\
 * #                  神兽保佑
 * #                  永无BUG!
 */
package com.nanjing.water.service;
import com.nanjing.water.common.ExecutedResult;
import com.nanjing.water.common.PagerResult;
import com.nanjing.water.common.enums.EYesOrNo;
import com.nanjing.water.common.model.Tuple;
import com.nanjing.water.common.util.*;
import com.nanjing.water.entity.request.waterfacility.ReqCreateWaterFacility;
import com.nanjing.water.entity.request.waterfacility.ReqEditWaterFacility;
import com.nanjing.water.entity.request.waterfacility.ReqModifyWaterFacility;
import com.nanjing.water.entity.response.point.ResMonitoryPointDataFacility;
import com.nanjing.water.entity.response.point.ResMonitoryPointDataFacilityParameter;
import com.nanjing.water.entity.search.SearchWaterFacility;
import com.nanjing.water.repository.impl.*;
import com.nanjing.water.repository.po.*;
import com.nanjing.water.repository.vo.WaterFacilityVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
/**
 * 设备信息
 * @author lin.liu
 */
@Service
public class WaterFacilityService extends BaseService {
    @Autowired
    private WaterFacilityMapperImpl mapper;
    @Autowired
    private WaterMonitoryPointMapperImpl waterMonitoryPointMapper;
    @Autowired
    private WaterFacilityParameterMapperImpl facilityParameterMapper;
    @Autowired
    private WaterFacilityTypeMapperImpl waterFacilityTypeMapper;
    @Autowired
    private WaterMonitoryPointService monitoryPointService;
    public ExecutedResult<Long> create(ReqCreateWaterFacility request) {
        // 转换po
        WaterFacilityPO item = CopierUtil.mapTo(request, WaterFacilityPO.class);
        WaterMonitoryPointPO pointPO = waterMonitoryPointMapper.getById(request.getPointId());
        if (pointPO == null) {
            return ExecutedResult.failed("所选监测点不存在。");
        }
        item.setAddress("");
        item.setRemark(ParameterUtil.dealNull(request.getRemark()));
        item.setFacilityUrl(ParameterUtil.dealNull(request.getFacilityUrl()));
        // 设置记录创建时间
        item.setCreateTime(LocalDateTimeUtil.nowTimeStamp());
        // 是否删除(逻辑删除)初始值
        item.setIsDelete(EYesOrNo.NO.getValue());
        int rowCount = mapper.insert(item);
        if (rowCount != 1) {
            return ExecutedResult.failed("创建[设备]失败。");
        }
        return ExecutedResult.success(item.getId());
    }
    public ExecutedResult<String> modify(ReqModifyWaterFacility request) {
        // 验证记录是否存在
        ExecutedResult<WaterFacilityPO> checkExists = this.check4Id(request.getId());
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        // 转换po
        WaterFacilityPO item = CopierUtil.mapTo(request, WaterFacilityPO.class);
        item.setRemark(ParameterUtil.dealNull(request.getRemark()));
        item.setFacilityUrl(ParameterUtil.dealNull(request.getFacilityUrl()));
        int rowCount = mapper.updateById(item);
        if (rowCount != 1) {
            return ExecutedResult.failed("编辑[设备]失败。");
        }
        return ExecutedResult.success();
    }
    public ExecutedResult<String> editIntervalTime(ReqEditWaterFacility request){
        ExecutedResult<WaterFacilityPO> checkExists = this.check4Id(request.getId());
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        WaterFacilityPO facilityPO = CopierUtil.mapTo(request, WaterFacilityPO.class);
        int rowCount = mapper.updateById(facilityPO);
        if (rowCount != 1) {
            return ExecutedResult.failed("编辑设备参数失败");
        }
        //修改定时任务时间
        return ExecutedResult.success();
    }
    public ExecutedResult<WaterFacilityVO> get(Long id) {
        WaterFacilityVO result = new WaterFacilityVO();
        WaterFacilityPO find = mapper.get(id);
        if (null != find) {
            result = CopierUtil.mapTo(find, WaterFacilityVO.class);
        }
        return ExecutedResult.success(result);
    }
    public ExecutedResult<List<WaterFacilityVO>> getList(List<Long> listId) {
        List<WaterFacilityVO> result = new ArrayList<>();
        List<WaterFacilityPO> list = mapper.getList(listId);
        if (ListUtil.isNotNullOrEmpty(list)) {
            result = CopierUtil.mapTo(list, WaterFacilityVO.class);
        }
        return ExecutedResult.success(result);
    }
    public ExecutedResult<PagerResult<WaterFacilityVO>> search(SearchWaterFacility search) {
        // 处理创建时间范围-查询参数
        Tuple<String, String> createTimeRange = ParameterUtil.getTimeRange(search.getCreateTimeRange());
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem1())) {
            search.setCreateTimeStart(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem1()).getTime());
        }
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem2())) {
            search.setCreateTimeEnd(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem2()).getTime());
        }
        PagerResult<WaterFacilityPO> pageList = mapper.search(search);
        List<WaterFacilityVO> listVo = new ArrayList<>();
        List<WaterFacilityPO> list = pageList.getList();
        if (ListUtil.isNotNullOrEmpty(list)) {
            pageList.setLastId(list.get(list.size() - 1).getId());
            // 转换vo
            listVo = CopierUtil.mapTo(list, WaterFacilityVO.class);
            List<WaterMonitoryPointPO> pointList = waterMonitoryPointMapper.getList();
            List<WaterFacilityTypePO> typeList = waterFacilityTypeMapper.getList();
            for (WaterFacilityVO vo : listVo) {
                String pointName = pointList.stream().filter(x -> x.getId().equals(vo.getPointId())).map(WaterMonitoryPointPO::getPointName).findFirst().orElse(null);
                if (StringUtil.isNotNullOrEmpty(pointName)) {
                    vo.setPointName(pointName);
                }
                String typeName = typeList.stream().filter(o -> o.getId().equals(vo.getFacilityType())).map(WaterFacilityTypePO::getName).findFirst().orElse(null);
                if (StringUtil.isNotNullOrEmpty(typeName)) {
                    vo.setFacilityTypeName(typeName);
                }
            }
        }
        PagerResult<WaterFacilityVO> result = new PagerResult<>(pageList.getLimit(), pageList.getPage(), pageList.getTotal(), listVo);
        result.setLastId(pageList.getLastId());
        return ExecutedResult.success(result);
    }
    protected ExecutedResult<WaterFacilityPO> check4Id(Long id) {
        WaterFacilityPO exists = mapper.get(id);
        if (Objects.isNull(exists)) {
            return ExecutedResult.failed("[设备表]不存在:" + id);
        }
        return ExecutedResult.success(exists);
    }
    protected ExecutedResult<List<WaterFacilityPO>> check4Id(List<Long> listId) {
        // 从数据库查找设备表
        List<WaterFacilityPO> list = mapper.getList(listId);
        if (ListUtil.isNullOrEmpty(list)) {
            return ExecutedResult.failed("[设备表]不存在." + listId);
        }
        // 数据库找到的id列表
        List<Long> listIdFind = list.stream().map(WaterFacilityPO::getId).collect(Collectors.toList());
        // 数量不一致
        if (listId.size() != listIdFind.size()) {
            // 筛选数据库不存在的设备表
            List<Long> listIdNotFound = listId.stream().filter(c -> !listIdFind.contains(c)).collect(Collectors.toList());
            if (ListUtil.isNullOrEmpty(list)) {
                return ExecutedResult.failed("[设备表]不存在." + listIdNotFound);
            }
        }
        return ExecutedResult.success(list);
    }
    public ExecutedResult<List<ResMonitoryPointDataFacility>> listData(Long pointId) {
        List<ResMonitoryPointDataFacility> listVo = new ArrayList<>();
        ExecutedResult<WaterMonitoryPointPO> checkPoint = monitoryPointService.check4Id(pointId);
        if (checkPoint.isFailed()) {
            return ExecutedResult.failed(checkPoint.getMsg());
        }
        List<WaterFacilityPO> listFacility = mapper.getListByPointId(pointId);
        List<WaterFacilityParameterPO> listParameter = facilityParameterMapper.getList();
        Map<Long, List<WaterFacilityParameterPO>> mapParameter = listParameter.stream().collect(Collectors.groupingBy(WaterFacilityParameterPO::getFacilityId));
        for (WaterFacilityPO facility : listFacility) {
            ResMonitoryPointDataFacility facilityVo = new ResMonitoryPointDataFacility();
            facilityVo.setFacilityCode(facility.getFacilityCode());
            facilityVo.setFacilityName(facility.getFacilityName());
            facilityVo.setData(new ArrayList<>());
            if (mapParameter.containsKey(facility.getId())) {
                for (WaterFacilityParameterPO parameter : mapParameter.get(facility.getId())) {
                    ResMonitoryPointDataFacilityParameter parameterVo = new ResMonitoryPointDataFacilityParameter();
                    parameterVo.setMark(parameter.getColumnsCode());
                    parameterVo.setName(parameter.getColumnsShow());
                    parameterVo.setValue(parameter.getColumnValue());
                    parameterVo.setUnit(parameter.getColumnsUnits());
                    parameterVo.setLastTime(parameter.getLastTime());
                    facilityVo.getData().add(parameterVo);
                }
            }
            listVo.add(facilityVo);
        }
        return ExecutedResult.success(listVo);
    }
}
src/main/java/com/nanjing/water/service/WaterFacilityTypeService.java
对比新文件
@@ -0,0 +1,274 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.service;
import com.nanjing.water.common.*;
import com.nanjing.water.common.enums.*;
import com.nanjing.water.common.model.Tuple;
import com.nanjing.water.common.util.*;
import com.nanjing.water.entity.request.waterfacilitytype.ReqCreateWaterFacilityType;
import com.nanjing.water.entity.request.waterfacilitytype.ReqModifyWaterFacilityType;
import com.nanjing.water.entity.search.SearchWaterFacilityType;
import com.nanjing.water.repository.impl.WaterFacilityMapperImpl;
import com.nanjing.water.repository.impl.WaterFacilityTypeMapperImpl;
import com.nanjing.water.repository.impl.WaterMonitoryPointMapperImpl;
import com.nanjing.water.repository.po.WaterFacilityPO;
import com.nanjing.water.repository.po.WaterFacilityTypePO;
import com.nanjing.water.repository.po.WaterMonitoryPointPO;
import com.nanjing.water.repository.vo.WaterFacilityTypeVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
 * 设备类型
 * @author lin.liu
 */
@Service
public class WaterFacilityTypeService extends BaseService {
    @Autowired
    private WaterFacilityTypeMapperImpl mapper;
    @Autowired
    private WaterFacilityMapperImpl waterFacilityMapper;
    @Autowired
    private WaterMonitoryPointMapperImpl waterMonitoryPointMapper;
    public ExecutedResult<Long> create(ReqCreateWaterFacilityType request) {
        // 转换po
        WaterFacilityTypePO item = CopierUtil.mapTo(request, WaterFacilityTypePO.class);
        // 设置状态
        //item.setStatus(EState.NORMAL.getValue());
        // 设置记录创建时间
        item.setCreateTime(LocalDateTimeUtil.nowTimeStamp());
        // 是否删除(逻辑删除)初始值
        item.setIsDelete(EYesOrNo.NO.getValue());
        int rowCount = mapper.insert(item);
        if (rowCount != 1) {
            return ExecutedResult.failed("创建[设备类型表]失败。");
        }
        return ExecutedResult.success(item.getId());
    }
    public ExecutedResult<String> modify(ReqModifyWaterFacilityType request) {
        // 验证记录是否存在
        ExecutedResult<WaterFacilityTypePO> checkExists = this.check4Id(request.getId());
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        // 转换po
        WaterFacilityTypePO item = CopierUtil.mapTo(request, WaterFacilityTypePO.class);
        int rowCount = mapper.updateById(item);
        if (rowCount != 1) {
            return ExecutedResult.failed("编辑[设备类型表]失败。");
        }
        return ExecutedResult.success();
    }
    public ExecutedResult<WaterFacilityTypeVO> get(Long id) {
        WaterFacilityTypeVO result = new WaterFacilityTypeVO();
        WaterFacilityTypePO find = mapper.get(id);
        if (null != find) {
            result = CopierUtil.mapTo(find, WaterFacilityTypeVO.class);
        }
        return ExecutedResult.success(result);
    }
    //    public ExecutedResult<String> stop(Long id) {
//        // 验证记录是否存在
//        ExecutedResult<WaterFacilityTypePO> checkExists = this.check4Id(id);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        WaterFacilityTypePO item = new WaterFacilityTypePO();
//        item.setId(id);
//        item.setStatus(EState.DISABLED.getValue());
//
//        int rowCount = mapper.updateById(item);
//        if (rowCount != 1) {
//           return ExecutedResult.failed("停用[设备类型表]失败。");
//       }
//       return ExecutedResult.success();
//   }
//
//    public ExecutedResult<String> enable(Long id) {
//        // 验证记录是否存在
//        ExecutedResult<WaterFacilityTypePO> checkExists = this.check4Id(id);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        WaterFacilityTypePO item = new WaterFacilityTypePO();
//        item.setId(id);
//        item.setStatus(EState.NORMAL.getValue());
//
//        int rowCount = mapper.updateById(item);\n" +
//        if (rowCount != 1) {
//            return ExecutedResult.failed("启用[设备类型表]失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> setSort(ReqSetSort request) {
//        // 验证记录是否存在
//        ExecutedResult<WaterFacilityTypePO> checkExists = this.check4Id(request.getId());
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        WaterFacilityTypePO item = new WaterFacilityTypePO();
//        item.setId(request.getId());
//        item.setSort(request.getSort());
//
//        int rowCount = mapper.updateById(item);\n" +
//        if (rowCount != 1) {
//            return ExecutedResult.failed("设置[设备类型表]排序值失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> listSetSort(ReqListSetSort request) {
//        // id列表
//        List<Long> listId = request.getList().stream().map(ReqSetSort::getId).collect(Collectors.toList());
//        // 验证记录是否存在
//        ExecutedResult<List<WaterFacilityTypePO>> checkExists = this.check4Id(listId);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//
//        List<WaterFacilityTypePO> listUpdate = request.getList().stream()
//                .map(c -> {
//                    WaterFacilityTypePO item = new WaterFacilityTypePO();
//                    item.setId(c.getId());
//                    item.setSort(c.getSort());
//                    return item;
//                })
//                .collect(Collectors.toList());
//        Boolean result = mapper.modifyList(listUpdate);
//        if (result) {
//            return ExecutedResult.success();
//        }
//        return ExecutedResult.failed("[设备类型表]设置排序值失败");
//    }
//
    public ExecutedResult<String> remove(Long id) {
        int i = mapper.deleteById(id);
        if (i<1) {
            return ExecutedResult.failed("删除[设备类型表]失败。");
        }
        return ExecutedResult.success();
    }
//
//    public ExecutedResult<String> removeList(List<Long> ids) {
//        Boolean result = mapper.deleteLogic(ids);
//        if (BooleanUtils.isFalse(result)) {
//            return ExecutedResult.failed("删除[设备类型表]失败。");
//        }
//        return ExecutedResult.success();
//    }
    public ExecutedResult<List<WaterFacilityTypeVO>> getList(List<Long> listId) {
        List<WaterFacilityTypeVO> result = new ArrayList<>();
        List<WaterFacilityTypePO> list = mapper.getList(listId);
        if (ListUtil.isNotNullOrEmpty(list)) {
            result = CopierUtil.mapTo(list, WaterFacilityTypeVO.class);
        }
        return ExecutedResult.success(result);
    }
    public ExecutedResult<PagerResult<WaterFacilityTypeVO>> search(SearchWaterFacilityType search) {
        // 处理创建时间范围-查询参数
        Tuple<String, String> createTimeRange = ParameterUtil.getTimeRange(search.getCreateTimeRange());
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem1())) {
            search.setCreateTimeStart(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem1()).getTime());
        }
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem2())) {
            search.setCreateTimeEnd(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem2()).getTime());
        }
        PagerResult<WaterFacilityTypePO> pageList = mapper.search(search);
        List<WaterFacilityTypeVO> listVo = new ArrayList<>();
        List<WaterFacilityTypePO> list = pageList.getList();
        if (ListUtil.isNotNullOrEmpty(list)) {
            pageList.setLastId(list.get(list.size() - 1).getId());
            // 转换vo
            listVo = CopierUtil.mapTo(list, WaterFacilityTypeVO.class);
        }
        PagerResult<WaterFacilityTypeVO> result = new PagerResult<>(pageList.getLimit(), pageList.getPage(), pageList.getTotal(), listVo);
        result.setLastId(pageList.getLastId());
        return ExecutedResult.success(result);
    }
    protected ExecutedResult<WaterFacilityTypePO> check4Id(Long id) {
        WaterFacilityTypePO exists = mapper.get(id);
        if (Objects.isNull(exists)) {
            return ExecutedResult.failed("[设备类型表]不存在:" + id);
        }
        return ExecutedResult.success(exists);
    }
    protected ExecutedResult<List<WaterFacilityTypePO>> check4Id(List<Long> listId) {
        // 从数据库查找设备类型表
        List<WaterFacilityTypePO> list = mapper.getList(listId);
        if (ListUtil.isNullOrEmpty(list)) {
            return ExecutedResult.failed("[设备类型表]不存在." + listId);
        }
        // 数据库找到的id列表
        List<Long> listIdFind = list.stream().map(WaterFacilityTypePO::getId).collect(Collectors.toList());
        // 数量不一致
        if (listId.size() != listIdFind.size()) {
            // 筛选数据库不存在的设备类型表
            List<Long> listIdNotFound = listId.stream().filter(c -> !listIdFind.contains(c)).collect(Collectors.toList());
            if (ListUtil.isNullOrEmpty(list)) {
                return ExecutedResult.failed("[设备类型表]不存在." + listIdNotFound);
            }
        }
        return ExecutedResult.success(list);
    }
    public ExecutedResult<List<WaterFacilityTypeVO>> getFacilityList(Integer type){
        List<WaterFacilityTypeVO> result=new ArrayList<>();
        List<WaterFacilityTypePO> list = mapper.getList();
        //获取所有监测点
        List<WaterMonitoryPointPO> pointPOList = waterMonitoryPointMapper.getListByType(type);
        List<Long> collect = pointPOList.stream().map(WaterMonitoryPointPO::getId).collect(Collectors.toList());
        //根据监测点获取所有设备信息
        List<WaterFacilityPO> facilityPOList = waterFacilityMapper.getList();
        List<WaterFacilityPO> facilityList = facilityPOList.stream().filter(x -> collect.contains(x.getPointId())).collect(Collectors.toList());
        if(ListUtil.isNotNullOrEmpty(facilityList)){
            List<Long> typeIdList = facilityList.stream().map(WaterFacilityPO::getFacilityType).distinct().collect(Collectors.toList());
            List<WaterFacilityTypePO> collect1 = list.stream().filter(x -> typeIdList.contains(x.getId())).collect(Collectors.toList());
            if(ListUtil.isNotNullOrEmpty(collect1)){
                result=CopierUtil.mapTo(collect1, WaterFacilityTypeVO.class);
                for(WaterFacilityTypeVO vo:result){
                    vo.setFacilityPOList(facilityList.stream().filter(x->x.getFacilityType().equals(vo.getId())).collect(Collectors.toList()));
                }
            }
        }
        return ExecutedResult.success(result);
    }
}
src/main/java/com/nanjing/water/service/WaterMonitoryPointService.java
对比新文件
@@ -0,0 +1,261 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.service;
import com.nanjing.water.common.ExecutedResult;
import com.nanjing.water.common.PagerResult;
import com.nanjing.water.common.enums.EYesOrNo;
import com.nanjing.water.common.model.Tuple;
import com.nanjing.water.common.util.*;
import com.nanjing.water.entity.request.watermonitorypoint.ReqCreateWaterMonitoryPoint;
import com.nanjing.water.entity.request.watermonitorypoint.ReqModifyWaterMonitoryPoint;
import com.nanjing.water.entity.response.point.ResMonitoryPointData;
import com.nanjing.water.entity.response.point.ResMonitoryPointDataFacility;
import com.nanjing.water.entity.response.point.ResMonitoryPointDataFacilityParameter;
import com.nanjing.water.entity.search.SearchWaterMonitoryPoint;
import com.nanjing.water.repository.impl.*;
import com.nanjing.water.repository.po.*;
import com.nanjing.water.repository.vo.WaterMonitoryPointVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
/**
 * 监控点
 * @author lin.liu
 */
@Service
public class WaterMonitoryPointService extends BaseService {
    @Autowired
    private WaterMonitoryPointMapperImpl mapper;
    @Autowired
    private WaterFacilityMapperImpl facilityMapper;
    @Autowired
    private WaterFacilityParameterMapperImpl facilityParameterMapper;
    @Autowired
    private SysRegionService regionService;
    public ExecutedResult<Long> create(ReqCreateWaterMonitoryPoint request) {
        // 转换po
        WaterMonitoryPointPO item = CopierUtil.mapTo(request, WaterMonitoryPointPO.class);
        item.setRemark(ParameterUtil.dealNull(request.getRemark()));
        // 设置状态
        //item.setStatus(EState.NORMAL.getValue());
        // 设置记录创建时间
        item.setCreateTime(LocalDateTimeUtil.nowTimeStamp());
        // 是否删除(逻辑删除)初始值
        item.setIsDelete(EYesOrNo.NO.getValue());
        int rowCount = mapper.insert(item);
        if (rowCount != 1) {
            return ExecutedResult.failed("创建[监控点]失败。");
        }
        return ExecutedResult.success(item.getId());
    }
    public ExecutedResult<String> modify(ReqModifyWaterMonitoryPoint request) {
        // 验证记录是否存在
        ExecutedResult<WaterMonitoryPointPO> checkExists = this.check4Id(request.getId());
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        // 转换po
        WaterMonitoryPointPO item = CopierUtil.mapTo(request, WaterMonitoryPointPO.class);
        item.setRemark(ParameterUtil.dealNull(request.getRemark()));
        int rowCount = mapper.updateById(item);
        if (rowCount != 1) {
            return ExecutedResult.failed("编辑[监控点]失败。");
        }
        return ExecutedResult.success();
    }
    public ExecutedResult<WaterMonitoryPointVO> get(Long id) {
        WaterMonitoryPointVO result = new WaterMonitoryPointVO();
        WaterMonitoryPointPO find = mapper.get(id);
        if (null != find) {
            result = CopierUtil.mapTo(find, WaterMonitoryPointVO.class);
        }
        return ExecutedResult.success(result);
    }
    public ExecutedResult<String> remove(Long id) {
        int result = mapper.deleteById(id);
        if (result<1) {
            return ExecutedResult.failed("删除[监控点]失败。");
        }
        return ExecutedResult.success();
    }
    public ExecutedResult<List<WaterMonitoryPointVO>> getList(List<Long> listId) {
        List<WaterMonitoryPointVO> result = new ArrayList<>();
        List<WaterMonitoryPointPO> list = mapper.getList(listId);
        if (ListUtil.isNotNullOrEmpty(list)) {
            result = CopierUtil.mapTo(list, WaterMonitoryPointVO.class);
        }
        return ExecutedResult.success(result);
    }
    public ExecutedResult<PagerResult<WaterMonitoryPointVO>> search(SearchWaterMonitoryPoint search) {
        // 处理创建时间范围-查询参数
        Tuple<String, String> createTimeRange = ParameterUtil.getTimeRange(search.getCreateTimeRange());
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem1())) {
            search.setCreateTimeStart(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem1()).getTime());
        }
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem2())) {
            search.setCreateTimeEnd(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem2()).getTime());
        }
        PagerResult<WaterMonitoryPointPO> pageList = mapper.search(search);
        List<WaterMonitoryPointVO> listVo = new ArrayList<>();
        List<WaterMonitoryPointPO> list = pageList.getList();
        if (ListUtil.isNotNullOrEmpty(list)) {
            pageList.setLastId(list.get(list.size() - 1).getId());
            // 转换vo
            listVo = CopierUtil.mapTo(list, WaterMonitoryPointVO.class);
        }
        PagerResult<WaterMonitoryPointVO> result = new PagerResult<>(pageList.getLimit(), pageList.getPage(), pageList.getTotal(), listVo);
        result.setLastId(pageList.getLastId());
        return ExecutedResult.success(result);
    }
    protected ExecutedResult<WaterMonitoryPointPO> check4Id(Long id) {
        WaterMonitoryPointPO exists = mapper.get(id);
        if (Objects.isNull(exists)) {
            return ExecutedResult.failed("[监控点]不存在:" + id);
        }
        return ExecutedResult.success(exists);
    }
    protected ExecutedResult<List<WaterMonitoryPointPO>> check4Id(List<Long> listId) {
        // 从数据库查找监控点
        List<WaterMonitoryPointPO> list = mapper.getList(listId);
        if (ListUtil.isNullOrEmpty(list)) {
            return ExecutedResult.failed("[监控点]不存在." + listId);
        }
        // 数据库找到的id列表
        List<Long> listIdFind = list.stream().map(WaterMonitoryPointPO::getId).collect(Collectors.toList());
        // 数量不一致
        if (listId.size() != listIdFind.size()) {
            // 筛选数据库不存在的监控点
            List<Long> listIdNotFound = listId.stream().filter(c -> !listIdFind.contains(c)).collect(Collectors.toList());
            if (ListUtil.isNullOrEmpty(list)) {
                return ExecutedResult.failed("[监控点]不存在." + listIdNotFound);
            }
        }
        return ExecutedResult.success(list);
    }
    public ExecutedResult<WaterMonitoryPointPO> check4Code(String code) {
        WaterMonitoryPointPO exists = mapper.getByCode(code);
        if (Objects.isNull(exists)) {
            return ExecutedResult.failed("[监控点]不存在:" + code);
        }
        return ExecutedResult.success(exists);
    }
    public WaterMonitoryPointPO likeCode(String code) {
        return mapper.likeCode(code);
    }
    public ExecutedResult<List<ResMonitoryPointData>> listData() {
        List<ResMonitoryPointData> listVo = new ArrayList<>();
        List<WaterMonitoryPointPO> list = mapper.getList();
        if (ListUtil.isNullOrEmpty(list)) {
            return ExecutedResult.success(listVo);
        }
        List<WaterFacilityPO> listFacility = facilityMapper.getList();
        Map<Long, List<WaterFacilityPO>> mapFacility = listFacility.stream().collect(Collectors.groupingBy(WaterFacilityPO::getPointId));
        List<WaterFacilityParameterPO> listParameter = facilityParameterMapper.getList();
        Map<Long, List<WaterFacilityParameterPO>> mapParameter = listParameter.stream().collect(Collectors.groupingBy(WaterFacilityParameterPO::getFacilityId));
        for (WaterMonitoryPointPO item : list) {
            ResMonitoryPointData vo = new ResMonitoryPointData();
            vo.setPointCode(item.getPointCode());
            vo.setPointName(item.getPointName());
            vo.setData(new ArrayList<>());
            if (mapFacility.containsKey(item.getId())) {
                for (WaterFacilityPO facility : mapFacility.get(item.getId())) {
                    ResMonitoryPointDataFacility facilityVo = new ResMonitoryPointDataFacility();
                    facilityVo.setFacilityCode(facility.getFacilityCode());
                    facilityVo.setFacilityName(facility.getFacilityName());
                    facilityVo.setData(new ArrayList<>());
                    if (mapParameter.containsKey(facility.getId())) {
                        for (WaterFacilityParameterPO parameter : mapParameter.get(facility.getId())) {
                            ResMonitoryPointDataFacilityParameter parameterVo = new ResMonitoryPointDataFacilityParameter();
                            parameterVo.setMark(parameter.getColumnsCode());
                            parameterVo.setName(parameter.getColumnsShow());
                            parameterVo.setValue(parameter.getColumnValue());
                            parameterVo.setUnit(parameter.getColumnsUnits());
                            parameterVo.setLastTime(parameter.getLastTime());
                            facilityVo.getData().add(parameterVo);
                        }
                    }
                    vo.getData().add(facilityVo);
                }
            }
            listVo.add(vo);
        }
        return ExecutedResult.success(listVo);
    }
    public ExecutedResult<List<WaterMonitoryPointVO>> getPointList(Integer type){
        List<WaterMonitoryPointVO> result = new ArrayList<>();
        List<WaterMonitoryPointPO> pointPOList=new ArrayList<>();
        if(Objects.isNull(type)){
             pointPOList = mapper.getList();
        }else {
            pointPOList= mapper.getListByType(type);
        }
        if(ListUtil.isNotNullOrEmpty(pointPOList)){
            result=CopierUtil.mapTo(pointPOList, WaterMonitoryPointVO.class);
            //根据父id分组
            Map<Long, List<WaterMonitoryPointVO>> map = result.stream().collect(Collectors.groupingBy(WaterMonitoryPointPO::getParentId));
            //获取父id为0的列表
            result= map.get(0L);
            for(WaterMonitoryPointVO pointVO:result){
                buildTree(map,pointVO);
            }
        }
        return ExecutedResult.success(result);
    }
    public static void buildTree(Map<Long,List<WaterMonitoryPointVO>>map,WaterMonitoryPointVO pointVO){
        //获取所有父id列表
        List<WaterMonitoryPointVO> pointVOList = map.get(pointVO.getId());
        if(map.get(pointVO.getId())==null){
            return;
        }
        pointVO.setChildrenList(pointVOList);
        for (WaterMonitoryPointVO pointVO1:pointVOList){
            buildTree(map,pointVO1);
        }
    }
}
src/main/java/com/nanjing/water/service/cache/AdminMenuService.java
对比新文件
@@ -0,0 +1,74 @@
package com.nanjing.water.service.cache;
import com.nanjing.water.common.util.SerializeUtil;
import com.nanjing.water.common.util.StringUtil;
import com.nanjing.water.repository.impl.AdminMenuMapperImpl;
import com.nanjing.water.repository.po.AdminMenuPO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Objects;
import java.util.function.Function;
@Service
public class AdminMenuService {
    @Autowired
    private AdminMenuMapperImpl dao;
    @Autowired
    private StringRedisTemplate redisTemplate;
    /**
     * 获取所有菜单(缓存)
     */
    public List<AdminMenuPO> listAllWithCache() {
        try {
            if (redisTemplate.hasKey("adminMenusCache")) {
                String json = redisTemplate.opsForValue().get("adminMenusCache");
                if (StringUtil.isNotNullOrEmpty(json)) {
                    return SerializeUtil.toListObject(json, AdminMenuPO.class);
                }
            }
        } catch (Exception e) {
            //
        }
        List<AdminMenuPO> list = dao.getList();
        redisTemplate.opsForValue().set("adminMenusCache", SerializeUtil.toJson(list));
        return list;
    }
    // 删除菜单缓存
    public void removeListAllCache() {
        redisTemplate.delete("adminMenusCache");
    }
    /**
     * 获取用户拥有的菜单(缓存)
     */
    public List<AdminMenuPO> listUserAllWithCache(Long id, List<Long> listRoleId, Function<List<Long>, List<AdminMenuPO>> funcGetUserMenu) {
        try {
            if (redisTemplate.hasKey("userMenusCache")) {
                Object json = redisTemplate.opsForHash().get("userMenusCache", id);
                if (Objects.nonNull(json)) {
                    return SerializeUtil.toListObject(json.toString(), AdminMenuPO.class);
                }
            }
        } catch (Exception e) {
            //
        }
        List<AdminMenuPO> list = funcGetUserMenu.apply(listRoleId);
        redisTemplate.opsForHash().put("adminMenusCache", id, SerializeUtil.toJson(list));
        return list;
    }
    // 删除指定用户拥有的菜单缓存
    public void removeUserMenuCache(Long id) {
        redisTemplate.opsForHash().delete("userMenusCache", id);
    }
    // 删除所有用户拥有的菜单缓存
    public void removeAllUserMenuCache() {
        redisTemplate.delete("userMenusCache");
    }
}
src/main/java/com/nanjing/water/service/cache/AdminPermissionService.java
对比新文件
@@ -0,0 +1,142 @@
package com.nanjing.water.service.cache;
import com.nanjing.water.common.enums.EYesOrNo;
import com.nanjing.water.common.util.LocalDateTimeUtil;
import com.nanjing.water.common.util.SerializeUtil;
import com.nanjing.water.common.util.StringUtil;
import com.nanjing.water.entity.enums.EMenuType;
import com.nanjing.water.entity.enums.EOperation;
import com.nanjing.water.entity.enums.EState;
import com.nanjing.water.repository.impl.AdminPermissionMapperImpl;
import com.nanjing.water.repository.po.AdminMenuPO;
import com.nanjing.water.repository.po.AdminPermissionPO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.function.Function;
@Service
public class AdminPermissionService {
    @Autowired
    private AdminPermissionMapperImpl dao;
    @Autowired
    private StringRedisTemplate redisTemplate;
    /**
     * 获取所有权限(缓存)
     */
    public List<AdminPermissionPO> listAllWithCache() {
        try {
            if (redisTemplate.hasKey("adminPermissionCache")) {
                String json = redisTemplate.opsForValue().get("adminPermissionCache");
                if (StringUtil.isNotNullOrEmpty(json)) {
                    return SerializeUtil.toListObject(json, AdminPermissionPO.class);
                }
            }
        } catch (Exception e) {
            //
        }
        List<AdminPermissionPO> list = dao.getList();
        redisTemplate.opsForValue().set("adminPermissionCache", SerializeUtil.toJson(list));
        return list;
    }
    // 删除权限缓存
    public void removeListAllCache() {
        redisTemplate.delete("adminPermissionCache");
    }
    /**
     * 获取用户拥有的权限(缓存)
     */
    public List<AdminPermissionPO> listUserAllWithCache(Long id, List<Long> listRoleId, Function<List<Long>, List<AdminPermissionPO>> funcGetUserPermission) {
        try {
            if (redisTemplate.hasKey("userMenusCache")) {
                Object json = redisTemplate.opsForHash().get("userPermissionCache", id);
                if (Objects.nonNull(json)) {
                    return SerializeUtil.toListObject(json.toString(), AdminPermissionPO.class);
                }
            }
        } catch (Exception e) {
            //
        }
        List<AdminPermissionPO> list = funcGetUserPermission.apply(listRoleId);
        redisTemplate.opsForHash().put("userPermissionCache", id, list);
        return list;
    }
    // 删除指定用户拥有的权限缓存
    public void removeUserCache(Long id) {
        redisTemplate.opsForHash().delete("userPermissionCache", id);
    }
    // 删除所有用户拥有的权限缓存
    public void removeAllUserCache() {
        redisTemplate.delete("userPermissionCache");
    }
    /**
     * 给菜单添加默认权限
     * @param menu 菜单信息
     */
    public void createDefaultPermission(AdminMenuPO menu) {
        if (!Objects.equals(menu.getType(), EMenuType.PAGE.getValue())) {
            return;
        }
        Long now = LocalDateTimeUtil.nowTimeStamp();
        List<AdminPermissionPO> list = new ArrayList<>();
        AdminPermissionPO item1 = new AdminPermissionPO();
        item1.setSn(menu.getUrl().replaceAll("/", "") + "." + EOperation.LIST.getValue());
        item1.setMenuId(menu.getId());
        item1.setMenuUrl(menu.getUrl());
        item1.setName(menu.getName() + "." + EOperation.LIST.getDesc());
        item1.setIcon("");
        item1.setType(EOperation.LIST.getValue());
        item1.setStatus(EState.NORMAL.getValue());
        item1.setCreateTime(now);
        item1.setIsDelete(EYesOrNo.NO.getValue());
        list.add(item1);
        AdminPermissionPO item2 = new AdminPermissionPO();
        item2.setSn(menu.getUrl().replaceAll("/", "") + "." + EOperation.ADD.getValue());
        item2.setMenuId(menu.getId());
        item2.setMenuUrl(menu.getUrl());
        item2.setName(menu.getName() + "." + EOperation.ADD.getDesc());
        item2.setIcon("");
        item2.setType(EOperation.ADD.getValue());
        item2.setStatus(EState.NORMAL.getValue());
        item2.setCreateTime(now);
        item2.setIsDelete(EYesOrNo.NO.getValue());
        list.add(item2);
        AdminPermissionPO item3 = new AdminPermissionPO();
        item3.setSn(menu.getUrl().replaceAll("/", "") + "." + EOperation.UPDATE.getValue());
        item3.setMenuId(menu.getId());
        item3.setMenuUrl(menu.getUrl());
        item3.setName(menu.getName() + "." + EOperation.UPDATE.getDesc());
        item3.setIcon("");
        item3.setType(EOperation.UPDATE.getValue());
        item3.setStatus(EState.NORMAL.getValue());
        item3.setCreateTime(now);
        item3.setIsDelete(EYesOrNo.NO.getValue());
        list.add(item3);
        AdminPermissionPO item4 = new AdminPermissionPO();
        item4.setSn(menu.getUrl().replaceAll("/", "") + "." + EOperation.DETAIL.getValue());
        item4.setMenuId(menu.getId());
        item4.setMenuUrl(menu.getUrl());
        item4.setName(menu.getName() + "." + EOperation.DETAIL.getDesc());
        item4.setIcon("");
        item4.setType(EOperation.DETAIL.getValue());
        item4.setStatus(EState.NORMAL.getValue());
        item4.setCreateTime(now);
        item4.setIsDelete(EYesOrNo.NO.getValue());
        list.add(item4);
        dao.insert(list);
    }
}
src/main/java/com/nanjing/water/service/convert/AdminMenuConvert.java
对比新文件
@@ -0,0 +1,50 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.service.convert;
import com.nanjing.water.entity.request.adminmenu.ReqCreateAdminMenu;
import com.nanjing.water.entity.request.adminmenu.ReqModifyAdminMenu;
import com.nanjing.water.entity.response.admin.ResAdminMenuTreeAndPermission;
import com.nanjing.water.repository.po.AdminMenuPO;
import com.nanjing.water.repository.vo.AdminMenuVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
/**
 * 后台菜单
 * @author {#=author}
 */
@Mapper
public interface AdminMenuConvert {
    AdminMenuConvert INSTANCE = Mappers.getMapper(AdminMenuConvert.class);
    AdminMenuPO toCreate(ReqCreateAdminMenu request);
    AdminMenuPO toModify(ReqModifyAdminMenu request);
    AdminMenuVO toVo(AdminMenuPO item);
    List<AdminMenuVO> toVo(List<AdminMenuPO> list);
    ResAdminMenuTreeAndPermission toTreeVo(AdminMenuPO item);
}
src/main/java/com/nanjing/water/service/convert/AdminPermissionConvert.java
对比新文件
@@ -0,0 +1,50 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.service.convert;
import com.nanjing.water.entity.request.adminpermission.ReqCreateAdminPermission;
import com.nanjing.water.entity.request.adminpermission.ReqModifyAdminPermission;
import com.nanjing.water.entity.response.admin.ResAdminPermission;
import com.nanjing.water.repository.po.AdminPermissionPO;
import com.nanjing.water.repository.vo.AdminPermissionVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
/**
 * 后台用户权限表
 * @author {#=author}
 */
@Mapper
public interface AdminPermissionConvert {
    AdminPermissionConvert INSTANCE = Mappers.getMapper(AdminPermissionConvert.class);
    AdminPermissionPO toCreate(ReqCreateAdminPermission request);
    AdminPermissionPO toModify(ReqModifyAdminPermission request);
    AdminPermissionVO toVo(AdminPermissionPO item);
    List<AdminPermissionVO> toVo(List<AdminPermissionPO> list);
    List<ResAdminPermission> toDetail(List<AdminPermissionPO> list);
}
src/main/java/com/nanjing/water/service/convert/AdminRoleConvert.java
对比新文件
@@ -0,0 +1,47 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.service.convert;
import com.nanjing.water.entity.request.adminrole.ReqCreateAdminRole;
import com.nanjing.water.entity.request.adminrole.ReqModifyAdminRole;
import com.nanjing.water.repository.po.AdminRolePO;
import com.nanjing.water.repository.vo.AdminRoleVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
/**
 * 后台用户角色表
 * @author {#=author}
 */
@Mapper
public interface AdminRoleConvert {
    AdminRoleConvert INSTANCE = Mappers.getMapper(AdminRoleConvert.class);
    AdminRolePO toCreate(ReqCreateAdminRole request);
    AdminRolePO toModify(ReqModifyAdminRole request);
    AdminRoleVO toVo(AdminRolePO item);
    List<AdminRoleVO> toVo(List<AdminRolePO> list);
}
src/main/java/com/nanjing/water/service/convert/AdminRoleMenuRelationConvert.java
对比新文件
@@ -0,0 +1,47 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.service.convert;
import com.nanjing.water.entity.request.adminrolemenurelation.ReqCreateAdminRoleMenuRelation;
import com.nanjing.water.entity.request.adminrolemenurelation.ReqModifyAdminRoleMenuRelation;
import com.nanjing.water.repository.po.AdminRoleMenuRelationPO;
import com.nanjing.water.repository.vo.AdminRoleMenuRelationVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
/**
 * 后台角色菜单关系表
 * @author {#=author}
 */
@Mapper
public interface AdminRoleMenuRelationConvert {
    AdminRoleMenuRelationConvert INSTANCE = Mappers.getMapper(AdminRoleMenuRelationConvert.class);
    AdminRoleMenuRelationPO toCreate(ReqCreateAdminRoleMenuRelation request);
    AdminRoleMenuRelationPO toModify(ReqModifyAdminRoleMenuRelation request);
    AdminRoleMenuRelationVO toVo(AdminRoleMenuRelationPO item);
    List<AdminRoleMenuRelationVO> toVo(List<AdminRoleMenuRelationPO> list);
}
src/main/java/com/nanjing/water/service/convert/AdminRolePermissionRelationConvert.java
对比新文件
@@ -0,0 +1,47 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.service.convert;
import com.nanjing.water.entity.request.adminrolepermissionrelation.ReqCreateAdminRolePermissionRelation;
import com.nanjing.water.entity.request.adminrolepermissionrelation.ReqModifyAdminRolePermissionRelation;
import com.nanjing.water.repository.po.AdminRolePermissionRelationPO;
import com.nanjing.water.repository.vo.AdminRolePermissionRelationVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
/**
 * 后台角色权限关系表
 * @author {#=author}
 */
@Mapper
public interface AdminRolePermissionRelationConvert {
    AdminRolePermissionRelationConvert INSTANCE = Mappers.getMapper(AdminRolePermissionRelationConvert.class);
    AdminRolePermissionRelationPO toCreate(ReqCreateAdminRolePermissionRelation request);
    AdminRolePermissionRelationPO toModify(ReqModifyAdminRolePermissionRelation request);
    AdminRolePermissionRelationVO toVo(AdminRolePermissionRelationPO item);
    List<AdminRolePermissionRelationVO> toVo(List<AdminRolePermissionRelationPO> list);
}
src/main/java/com/nanjing/water/service/convert/AdminRoleRelationConvert.java
对比新文件
@@ -0,0 +1,47 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.service.convert;
import com.nanjing.water.entity.request.adminrolerelation.ReqCreateAdminRoleRelation;
import com.nanjing.water.entity.request.adminrolerelation.ReqModifyAdminRoleRelation;
import com.nanjing.water.repository.po.AdminRoleRelationPO;
import com.nanjing.water.repository.vo.AdminRoleRelationVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
/**
 * 后台用户和角色关系表
 * @author {#=author}
 */
@Mapper
public interface AdminRoleRelationConvert {
    AdminRoleRelationConvert INSTANCE = Mappers.getMapper(AdminRoleRelationConvert.class);
    AdminRoleRelationPO toCreate(ReqCreateAdminRoleRelation request);
    AdminRoleRelationPO toModify(ReqModifyAdminRoleRelation request);
    AdminRoleRelationVO toVo(AdminRoleRelationPO item);
    List<AdminRoleRelationVO> toVo(List<AdminRoleRelationPO> list);
}
src/main/java/com/nanjing/water/service/convert/AdminUserConvert.java
对比新文件
@@ -0,0 +1,50 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.service.convert;
import com.nanjing.water.entity.request.adminuser.ReqCreateAdminUser;
import com.nanjing.water.entity.request.adminuser.ReqModifyAdminUser;
import com.nanjing.water.repository.po.AdminUserPO;
import com.nanjing.water.repository.vo.AdminUserVO;
import com.nanjing.water.service.dto.ResAdminDetail;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
/**
 * 管理员帐号
 * @author {#=author}
 */
@Mapper
public interface AdminUserConvert {
    AdminUserConvert INSTANCE = Mappers.getMapper(AdminUserConvert.class);
    AdminUserPO toCreate(ReqCreateAdminUser request);
    AdminUserPO toModify(ReqModifyAdminUser request);
    AdminUserVO toVo(AdminUserPO item);
    List<AdminUserVO> toVo(List<AdminUserPO> list);
    ResAdminDetail toDetail(AdminUserPO item);
}
src/main/java/com/nanjing/water/service/convert/AlarmHistoryConvert.java
对比新文件
@@ -0,0 +1,47 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.service.convert;
import com.nanjing.water.entity.request.alarmhistory.ReqCreateAlarmHistory;
import com.nanjing.water.entity.request.alarmhistory.ReqModifyAlarmHistory;
import com.nanjing.water.repository.po.AlarmHistoryPO;
import com.nanjing.water.repository.vo.AlarmHistoryVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
/**
 * 报警信息
 * @author {#=author}
 */
@Mapper
public interface AlarmHistoryConvert {
    AlarmHistoryConvert INSTANCE = Mappers.getMapper(AlarmHistoryConvert.class);
    AlarmHistoryPO toCreate(ReqCreateAlarmHistory request);
    AlarmHistoryPO toModify(ReqModifyAlarmHistory request);
    AlarmHistoryVO toVo(AlarmHistoryPO item);
    List<AlarmHistoryVO> toVo(List<AlarmHistoryPO> list);
}
src/main/java/com/nanjing/water/service/convert/AlarmSchemeConvert.java
对比新文件
@@ -0,0 +1,47 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.service.convert;
import com.nanjing.water.entity.request.alarmscheme.ReqCreateAlarmScheme;
import com.nanjing.water.entity.request.alarmscheme.ReqModifyAlarmScheme;
import com.nanjing.water.repository.po.AlarmSchemePO;
import com.nanjing.water.repository.vo.AlarmSchemeVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
/**
 * 报警方案设置
 * @author {#=author}
 */
@Mapper
public interface AlarmSchemeConvert {
    AlarmSchemeConvert INSTANCE = Mappers.getMapper(AlarmSchemeConvert.class);
    AlarmSchemePO toCreate(ReqCreateAlarmScheme request);
    AlarmSchemePO toModify(ReqModifyAlarmScheme request);
    AlarmSchemeVO toVo(AlarmSchemePO item);
    List<AlarmSchemeVO> toVo(List<AlarmSchemePO> list);
}
src/main/java/com/nanjing/water/service/convert/CommonParametersConvert.java
对比新文件
@@ -0,0 +1,47 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.service.convert;
import com.nanjing.water.entity.request.commonparameters.ReqCreateCommonParameters;
import com.nanjing.water.entity.request.commonparameters.ReqModifyCommonParameters;
import com.nanjing.water.repository.po.CommonParametersPO;
import com.nanjing.water.repository.vo.CommonParametersVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
/**
 * 公共参数
 * @author {#=author}
 */
@Mapper
public interface CommonParametersConvert {
    CommonParametersConvert INSTANCE = Mappers.getMapper(CommonParametersConvert.class);
    CommonParametersPO toCreate(ReqCreateCommonParameters request);
    CommonParametersPO toModify(ReqModifyCommonParameters request);
    CommonParametersVO toVo(CommonParametersPO item);
    List<CommonParametersVO> toVo(List<CommonParametersPO> list);
}
src/main/java/com/nanjing/water/service/convert/SysDictDataConvert.java
对比新文件
@@ -0,0 +1,47 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.service.convert;
import com.nanjing.water.entity.request.sysdictdata.ReqCreateSysDictData;
import com.nanjing.water.entity.request.sysdictdata.ReqModifySysDictData;
import com.nanjing.water.repository.po.SysDictDataPO;
import com.nanjing.water.repository.vo.SysDictDataVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
/**
 * 字典数据表
 * @author {#=author}
 */
@Mapper
public interface SysDictDataConvert {
    SysDictDataConvert INSTANCE = Mappers.getMapper(SysDictDataConvert.class);
    SysDictDataPO toCreate(ReqCreateSysDictData request);
    SysDictDataPO toModify(ReqModifySysDictData request);
    SysDictDataVO toVo(SysDictDataPO item);
    List<SysDictDataVO> toVo(List<SysDictDataPO> list);
}
src/main/java/com/nanjing/water/service/convert/SysDictTypeConvert.java
对比新文件
@@ -0,0 +1,47 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.service.convert;
import com.nanjing.water.entity.request.sysdicttype.ReqCreateSysDictType;
import com.nanjing.water.entity.request.sysdicttype.ReqModifySysDictType;
import com.nanjing.water.repository.po.SysDictTypePO;
import com.nanjing.water.repository.vo.SysDictTypeVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
/**
 * 字典类型表
 * @author {#=author}
 */
@Mapper
public interface SysDictTypeConvert {
    SysDictTypeConvert INSTANCE = Mappers.getMapper(SysDictTypeConvert.class);
    SysDictTypePO toCreate(ReqCreateSysDictType request);
    SysDictTypePO toModify(ReqModifySysDictType request);
    SysDictTypeVO toVo(SysDictTypePO item);
    List<SysDictTypeVO> toVo(List<SysDictTypePO> list);
}
src/main/java/com/nanjing/water/service/convert/SysRegionConvert.java
对比新文件
@@ -0,0 +1,47 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.service.convert;
import com.nanjing.water.entity.request.sysregion.ReqCreateSysRegion;
import com.nanjing.water.entity.request.sysregion.ReqModifySysRegion;
import com.nanjing.water.repository.po.SysRegionPO;
import com.nanjing.water.repository.vo.SysRegionVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
/**
 * 系统行政地区
 * @author {#=author}
 */
@Mapper
public interface SysRegionConvert {
    SysRegionConvert INSTANCE = Mappers.getMapper(SysRegionConvert.class);
    SysRegionPO toCreate(ReqCreateSysRegion request);
    SysRegionPO toModify(ReqModifySysRegion request);
    SysRegionVO toVo(SysRegionPO item);
    List<SysRegionVO> toVo(List<SysRegionPO> list);
}
src/main/java/com/nanjing/water/service/convert/WaterFacilityConvert.java
对比新文件
@@ -0,0 +1,47 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.service.convert;
import com.nanjing.water.entity.request.waterfacility.ReqCreateWaterFacility;
import com.nanjing.water.entity.request.waterfacility.ReqModifyWaterFacility;
import com.nanjing.water.repository.po.WaterFacilityPO;
import com.nanjing.water.repository.vo.WaterFacilityVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
/**
 * 设备信息
 * @author {#=author}
 */
@Mapper
public interface WaterFacilityConvert {
    WaterFacilityConvert INSTANCE = Mappers.getMapper(WaterFacilityConvert.class);
    WaterFacilityPO toCreate(ReqCreateWaterFacility request);
    WaterFacilityPO toModify(ReqModifyWaterFacility request);
    WaterFacilityVO toVo(WaterFacilityPO item);
    List<WaterFacilityVO> toVo(List<WaterFacilityPO> list);
}
src/main/java/com/nanjing/water/service/convert/WaterFacilityParameterConvert.java
对比新文件
@@ -0,0 +1,47 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.service.convert;
import com.nanjing.water.entity.request.waterfacilityparameter.ReqCreateWaterFacilityParameter;
import com.nanjing.water.entity.request.waterfacilityparameter.ReqModifyWaterFacilityParameter;
import com.nanjing.water.repository.po.WaterFacilityParameterPO;
import com.nanjing.water.repository.vo.WaterFacilityParameterVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
/**
 * 设备设定参数
 * @author {#=author}
 */
@Mapper
public interface WaterFacilityParameterConvert {
    WaterFacilityParameterConvert INSTANCE = Mappers.getMapper(WaterFacilityParameterConvert.class);
    WaterFacilityParameterPO toCreate(ReqCreateWaterFacilityParameter request);
    WaterFacilityParameterPO toModify(ReqModifyWaterFacilityParameter request);
    WaterFacilityParameterVO toVo(WaterFacilityParameterPO item);
    List<WaterFacilityParameterVO> toVo(List<WaterFacilityParameterPO> list);
}
src/main/java/com/nanjing/water/service/convert/WaterFacilityTypeConvert.java
对比新文件
@@ -0,0 +1,47 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.service.convert;
import com.nanjing.water.entity.request.waterfacilitytype.ReqCreateWaterFacilityType;
import com.nanjing.water.entity.request.waterfacilitytype.ReqModifyWaterFacilityType;
import com.nanjing.water.repository.po.WaterFacilityTypePO;
import com.nanjing.water.repository.vo.WaterFacilityTypeVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
/**
 * 设备类型
 * @author {#=author}
 */
@Mapper
public interface WaterFacilityTypeConvert {
    WaterFacilityTypeConvert INSTANCE = Mappers.getMapper(WaterFacilityTypeConvert.class);
    WaterFacilityTypePO toCreate(ReqCreateWaterFacilityType request);
    WaterFacilityTypePO toModify(ReqModifyWaterFacilityType request);
    WaterFacilityTypeVO toVo(WaterFacilityTypePO item);
    List<WaterFacilityTypeVO> toVo(List<WaterFacilityTypePO> list);
}
src/main/java/com/nanjing/water/service/convert/WaterMonitoryPointConvert.java
对比新文件
@@ -0,0 +1,47 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.service.convert;
import com.nanjing.water.entity.request.watermonitorypoint.ReqCreateWaterMonitoryPoint;
import com.nanjing.water.entity.request.watermonitorypoint.ReqModifyWaterMonitoryPoint;
import com.nanjing.water.repository.po.WaterMonitoryPointPO;
import com.nanjing.water.repository.vo.WaterMonitoryPointVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
/**
 * 监控点
 * @author {#=author}
 */
@Mapper
public interface WaterMonitoryPointConvert {
    WaterMonitoryPointConvert INSTANCE = Mappers.getMapper(WaterMonitoryPointConvert.class);
    WaterMonitoryPointPO toCreate(ReqCreateWaterMonitoryPoint request);
    WaterMonitoryPointPO toModify(ReqModifyWaterMonitoryPoint request);
    WaterMonitoryPointVO toVo(WaterMonitoryPointPO item);
    List<WaterMonitoryPointVO> toVo(List<WaterMonitoryPointPO> list);
}
src/main/java/com/nanjing/water/service/dto/ResAdminDetail.java
对比新文件
@@ -0,0 +1,35 @@
package com.nanjing.water.service.dto;
import com.nanjing.water.common.util.LocalDateTimeUtil;
import com.nanjing.water.common.util.NumericUtil;
import com.nanjing.water.repository.po.AdminUserPO;
import com.nanjing.water.repository.vo.AdminRoleVO;
import com.nanjing.water.repository.vo.BasicVO;
import lombok.Data;
import java.util.List;
import java.util.Objects;
@Data
public class ResAdminDetail extends AdminUserPO implements BasicVO {
    /**
     * 角色列表
     */
    private List<AdminRoleVO> listRole;
    @Override
    public String getCreateTimeView() {
        if (NumericUtil.tryParseLong(this.getCreateTime()).compareTo(0L) > 0) {
            return LocalDateTimeUtil.toFormatString(this.getCreateTime());
        }
        return "";
    }
    @Override
    public String getUpdateTimeView() {
        if (Objects.isNull(this.getUpdateTime())) {
            return "";
        }
        return LocalDateTimeUtil.toFormatFullString(this.getUpdateTime());
    }
}
src/main/java/com/nanjing/water/service/dto/StatisticsTodayDto.java
对比新文件
@@ -0,0 +1,60 @@
package com.nanjing.water.service.dto;
import com.nanjing.water.common.ConstantFactory;
import com.nanjing.water.common.util.ListUtil;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
import java.util.Objects;
@Data
public class StatisticsTodayDto {
    private String pointCode;
    private String facilityCode;
    private String parameterCode;
    private List<BigDecimal> listValue;
    /**
     * 最小值
     */
    public BigDecimal getMinValue() {
        if (ListUtil.isNullOrEmpty(listValue)) {
            return BigDecimal.ZERO;
        }
        return listValue.stream().min(BigDecimal::compareTo).get();
    }
    /**
     * 最大值
     */
    public BigDecimal getMaxValue() {
        if (ListUtil.isNullOrEmpty(listValue)) {
            return BigDecimal.ZERO;
        }
        return listValue.stream().max(BigDecimal::compareTo).get();
    }
    /**
     * 平均值
     */
    public BigDecimal getAverageValue() {
        if (ListUtil.isNullOrEmpty(listValue)) {
            return BigDecimal.ZERO;
        }
        BigDecimal sum = listValue.stream().reduce(BigDecimal.ZERO, BigDecimal::add);
        if (Objects.equals(sum, BigDecimal.ZERO)) {
            return BigDecimal.ZERO;
        }
        return sum.divide(new BigDecimal(String.valueOf(listValue.size())), ConstantFactory.NUM2, BigDecimal.ROUND_HALF_UP);
    }
    /**
     * 统计次数
     */
    public Integer getDataCount() {
        return this.listValue.size();
    }
    /**
     * 合格次数
     */
    public Integer getPassCount() {
        return this.listValue.size();
    }
}
src/main/resources/application.yml
@@ -1,6 +1,6 @@
spring:
  application:
    name: xxx-yyy
    name: nanjing-station-service
  profiles:
    # 通过mvn打包传递参数,指定配置文件环境
    active: @package.environment@
@@ -21,7 +21,7 @@
jwt:
  token_header: Token #JWT存储的请求头
  secret: xxx-yyy-secret #hardware-lunhan-secret #JWT加解密密钥(所有硬件项目通用,公用一个用户中心登录,其他项目不写登录接口,直接用token)
  secret: nanjing-station-secret #hardware-lunhan-secret #JWT加解密密钥(所有硬件项目通用,公用一个用户中心登录,其他项目不写登录接口,直接用token)
  expiration: 15811200 #JWT的超期限时间(60*60*24*183) 单位:秒
  head: 'Bearer '  #JWT负载中拿到开头
src/test/java/com/nanjing/water/GenCodeGauss.java
@@ -21,7 +21,7 @@
    private static final String PORT = "57654";
    private static final String USER = "lunhan";
    private static final String PASSWORD = "lunhan.20240330";
    private static final String DB_NAME = "water_basic";
    private static final String DB_NAME = "nanjing_water_system";
    private static final String AUTHOR = "lin.liu";
    public static Connection CONN = null;
@@ -30,16 +30,16 @@
    //region 输出文件路径设置
    class OutSet {
        public static final String PO = "./src/main/java/com/lunhan/xxx/repository/po/";
        public static final String VO = "./src/main/java/com/lunhan/xxx/repository/vo/";
        public static final String CONVERT_MAPPER = "./src/main/java/com/lunhan/xxx/service/convert/";
        public static final String MAPPER_IMPL = "./src/main/java/com/lunhan/xxx/repository/impl/";
        public static final String MAPPER = "./src/main/java/com/lunhan/xxx/repository/mapper/";
        public static final String SERVICE = "./src/main/java/com/lunhan/xxx/service/";
        public static final String Controller = "./src/main/java/com/lunhan/xxx/host/controller/";
        public static final String SEARCH = "./src/main/java/com/lunhan/xxx/entity/search/";
        public static final String RequestDTO = "./src/main/java/com/lunhan/xxx/entity/request/";
        public static final String ResponseDTO = "./src/main/java/com/lunhan/xxx/entity/response/";
        public static final String PO = "./src/main/java/com/nanjing/water/repository/po/";
        public static final String VO = "./src/main/java/com/nanjing/water/repository/vo/";
        public static final String CONVERT_MAPPER = "./src/main/java/com/nanjing/water/service/convert/";
        public static final String MAPPER_IMPL = "./src/main/java/com/nanjing/water/repository/impl/";
        public static final String MAPPER = "./src/main/java/com/nanjing/water/repository/mapper/";
        public static final String SERVICE = "./src/main/java/com/nanjing/water/service/";
        public static final String Controller = "./src/main/java/com/nanjing/water/host/controller/";
        public static final String SEARCH = "./src/main/java/com/nanjing/water/entity/search/";
        public static final String Request = "./src/main/java/com/nanjing/water/entity/request/";
        public static final String Response = "./src/main/java/com/nanjing/water/entity/response/";
    }
    //endregion
@@ -244,7 +244,7 @@
     * 只生成以下配置的表
     */
    private static final List<String> ONLY_TABLES = Arrays.asList(
     "data_upload_record"
    );
    public static void main(String[] args) {
@@ -792,10 +792,10 @@
        }
        content.append("}");
        if (new File(GenCodeGauss.OutSet.RequestDTO + tableNamePackage + "/" + createDTOName + ".java").exists()) {
        if (new File(GenCodeGauss.OutSet.Request + tableNamePackage + "/" + createDTOName + ".java").exists()) {
            return;
        }
        writeFile(GenCodeGauss.OutSet.RequestDTO + tableNamePackage + "/", createDTOName + ".java", content.toString());
        writeFile(GenCodeGauss.OutSet.Request + tableNamePackage + "/", createDTOName + ".java", content.toString());
    }
    private static void genModifyDto(List<Map<String, Object>> columns, String tabName, String tableDesc) {
@@ -885,10 +885,10 @@
        }
        content.append("}");
        if (new File(GenCodeGauss.OutSet.RequestDTO + tableNamePackage + "/" + modifyDTOName + ".java").exists()) {
        if (new File(GenCodeGauss.OutSet.Request + tableNamePackage + "/" + modifyDTOName + ".java").exists()) {
            return;
        }
        writeFile(GenCodeGauss.OutSet.RequestDTO + tableNamePackage + "/", modifyDTOName + ".java", content.toString());
        writeFile(GenCodeGauss.OutSet.Request + tableNamePackage + "/", modifyDTOName + ".java", content.toString());
    }
    private static void genConvertMapper(String tableName, String tableDesc) {
src/test/java/com/nanjing/water/GenCodeMysql.java
@@ -47,17 +47,17 @@
    //region 架包路径设置
    class PackageSet {
        public static final String PO = "com.lunhan.water.repository.po";
        public static final String VO = "com.lunhan.water.repository.vo";
        public static final String CONVERT_MAPPER = "com.lunhan.water.service.convert";
        public static final String DAO = "com.lunhan.water.repository.dao";
        public static final String COLUMNS_ENUM = "com.lunhan.water.repository.columns";
        public static final String MAPPER = "com.lunhan.water.repository";
        public static final String SERVICE = "com.lunhan.water.service";
        public static final String Controller = "com.lunhan.water.host.controller";
        public static final String SEARCH = "com.lunhan.water.entity.search";
        public static final String Request = "com.lunhan.water.entity.request";
        public static final String Response = "com.lunhan.water.entity.response";
        public static final String PO = "com.nanjing.water.repository.po";
        public static final String VO = "com.nanjing.water.repository.vo";
        public static final String CONVERT_MAPPER = "com.nanjing.water.service.convert";
        public static final String DAO = "com.nanjing.water.repository.dao";
        public static final String COLUMNS_ENUM = "com.nanjing.water.repository.columns";
        public static final String MAPPER = "com.nanjing.water.repository";
        public static final String SERVICE = "com.nanjing.water.service";
        public static final String Controller = "com.nanjing.water.host.controller";
        public static final String SEARCH = "com.nanjing.water.entity.search";
        public static final String Request = "com.nanjing.water.entity.request";
        public static final String Response = "com.nanjing.water.entity.response";
    }
    //endregion
@@ -120,8 +120,8 @@
    //region vo类 import 内容设置
    private static final String[] SET_VO_IMPORT = new String[]{
            "import com.lunhan.water.common.util.LocalDateTimeUtil;",
            "import com.lunhan.water.common.util.NumericUtil;",
            "import com.nanjing.water.common.util.LocalDateTimeUtil;",
            "import com.nanjing.water.common.util.NumericUtil;",
            "import java.util.Objects;"
    };
    //endregion
@@ -137,7 +137,7 @@
    //region 字段名枚举类 import 内容设置
    private static final String[] SET_COLUMNS_ENUM_IMPORT = new String[]{
            "import com.lunhan.water.common.orm2.enums.ColumnBasic;",
            "import com.nanjing.water.common.orm2.enums.ColumnBasic;",
            "import java.util.Arrays;",
            "import java.util.Objects;"
    };
@@ -145,13 +145,13 @@
    //region dao类 import 内容设置
    private static final String[] SET_DAO_IMPORT = new String[]{
            "import com.lunhan.water.common.ConstantFactory;",
            "import com.lunhan.water.common.PagerResult;",
            "import com.lunhan.water.common.orm2.SqlBuilder;",
            "import com.lunhan.water.common.util.*;",
            "import com.lunhan.water.entity.dto.OrderByDTO;",
            "import com.lunhan.water.entity.enums.*;",
            "import com.lunhan.water.repository.BasicDao;",
            "import com.nanjing.water.common.ConstantFactory;",
            "import com.nanjing.water.common.PagerResult;",
            "import com.nanjing.water.common.orm2.SqlBuilder;",
            "import com.nanjing.water.common.util.*;",
            "import com.nanjing.water.entity.dto.OrderByDTO;",
            "import com.nanjing.water.entity.enums.*;",
            "import com.nanjing.water.repository.BasicDao;",
            "import org.springframework.stereotype.Repository;",
            "import java.util.*;",
            "import org.springframework.transaction.annotation.Transactional;"
@@ -160,9 +160,9 @@
    //region service类 import 内容设置
    private static final String[] SET_Service_IMPORT = new String[]{
            "import com.lunhan.water.common.*;",
            "import com.lunhan.water.common.model.Tuple;",
            "import com.lunhan.water.common.util.*;",
            "import com.nanjing.water.common.*;",
            "import com.nanjing.water.common.model.Tuple;",
            "import com.nanjing.water.common.util.*;",
            "import org.apache.commons.lang3.BooleanUtils;",
            "import org.springframework.beans.factory.annotation.Autowired;",
            "import org.springframework.stereotype.Service;",
@@ -174,13 +174,13 @@
    //region Controller类 import 内容设置
    private static final String[] SET_Controller_IMPORT = new String[]{
            "import com.lunhan.water.common.ExecutedResult;",
            "import com.lunhan.water.common.PagerResult;",
            "import com.lunhan.water.common.util.ParameterUtil;",
            "import com.lunhan.water.common.validator.ParameterValidateResult;",
            "import com.lunhan.water.common.validator.ParameterValidator;",
            "import com.lunhan.water.entity.request.ReqListId;",
            "import com.lunhan.water.host.BasicController;",
            "import com.nanjing.water.common.ExecutedResult;",
            "import com.nanjing.water.common.PagerResult;",
            "import com.nanjing.water.common.util.ParameterUtil;",
            "import com.nanjing.water.common.validator.ParameterValidateResult;",
            "import com.nanjing.water.common.validator.ParameterValidator;",
            "import com.nanjing.water.entity.request.ReqListId;",
            "import com.nanjing.water.host.BasicController;",
            "import org.springframework.beans.factory.annotation.Autowired;",
            "import org.springframework.web.bind.annotation.*;",
            "import java.util.List;"